diff --git a/catalog.json b/catalog.json index 1547625..1b959b4 100644 --- a/catalog.json +++ b/catalog.json @@ -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", diff --git a/docs/skills/ai-proj.md b/docs/skills/ai-proj.md new file mode 100644 index 0000000..5bfe72e --- /dev/null +++ b/docs/skills/ai-proj.md @@ -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 diff --git a/docs/skills/req.md b/docs/skills/req.md new file mode 100644 index 0000000..8ec9c76 --- /dev/null +++ b/docs/skills/req.md @@ -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 阶段 + 下一节点」,不是「某个开发步骤完成」 diff --git a/skills-core/ai-proj-plugin/skills/evals/evals.json b/skills-core/ai-proj-plugin/skills/evals/evals.json new file mode 100644 index 0000000..0d3ea2f --- /dev/null +++ b/skills-core/ai-proj-plugin/skills/evals/evals.json @@ -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": [] + } + ] +} diff --git a/skills-req/req-plugin/skills/evals/evals.json b/skills-req/req-plugin/skills/evals/evals.json new file mode 100644 index 0000000..506f86a --- /dev/null +++ b/skills-req/req-plugin/skills/evals/evals.json @@ -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": [] + } + ] +}