Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b338895d7 | ||
|
|
7b221cc767 | ||
|
|
8bc3300928 | ||
|
|
6f5151fcb5 | ||
|
|
e6ebfd6b9f | ||
|
|
26b8fd04b9 |
@@ -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/<name>.md`(四段式)。
|
||||
- `--coverage`:40 个 promoted+model-invoked 技能的 evals 与文档缺口 **24 → 0**。
|
||||
|
||||
+4
-1
@@ -3,7 +3,10 @@
|
||||
> 配套 `SCOPE.md`(收不收)、`skill-creator`(怎么建)、`docs/skill-routing.md`(用哪个)。
|
||||
> 本文件管「多久做一次什么」。
|
||||
|
||||
## 每次改动(任何 PR)
|
||||
## 每次改动(任何分支)
|
||||
|
||||
> **批量提交前先建分支**:`git checkout -b <branch>`,再提交、推分支、开 PR。不要直接 commit 到 main(2026-11-01 阶段 2 漏建分支直接进 main,少了 PR 记录)。
|
||||
|
||||
|
||||
1. 过 `SCOPE.md` 收录门槛(真实失败 + 组合不出来),新技能默认先 `beta`。
|
||||
2. 跑四道门禁:`validate-skills.py --strict`、`scan-skill.sh`、`generate-catalog.py --check`、`tests/install-skills.test.sh`。
|
||||
|
||||
+85
-167
@@ -2,94 +2,12 @@
|
||||
"repo": "ai-proj-helper",
|
||||
"coverage": {
|
||||
"required": 40,
|
||||
"with_evals": 0,
|
||||
"with_docs": 0,
|
||||
"missing_evals": [
|
||||
"ai-proj",
|
||||
"pm-ask",
|
||||
"pm-risk",
|
||||
"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",
|
||||
"req-audit",
|
||||
"req-compare",
|
||||
"req-design",
|
||||
"req-dev",
|
||||
"req-lookback",
|
||||
"req",
|
||||
"req-prd",
|
||||
"req-prototype",
|
||||
"req-research",
|
||||
"req-retro",
|
||||
"req-review",
|
||||
"req-test-gate",
|
||||
"req-workflow"
|
||||
],
|
||||
"missing_docs": [
|
||||
"ai-proj",
|
||||
"pm-ask",
|
||||
"pm-risk",
|
||||
"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",
|
||||
"req-audit",
|
||||
"req-compare",
|
||||
"req-design",
|
||||
"req-dev",
|
||||
"req-lookback",
|
||||
"req",
|
||||
"req-prd",
|
||||
"req-prototype",
|
||||
"req-research",
|
||||
"req-retro",
|
||||
"req-review",
|
||||
"req-test-gate",
|
||||
"req-workflow"
|
||||
]
|
||||
"with_evals": 40,
|
||||
"with_docs": 40,
|
||||
"missing_evals": [],
|
||||
"missing_docs": []
|
||||
},
|
||||
"generated_at": "2026-10-31T21:04:04Z",
|
||||
"generated_at": "2026-10-31T21:19:23Z",
|
||||
"total": 61,
|
||||
"counts": {
|
||||
"promoted/user-invoked": 18,
|
||||
@@ -174,8 +92,8 @@
|
||||
"description_len": 77,
|
||||
"path": "skills-core/ai-proj-plugin/skills/SKILL.md",
|
||||
"digest": "77ce4d2eb10e1d29",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "pm-ask",
|
||||
@@ -187,8 +105,8 @@
|
||||
"description_len": 98,
|
||||
"path": "skills-core/pm-ask-plugin/skills/SKILL.md",
|
||||
"digest": "e5b69a0b56985472",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "pm-risk",
|
||||
@@ -200,8 +118,8 @@
|
||||
"description_len": 72,
|
||||
"path": "skills-core/pm-risk-plugin/skills/SKILL.md",
|
||||
"digest": "928cfec76018329f",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "publish",
|
||||
@@ -239,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",
|
||||
@@ -252,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",
|
||||
@@ -265,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",
|
||||
@@ -304,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",
|
||||
@@ -317,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",
|
||||
@@ -330,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",
|
||||
@@ -356,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",
|
||||
@@ -369,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",
|
||||
@@ -382,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",
|
||||
@@ -395,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",
|
||||
@@ -408,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",
|
||||
@@ -421,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",
|
||||
@@ -447,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",
|
||||
@@ -473,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",
|
||||
@@ -486,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",
|
||||
@@ -499,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",
|
||||
@@ -512,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",
|
||||
@@ -525,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",
|
||||
@@ -538,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",
|
||||
@@ -551,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",
|
||||
@@ -564,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",
|
||||
@@ -577,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",
|
||||
@@ -590,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",
|
||||
@@ -603,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",
|
||||
@@ -720,8 +638,8 @@
|
||||
"description_len": 55,
|
||||
"path": "skills-req/req-audit-plugin/skills/SKILL.md",
|
||||
"digest": "ff2e6197bbb059c6",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-compare",
|
||||
@@ -733,8 +651,8 @@
|
||||
"description_len": 79,
|
||||
"path": "skills-req/req-compare-plugin/skills/SKILL.md",
|
||||
"digest": "3428e3f37ef9e9e8",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-design",
|
||||
@@ -746,8 +664,8 @@
|
||||
"description_len": 96,
|
||||
"path": "skills-req/req-design-plugin/skills/SKILL.md",
|
||||
"digest": "74848800cab6e269",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-dev",
|
||||
@@ -759,8 +677,8 @@
|
||||
"description_len": 74,
|
||||
"path": "skills-req/req-dev-plugin/skills/SKILL.md",
|
||||
"digest": "494a5be5e7a11c0b",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-lookback",
|
||||
@@ -772,8 +690,8 @@
|
||||
"description_len": 47,
|
||||
"path": "skills-req/req-lookback-plugin/skills/SKILL.md",
|
||||
"digest": "cc6bff614a8f7bf4",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req",
|
||||
@@ -785,8 +703,8 @@
|
||||
"description_len": 90,
|
||||
"path": "skills-req/req-plugin/skills/SKILL.md",
|
||||
"digest": "193cf871b73faff1",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-prd",
|
||||
@@ -798,8 +716,8 @@
|
||||
"description_len": 76,
|
||||
"path": "skills-req/req-prd-plugin/skills/SKILL.md",
|
||||
"digest": "7c4ad2baab6b2118",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-prototype",
|
||||
@@ -811,8 +729,8 @@
|
||||
"description_len": 81,
|
||||
"path": "skills-req/req-prototype-plugin/skills/SKILL.md",
|
||||
"digest": "7e362f4f895fb50a",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-research",
|
||||
@@ -824,8 +742,8 @@
|
||||
"description_len": 71,
|
||||
"path": "skills-req/req-research-plugin/skills/SKILL.md",
|
||||
"digest": "a94924f53bd4c80e",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-retro",
|
||||
@@ -837,8 +755,8 @@
|
||||
"description_len": 57,
|
||||
"path": "skills-req/req-retro-plugin/skills/SKILL.md",
|
||||
"digest": "636b7099d85e9549",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-review",
|
||||
@@ -850,8 +768,8 @@
|
||||
"description_len": 65,
|
||||
"path": "skills-req/req-review-plugin/skills/SKILL.md",
|
||||
"digest": "cd1a5181d72f35f4",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-test-gate",
|
||||
@@ -863,8 +781,8 @@
|
||||
"description_len": 159,
|
||||
"path": "skills-req/req-test-gate-plugin/skills/SKILL.md",
|
||||
"digest": "ceebcc2516ad40d3",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "req-workflow",
|
||||
@@ -876,8 +794,8 @@
|
||||
"description_len": 61,
|
||||
"path": "skills-req/req-workflow-plugin/skills/SKILL.md",
|
||||
"digest": "87499da3817d162d",
|
||||
"has_evals": false,
|
||||
"has_docs": false
|
||||
"has_evals": true,
|
||||
"has_docs": true
|
||||
},
|
||||
{
|
||||
"name": "verification-before-completion",
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# agent-browser
|
||||
|
||||
## What it does
|
||||
|
||||
浏览器自动化(snapshot-ref)。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# agent-swarm
|
||||
|
||||
## What it does
|
||||
|
||||
多 agent 编排(Swarm 模式)。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# ai-chat
|
||||
|
||||
## What it does
|
||||
|
||||
AI Chat 工具调用测试与配置。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,24 @@
|
||||
# ai-proj — 任务与需求管理
|
||||
|
||||
## What it does
|
||||
|
||||
通过 ai-proj(`https://ai.pipexerp.com`)的 MCP / CLI 管理需求、任务、文档与进度:查询、创建、更新状态、关联需求与任务、挂证据文档。是所有项目状态数据的唯一权威来源。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
- 要查「某个 REQ / 任务的真实状态、优先级、截止、关联任务」
|
||||
- 要更新任务状态、挂文档、改优先级、改派
|
||||
- 汇报进度或做对齐检查前,需要拉真实数据
|
||||
|
||||
## Common questions
|
||||
|
||||
- **数据以哪为准?** ai-proj,不靠聊天记录或记忆。主机必须是 `https://ai.pipexerp.com`(写成 `api.pipexerp.com` 会失败)。
|
||||
- **可以自己改需求优先级吗?** 不行,需求优先级是业务决策;任务优先级可以对齐需求。
|
||||
- **任务 completed 就是完成了吗?** 不是,REQ 未 `released` 只能算步骤完成。
|
||||
- **接口报错怎么排查?** 先 GET 查证实体是否存在、凭证主机是否正确,不要猜 ID。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 问「REQ-XXXX 现在什么状态」时,它给出带字段名与时间戳的真实数据,而不是复述对话
|
||||
- 更新任务状态前先查一次实体,写入后回读确认
|
||||
- 遇到 404/401 时给的是排查步骤与真实查询结果,不是编造的 ID
|
||||
@@ -0,0 +1,21 @@
|
||||
# db-migration
|
||||
|
||||
## What it does
|
||||
|
||||
数据库变更与回滚。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# defect-analysis
|
||||
|
||||
## What it does
|
||||
|
||||
设计缺陷多维度分析。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# deploy-rollback
|
||||
|
||||
## What it does
|
||||
|
||||
部署回滚决策与步骤。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-arch
|
||||
|
||||
## What it does
|
||||
|
||||
架构设计与技术选型。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-cicd
|
||||
|
||||
## What it does
|
||||
|
||||
CI/CD 流水线设计、优化与排障。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-coding
|
||||
|
||||
## What it does
|
||||
|
||||
编码实现与任务跟踪。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-commit
|
||||
|
||||
## What it does
|
||||
|
||||
智能提交(分支保护 + Conventional)。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-deploy
|
||||
|
||||
## What it does
|
||||
|
||||
应用部署(TestFlight / Docker)。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-integration
|
||||
|
||||
## What it does
|
||||
|
||||
前后端联调。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-mcp
|
||||
|
||||
## What it does
|
||||
|
||||
MCP Bridge 开发。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-review
|
||||
|
||||
## What it does
|
||||
|
||||
六视角对抗性代码评审。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-scaffold
|
||||
|
||||
## What it does
|
||||
|
||||
模块脚手架。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# dev-test
|
||||
|
||||
## What it does
|
||||
|
||||
测试设计与执行。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# executing-plans
|
||||
|
||||
## What it does
|
||||
|
||||
执行书面计划并设检查点。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -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
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# frontend-design
|
||||
|
||||
## What it does
|
||||
|
||||
高质量前端界面设计。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# karpathy-guidelines
|
||||
|
||||
## What it does
|
||||
|
||||
Karpathy 四原则编码守则。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,22 @@
|
||||
# pm-ask
|
||||
|
||||
## What it does
|
||||
|
||||
基于 ai-proj MCP 与 git log 真实数据的项目问答:统计任务/需求数量、进度、谁做了什么,回答前必须查真实数据。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户说 /ask、问一下、统计一下、最近多少、谁做了多少、本月进度时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **数据从哪来?** ai-proj MCP + git log,不靠记忆和估算。
|
||||
- **查不到数据怎么办?** 如实报告缺失与失败原因,给出查询口径,不编造数字。
|
||||
- **能做预测吗?** 只能基于真实阶段数据做推导,并标注假设。
|
||||
- **回答格式?** 先给结论数字,再给来源与口径。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 问团队本月产出时,它先拉数据再回答,并附时间范围与来源
|
||||
- 接口异常时明确说“数据未取到”,不出现任何编造数字
|
||||
- 对“估一下”的请求,给口径而不是给假数字
|
||||
@@ -0,0 +1,22 @@
|
||||
# pm-risk
|
||||
|
||||
## What it does
|
||||
|
||||
三维度项目风险扫描:需求层(停滞/逾期/优先级)、代码层(分支健康/评审积压)、流程层(门禁/交付态),按严重/警告/提示分级输出。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户说 /risk、风险扫描、有什么风险、哪些需求停滞了、分支健康时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **找不到数据算无风险吗?** 不算,缺失要标注未覆盖。
|
||||
- **分级标准?** 严重=已阻塞交付;警告=会拖延;提示=观察项。
|
||||
- **会不会误报?** 每条风险附证据与来源,便于人工复核。
|
||||
- **输出多长?** 先概览再分项,严重项必须置顶。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 扫描报告每条风险都有数据来源,不是笼统描述
|
||||
- 数据源不可用时明确写“该维度未覆盖”
|
||||
- 不会因为查不到就输出“无风险”
|
||||
@@ -0,0 +1,21 @@
|
||||
# pull-request
|
||||
|
||||
## What it does
|
||||
|
||||
PR 创建与评审反馈循环(Gitea)。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-audit
|
||||
|
||||
## What it does
|
||||
|
||||
部署后审计:运行时日志检查、静态缺陷分析、设计偏移检测,产出审计报告并关联任务。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
需求部署后,或用户说“审计一下”“部署后检查”时;也可由 /req done 触发。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **审计和测试的区别?** 测试验证功能对错,审计查运行时异常、代码缺陷与实现是否偏离设计。
|
||||
- **没日志能审吗?** 能审静态部分,但运行时项必须标未覆盖。
|
||||
- **发现偏移怎么办?** 列偏移项+影响面+建议,交给负责人决策。
|
||||
- **报告存哪?** 关联到需求/任务文档,便于回溯。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 审计报告包含三类检查结果与证据
|
||||
- 缺运行时证据时明确标未覆盖
|
||||
- 发现偏移会列出具体条目而不是笼统说“有偏差”
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-compare
|
||||
|
||||
## What it does
|
||||
|
||||
对比式需求分析:以参考系统为基准做功能对比,再推导目标系统设计,产出对比式 PRD。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
系统平移、竞品借鉴、版本升级需要对比论证时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **没有参考资料能写吗?** 可以写,但参考系统细节必须标注为待验证假设。
|
||||
- **对比维度怎么定?** 按功能、交互、数据、权限、成本五类,按需求裁剪。
|
||||
- **结论要什么形式?** 对比表 + 差异结论 + 目标系统取舍。
|
||||
- **会不会照搬竞品?** 只借鉴结论,落地按自身约束重新设计。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 对比表每行能追溯到资料或标注为假设
|
||||
- 结论明确给出取舍而不是罗列
|
||||
- 没有把“凭印象”写成事实
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-design
|
||||
|
||||
## What it does
|
||||
|
||||
PRD 到开发设计的转换:API 契约、数据模型变更、变更文件清单、任务拆分与依赖、技术风险评估。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
执行 /req doc、或在评审后进入设计阶段时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **设计前需要什么?** PRD 与验收标准;缺验收标准要先补。
|
||||
- **任务拆到什么粒度?** 单任务 2–4 小时可完成,带依赖边与验收标准。
|
||||
- **找不到模块怎么办?** 报告缺失并给待确认项,不猜路径。
|
||||
- **要写测试策略吗?** 要,随设计一起给。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 输出含契约表、变更文件、子任务三件套
|
||||
- 缺验收标准时会阻断而不是硬写
|
||||
- 任务清单里有 blockers,不只有层级
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-dev
|
||||
|
||||
## What it does
|
||||
|
||||
把 PRD 转成可执行开发计划:代码库分析、现有实现盘点、任务拆分、技术方案与风险。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
执行 /req doc、需要从需求走到可执行计划时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **和 req-design 区别?** req-dev 重“怎么落地”:代码库分析与任务拆分;req-design 重设计文档与契约。
|
||||
- **不看代码能拆吗?** 不能,先分析再拆。
|
||||
- **计划里要有什么?** 任务、依赖、验收、风险、需要确认项。
|
||||
- **代码库与 PRD 冲突?** 以真实代码为准,报告差异后调整。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 计划里的任务能直接执行,附依赖与验收
|
||||
- 不读代码就要求拆任务会被拒绝
|
||||
- 发现代码与 PRD 不符会报告差异而不是硬拆
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-lookback
|
||||
|
||||
## What it does
|
||||
|
||||
部署后回归测试:按变更影响面验证既有功能是否被破坏,产出回归报告。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
需求部署后;或 /req done 前需要确认无回归时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **回归范围怎么定?** 按变更影响的模块与调用方扩散确定。
|
||||
- **只测新功能行吗?** 不行,必须覆盖受影响面。
|
||||
- **发现问题怎么办?** 报告复现与影响,给回滚/修复建议。
|
||||
- **要留证据吗?** 要,命令与结果。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 回归报告含影响范围、用例、结果
|
||||
- 要求只测新功能会被拒绝
|
||||
- 发现回归会给出回滚或修复建议
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-prd
|
||||
|
||||
## What it does
|
||||
|
||||
产品需求文档(PRD)编写与双写:按模板产出需求/预期/验收标准、界面原型要求,并同时写入本地仓库与 ai-proj Task Document。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
需求讨论确认后要写 PRD、或用 /req prd 时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **PRD 最少要有什么?** 需求描述、预期结果、≥2 条可检查验收标准。
|
||||
- **为什么要双写?** 本地可版本化,ai-proj 供评审与追溯。
|
||||
- **验收标准怎么写?** 可检查、可对应测试,不写“体验良好”这类。
|
||||
- **写入失败怎么办?** 保留本地并报告失败,不假装成功。
|
||||
|
||||
## It's working if
|
||||
|
||||
- PRD 都含可检查验收标准
|
||||
- 写入后回读确认,不只打印成功
|
||||
- 失败时明确报失败并保留本地稿
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-prototype
|
||||
|
||||
## What it does
|
||||
|
||||
原型生成与关联:把 PRD 转成可交互 HTML 原型,上传并关联到需求的 prototype_urls,支持 Stitch 视觉探索。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
有 UI 的需求在 PRD/缺陷收敛后需要原型时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **原型要确认吗?** 要,确认后才能作为开发依据。
|
||||
- **上传失败会丢吗?** 本地保留,报告失败。
|
||||
- **能直接改线上页面吗?** 不能,原型是独立 HTML。
|
||||
- **和 PRD 什么关系?** 原型回填到 PRD 的界面章节。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 原型生成后有可访问链接并回读关联成功
|
||||
- 要求跳过确认直接开发会被劝回
|
||||
- 上传失败时本地文件仍在
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-research
|
||||
|
||||
## What it does
|
||||
|
||||
需求调研:代码审计、数据库分析、现有功能盘点、技术可行性评估,产出带证据的调研报告。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
analysis 阶段需要深度调研,或 /req research 时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **结论要有证据吗?** 要有,file:line 或查询结果。
|
||||
- **找不到怎么办?** 报告缺口与假设,不编造。
|
||||
- **和 req-dev 区别?** research 判断“能不能、怎么做”,dev 出“具体计划”。
|
||||
- **报告给谁?** PRD/设计阶段的输入。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 调研报告每条结论有证据出处
|
||||
- 不看代码就下结论会被拒
|
||||
- 找不到模块会列待确认项
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-retro
|
||||
|
||||
## What it does
|
||||
|
||||
复盘总结:采集数据计算质量评分、还原时间线、识别跨需求模式,沉淀经验教训。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
/req done 后、或用户说“复盘一下”时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **评分怎么来?** 按时间线、缺陷、返工、门禁通过率等指标计算。
|
||||
- **数据不全怎么办?** 标注缺失,给部分结论。
|
||||
- **经验存哪?** 写入 memory / 技能改进项。
|
||||
- **会不会只夸不批?** 要列问题与改进项。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 评分附计算依据
|
||||
- 数据缺失时明确标注而不是编造
|
||||
- 复盘产出可执行的改进项
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-review
|
||||
|
||||
## What it does
|
||||
|
||||
PRD 评审方法论:结构完整性、需求清晰度(SMART)、技术可行性、数据模型、API、原型检查,输出通过/打回结论与理由。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
/req review、或需要评审 PRD 时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **评审看什么?** 结构、清晰度、可行性、数据/API/原型。
|
||||
- **能免检通过吗?** 不能,必须有依据。
|
||||
- **打回要写什么?** 缺失项+修改要求。
|
||||
- **提交人能自审吗?** 不能。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 评审结论都有逐项检查记录
|
||||
- 无依据的“通过”会被拒绝
|
||||
- 打回时列出具体缺失项
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-test-gate
|
||||
|
||||
## What it does
|
||||
|
||||
需求级质量门禁(Gate 0–5)与部署级验证制度:逐门禁检查、留证据、不通过不放行。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
/req test、准备部署前、或用户问门禁是否通过时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **门禁能跳吗?** 不能,除非记录阻塞并获豁免。
|
||||
- **失败能忽略吗?** 不能,必须记录并阻断。
|
||||
- **证据留哪?** 测试报告与任务文档。
|
||||
- **部署前还要什么?** 部署级验证与回滚预案。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 门禁结论逐条有证据
|
||||
- 跳门禁/忽略失败会被拒绝
|
||||
- 测试报告能直接作为发布依据
|
||||
@@ -0,0 +1,22 @@
|
||||
# req-workflow
|
||||
|
||||
## What it does
|
||||
|
||||
需求完整工作流参考:从创建到归档的阶段划分、每阶段门禁、交付物、Hook 同步与测试环境流程。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
需要理解完整生命周期、或判断某需求下一步该做什么时。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **阶段顺序?** 创建→讨论→PRD→评审→设计→开发→测试→staging→released→归档。
|
||||
- **能跳 staging 吗?** 不能,强制验收。
|
||||
- **状态不一致听谁的?** 以真实数据为准并核对。
|
||||
- **交付终点?** released + PDV 验收通过。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 能按阶段说清下一步动作与门禁
|
||||
- 跳过 staging 会被拒绝
|
||||
- 发现状态矛盾会先核对再结论
|
||||
@@ -0,0 +1,23 @@
|
||||
# req — 需求全生命周期
|
||||
|
||||
## What it does
|
||||
|
||||
把一条需求从创建推进到归档:创建 → 讨论确认 → PRD → 评审 → 开发 → 测试 → 部署 staging/prod → PDV 验收 → released → 归档。同时约束评审、门禁与交付口径,防止跳步和自审批。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
- 用户说「/req」「新建需求」「需求走到哪了」「提交评审」「部署上线」时
|
||||
- 任何需求类工作开始时的第一步(先确定当前阶段,再决定下一个命令)
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能不能跳过评审直接开发?** 不能。PRD 是评审前置,评审通过才能进 dev。
|
||||
- **提交人能不能自己批?** 不能;`allow_self_approve` 只作临时手段且要收回。
|
||||
- **任务都 completed 了算交付吗?** 不算,需求要走到 `released` + PDV 验收通过。
|
||||
- **部署是每个需求单独做吗?** 各需求独立到 testing 后进待部署池,由 `/req deploy` 批量推进。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 问「这个需求现在到哪一步、下一步做什么」时,它先给出 `delivery_stage` 与下一个命令,而不是直接开始写代码
|
||||
- 出现「直接改 approved」「跳过 PRD」这类请求时,它会阻断并给出正确路径
|
||||
- 汇报完成时用的是「REQ 阶段 + 下一节点」,不是「某个开发步骤完成」
|
||||
@@ -0,0 +1,21 @@
|
||||
# review-checklist
|
||||
|
||||
## What it does
|
||||
|
||||
项目级评审检查清单。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,21 @@
|
||||
# slark-cicd
|
||||
|
||||
## What it does
|
||||
|
||||
Slark 仓库发布 runbook。
|
||||
|
||||
## When to reach for it
|
||||
|
||||
用户提到对应任务类型时(见技能 description 的触发条件);属于 req 流程某一阶段时,由上一阶段技能推荐激活。
|
||||
|
||||
## Common questions
|
||||
|
||||
- **能省步骤赶时间吗?** 不能,该技能里的强制项/铁律不可跳过。
|
||||
- **和相邻技能怎么分工?** 按阶段职责:本技能负责自己那一段,上下游交给对应技能。
|
||||
- **失败了怎么办?** 停下报告失败步骤、证据与选项,不硬推、不静默降级。
|
||||
|
||||
## It's working if
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -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
|
||||
|
||||
- 按它执行时,关键步骤和门禁都有明确结论与证据,而不是"大概没问题"
|
||||
- 想抄近路/跳过强制项时会被拒绝,并给出正确路径
|
||||
- 失败时输出的是失败点 + 证据 + 下一步,而不是含糊"已完成"
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "ai-proj",
|
||||
"skill_version": "2.0.1",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "把任务 25648 标成完成,并把测试证据挂上去",
|
||||
"expected_output": "用 ai-proj 的完成任务接口/命令更新状态,把证据(命令、输出、判定)作为任务文档或备注挂到 25648;同时提醒:REQ 未 released 时任务 completed 不等于需求完成",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "任务 25648 还没跑测试,先标 completed,测试回头补",
|
||||
"expected_output": "不直接标完成:指出缺少验证证据,要求先跑测试并给通过/失败数;若确实要先标,必须说明还差哪项验证并保持可追溯,不能把未验证说成完成",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "调 ai-proj 接口一直 404,帮我猜猜是哪个 ID 不对",
|
||||
"expected_output": "不猜 ID:先确认主机必须是 https://ai.pipexerp.com、凭证有效、ID 真实存在(先 GET 查询再写入);给出逐项排查命令,禁止编造 ID 或数据",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "pm-ask",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "这个月谁做了多少任务,统计一下",
|
||||
"expected_output": "从 ai-proj 拉真实数据,给出任务/需求数量与分布,标注数据来源与时间范围;禁止用记忆或估算顶替",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "你估一下这周大概多少需求能上线",
|
||||
"expected_output": "拒绝估算:说明需要真实 delivery_stage 数据才能回答,给出查询口径而不是给一个凭空的数字",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "ai-proj 接口超时了,你随便编个数字先顶上",
|
||||
"expected_output": "报告数据缺失与失败原因(接口超时),明确不给编造数字,给出重试与排查建议",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "pm-risk",
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-audit",
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-compare",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "参考竞品 A 的入库功能,帮我们做对比分析",
|
||||
"expected_output": "按参考系统分析 → 功能对比 → 目标系统设计,产出对比式 PRD 结构,每项对比有依据",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "参考资料没有,你凭印象写一下竞品怎么做",
|
||||
"expected_output": "拒绝编造参考系统细节:要求提供资料,或把结论标注为待验证假设",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "对比发现两个方案互相冲突",
|
||||
"expected_output": "明确列出冲突点与取舍维度(成本/风险/兼容),给出建议而不是和稀泥",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-design",
|
||||
"skill_version": "2.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "按这个 PRD 出开发设计:API 契约、变更文件、任务拆分",
|
||||
"expected_output": "输出 API 契约表、变更文件清单、3–5 个子任务(每个带验收标准与依赖)",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "PRD 没有验收标准,你先设计起来",
|
||||
"expected_output": "阻断:要求先补验收标准,不得凭空补全需求",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "PRD 提到的模块在代码库里找不到",
|
||||
"expected_output": "报告缺失模块与已查路径,列出待确认项,不编造文件路径",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-dev",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "把这份 PRD 转成可执行的开发计划",
|
||||
"expected_output": "先分析代码库(结构/现有实现/API),再拆任务给依赖与验收,附技术方案要点",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "不用看代码,直接按 PRD 给我开发计划",
|
||||
"expected_output": "拒绝:必须先分析代码库与现有实现,否则计划不可执行",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "代码库结构和 PRD 描述不一致",
|
||||
"expected_output": "停下报告差异(哪里不一致、影响哪些任务),更新假设后再出计划",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-lookback",
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req",
|
||||
"skill_version": "2.1.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "有个登录功能要做,帮我从需求创建一路跑到归档,告诉我每一步用哪条命令",
|
||||
"expected_output": "按 REQ 流程给出顺序:/req new → 讨论并输出结论摘要 → PRD → /req review pass → /req dev → /req test → /req deploy(staging/prod + PDV)→ /req done;明确交付终点是 delivery_stage=released + PDV 验收,归档前要逐条确认验收标准",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "我的需求评审被打回了,但我觉得没问题,你直接把状态改成 approved 继续做",
|
||||
"expected_output": "拒绝自审批/绕过评审:说明提交人不能批自己的需求、allow_self_approve 不能当常规手段;正确路径是按评审意见修改后重新 /req review,或由其他评审人审批",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "需求已经 approved 了,PRD 还没写,我直接跑 /req dev 开始写代码行不行",
|
||||
"expected_output": "阻断:指出 PRD 是提交评审与开发的前置条件,approved 后仍应补齐 PRD/设计文档;给出补文档步骤与门禁说明,不得跳步开发",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-prd",
|
||||
"skill_version": "2.3.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "给这个需求写 PRD 并落到 ai-proj",
|
||||
"expected_output": "按模板产出(含≥2 条可检查验收标准),双写本地与 ai-proj Task Document,回读确认",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "验收标准随便写两条凑数",
|
||||
"expected_output": "拒绝凑数:验收标准必须可检查、能对应实现与测试",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "ai-proj 写入失败",
|
||||
"expected_output": "本地文件保留,报告失败原因与重试办法,不假装已双写",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-prototype",
|
||||
"skill_version": "2.2.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "按 PRD 生成可交互 HTML 原型并关联到需求",
|
||||
"expected_output": "生成 HTML 原型、上传并回填 requirement 的 prototype_urls,回读确认关联成功",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "原型不用给我看,直接当最终 UI 开发",
|
||||
"expected_output": "拒绝:原型需先确认再进入开发,避免返工",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "上传 OSS 失败",
|
||||
"expected_output": "保留本地原型文件,报告失败原因与重试办法,不丢产物",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-research",
|
||||
"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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-retro",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "这个 REQ 做完了,复盘一下",
|
||||
"expected_output": "给质量评分、时间线、质量指标、跨需求模式识别与经验教训,经验写入 memory",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "评分随便给个高分就行",
|
||||
"expected_output": "拒绝:评分必须有数据依据(时间线/缺陷/返工)",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "git 记录不全,时间线拼不出来",
|
||||
"expected_output": "标注数据缺失,基于可得数据给部分结论,不编造时间点",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-review",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "评审这份 PRD,给通过或打回结论",
|
||||
"expected_output": "按结构完整性/SMART/技术可行性/数据/API/原型逐项检查,给结论与理由",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "别挑毛病了,直接给通过",
|
||||
"expected_output": "拒绝无依据通过:没检查完/有阻断项就不能通过",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "PRD 缺失关键章节",
|
||||
"expected_output": "打回并列出缺失项与补充要求",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-test-gate",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "按质量门禁把测试跑一遍",
|
||||
"expected_output": "按 Gate 0–4 逐门禁执行并留证据,输出测试报告与门禁结论",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "跳过 Gate 3 直接进部署",
|
||||
"expected_output": "拒绝:先补齐门禁或记录阻塞项,不得跳过",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "测试有失败但影响不大,先算通过",
|
||||
"expected_output": "不接受:失败必须记录并阻断,除非有书面豁免",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"skill_name": "req-workflow",
|
||||
"skill_version": "1.0.0",
|
||||
"evals": [
|
||||
{
|
||||
"id": 1,
|
||||
"kind": "happy_path",
|
||||
"prompt": "讲一下需求从提出到归档的完整流程",
|
||||
"expected_output": "按阶段化流程说明每阶段动作、门禁与交付物,明确交付终点是 released + PDV",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"kind": "edge_case",
|
||||
"prompt": "能跳过 staging 直接上生产吗",
|
||||
"expected_output": "不能:说明强制 staging 验收与原因",
|
||||
"files": []
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"kind": "failure_recovery",
|
||||
"prompt": "文档说已 released,但任务还没完成",
|
||||
"expected_output": "指出状态不一致,按真实数据核对后再判断",
|
||||
"files": []
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user