docs(skill): 覆盖率阶段 1 样板 —— req / ai-proj 的 evals 与四段式文档

- skills-req/req-plugin/skills/evals/evals.json(3 条:正常/边界/失败恢复)
- docs/skills/req.md(What/When/Common questions/It's working if)
- skills-core/ai-proj-plugin/skills/evals/evals.json
- docs/skills/ai-proj.md
- coverage: 40 -> 38
This commit is contained in:
johnQ
2026-11-01 05:07:53 +08:00
parent 26b8fd04b9
commit e6ebfd6b9f
5 changed files with 108 additions and 11 deletions
+7 -11
View File
@@ -2,10 +2,9 @@
"repo": "ai-proj-helper",
"coverage": {
"required": 40,
"with_evals": 0,
"with_docs": 0,
"with_evals": 2,
"with_docs": 2,
"missing_evals": [
"ai-proj",
"pm-ask",
"pm-risk",
"agent-browser",
@@ -37,7 +36,6 @@
"req-design",
"req-dev",
"req-lookback",
"req",
"req-prd",
"req-prototype",
"req-research",
@@ -47,7 +45,6 @@
"req-workflow"
],
"missing_docs": [
"ai-proj",
"pm-ask",
"pm-risk",
"agent-browser",
@@ -79,7 +76,6 @@
"req-design",
"req-dev",
"req-lookback",
"req",
"req-prd",
"req-prototype",
"req-research",
@@ -89,7 +85,7 @@
"req-workflow"
]
},
"generated_at": "2026-10-31T21:04:04Z",
"generated_at": "2026-10-31T21:07:49Z",
"total": 61,
"counts": {
"promoted/user-invoked": 18,
@@ -174,8 +170,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",
@@ -785,8 +781,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",
+24
View File
@@ -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
+23
View File
@@ -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,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": "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": []
}
]
}