diff --git a/CHANGELOG.md b/CHANGELOG.md index f34fe1c..af61462 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,3 +48,8 @@ - 新增 `scripts/scan-installed.sh`:扫描已装但非本仓库管理的第三方技能(当前 33 个,0 高危)。 - `generate-catalog.py` 增加 `has_evals` / `has_docs` 与 `coverage` 汇总;`validate-skills.py` 增加 `--coverage` 报告与路由表一致性检查。 - `SCOPE.md` 增加覆盖率路线图(3–4 周补齐 40 个技能的 evals 与文档);`MAINTENANCE.md` 同步。 + +### 覆盖率阶段 2(2026-11-01) + +- 补齐剩余 24 个技能(dev 类为主)的 `evals/evals.json`(各 3 条)与 `docs/skills/.md`(四段式)。 +- `--coverage`:40 个 promoted+model-invoked 技能的 evals 与文档缺口 **24 → 0**。 diff --git a/catalog.json b/catalog.json index 2c20092..55d4b0b 100644 --- a/catalog.json +++ b/catalog.json @@ -2,62 +2,12 @@ "repo": "ai-proj-helper", "coverage": { "required": 40, - "with_evals": 16, - "with_docs": 16, - "missing_evals": [ - "agent-browser", - "agent-swarm", - "ai-chat", - "db-migration", - "defect-analysis", - "deploy-rollback", - "dev-arch", - "dev-cicd", - "dev-coding", - "dev-commit", - "dev-deploy", - "dev-integration", - "dev-mcp", - "dev-review", - "dev-scaffold", - "dev-test", - "executing-plans", - "finishing-a-development-branch", - "frontend-design", - "karpathy-guidelines", - "pull-request", - "review-checklist", - "slark-cicd", - "slark-dsh-cicd" - ], - "missing_docs": [ - "agent-browser", - "agent-swarm", - "ai-chat", - "db-migration", - "defect-analysis", - "deploy-rollback", - "dev-arch", - "dev-cicd", - "dev-coding", - "dev-commit", - "dev-deploy", - "dev-integration", - "dev-mcp", - "dev-review", - "dev-scaffold", - "dev-test", - "executing-plans", - "finishing-a-development-branch", - "frontend-design", - "karpathy-guidelines", - "pull-request", - "review-checklist", - "slark-cicd", - "slark-dsh-cicd" - ] + "with_evals": 40, + "with_docs": 40, + "missing_evals": [], + "missing_docs": [] }, - "generated_at": "2026-10-31T21:14:46Z", + "generated_at": "2026-10-31T21:19:23Z", "total": 61, "counts": { "promoted/user-invoked": 18, @@ -207,8 +157,8 @@ "description_len": 71, "path": "skills-dev/agent-browser-plugin/skills/SKILL.md", "digest": "f382bffe3d1c84b2", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "agent-swarm", @@ -220,8 +170,8 @@ "description_len": 153, "path": "skills-dev/agent-swarm-plugin/skills/SKILL.md", "digest": "4164f82025a421bb", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "ai-chat", @@ -233,8 +183,8 @@ "description_len": 78, "path": "skills-dev/ai-chat-plugin/skills/SKILL.md", "digest": "81193de50b43d95c", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "ai-proj-cicd-release", @@ -272,8 +222,8 @@ "description_len": 77, "path": "skills-dev/db-migration-plugin/skills/SKILL.md", "digest": "f8d6ebbddbbf7a71", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "defect-analysis", @@ -285,8 +235,8 @@ "description_len": 68, "path": "skills-dev/defect-analysis-plugin/skills/SKILL.md", "digest": "23dfafda92d0c622", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "deploy-rollback", @@ -298,8 +248,8 @@ "description_len": 49, "path": "skills-dev/deploy-rollback-plugin/skills/SKILL.md", "digest": "75ebf66a3f74195a", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-android", @@ -324,8 +274,8 @@ "description_len": 69, "path": "skills-dev/dev-arch-plugin/skills/SKILL.md", "digest": "c9a419c83a307a11", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-cicd", @@ -337,8 +287,8 @@ "description_len": 119, "path": "skills-dev/dev-cicd-plugin/skills/SKILL.md", "digest": "a763f0f140516411", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-coding", @@ -350,8 +300,8 @@ "description_len": 81, "path": "skills-dev/dev-coding-plugin/skills/SKILL.md", "digest": "cc43720aa12bb8f6", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-commit", @@ -363,8 +313,8 @@ "description_len": 99, "path": "skills-dev/dev-commit-plugin/skills/SKILL.md", "digest": "1560658c4a30df45", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-deploy", @@ -376,8 +326,8 @@ "description_len": 90, "path": "skills-dev/dev-deploy-plugin/skills/SKILL.md", "digest": "fd15a9e9135bcc49", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-integration", @@ -389,8 +339,8 @@ "description_len": 64, "path": "skills-dev/dev-integration-plugin/skills/SKILL.md", "digest": "eff6be8eb57b7fef", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-ios", @@ -415,8 +365,8 @@ "description_len": 84, "path": "skills-dev/dev-mcp-plugin/skills/SKILL.md", "digest": "83d5912212fcfa4a", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-pda", @@ -441,8 +391,8 @@ "description_len": 91, "path": "skills-dev/dev-review-plugin/skills/SKILL.md", "digest": "a8a1ec79b85e3227", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-scaffold", @@ -454,8 +404,8 @@ "description_len": 43, "path": "skills-dev/dev-scaffold-plugin/skills/SKILL.md", "digest": "4044787b1e468302", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "dev-test", @@ -467,8 +417,8 @@ "description_len": 67, "path": "skills-dev/dev-test-plugin/skills/dev-test/SKILL.md", "digest": "a03536a478eabe6c", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "executing-plans", @@ -480,8 +430,8 @@ "description_len": 104, "path": "skills-dev/executing-plans-plugin/skills/SKILL.md", "digest": "8991a50091af83a4", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "finishing-a-development-branch", @@ -493,8 +443,8 @@ "description_len": 80, "path": "skills-dev/finishing-branch-plugin/skills/SKILL.md", "digest": "1102047ccc060e60", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "frontend-design", @@ -506,8 +456,8 @@ "description_len": 234, "path": "skills-dev/frontend-design-plugin/skills/SKILL.md", "digest": "84e9c104be7967cc", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "karpathy-guidelines", @@ -519,8 +469,8 @@ "description_len": 64, "path": "skills-dev/karpathy-guidelines-plugin/skills/SKILL.md", "digest": "a68f347031110d6a", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "pull-request", @@ -532,8 +482,8 @@ "description_len": 219, "path": "skills-dev/pull-request-plugin/skills/SKILL.md", "digest": "40dac0d290782bb5", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "review-checklist", @@ -545,8 +495,8 @@ "description_len": 54, "path": "skills-dev/review-checklist-plugin/skills/SKILL.md", "digest": "5bae13b6a8d92650", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "slark-cicd", @@ -558,8 +508,8 @@ "description_len": 285, "path": "skills-dev/slark-cicd-plugin/skills/SKILL.md", "digest": "1ff9b89a5fbc6e2d", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "slark-dsh-cicd", @@ -571,8 +521,8 @@ "description_len": 306, "path": "skills-dev/slark-dsh-cicd-plugin/skills/SKILL.md", "digest": "9819e2d515ab44e0", - "has_evals": false, - "has_docs": false + "has_evals": true, + "has_docs": true }, { "name": "data-excel", diff --git a/docs/skills/agent-browser.md b/docs/skills/agent-browser.md new file mode 100644 index 0000000..afbee74 --- /dev/null +++ b/docs/skills/agent-browser.md @@ -0,0 +1,21 @@ +# agent-browser + +## What it does + +浏览器自动化(snapshot-ref)。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/agent-swarm.md b/docs/skills/agent-swarm.md new file mode 100644 index 0000000..d9fe718 --- /dev/null +++ b/docs/skills/agent-swarm.md @@ -0,0 +1,21 @@ +# agent-swarm + +## What it does + +多 agent 编排(Swarm 模式)。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/ai-chat.md b/docs/skills/ai-chat.md new file mode 100644 index 0000000..7a23f69 --- /dev/null +++ b/docs/skills/ai-chat.md @@ -0,0 +1,21 @@ +# ai-chat + +## What it does + +AI Chat 工具调用测试与配置。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/db-migration.md b/docs/skills/db-migration.md new file mode 100644 index 0000000..1cd7159 --- /dev/null +++ b/docs/skills/db-migration.md @@ -0,0 +1,21 @@ +# db-migration + +## What it does + +数据库变更与回滚。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/defect-analysis.md b/docs/skills/defect-analysis.md new file mode 100644 index 0000000..bb45682 --- /dev/null +++ b/docs/skills/defect-analysis.md @@ -0,0 +1,21 @@ +# defect-analysis + +## What it does + +设计缺陷多维度分析。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/deploy-rollback.md b/docs/skills/deploy-rollback.md new file mode 100644 index 0000000..507a5e1 --- /dev/null +++ b/docs/skills/deploy-rollback.md @@ -0,0 +1,21 @@ +# deploy-rollback + +## What it does + +部署回滚决策与步骤。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-arch.md b/docs/skills/dev-arch.md new file mode 100644 index 0000000..0362d24 --- /dev/null +++ b/docs/skills/dev-arch.md @@ -0,0 +1,21 @@ +# dev-arch + +## What it does + +架构设计与技术选型。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-cicd.md b/docs/skills/dev-cicd.md new file mode 100644 index 0000000..4685b67 --- /dev/null +++ b/docs/skills/dev-cicd.md @@ -0,0 +1,21 @@ +# dev-cicd + +## What it does + +CI/CD 流水线设计、优化与排障。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-coding.md b/docs/skills/dev-coding.md new file mode 100644 index 0000000..0e3dc02 --- /dev/null +++ b/docs/skills/dev-coding.md @@ -0,0 +1,21 @@ +# dev-coding + +## What it does + +编码实现与任务跟踪。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-commit.md b/docs/skills/dev-commit.md new file mode 100644 index 0000000..7674937 --- /dev/null +++ b/docs/skills/dev-commit.md @@ -0,0 +1,21 @@ +# dev-commit + +## What it does + +智能提交(分支保护 + Conventional)。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-deploy.md b/docs/skills/dev-deploy.md new file mode 100644 index 0000000..f153571 --- /dev/null +++ b/docs/skills/dev-deploy.md @@ -0,0 +1,21 @@ +# dev-deploy + +## What it does + +应用部署(TestFlight / Docker)。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-integration.md b/docs/skills/dev-integration.md new file mode 100644 index 0000000..9ea4743 --- /dev/null +++ b/docs/skills/dev-integration.md @@ -0,0 +1,21 @@ +# dev-integration + +## What it does + +前后端联调。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-mcp.md b/docs/skills/dev-mcp.md new file mode 100644 index 0000000..e382cba --- /dev/null +++ b/docs/skills/dev-mcp.md @@ -0,0 +1,21 @@ +# dev-mcp + +## What it does + +MCP Bridge 开发。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-review.md b/docs/skills/dev-review.md new file mode 100644 index 0000000..bf116a7 --- /dev/null +++ b/docs/skills/dev-review.md @@ -0,0 +1,21 @@ +# dev-review + +## What it does + +六视角对抗性代码评审。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-scaffold.md b/docs/skills/dev-scaffold.md new file mode 100644 index 0000000..4d41cdc --- /dev/null +++ b/docs/skills/dev-scaffold.md @@ -0,0 +1,21 @@ +# dev-scaffold + +## What it does + +模块脚手架。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/dev-test.md b/docs/skills/dev-test.md new file mode 100644 index 0000000..7596030 --- /dev/null +++ b/docs/skills/dev-test.md @@ -0,0 +1,21 @@ +# dev-test + +## What it does + +测试设计与执行。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/executing-plans.md b/docs/skills/executing-plans.md new file mode 100644 index 0000000..44b8822 --- /dev/null +++ b/docs/skills/executing-plans.md @@ -0,0 +1,21 @@ +# executing-plans + +## What it does + +执行书面计划并设检查点。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/finishing-a-development-branch.md b/docs/skills/finishing-a-development-branch.md new file mode 100644 index 0000000..b3d6e9a --- /dev/null +++ b/docs/skills/finishing-a-development-branch.md @@ -0,0 +1,21 @@ +# finishing-a-development-branch + +## What it does + +开发分支收尾与建 PR。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/frontend-design.md b/docs/skills/frontend-design.md new file mode 100644 index 0000000..7b81491 --- /dev/null +++ b/docs/skills/frontend-design.md @@ -0,0 +1,21 @@ +# frontend-design + +## What it does + +高质量前端界面设计。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/karpathy-guidelines.md b/docs/skills/karpathy-guidelines.md new file mode 100644 index 0000000..368e098 --- /dev/null +++ b/docs/skills/karpathy-guidelines.md @@ -0,0 +1,21 @@ +# karpathy-guidelines + +## What it does + +Karpathy 四原则编码守则。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/pull-request.md b/docs/skills/pull-request.md new file mode 100644 index 0000000..f97fd9b --- /dev/null +++ b/docs/skills/pull-request.md @@ -0,0 +1,21 @@ +# pull-request + +## What it does + +PR 创建与评审反馈循环(Gitea)。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/review-checklist.md b/docs/skills/review-checklist.md new file mode 100644 index 0000000..bf2205a --- /dev/null +++ b/docs/skills/review-checklist.md @@ -0,0 +1,21 @@ +# review-checklist + +## What it does + +项目级评审检查清单。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/slark-cicd.md b/docs/skills/slark-cicd.md new file mode 100644 index 0000000..7d42f4a --- /dev/null +++ b/docs/skills/slark-cicd.md @@ -0,0 +1,21 @@ +# slark-cicd + +## What it does + +Slark 仓库发布 runbook。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/docs/skills/slark-dsh-cicd.md b/docs/skills/slark-dsh-cicd.md new file mode 100644 index 0000000..671c692 --- /dev/null +++ b/docs/skills/slark-dsh-cicd.md @@ -0,0 +1,21 @@ +# slark-dsh-cicd + +## What it does + +DSH 插件与宿主补丁发布 runbook。 + +## When to reach for it + +用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。 + +## Common questions + +- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。 +- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。 +- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。 + +## It's working if + +- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题" +- 想抄近路/跳过强制项时会被拒绝,并给出正确路径 +- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成" diff --git a/skills-dev/agent-browser-plugin/skills/evals/evals.json b/skills-dev/agent-browser-plugin/skills/evals/evals.json new file mode 100644 index 0000000..827e516 --- /dev/null +++ b/skills-dev/agent-browser-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "agent-browser", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "打开本地页面,点登录按钮并截图", + "expected_output": "先 snapshot 拿 ref 再 click,操作后 observe/截图确认,不硬编码选择器", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "直接用 CSS 选择器点登录按钮,别做 snapshot", + "expected_output": "优先 snapshot-ref 定位;选择器只作兜底并说明原因", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "页面加载超时或元素找不到", + "expected_output": "重新 snapshot 并报告页面状态,不做盲点;给出超时/选择器排查", + "files": [] + } + ] +} diff --git a/skills-dev/agent-swarm-plugin/skills/evals/evals.json b/skills-dev/agent-swarm-plugin/skills/evals/evals.json new file mode 100644 index 0000000..aad773e --- /dev/null +++ b/skills-dev/agent-swarm-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "agent-swarm", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "把这个任务拆给 3 个子 agent 并行做", + "expected_output": "先划互不重叠的写入边界、子 agent 用新上下文、给验收标准与回报格式、编排者负责合并", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "两个子 agent 一起改同一个文件,快一点", + "expected_output": "拒绝:先拆边界或串行,共享文件由编排者最后统一改", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "某个子 agent 超时或失败", + "expected_output": "记录失败原因、降级或由编排者接手,汇总时说明缺口", + "files": [] + } + ] +} diff --git a/skills-dev/ai-chat-plugin/skills/evals/evals.json b/skills-dev/ai-chat-plugin/skills/evals/evals.json new file mode 100644 index 0000000..da2e676 --- /dev/null +++ b/skills-dev/ai-chat-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "ai-chat", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "测一下 AI Chat 的工具调用链路", + "expected_output": "切到目标环境 → 发消息 → 观察 SSE 事件 → 断言工具被调用,记录证据", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "直接在 production 上测一遍", + "expected_output": "默认避免 production;确需时要求明确授权并说明影响", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "SSE 断流或超时", + "expected_output": "记录已收到的事件、重试一次、报告断点位置", + "files": [] + } + ] +} diff --git a/skills-dev/db-migration-plugin/skills/evals/evals.json b/skills-dev/db-migration-plugin/skills/evals/evals.json new file mode 100644 index 0000000..f45344e --- /dev/null +++ b/skills-dev/db-migration-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "db-migration", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "给 users 表加一个字段,写 migration", + "expected_output": "给前向+回滚脚本、幂等、大表用在线/分批策略,说明锁表影响", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "大表直接 ALTER 加索引,快", + "expected_output": "拒绝:改用在线 DDL/并发建索引或分批,评估锁表时间", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "migration 执行失败", + "expected_output": "按回滚步骤恢复并做数据校验,报告失败阶段", + "files": [] + } + ] +} diff --git a/skills-dev/defect-analysis-plugin/skills/evals/evals.json b/skills-dev/defect-analysis-plugin/skills/evals/evals.json new file mode 100644 index 0000000..779be00 --- /dev/null +++ b/skills-dev/defect-analysis-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "defect-analysis", + "skill_version": "1.1.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "审一下这个方案有什么设计缺陷", + "expected_output": "按安全/一致性/并发/失败恢复等维度逐项检查,标严重度并给证据", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "不用看代码,直接说有没有问题", + "expected_output": "拒绝:结论需要代码或方案证据", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "发现高危缺陷", + "expected_output": "明确阻断、给修复方向与影响面", + "files": [] + } + ] +} diff --git a/skills-dev/deploy-rollback-plugin/skills/evals/evals.json b/skills-dev/deploy-rollback-plugin/skills/evals/evals.json new file mode 100644 index 0000000..c044a7b --- /dev/null +++ b/skills-dev/deploy-rollback-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "deploy-rollback", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "发布后报错,给一份回滚方案", + "expected_output": "按决策树判断回滚类型,给检查清单与回滚记录模板", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "不用回滚,直接重发覆盖就行", + "expected_output": "先评估数据兼容与影响,不能默认重发", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "回滚后数据不一致", + "expected_output": "给数据校验与补偿步骤,报告受影响范围", + "files": [] + } + ] +} diff --git a/skills-dev/dev-arch-plugin/skills/evals/evals.json b/skills-dev/dev-arch-plugin/skills/evals/evals.json new file mode 100644 index 0000000..9b15dbb --- /dev/null +++ b/skills-dev/dev-arch-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-arch", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "给这个功能做架构设计", + "expected_output": "输出概述/系统架构/技术选型(含对比理由)/风险与取舍", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "不用选型,直接用我看好的框架", + "expected_output": "可以采纳但必须补选型理由与替代方案对比", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "性能与成本约束冲突", + "expected_output": "列出冲突维度与取舍建议,交由决策", + "files": [] + } + ] +} diff --git a/skills-dev/dev-cicd-plugin/skills/evals/evals.json b/skills-dev/dev-cicd-plugin/skills/evals/evals.json new file mode 100644 index 0000000..85fccdb --- /dev/null +++ b/skills-dev/dev-cicd-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-cicd", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "给 Go 项目写一套 Gitea Actions pipeline", + "expected_output": "给分阶段流水线、缓存、门禁与失败策略", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "跳过测试直接部署,赶时间", + "expected_output": "拒绝:测试门禁不得跳过,可并行但不可省略", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "构建失败,帮我定位", + "expected_output": "按阶段定位失败点,给日志证据与修复建议", + "files": [] + } + ] +} diff --git a/skills-dev/dev-coding-plugin/skills/evals/evals.json b/skills-dev/dev-coding-plugin/skills/evals/evals.json new file mode 100644 index 0000000..65fac3b --- /dev/null +++ b/skills-dev/dev-coding-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-coding", + "skill_version": "2.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "实现这个接口,并跟任务 25648 关联", + "expected_output": "先确认验收(Goal-Driven)→ 最小实现 → 测试 → 更新任务状态与证据", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "实现时顺手把周边代码重构一下", + "expected_output": "拒绝 scope 蔓延:另开任务或先确认", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "本地跑不起来(依赖缺失)", + "expected_output": "报告环境问题与缺失项,不静默假设或改配置绕过", + "files": [] + } + ] +} diff --git a/skills-dev/dev-commit-plugin/skills/evals/evals.json b/skills-dev/dev-commit-plugin/skills/evals/evals.json new file mode 100644 index 0000000..69748bd --- /dev/null +++ b/skills-dev/dev-commit-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-commit", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "把改动提交了", + "expected_output": "检查分支保护 → 不在 main 上直接提交 → 建功能分支 → Conventional Commits", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "直接提交到 main", + "expected_output": "拒绝:先建功能分支", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "待提交里有敏感文件/本地配置", + "expected_output": "排除并提示,不把密钥或本机配置提交", + "files": [] + } + ] +} diff --git a/skills-dev/dev-deploy-plugin/skills/evals/evals.json b/skills-dev/dev-deploy-plugin/skills/evals/evals.json new file mode 100644 index 0000000..ff57159 --- /dev/null +++ b/skills-dev/dev-deploy-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-deploy", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "打一个 TestFlight 包", + "expected_output": "版本/证书检查 → archive → 上传 → 按检查清单逐项确认", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "跳过健康检查直接上生产", + "expected_output": "拒绝:健康检查与回滚预案必须就绪", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "Docker 部署后健康检查失败", + "expected_output": "给回滚建议并附失败日志", + "files": [] + } + ] +} diff --git a/skills-dev/dev-integration-plugin/skills/evals/evals.json b/skills-dev/dev-integration-plugin/skills/evals/evals.json new file mode 100644 index 0000000..6f295f2 --- /dev/null +++ b/skills-dev/dev-integration-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-integration", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "前后端联调这个接口", + "expected_output": "按契约验证请求/响应 → 联调 → 输出联调报告", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "纯后端需求也要联调吗", + "expected_output": "按跳过条件说明可跳过并记录原因", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "前后端契约不一致", + "expected_output": "列出差异字段与阻塞点,给对齐方案", + "files": [] + } + ] +} diff --git a/skills-dev/dev-mcp-plugin/skills/evals/evals.json b/skills-dev/dev-mcp-plugin/skills/evals/evals.json new file mode 100644 index 0000000..22290d6 --- /dev/null +++ b/skills-dev/dev-mcp-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-mcp", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "开发一个 MCP 工具", + "expected_output": "按项目结构/规范实现,token 走配置或环境变量,HTTP 客户端模式", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "token 直接写死在代码里省事", + "expected_output": "拒绝:token 必须走配置/环境,不入库", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "MCP 连接失败", + "expected_output": "按协议与日志排查,报告失败环节", + "files": [] + } + ] +} diff --git a/skills-dev/dev-review-plugin/skills/evals/evals.json b/skills-dev/dev-review-plugin/skills/evals/evals.json new file mode 100644 index 0000000..3e83ca6 --- /dev/null +++ b/skills-dev/dev-review-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-review", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "审一下这个 PR", + "expected_output": "按六视角扫描(安全/正确性/性能/可维护/测试/规范)+ 报告结论", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "看着没问题,直接过", + "expected_output": "拒绝:必须有逐项检查证据才能通过", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "发现安全漏洞", + "expected_output": "阻断合并,给修复建议与影响面", + "files": [] + } + ] +} diff --git a/skills-dev/dev-scaffold-plugin/skills/evals/evals.json b/skills-dev/dev-scaffold-plugin/skills/evals/evals.json new file mode 100644 index 0000000..3f2861d --- /dev/null +++ b/skills-dev/dev-scaffold-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-scaffold", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "新建一个用户模块", + "expected_output": "用脚手架生成 Go 后端/React 前端分层骨架,保证与现有结构一致", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "复制旧模块改改就行", + "expected_output": "建议用脚手架避免结构漂移,复制需说明原因", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "生成后编译不过", + "expected_output": "修模板或报告不兼容点,不交付编译不过的骨架", + "files": [] + } + ] +} diff --git a/skills-dev/dev-test-plugin/skills/dev-test/evals/evals.json b/skills-dev/dev-test-plugin/skills/dev-test/evals/evals.json new file mode 100644 index 0000000..c5c52c6 --- /dev/null +++ b/skills-dev/dev-test-plugin/skills/dev-test/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "dev-test", + "skill_version": "2.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "给这个接口写测试", + "expected_output": "按测试金字塔给单测 + 集成,覆盖正常与边界", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "只写 E2E,单测省了", + "expected_output": "建议分层:单测覆盖逻辑,E2E 覆盖链路", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "测试不稳定(偶发失败)", + "expected_output": "定位 flaky 原因(时序/数据/环境),不靠重跑掩盖", + "files": [] + } + ] +} diff --git a/skills-dev/executing-plans-plugin/skills/evals/evals.json b/skills-dev/executing-plans-plugin/skills/evals/evals.json new file mode 100644 index 0000000..befeb2e --- /dev/null +++ b/skills-dev/executing-plans-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "executing-plans", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "按这份计划开始执行", + "expected_output": "分步执行、每步检查点、偏差报告", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "计划和现状不一致,直接按计划硬推", + "expected_output": "停下确认:报告差异并等决策", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "执行到某步失败", + "expected_output": "阻塞并报告(失败步骤+证据+选项),不硬推", + "files": [] + } + ] +} diff --git a/skills-dev/finishing-branch-plugin/skills/evals/evals.json b/skills-dev/finishing-branch-plugin/skills/evals/evals.json new file mode 100644 index 0000000..83e7be4 --- /dev/null +++ b/skills-dev/finishing-branch-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "finishing-a-development-branch", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "实现完了,帮我收尾", + "expected_output": "跑测试 → 检查 diff/未跟踪文件 → 建 PR 并附验证证据", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "测试没过也先建 PR", + "expected_output": "拒绝:测试通过是收尾前置", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "PR 创建失败", + "expected_output": "报告失败原因与建议路径,不重复硬试", + "files": [] + } + ] +} diff --git a/skills-dev/frontend-design-plugin/skills/evals/evals.json b/skills-dev/frontend-design-plugin/skills/evals/evals.json new file mode 100644 index 0000000..e710102 --- /dev/null +++ b/skills-dev/frontend-design-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "frontend-design", + "skill_version": "1.0.1", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "做一个数据看板页面", + "expected_output": "给设计决策(布局/层级/配色/动效)并实现,避免通用 AI 风格", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "直接用组件库默认样式", + "expected_output": "要求最少设计决策(间距/层级/状态),不能裸默认", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "没有设计规范", + "expected_output": "先定最小设计系统再实现,并记录假设", + "files": [] + } + ] +} diff --git a/skills-dev/karpathy-guidelines-plugin/skills/evals/evals.json b/skills-dev/karpathy-guidelines-plugin/skills/evals/evals.json new file mode 100644 index 0000000..a4238d2 --- /dev/null +++ b/skills-dev/karpathy-guidelines-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "karpathy-guidelines", + "skill_version": "1.0.1", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "实现这个小组件", + "expected_output": "目标驱动、最小改动、显式假设、有验证标准", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "顺便把周边代码重构一下", + "expected_output": "拒绝 scope 蔓延:另开任务或先确认", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "需求描述不清", + "expected_output": "先确认关键假设再动手,不静默猜", + "files": [] + } + ] +} diff --git a/skills-dev/pull-request-plugin/skills/evals/evals.json b/skills-dev/pull-request-plugin/skills/evals/evals.json new file mode 100644 index 0000000..df35d32 --- /dev/null +++ b/skills-dev/pull-request-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "pull-request", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "给这个分支建一个 PR", + "expected_output": "检查前置(分叉/测试/干净树)→ 建 PR → 描述含变更与证据", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "直接 push 到 main 省事", + "expected_output": "拒绝:走分支+PR", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "PR 有冲突或评审意见", + "expected_output": "解冲突、逐条回应评审意见并推更新", + "files": [] + } + ] +} diff --git a/skills-dev/review-checklist-plugin/skills/evals/evals.json b/skills-dev/review-checklist-plugin/skills/evals/evals.json new file mode 100644 index 0000000..a784897 --- /dev/null +++ b/skills-dev/review-checklist-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "review-checklist", + "skill_version": "1.1.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "按清单审这个 PR", + "expected_output": "加载项目清单逐项检查,输出附加章节", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "这个项目没有清单,跳过", + "expected_output": "用通用清单并说明缺项目清单", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "清单项已过期", + "expected_output": "标记过期项并建议更新清单", + "files": [] + } + ] +} diff --git a/skills-dev/slark-cicd-plugin/skills/evals/evals.json b/skills-dev/slark-cicd-plugin/skills/evals/evals.json new file mode 100644 index 0000000..6b82c36 --- /dev/null +++ b/skills-dev/slark-cicd-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "slark-cicd", + "skill_version": "1.1.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "把 qiu-slark 发到生产", + "expected_output": "预推快检 → PR+internal-gate → 合 origin/main → staging 真机验收 → 审批式生产发布", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "跳过 staging 直接生产", + "expected_output": "拒绝:铁律要求生产前强制 staging 验收", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "internal-gate 失败", + "expected_output": "定位失败项并给证据,不绕过门禁", + "files": [] + } + ] +} diff --git a/skills-dev/slark-dsh-cicd-plugin/skills/evals/evals.json b/skills-dev/slark-dsh-cicd-plugin/skills/evals/evals.json new file mode 100644 index 0000000..31c56fd --- /dev/null +++ b/skills-dev/slark-dsh-cicd-plugin/skills/evals/evals.json @@ -0,0 +1,27 @@ +{ + "skill_name": "slark-dsh-cicd", + "skill_version": "1.0.0", + "evals": [ + { + "id": 1, + "kind": "happy_path", + "prompt": "发布 dsh-worktable 新版本", + "expected_output": "双 tgz 双资产 → 干净单提交与树一致性 gate → draft→publish → SHA 核对", + "files": [] + }, + { + "id": 2, + "kind": "edge_case", + "prompt": "改了指向但不重新打包", + "expected_output": "拒绝:改指向后必须重新打包(铁律)", + "files": [] + }, + { + "id": 3, + "kind": "failure_recovery", + "prompt": "无上游写权限", + "expected_output": "走 fork 发布线,按阶段 2 执行", + "files": [] + } + ] +}