refactor: rename app-dev to dev-app, publish-app to app-publish
- TickShield app skills now follow the app-<action> naming convention (e.g. app-publish); dev-app kept as the legacy grandfathered name - convention recorded in AGENTS.md + README skills table; skill-forge step 0 enforces app-<action> for future TickShield app skills - cross-references between dev-app and app-publish updated
This commit is contained in:
1 parent
8abc6a4abf
commit
eef31c17ba
26 files changed
+24
-24
No files matched your search
@@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
## Skill 命名规范
|
## Skill 命名规范
|
||||||
|
|
||||||
TickShield 平台应用生态类 skill 以 `app` 为核心词命名、不带 `tickshield-` 平台前缀(平台归属由 SKILL.md 的 description 表达):
|
针对 TickShield app 的 skill 以 `app-<action>` 命名、不带 `tickshield-` 平台前缀(平台归属由 SKILL.md 的 description 表达):
|
||||||
|
|
||||||
- `app-dev` — 按平台契约开发/审查/手工发布生态应用
|
- `dev-app` — 按平台契约开发/审查/手工发布生态应用(既有名称,保留不改)
|
||||||
- `publish-app` — 改造/新建 Gitea Actions 工作流,把部署 job 改为发布上架到应用市场
|
- `app-publish` — 改造/新建 Gitea Actions 工作流,把部署 job 改为发布上架到应用市场
|
||||||
|
|
||||||
新增同族 skill 照此风格命名(`<动作>-app` 或 `app-<领域>`),并在 README.md 的 Skills 列表登记。
|
新增同族 skill 一律 `app-<action>`(如 app-review、app-test),并在 README.md 的 Skills 列表登记。
|
||||||
|
|
||||||
## 仓库与安装副本
|
## 仓库与安装副本
|
||||||
|
|
||||||
本仓库是分发源(用户经 `npx skills add gitea@livebook:images/skills.git` 安装,默认项目级)。
|
本仓库是分发源(用户经 `npx skills add gitea@livebook:images/skills.git` 安装,默认项目级)。
|
||||||
|
|
||||||
- `app-dev`、`publish-app`:**只装项目级**(目标项目的 `.agents/skills/`),不在 `~/.agents/skills/` 维护全局副本
|
- `dev-app`、`app-publish`:**只装项目级**(目标项目的 `.agents/skills/`),不在 `~/.agents/skills/` 维护全局副本
|
||||||
- 其余 skill(gitea-actions、push-and-report、runtime-image、skill-forge 等):本机 `~/.agents/skills/<name>/` 有用户级副本,改动后两处同步
|
- 其余 skill(gitea-actions、push-and-report、runtime-image、skill-forge 等):本机 `~/.agents/skills/<name>/` 有用户级副本,改动后两处同步
|
||||||
@@ -46,8 +46,8 @@ npx skills remove runtime-image -g
|
|||||||
| [skill-forge](skills/skill-forge/SKILL.md) | 交互式创建新 Skill 的流水线,一问一答采集触发词/流程/红线,产出可直接使用的 SKILL.md |
|
| [skill-forge](skills/skill-forge/SKILL.md) | 交互式创建新 Skill 的流水线,一问一答采集触发词/流程/红线,产出可直接使用的 SKILL.md |
|
||||||
| [push-and-report](skills/push-and-report/SKILL.md) | 标准收尾流程:盘点 git 变更 → 英文 conventional commit → 推送远程 → SPMS 日报 |
|
| [push-and-report](skills/push-and-report/SKILL.md) | 标准收尾流程:盘点 git 变更 → 英文 conventional commit → 推送远程 → SPMS 日报 |
|
||||||
| [gitea-actions](skills/gitea-actions/SKILL.md) | 按统一规范给项目生成/评审优化 Gitea Actions 构建部署工作流(buildx 推 Gitea Packages → 本机重建容器 → 清理旧版本) |
|
| [gitea-actions](skills/gitea-actions/SKILL.md) | 按统一规范给项目生成/评审优化 Gitea Actions 构建部署工作流(buildx 推 Gitea Packages → 本机重建容器 → 清理旧版本) |
|
||||||
| [app-dev](skills/app-dev/SKILL.md) | 按 TickShield 平台契约在独立仓库开发/审查/发布生态应用(listingKey 四位一体、四道闸、tenant_id 租户隔离、release-cli 上架部署),含模板组与静态检查脚本 |
|
| [dev-app](skills/dev-app/SKILL.md) | 按 TickShield 平台契约在独立仓库开发/审查/发布生态应用(listingKey 四位一体、四道闸、tenant_id 租户隔离、release-cli 上架部署),含模板组与静态检查脚本 |
|
||||||
| [publish-app](skills/publish-app/SKILL.md) | 改造/新建 Gitea Actions 工作流,把部署 job 改为 aigrego-release 发布上架到 TickShield 应用市场(--store 自动上架 + --wait 审核门禁),含工作流模板与自检脚本 |
|
| [app-publish](skills/app-publish/SKILL.md) | 改造/新建 Gitea Actions 工作流,把部署 job 改为 aigrego-release 发布上架到 TickShield 应用市场(--store 自动上架 + --wait 审核门禁),含工作流模板与自检脚本 |
|
||||||
|
|
||||||
## 目录结构
|
## 目录结构
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ skills/
|
|||||||
└── ...
|
└── ...
|
||||||
```
|
```
|
||||||
|
|
||||||
命名规范:平台应用生态类 skill 以 `app` 为核心词、不带平台前缀(平台归属写进 description)——`app-dev`(开发)、`publish-app`(发布);新增同族 skill 照此风格命名。
|
命名规范:针对 TickShield app 的 skill 以 `app-<action>` 命名(如 `app-publish`),不带平台前缀(平台归属写进 description);`dev-app` 为既有保留名。新增同族 skill 一律 `app-<action>`。
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: publish-app
|
name: app-publish
|
||||||
description: 改造目标项目 Gitea Actions CI/CD 工作流的应用部署 job,按 TickShield(刻盾云)平台契约改用 aigrego-release(release-cli)发布上架:submit app.manifest.json + 记录镜像/上传 dist 产物 + --store 自动上架 + --wait 等治理审核,推 v 开头 tag 即发布到应用市场;项目没有工作流时新建完整发布工作流。凡用户要求「把部署 job 改成发布到应用市场 / 这个项目上架到 TickShield 商店 / CI 里自动发布应用 / 推 tag 自动上架 / 给 workflow 加应用市场发布 / 把这个 app 挂到门户商店 / 上线到刻盾云市场」,或带着 流水线绿了但商店没上架没生效 / 发布了但商店搜不到我的应用 / 403 auto_publish is off for this app / 401 凭证无效 / 403 listingKey mismatch / 400 index.html missing at archive root / 409 submit a manifest first 等症状,或提到 aigrego-release / release-cli / publish --store / --wait / AIGREGO_PORTAL_URL / APP_KEY / APP_SECRET / auto_publish / 应用市场发布模板 时,务必使用本 skill——即使用户没说「应用市场」四个字。Use whenever the user wants to convert or add a Gitea Actions deploy job that publishes a TickShield app to the platform marketplace via aigrego-release. 边界:应用开发/审查/手工发布指引用 app-dev;通用构建部署工作流规范(本机重建容器部署)用 gitea-actions;Dockerfile 选型评审用 runtime-image;git 提交推送日报用 push-and-report。
|
description: 改造目标项目 Gitea Actions CI/CD 工作流的应用部署 job,按 TickShield(刻盾云)平台契约改用 aigrego-release(release-cli)发布上架:submit app.manifest.json + 记录镜像/上传 dist 产物 + --store 自动上架 + --wait 等治理审核,推 v 开头 tag 即发布到应用市场;项目没有工作流时新建完整发布工作流。凡用户要求「把部署 job 改成发布到应用市场 / 这个项目上架到 TickShield 商店 / CI 里自动发布应用 / 推 tag 自动上架 / 给 workflow 加应用市场发布 / 把这个 app 挂到门户商店 / 上线到刻盾云市场」,或带着 流水线绿了但商店没上架没生效 / 发布了但商店搜不到我的应用 / 403 auto_publish is off for this app / 401 凭证无效 / 403 listingKey mismatch / 400 index.html missing at archive root / 409 submit a manifest first 等症状,或提到 aigrego-release / release-cli / publish --store / --wait / AIGREGO_PORTAL_URL / APP_KEY / APP_SECRET / auto_publish / 应用市场发布模板 时,务必使用本 skill——即使用户没说「应用市场」四个字。Use whenever the user wants to convert or add a Gitea Actions deploy job that publishes a TickShield app to the platform marketplace via aigrego-release. 边界:应用开发/审查/手工发布指引用 dev-app;通用构建部署工作流规范(本机重建容器部署)用 gitea-actions;Dockerfile 选型评审用 runtime-image;git 提交推送日报用 push-and-report。
|
||||||
---
|
---
|
||||||
|
|
||||||
# publish-app — 把 CI 部署环节改造为发布上架到 TickShield 应用市场
|
# app-publish — 把 CI 部署环节改造为发布上架到 TickShield 应用市场
|
||||||
|
|
||||||
发布即一条命令:`aigrego-release publish --manifest app.manifest.json --image <ref> --store --wait 600`。release-cli 是 **Go 零依赖静态二进制**(平台矩阵 `linux/darwin × amd64/arm64`),随平台发版同名覆盖分发到 minIO 公共桶。获取纪律:**本地优先探测,缺则按架构从 minIO 下载**(`bash scripts/ensure-cli.sh` 一行搞定)。本 skill 把这条命令**正确地**装进目标项目的 Gitea Actions,两种工作模式:
|
发布即一条命令:`aigrego-release publish --manifest app.manifest.json --image <ref> --store --wait 600`。release-cli 是 **Go 零依赖静态二进制**(平台矩阵 `linux/darwin × amd64/arm64`),随平台发版同名覆盖分发到 minIO 公共桶。获取纪律:**本地优先探测,缺则按架构从 minIO 下载**(`bash scripts/ensure-cli.sh` 一行搞定)。本 skill 把这条命令**正确地**装进目标项目的 Gitea Actions,两种工作模式:
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ description: 改造目标项目 Gitea Actions CI/CD 工作流的应用部署 job
|
|||||||
|
|
||||||
| 要什么 | 从哪来 | 放哪 |
|
| 要什么 | 从哪来 | 放哪 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `app.manifest.json` | 仓库根(无 → die,先走 `app-dev` 完成应用接入) | 仓库根,listingKey/版本的单一事实源 |
|
| `app.manifest.json` | 仓库根(无 → die,先走 `dev-app` 完成应用接入) | 仓库根,listingKey/版本的单一事实源 |
|
||||||
| `Dockerfile`(service/micro 型) | 仓库根(无 → die,先走 `runtime-image`;link/native 型不需要镜像段) | 仓库根 |
|
| `Dockerfile`(service/micro 型) | 仓库根(无 → die,先走 `runtime-image`;link/native 型不需要镜像段) | 仓库根 |
|
||||||
| 平台地址 | 用户告知(workflow 默认 `http://gateway:8080`) | Gitea Variable `TICKSHIELD_PORTAL_URL`,不写死 |
|
| 平台地址 | 用户告知(workflow 默认 `http://gateway:8080`) | Gitea Variable `TICKSHIELD_PORTAL_URL`,不写死 |
|
||||||
| 应用凭证 | **平台基座「接入应用」功能获取**(APP_KEY == listingKey、APP_SECRET) | 人配到 Gitea 仓库 Secrets;绝不进对话/文件 |
|
| 应用凭证 | **平台基座「接入应用」功能获取**(APP_KEY == listingKey、APP_SECRET) | 人配到 Gitea 仓库 Secrets;绝不进对话/文件 |
|
||||||
@@ -41,7 +41,7 @@ description: 改造目标项目 Gitea Actions CI/CD 工作流的应用部署 job
|
|||||||
| 探测项 | 怎么探 | 判定/用途 |
|
| 探测项 | 怎么探 | 判定/用途 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 已有 workflow(**最先做,决定模式**) | glob `.gitea/workflows/*.yml`、`.yaml` | 有 → 改造模式;无 → 新建模式;已有发布工作流 → 按硬约束逐条评审报「已符合/差距」 |
|
| 已有 workflow(**最先做,决定模式**) | glob `.gitea/workflows/*.yml`、`.yaml` | 有 → 改造模式;无 → 新建模式;已有发布工作流 → 按硬约束逐条评审报「已符合/差距」 |
|
||||||
| `app.manifest.json` | 读仓库根 | 无 → die 指路 `app-dev`;含 `deployDescriptor` → die(平台管理员专属字段,提交必 403) |
|
| `app.manifest.json` | 读仓库根 | 无 → die 指路 `dev-app`;含 `deployDescriptor` → die(平台管理员专属字段,提交必 403) |
|
||||||
| type / listingKey / version | 从 manifest 读 | type 分流:service → `--image`;micro → `--image` + `--dist`;link/native → 只交 manifest。listingKey 过正则 `^[a-z0-9][a-z0-9-]{0,62}$`,version 必须 semver |
|
| type / listingKey / version | 从 manifest 读 | type 分流:service → `--image`;micro → `--image` + `--dist`;link/native → 只交 manifest。listingKey 过正则 `^[a-z0-9][a-z0-9-]{0,62}$`,version 必须 semver |
|
||||||
| Dockerfile | glob `Dockerfile*` | service/micro 无 → die 指路 `runtime-image` |
|
| Dockerfile | glob `Dockerfile*` | service/micro 无 → die 指路 `runtime-image` |
|
||||||
| 现有构建段镜像 ref(改造模式) | 读现有 workflow 的 build/push 步骤 | 发布 job 用同一表达式重算镜像 ref,保证与构建产物一致 |
|
| 现有构建段镜像 ref(改造模式) | 读现有 workflow 的 build/push 步骤 | 发布 job 用同一表达式重算镜像 ref,保证与构建产物一致 |
|
||||||
@@ -139,7 +139,7 @@ fail-fast 分级:无 manifest / 无 Dockerfile / manifest 含 deployDescriptor
|
|||||||
| 401 凭证无效 | 凭证未签发/secrets 填错 | 平台基座「接入应用」获取凭证;核对 APP_KEY == listingKey |
|
| 401 凭证无效 | 凭证未签发/secrets 填错 | 平台基座「接入应用」获取凭证;核对 APP_KEY == listingKey |
|
||||||
| 403 `listingKey mismatch` | --key 与凭证 listingKey 不符 | key 只从 manifest 取,不另配(约束⑥) |
|
| 403 `listingKey mismatch` | --key 与凭证 listingKey 不符 | key 只从 manifest 取,不另配(约束⑥) |
|
||||||
| 403 `deployDescriptor is platform-admin only` | manifest 携带 deployDescriptor | 从 manifest 删除该字段(自检脚本 die 拦) |
|
| 403 `deployDescriptor is platform-admin only` | manifest 携带 deployDescriptor | 从 manifest 删除该字段(自检脚本 die 拦) |
|
||||||
| 400 manifest 校验失败(版本非 semver、scope 格式等) | 不符 ValidateManifest | 对照错误文案逐条修;可先跑 `app-dev` 的 check-app.sh 预检 |
|
| 400 manifest 校验失败(版本非 semver、scope 格式等) | 不符 ValidateManifest | 对照错误文案逐条修;可先跑 `dev-app` 的 check-app.sh 预检 |
|
||||||
| 400 `index.html missing at archive root` | `--dist` 套了目录,包根无 index.html | 传构建产物目录本身(约束⑤) |
|
| 400 `index.html missing at archive root` | `--dist` 套了目录,包根无 index.html | 传构建产物目录本身(约束⑤) |
|
||||||
| 413 | 产物包超 64MB | 精简产物/排查打包内容 |
|
| 413 | 产物包超 64MB | 精简产物/排查打包内容 |
|
||||||
| 409 `submit a manifest first` | 无生效版本就单独 `--image` | manifest 与 image 同一条 publish 命令(约束④) |
|
| 409 `submit a manifest first` | 无生效版本就单独 `--image` | manifest 与 image 同一条 publish 命令(约束④) |
|
||||||
@@ -166,7 +166,7 @@ die 消息统一三段式:是什么 + 为什么(后果) + 怎么办。
|
|||||||
|
|
||||||
## 边界:这些不归本 skill 管
|
## 边界:这些不归本 skill 管
|
||||||
|
|
||||||
- 应用代码开发/审查/手工发布指引(归 `app-dev`;本 skill 只接管 CI 里的发布环节)
|
- 应用代码开发/审查/手工发布指引(归 `dev-app`;本 skill 只接管 CI 里的发布环节)
|
||||||
- 通用 Gitea Actions 构建部署规范、基础镜像内网落盘(归 `gitea-actions`;新建模式的构建段只是最小可用)
|
- 通用 Gitea Actions 构建部署规范、基础镜像内网落盘(归 `gitea-actions`;新建模式的构建段只是最小可用)
|
||||||
- Dockerfile 选型/评审(归 `runtime-image`)
|
- Dockerfile 选型/评审(归 `runtime-image`)
|
||||||
- git 提交、推送、日报(归 `push-and-report`)
|
- git 提交、推送、日报(归 `push-and-report`)
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
# app-release.yaml — 推 v* tag → 构建推镜像 → aigrego-release 发布上架到 TickShield 应用市场
|
# app-release.yaml — 推 v* tag → 构建推镜像 → aigrego-release 发布上架到 TickShield 应用市场
|
||||||
# 由 publish-app skill 渲染生成。构建段为最小可用;完整构建规范(基础镜像内网落盘等)见 gitea-actions。
|
# 由 app-publish skill 渲染生成。构建段为最小可用;完整构建规范(基础镜像内网落盘等)见 gitea-actions。
|
||||||
#
|
#
|
||||||
# 槽位(渲染后不得残留 {{...}}):
|
# 槽位(渲染后不得残留 {{...}}):
|
||||||
# {{PROJECT}} 项目名(镜像名,默认仓库 basename)
|
# {{PROJECT}} 项目名(镜像名,默认仓库 basename)
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# publish-app 发布工作流规范自检(零依赖:bash + grep + sed;YAML 语法解析优先 python3,缺失则 SKIP)。
|
# app-publish 发布工作流规范自检(零依赖:bash + grep + sed;YAML 语法解析优先 python3,缺失则 SKIP)。
|
||||||
# 用法:bash check-publish-workflow.sh <workflow 路径>
|
# 用法:bash check-publish-workflow.sh <workflow 路径>
|
||||||
# 退出码:任一 die 项 FAIL → 1;仅 WARN/SKIP → 0。
|
# 退出码:任一 die 项 FAIL → 1;仅 WARN/SKIP → 0。
|
||||||
set -u
|
set -u
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# publish-app:aigrego-release 本地获取(本地优先,缺则按平台矩阵从 minIO 公共桶下载 + sha256 校验)。
|
# app-publish:aigrego-release 本地获取(本地优先,缺则按平台矩阵从 minIO 公共桶下载 + sha256 校验)。
|
||||||
# 用法: bash ensure-cli.sh [目标路径] 默认 /usr/local/bin/aigrego-release(不可写时退 ~/.local/bin)
|
# 用法: bash ensure-cli.sh [目标路径] 默认 /usr/local/bin/aigrego-release(不可写时退 ~/.local/bin)
|
||||||
# 输出: 最后一行 stdout 打印可执行文件路径(供 `CLI=$(bash ensure-cli.sh)` 捕获);过程信息走 stderr。
|
# 输出: 最后一行 stdout 打印可执行文件路径(供 `CLI=$(bash ensure-cli.sh)` 捕获);过程信息走 stderr。
|
||||||
# 失败: 下载/校验/架构不支持 → exit 1(校验和不匹配会删除已下载文件)。
|
# 失败: 下载/校验/架构不支持 → exit 1(校验和不匹配会删除已下载文件)。
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
name: app-dev
|
name: dev-app
|
||||||
description: 在独立仓库按 TickShield(刻盾云)平台契约开发、审查、发布生态应用(micro/service):listingKey 四位一体、app.manifest.json、tickshield-node-runtime 基础镜像、@aigrego/guard 四道闸与 tenant_id 租户隔离、micro 前端 portal-sdk 宿主桥、release-cli 发布与商店上架部署。凡用户要求「开发一个平台应用 / 新建 app / 写个 micro 应用 / 做个像 secret-manager / demo-app 那样的应用 / 在门户里加个自己的应用 / 接入 TickShield / 上架应用到商店 / 审查这个 app 能不能部署到平台 / 帮我看看接入还缺什么」,或带着 注册不上去 / 401 missing app credentials / 心跳 404 / host must equal listingKey / 四道闸 403 / 跨租户数据串了 / image registry not registered / invalid manifest skipped / 应用装上了但 /svc 不通 / PROD 白屏 CSP 报错 等症状,或提到 listingKey / app.manifest.json / 四道闸 / TDT / tenant_id / portal-sdk / release-cli / tickshield-node-runtime 时,务必使用本 skill——即使用户没说「应用接入」四个字。Use whenever the user develops, scaffolds, audits, onboards, publishes or deploys a TickShield platform app (micro or service) from an independent repository. 边界:非平台场景的通用 Dockerfile 选型评审用 runtime-image;通用 Gitea Actions 工作流规范用 gitea-actions;CI 工作流的发布 job 改造/新建发布工作流用 publish-app;git 提交推送与日报用 push-and-report;平台基座本身(portal/gateway/packages/* 控制面)的开发不归本 skill。
|
description: 在独立仓库按 TickShield(刻盾云)平台契约开发、审查、发布生态应用(micro/service):listingKey 四位一体、app.manifest.json、tickshield-node-runtime 基础镜像、@aigrego/guard 四道闸与 tenant_id 租户隔离、micro 前端 portal-sdk 宿主桥、release-cli 发布与商店上架部署。凡用户要求「开发一个平台应用 / 新建 app / 写个 micro 应用 / 做个像 secret-manager / demo-app 那样的应用 / 在门户里加个自己的应用 / 接入 TickShield / 上架应用到商店 / 审查这个 app 能不能部署到平台 / 帮我看看接入还缺什么」,或带着 注册不上去 / 401 missing app credentials / 心跳 404 / host must equal listingKey / 四道闸 403 / 跨租户数据串了 / image registry not registered / invalid manifest skipped / 应用装上了但 /svc 不通 / PROD 白屏 CSP 报错 等症状,或提到 listingKey / app.manifest.json / 四道闸 / TDT / tenant_id / portal-sdk / release-cli / tickshield-node-runtime 时,务必使用本 skill——即使用户没说「应用接入」四个字。Use whenever the user develops, scaffolds, audits, onboards, publishes or deploys a TickShield platform app (micro or service) from an independent repository. 边界:非平台场景的通用 Dockerfile 选型评审用 runtime-image;通用 Gitea Actions 工作流规范用 gitea-actions;CI 工作流的发布 job 改造/新建发布工作流用 app-publish;git 提交推送与日报用 push-and-report;平台基座本身(portal/gateway/packages/* 控制面)的开发不归本 skill。
|
||||||
---
|
---
|
||||||
|
|
||||||
# app-dev — TickShield 生态应用开发规范(独立仓库 → 可直接部署上架)
|
# dev-app — TickShield 生态应用开发规范(独立仓库 → 可直接部署上架)
|
||||||
|
|
||||||
TickShield 生态应用的交付物只有两样:**镜像 + `app.manifest.json`**。注册/心跳/优雅下线/健康检查由基础镜像 `tickshield-node-runtime:base` 的 `runtime-entry.js` 全包;应用代码只需一个导出 `{handler, dbCheck?}` 的 ESM 入口,全量 SQL 走 `@aigrego/guard` 租户数据源,路由挂四道闸。本 skill 把这套契约锻成可执行的流程,两种工作模式:
|
TickShield 生态应用的交付物只有两样:**镜像 + `app.manifest.json`**。注册/心跳/优雅下线/健康检查由基础镜像 `tickshield-node-runtime:base` 的 `runtime-entry.js` 全包;应用代码只需一个导出 `{handler, dbCheck?}` 的 ESM 入口,全量 SQL 走 `@aigrego/guard` 租户数据源,路由挂四道闸。本 skill 把这套契约锻成可执行的流程,两种工作模式:
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ die 消息统一三段式:是什么 + 为什么(后果) + 怎么办。
|
|||||||
|
|
||||||
- 非 TickShield 场景的 Dockerfile 选型/评审(归 `runtime-image`)
|
- 非 TickShield 场景的 Dockerfile 选型/评审(归 `runtime-image`)
|
||||||
- 通用 Gitea Actions 工作流规范(归 `gitea-actions`;本 skill 只提供平台发布模板)
|
- 通用 Gitea Actions 工作流规范(归 `gitea-actions`;本 skill 只提供平台发布模板)
|
||||||
- CI/CD 工作流的发布 job 改造、新建发布工作流(归 `publish-app`;本 skill 第 4 步只管手工发布指引)
|
- CI/CD 工作流的发布 job 改造、新建发布工作流(归 `app-publish`;本 skill 第 4 步只管手工发布指引)
|
||||||
- git 提交、推送、日报(归 `push-and-report`)
|
- git 提交、推送、日报(归 `push-and-report`)
|
||||||
- 平台基座本身(portal/gateway/packages)的开发与修改
|
- 平台基座本身(portal/gateway/packages)的开发与修改
|
||||||
- 平台侧 console 操作(建应用签凭证/白名单/审核/授权/安装)——只输出待办清单
|
- 平台侧 console 操作(建应用签凭证/白名单/审核/授权/安装)——只输出待办清单
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# app-dev 静态契约检查(零依赖:bash + grep + sed;manifest 语义解析优先 node,退化 python3)。
|
# dev-app 静态契约检查(零依赖:bash + grep + sed;manifest 语义解析优先 node,退化 python3)。
|
||||||
# 用法: check-app.sh [仓库根] 退出码 0=无 die(可有 warn),1=有 die 级违规。
|
# 用法: check-app.sh [仓库根] 退出码 0=无 die(可有 warn),1=有 die 级违规。
|
||||||
# 只查静态契约,不替代真环境联调(verify-onboarding 六项出口门)。
|
# 只查静态契约,不替代真环境联调(verify-onboarding 六项出口门)。
|
||||||
set -u
|
set -u
|
||||||
@@ -52,7 +52,7 @@ description: 交互式创建新 Skill 的流水线:通过一问一答逐步采
|
|||||||
- 工具/名词(`docker push`、`xrel_`、某 MCP 工具名)
|
- 工具/名词(`docker push`、`xrel_`、某 MCP 工具名)
|
||||||
3. **什么事不归它管?** → 边界划界 + 路由到哪个现有 skill(与现有 skill 名单逐个对一遍,防重叠)
|
3. **什么事不归它管?** → 边界划界 + 路由到哪个现有 skill(与现有 skill 名单逐个对一遍,防重叠)
|
||||||
|
|
||||||
产出:kebab-case 名字(动词或领域词,如 `image-push`、`release-notes`);description 按固定配方拼装:
|
产出:kebab-case 名字(动词或领域词,如 `image-push`、`release-notes`)——**针对 TickShield app 的 skill 一律 `app-<action>` 命名**(如 `app-publish`;`dev-app` 是既有保留名,不照此改);description 按固定配方拼装:
|
||||||
|
|
||||||
```
|
```
|
||||||
中文长描述(一句话用途 + 触发原话枚举 + 「务必使用本 skill——即使用户没说『X』两个字」)
|
中文长描述(一句话用途 + 触发原话枚举 + 「务必使用本 skill——即使用户没说『X』两个字」)
|
||||||
|
|||||||
Reference in new issue
Block a user