|
1 | 1 | --- |
2 | 2 | name: ai-delivery-spec |
3 | | -description: 将一句话想法、客户材料、存量系统以及 ToC/ToB/ToG 需求转化为一份可实施、可追溯、可验收的人类与 Coding Agent 共用基线;用于需求准入、澄清、统一 PRD、工程原型、变更影响、Agent 交接与验收证据。Turn ideas, customer materials and brownfield systems into an implementable requirement baseline. 不负责排期、编码、CI/CD、部署和运营。 |
| 3 | +description: 将一句话想法、客户材料、存量系统或 ToC/ToB/ToG 需求,按使用者指定的进入阶段和停止阶段,转化为可评审、可实施、可追溯、可验收的人类与 Coding Agent 共用需求产物。支持问题定义、方案探索、需求准入、澄清、统一 PRD、工程原型、评审基线、变更影响和验收证据;不负责排期、编码、CI/CD、部署和运营。 |
4 | 4 | --- |
5 | 5 |
|
6 | | -# AI Delivery Spec 5.3.3 — Requirement Management Kernel|需求管理内核 |
| 6 | +# AI Delivery Spec 5.4.0 — Requirement Lifecycle Workstations|需求全生命周期工作站 |
7 | 7 |
|
8 | | -生成一份人类可读、AI Coding 可执行的需求基线,并双向追溯“来源 → 行为 → 验收”。 |
9 | | -Product Truth(结构化事实源)只在复杂治理场景按需启用,不是每个项目的前置作业。 |
| 8 | +本 Skill 是 Requirement Management Kernel:让业务、产品、设计、前后端、架构、需求交付/技术负责人、测试、合规和 Coding Agent 在需求任一阶段进入,得到当前需要的最小合格产物后离开;也可在用户明确要求时持续完成端到端闭环。 |
10 | 9 |
|
11 | | -输出语言默认跟随用户当前请求。标题、正文、表格、问题和测试均使用该语言; |
12 | | -稳定 ID、代码、API/字段名及专有名词保持不变。双语输出必须由用户明确要求。 |
| 10 | +默认跟随用户当前语言生成标题、正文、表格、问题与测试;稳定 ID、代码、API/字段名和专有名词保持原样。双语必须由用户明确要求。 |
| 11 | +只使用 Agent 完成需求工作不要求安装 Python;运行本地零模型门禁时需要 Python 3.10+:`python -m pip install -r scripts/requirements.txt`。Stable ID 是长期不变的需求编号;Gate 是静态结构门禁,不等于业务、浏览器、实现或客户验收。 |
13 | 12 |
|
14 | | -首次运行需要 Python 3.10+:`python -m pip install -r scripts/requirements.txt`。 |
15 | | -Stable ID 是长期不变的需求编号;Gate 是结构门禁,不等于业务、浏览器或客户验收。 |
| 13 | +## 先确定进入点和停止点 |
16 | 14 |
|
17 | | -## 静默完成需求准入 |
| 15 | +内部识别两个字段,不要求用户学习参数: |
18 | 16 |
|
19 | | -内部判断两个轴,仅在有助于决策或用户主动指定时展示: |
| 17 | +- `entry_stage`:从现有材料和当前工作位置进入。 |
| 18 | +- `target_stage`:本次要拿到的产物/停止点。 |
20 | 19 |
|
21 | | -- `delivery_shape`:`requirement_card`、`unified_prd` 或 `governed_truth`; |
22 | | -- `assurance_profile`:`bounded`、`standard`、`high_risk` 或 `safety_critical`。 |
| 20 | +工作站为 `frame → explore → intake → clarify → specify → review → baseline`,基线可进入 `change` 或 `acceptance`,变更须重新基线。`frame/explore` 是准入前工作区;正式 `REQ-*` 生命周期从 intake 开始。用户可从任意有证据的阶段进入,不强迫补跑无关前序。 |
23 | 21 |
|
24 | | -只有单角色、可逆、局部变更才使用需求卡。数据上报/统计、实质状态、批量导入导出、 |
25 | | -审批审计、系统集成、迁移、高风险或跨角色/模块需求必须升级为一份统一 PRD。 |
26 | | -只有受控多投影、反复跨模块耦合、数据血缘或强审计才启用 governed truth。 |
27 | | -L0—L4 是门禁强度元数据,不要求用户先学习或手工选择。 |
| 22 | +显式目标最高优先;“不要写 PRD,只做澄清”等否定约束高于关键词。目标未明时选择能解决当前问题的最小产物,并继续可逆工作;只有产物选择会实质改变范围时才提问。单次任务到目标即停,明确端到端任务则持续到目标且不得把中间模板或静态 PASS 当成完成。 |
28 | 23 |
|
29 | | -先检查现有材料和对应领域章节。互不依赖的事实问题成批询问;方向、冲突和路线决策 |
30 | | -逐项询问,并给出推荐、证据和取舍。暂时无法取得的事实登记为有责任人、有范围、 |
31 | | -有回退路径和 `blocks_stage` 的 `UNK-*`。P0/P1 未明确处置前不得进入正式规格阶段。 |
| 24 | +需要跨会话或检查旧产物时才运行确定性路由;它不解析自然语言: |
| 25 | + |
| 26 | +`python scripts/ai_delivery_spec_cli.py route-stage --target <stage> --artifact <path>` |
32 | 27 |
|
33 | 28 | ## 每次只加载一个有效切片 |
34 | 29 |
|
35 | | -| 当前任务 | 读取内容 | |
| 30 | +| 当前任务 | 只读取 | |
36 | 31 | |---|---| |
37 | | -| 准入、阶段、角色、基线 | `references/lifecycle.md` | |
38 | | -| 一句话想法、来源、竞品、存量盘点 | `references/discover.md` | |
39 | | -| PRD、字段、规则、接口、机器附录 | `references/specify.md` | |
| 32 | +| 任意阶段进入/停止、角色交接、断点 | `references/stages.md` | |
| 33 | +| 来源盘点、问题发现、竞品/现状研究 | `references/discover.md` | |
| 34 | +| 正式生命周期、准入、评审、基线 | `references/lifecycle.md` | |
| 35 | +| PRD、字段、规则、指标、接口、机器附录 | `references/specify.md` | |
40 | 36 | | 页面合同、Stage 0、原型、视觉路线 | `references/prototype.md` | |
41 | | -| 变更、追溯、验收结果 | `references/change-acceptance.md` | |
42 | | -| 大输入、组合、检查点、Agent 工作包 | `references/context.md` | |
43 | | -| Coding 工具投影 | `references/tool-adapters.md` | |
| 37 | +| 变更、双向追溯、验收结果 | `references/change-acceptance.md` | |
| 38 | +| 大输入、ID 切片、检查点、Agent 工作区 | `references/context.md` | |
| 39 | +| Coding/需求协作工具投影 | `references/tool-adapters.md` | |
44 | 40 | | 故障恢复、FAQ、反模式 | `references/troubleshooting.md` | |
45 | 41 | | 领域证据 | `scripts/query_domain.py --domain <pack> --section "<heading>"` | |
46 | 42 | | 私有领域/模板/规则 | `init-custom --sharing local|team`;候选知识用 `candidate record-usage/assess`,只人工晋级 | |
47 | 43 |
|
48 | | -一次只加载一个阶段参考和一个精确领域章节。不要加载 README、`maintainer/`、全部 |
49 | | -模板/示例/领域包或整个仓库;只有触发时才加载可选模式。 |
| 44 | +一次只加载当前阶段参考、一个精确领域章节和当前 ID 切片。不要加载 README、`maintainer/`、全模板/示例/领域包或整个仓库。frame/explore 仅在法规、安全或行业物理约束会改变选项时加载领域知识。 |
50 | 45 |
|
51 | | -## 执行需求闭环 |
| 46 | +## 默认最小产物,不为阶段机械建文件 |
52 | 47 |
|
53 | | -```text |
54 | | -准入 → 澄清 → 规格 → 评审 → 基线 → 变更 → 验收 → 关闭 |
55 | | -``` |
| 48 | +- frame:一份 `problem-brief.md`,说清用户、痛点时刻、成功信号、事实/假设和下一步。 |
| 49 | +- explore:一份 `solution-sketch.md`,至少两个选项和不做选项,包含可证伪 `ASM-*`、最小验证与停止条件。 |
| 50 | +- intake:复用 triage 结果与 requirement register;Start with intake for formal governed requirements。 |
| 51 | +- clarify:一份 `requirement-brief.md`,内嵌 `DEC-*`、规则、开放 `UNK-*` 和退路;多决策人/审计才拆侧车。 |
| 52 | +- specify:一份需求卡或 one human-readable 统一 PRD;Product Truth 只在受控多投影、反复跨模块变更、血缘或强审计时按需启用。 |
| 53 | +- review/baseline:复用同一规格;`required_review_types` 全部结构化签署后绑定权威来源、版本/hash 和消费方。 |
| 54 | +- change/acceptance:现有 `CHG-*` 与 `ARUN-*` 回链当前基线。 |
| 55 | + |
| 56 | +假设寄存器仅在跨会话、跨角色复用或治理时单独导出。YAML/JSON 是工具投影,不是另一份 PRD。 |
| 57 | + |
| 58 | +## 需求闭环与禁止推断 |
| 59 | + |
| 60 | +1. 先检查用户材料、现有产物、权威层级和适用领域;存量 HTML/系统重写前先执行 Stage 0。 |
| 61 | +2. 事实问题按依赖成批澄清;方向、冲突和路线逐项给出推荐、依据与取舍。无法取得的事实登记 `UNK-*`,包含责任人、范围、`blocks_stage` 和回退路径。 |
| 62 | +3. `ASM-*` 是待验证解释;`UNK-*` 是缺失事实/决策。两者不得互换。P0 未知项只阻断受影响且已到达的阶段。 |
| 63 | +4. 规格按模块纵切闭环:目标 → 角色旅程 → 页面/数据 → 规则/状态 → 指标口径 → 异常恢复 → 验收;横切权限、接口、事件、审计、兼容和 NFR 作为同一基线合同。 |
| 64 | +5. 每个 `REQ-*` 绑定来源、行为、字段/规则、AC、测试与证据,并支持 both directions 追溯;缺少语义时开发与 Agent 必须回报 GAP,不能发明。 |
| 65 | +6. 评审后才基线;变更必须登记 diff、影响、审批、同步、回归和版本;验收记录执行结果、证据、缺陷、条件和签署。 |
56 | 66 |
|
57 | | -1. 将每个 `REQ-*` 绑定来源、目标、范围、责任人和验收。 |
58 | | -2. 闭合角色与范围、业务流、状态、规则、字段、异常、指标和禁止项。 |
59 | | -3. 只交付一份 PRD:30 秒摘要、按任务阅读地图、模块纵切规格、横切合同和工程/AI索引。 |
60 | | -4. 用业务、产品、领域、UX、前后端、架构、QA、合规和客户视角评审,保留显式 `REV/UNK`。 |
61 | | -5. 固化版本、权威、稳定 ID 和审批;来源冲突必须由 `DEC-CONFLICT-*` 裁决。 |
62 | | -6. `CHG-*` 双向遍历受影响对象,同步全部投影并执行回归。 |
63 | | -7. 每个强制 `AC-*` 记录真实结果、可解析证据和有责任主体的签署。 |
64 | | - |
65 | | -## 坚守“不猜业务”合同 |
66 | | - |
67 | | -- 稳定 ID 覆盖来源/决策/未知项、行为/数据、接口和证据。 |
68 | | -- 每个角色必须走到成功、授权拒绝、可恢复失败或明确交接。 |
69 | | -- 每个模块纵切就近放置目标、旅程、UI/数据、规则/权限、状态/事件、指标、恢复、 |
70 | | - 验收和未知项;附录只索引同一组 ID,不改写业务含义。 |
71 | | -- 每个动作声明角色、前置条件、输入、可见结果、领域结果、状态/审计、失败恢复和 AC; |
72 | | - 状态声明起点、终点、触发器、责任人和非法路径。 |
73 | | -- 每个指标在对应页面旁声明统计对象、公式、时间/过滤/去重、来源/时效、零值/空值和格式; |
74 | | - 每条跨模块流程至少有一个 E2E AC。 |
75 | | -- 每个页面声明 `primary`、`layout`、适用 `surfaces`、条件字段/动作/API/AC 和稳定原型锚点。 |
76 | | -- L3 基线声明验收责任人、范围、通过规则、证据和签署角色;复杂原型必须有 `REG-*` |
77 | | - 区域锚点和真实浏览器 `ARUN-*`。 |
78 | | -- 本地多文件原型允许相对 HTML/CSS/JS 依赖,门禁会一并扫描;远程或越界依赖不得伪装成已证明。 |
79 | | -- ARUN 的本地证据必须真实存在;`EVD-*` 必须在同一记录的 `evidence_catalog` 中解析。 |
80 | | -- 高风险规则绑定 `SRC/DEC/ASSUMPTION`;只有真实存在 AI 或血缘行为时才加载对应合同。 |
81 | | -- Coding Agent 只能实现已固化的 ID 切片。缺少工程基线是交接 GAP,不是让 PRD 编造技术方案。 |
82 | | - |
83 | | -覆盖旧原型或 PRD 前,Stage 0 必须把观察到的合同标为 `confirmed`、`inferred`、 |
84 | | -`unknown` 或 `defect_candidate`,并完成 `INV-* → REQ-*` 映射;推断项进入有责任人的 |
85 | | -`RBATCH-*` 批次确认。不得从原型猜测 API、指标、权限或法律结论。 |
86 | | - |
87 | | -## 控制大项目上下文与知识回流 |
88 | | - |
89 | | -输入超过 8 个文件、50 万可解析字符,或盘点发现 ≥8 模块、≥12 页面、≥200 稳定对象时 |
90 | | -自动分轮。先冻结来源,再按角色端到端纵切建立检查点,最后闭合跨模块边。 |
91 | | -知识候选使用 `schemas/domain-candidate.schema.json`,默认仅限 `project_only`。每次采用、修改、 |
92 | | -拒绝或失效都以 `candidate record-usage` 留证;`candidate assess` 只给人工评审建议,永不自动晋级。 |
93 | | - |
94 | | -长任务可依据 `schemas/agent-handoff.schema.json` 投影 `AGENTS.md`。工作包绑定基线 hash、 |
95 | | -责任人、范围和 AC,不能修改需求真相。`XCT-*` 还必须声明影响模块、全局不变量、 |
96 | | -执行点、例外与失败处理。 |
97 | | - |
98 | | -## 最后只跑一次轻量门禁 |
| 67 | +## 门禁只做轻量守门员 |
| 68 | + |
| 69 | +统一状态只有 `PASS`、`REVIEW_COMPLETE_WITH_GAPS`、`BLOCKED_BY_P0_UNKNOWN`、`BLOCKED`。早期阶段: |
99 | 70 |
|
100 | 71 | ```bash |
101 | | -python scripts/ai_delivery_spec_cli.py gate --profile prd --prd PRD.md --level auto |
102 | | -python scripts/ai_delivery_spec_cli.py gate --profile prototype --prototype app.html --level auto |
103 | | -python scripts/ai_delivery_spec_cli.py gate --profile handoff --prd PRD.md --prototype admin.html --manifest handoff-manifest.yaml --level auto |
| 72 | +python scripts/ai_delivery_spec_cli.py gate --profile frame --artifact problem-brief.md |
| 73 | +python scripts/ai_delivery_spec_cli.py gate --profile explore --artifact solution-sketch.md |
| 74 | +python scripts/ai_delivery_spec_cli.py gate --profile clarify --artifact requirement-brief.md |
104 | 75 | ``` |
105 | 76 |
|
106 | | -零 LLM、单遍读取的门禁只负责诊断。先修第一个 Finding,再执行 RETRY;它不会自动改写需求。 |
107 | | -静态 PASS 永远不能替代领域评审、浏览器/QA 或客户验收。`auto` 对 PRD 读取 frontmatter, |
108 | | -对原型和 handoff 默认 L2;L3/L4 缺少可解析的浏览器 ARUN 时必须返回缺口。 |
109 | | -最终状态只能是 `PASS`、`REVIEW_COMPLETE_WITH_GAPS`、`BLOCKED_BY_P0_UNKNOWN` 或 `BLOCKED`。 |
| 77 | +正式规格沿用 `gate --profile requirement|prd|prototype|handoff|full`。静态门禁必须输出 `not_proven`,不能把结构通过宣传为领域正确、真实运行或客户签收。 |
| 78 | + |
| 79 | +5.4 模板用语言无关的 `<!-- ADS:* -->` 锚点,标题可按团队语言/模板改变。`resume_context` 记录相对路径、阶段和 SHA-256;漂移、缺失和路径越界必须阻断。大项目仍用执行检查点和 ID Slice,产物断点不能替代执行状态。 |
| 80 | + |
| 81 | +## 边界与扩展 |
| 82 | + |
| 83 | +`schemas/agent-handoff.schema.json` 只把已基线需求投影给 Coding Agent;`schemas/domain-candidate.schema.json` 只登记本地候选知识。私有扩展优先于官方默认,但绑定规则冲突必须形成 `DEC-CONFLICT-*`,禁止静默覆盖或联网外发。 |
110 | 84 |
|
111 | | -对用户已授权的长任务,持续完成全部约定交付物和门禁;仅在需要改变范围的用户决策、 |
112 | | -权威来源不可获得或当前阶段被 P0 未知项阻断时暂停。 |
| 85 | +研发排期、Sprint/任务、代码生成、CI/CD、部署、监控和运营属于下游系统。本 Skill 管到需求验收;外部状态只记引用,线上反馈以新来源回流 intake/CHG,并保留人类问责。 |
0 commit comments