Skip to content

Commit e9d2e4c

Browse files
authored
fix v5.4.2 skill triggering and validation (#8)
1 parent 3a795fa commit e9d2e4c

58 files changed

Lines changed: 1012 additions & 7519 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Changelog
22

3+
4+
## 5.4.2 - 2026-07-28
5+
6+
- 修复 P0 触发逃逸:Skill frontmatter 与平台入口均声明需求、PRD、原型、竞品和存量系统的新增/修改/评审/反推/验收必须先调用,不得以“功能简单”或“需求明确”跳过;调用后仍按目标选择轻量交付。
7+
- 阶段明确降级为路由地图而非执行清单:明确需求直达目标,不补跑无关前序;实时脑暴与澄清不机械建文件或逐站跑门禁。
8+
- 新增“发散 → 推荐聚焦 → 深化 → 继续”的首答收敛环;删除 L1/L2/L3 固定 3/6/8 批默认,改为明确任务 0 轮、普通模糊任务最多 2 个阻断决策轮、高风险任务最多 4 轮。
9+
- 对话与治理投影分离:直播对话不展示内部 `SRC/ASM/UNK/DEC/YAML`;跨会话、多人协作、审计或工具编译时才结构化持久化。
10+
- 原型视觉治理改为“视觉权威 + 视觉锁”:存量小迭代继承现有 HTML/截图,绿地内部工具允许克制可逆默认,只有品牌化或方向显著影响交付时才询问审美;跨页固定 tokens、typography、shell、components、density 与 taboos。
11+
- L3/L4 handoff 接受 `visual_authority + design_lock_ref` 或既有 `DEC-AESTHETIC-*`,不再强制所有高保真原型先暂停等待美学决策。
12+
- 门禁新增 `--diagnostics roots` 并设为公共默认:每个唯一 finding code 展示一次及重复数,JSON 保留完整明细;`first/summary/full` 继续兼容。
13+
- 同一企业约谈 PRD 的 62 条 finding 被压成 15 个根因组,默认人类可读输出从约 99,687 字符降到 3,696 字符,唯一根因覆盖从 1/15 提升为 15/15;检测结果没有被删除。
14+
- 新增触发召回、首答价值、首个可用结果耗时、澄清决策轮、无关阶段、过度解读、视觉锁一致性、根因覆盖、修复轮次和真实用户满意度指标;没有实际跨模型重复和用户评分时禁止宣称“评价最高”。
15+
- 新增明确小需求、模糊早期想法、存量原型小迭代和真实 PRD 门禁四类体验探针,以及 v5.4.2 体验合同回归测试。
16+
- 维护实验室从 84 个文件、694,739 字节收敛为 55 个文件、约 402 KB;9 个版本专属重复测试进一步合并为 2 个能力级回归套件。默认 `check` 从 45 项收敛为 10 项,完整回归仅在 `check --profile release` 运行。
17+
- 候选新会话探针捕获到一次工作区上下文污染:领域未明确的“运智管家”被带入无关 CRM 客户/合同/回款语义;新增工作区隔离规则后同题复测改为条件分支与单一方向问题。四类 5.4.2 探针记为 `partial`,不冒充跨模型或真实用户反馈通过。
18+
319
## 5.4.1 - 2026-07-27
420

521
- 修复首跑断裂:`gate --profile requirement``artifact: requirement_intake` 识别单需求准入卡并改用独立 intake schema 校验,不再把扁平 intake.yaml 误判为需求登记册;修复提示指向正确模板。

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AI Delivery Spec 5.4.1Enter at Any Requirement Stage, Leave with a Usable Artifact
1+
# AI Delivery Spec 5.4.2Trigger Reliably, Converge Fast, Deliver a Usable Artifact
22

33
> 需求一来就写 PRD,低价值需求也进入重型设计?
44
>
@@ -14,7 +14,7 @@
1414
正文让客户、产品和传统开发顺序读懂,同文档工程附录让测试与 AI Coding 精确执行。
1515
只有大项目、持续变更、多投影或强审计场景才启用分片 Product Truth。
1616

17-
[![Version](https://img.shields.io/badge/version-5.4.1-0052A4.svg)]()
17+
[![Version](https://img.shields.io/badge/version-5.4.2-0052A4.svg)]()
1818
[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
1919
[![Stars](https://img.shields.io/github/stars/franklinxkk/ai-delivery-spec?style=social)](https://github.com/franklinxkk/ai-delivery-spec)
2020

@@ -134,9 +134,9 @@ openclaw skills install @franklinxkk/ai-delivery-spec
134134
研发排期、Sprint/任务、代码、CI/CD、部署执行、监控和运营属于下游系统。
135135
本项目只记录它们与需求/验收有关的外部引用,不接管流程。
136136

137-
## 5.4.1Requirement Lifecycle Workstations + Human-First Gates|需求全生命周期工作站与可读性门禁
137+
## 5.4.2Reliable Trigger + Fast Convergence + Visual Lock|稳定触发、快速收敛与视觉锁
138138

139-
5.4 把需求工作改为九个可进入、可停止、可续接的工作站,同时保持一个正式生命周期和一套门禁状态。5.4.1 把门禁从"结构齐全"扩展到"可读、可用、可闭环":UI 动作与业务动作分层(`UIACT-*`/`ACT-*`)、演示脚手架与 iframe 套壳拦截、CSS 类生效与字号下限、绑定词跨端一致、状态机语义纯净、intake 工件按自身 schema 校验。单产物 PASS 不等于交付闭环:宣称最终完成前必须通过 `gate --profile full` 组合门禁。阶段产物用 `artifact/stage` 和语言无关 `ADS:*` 锚点声明语义,跨会话才携带 `resume_context`;不要求每次运行脚本路由
139+
5.4.2 保留 5.4.1 的 Human-First 门禁与九工作站能力,修复四类体验回归:小功能也必须先触发 Skill;明确需求直达结果,模糊需求在首答完成发散、推荐聚焦和关键链深化;存量原型把既有页面作为视觉权威并冻结跨页视觉锁;门禁默认按根因分组,一次显示全部唯一问题码,JSON 仍保留完整明细。阶段是路由地图而非待办清单,实时对话不展示内部 YAML/ID,门禁只在目标里程碑运行;持久化阶段产物仍用 `artifact/stage``ADS:*` 和跨会话 `resume_context` 保持兼容
140140

141141
你会感受到五个变化:
142142

@@ -263,7 +263,7 @@ python scripts/ai_delivery_spec_cli.py impact --truth requirements/truth/compile
263263
| 位置 | 工具类型 | 责任 |
264264
|---|---|---|
265265
| 上游 | 产品发现、调研、工作坊 | 发现机会、证据和策略假设 |
266-
| **需求管理内核** | **AI Delivery Spec 5.4.1** | 问题/方案 → 准入 → 澄清 → 基线 → 变更 → 验收 |
266+
| **需求管理内核** | **AI Delivery Spec 5.4.2** | 问题/方案 → 准入 → 澄清 → 基线 → 变更 → 验收 |
267267
| 下游 | Spec Kit、项目/研发管理工具 | 技术方案、任务、排期和依赖执行 |
268268
| 下游 | Codex、Trae、Cursor、Qoder 等 | 依据已基线需求编码、测试和修改 |
269269
| 外部证据 | CI、测试、发布、监控平台 | 向需求验收回传可引用证据 |
@@ -282,13 +282,14 @@ scripts/ 用户 CLI、编译、分析和轻量门禁
282282
maintainer/ 发布保障实验室:tests/evals/evidence/tools/examples/schemas
283283
```
284284

285-
普通需求运行不得加载 `maintainer/`维护者资产集中在一个目录,整个 GitHub
286-
仓库同时受少于 200 个发布文件的硬预算约束;第三方平台使用 allowlist 运行包,不携带维护实验室。
285+
普通需求运行不得加载 `maintainer/`维护实验室同时受 ≤56 文件、≤450 KB 和默认快速检查 ≤12 条命令约束;
286+
完整发布检查只在候选版本运行。第三方平台使用 allowlist 运行包,不携带维护实验室。
287287

288288
## 维护与验证
289289

290290
```bash
291-
python scripts/ai_delivery_spec_cli.py check --keep-going
291+
python scripts/ai_delivery_spec_cli.py check
292+
python scripts/ai_delivery_spec_cli.py check --profile release --keep-going
292293
python scripts/render_mermaid_flow.py --truth product-truth.yaml --output flow.mmd
293294
```
294295

SKILL.md

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
name: ai-delivery-spec
3-
description: 将一句话想法、客户材料、存量系统或 ToC/ToB/ToG 需求,按使用者指定的进入阶段和停止阶段,转化为可评审、可实施、可追溯、可验收的人类与 Coding Agent 共用需求产物。支持问题定义、方案探索、需求准入、澄清、统一 PRD、工程原型、评审基线、变更影响和验收证据;不负责排期、编码、CI/CD、部署和运营。
3+
description: 用于任何新增、修改、评审、反推或验收需求、PRD、原型、竞品材料与存量系统,包括写/改一个小功能、加字段/列/页签/下拉、在旧 HTML 或系统上小改、直接生成 PRD 或原型。无论规模和清晰度,命中这些需求工作时都必须先调用,不得以“功能简单”“需求明确”或“直接改更快”跳过;调用后按目标阶段交付最小但完整、可评审、可实施、可追溯、可验收的人类与 Coding Agent 共用产物。支持问题定义、方案探索、需求准入、澄清、统一 PRD、工程原型、评审基线、变更影响和验收证据;不负责排期、编码、CI/CD、部署和运营。
44
---
55

6-
# AI Delivery Spec 5.4.1Requirement Lifecycle Workstations|需求全生命周期工作站
6+
# AI Delivery Spec 5.4.2Fast Convergence Workstations|精准收敛的需求工作站
77

8-
本 Skill Requirement Management Kernel:让业务、产品、设计、前后端、架构、需求交付/技术负责人、测试、合规和 Coding Agent 在需求任一阶段进入,得到当前需要的最小合格产物后离开;也可在用户明确要求时持续完成端到端闭环。
8+
本 Skill 是适用于 ToC/ToB/ToG 的 Requirement Management Kernel:让业务、产品、设计、前后端、架构、需求交付/技术负责人、测试、合规和 Coding Agent 在需求任一阶段进入,得到当前需要的最小合格产物后离开;也可在用户明确要求时持续完成端到端闭环。
99

1010
默认跟随用户当前语言生成标题、正文、表格、问题与测试;稳定 ID、代码、API/字段名和专有名词保持原样。双语必须由用户明确要求。
1111
只使用 Agent 完成需求工作不要求安装 Python;运行本地零模型门禁时需要 Python 3.10+:`python -m pip install -r scripts/requirements.txt`。Stable ID 是长期不变的需求编号;Gate 是静态结构门禁,不等于业务、浏览器、实现或客户验收。
@@ -19,7 +19,7 @@ description: 将一句话想法、客户材料、存量系统或 ToC/ToB/ToG 需
1919

2020
工作站为 `frame → explore → intake → clarify → specify → review → baseline`,基线可进入 `change``acceptance`,变更须重新基线。`frame/explore` 是准入前工作区;正式 `REQ-*` 生命周期从 intake 开始。用户可从任意有证据的阶段进入,不强迫补跑无关前序。
2121

22-
显式目标最高优先;“不要写 PRD,只做澄清”等否定约束高于关键词。目标未明时选择能解决当前问题的最小产物,并继续可逆工作;只有产物选择会实质改变范围时才提问。单次任务到目标即停,明确端到端任务则持续到目标且不得把中间模板或静态 PASS 当成完成。
22+
阶段是路由地图,不是执行清单。显式目标最高优先;“不要写 PRD,只做澄清”等否定约束高于关键词。目标清楚时直接进入目标阶段,不补做前序文件;目标模糊时先在一轮内完成“发散选项 → 推荐聚焦 → 深化关键链路”,再只问会改变范围的决策。单次任务到目标即停,明确端到端任务则持续到目标且不得把中间模板或静态 PASS 当成完成。
2323

2424
需要跨会话或检查旧产物时才运行确定性路由;它不解析自然语言:
2525

@@ -45,6 +45,8 @@ description: 将一句话想法、客户材料、存量系统或 ToC/ToB/ToG 需
4545

4646
## 默认最小产物,不为阶段机械建文件
4747

48+
实时对话先交付可用判断,不展示内部 YAML、稳定 ID 或工作站术语;只有需要保存、跨会话、跨角色交接、审计或工具校验时才结构化落盘。
49+
4850
- frame:一份 `problem-brief.md`,说清用户、痛点时刻、成功信号、事实/假设和下一步。
4951
- explore:一份 `solution-sketch.md`,至少两个选项和不做选项,包含可证伪 `ASM-*`、最小验证与停止条件。
5052
- intake:复用 triage 结果与 requirement register;Start with intake for formal governed requirements。
@@ -55,6 +57,14 @@ description: 将一句话想法、客户材料、存量系统或 ToC/ToB/ToG 需
5557

5658
假设寄存器仅在跨会话、跨角色复用或治理时单独导出。YAML/JSON 是工具投影,不是另一份 PRD。
5759

60+
## 小迭代先最小改动,再补必要合同
61+
62+
- 用户只要求分析/评审时,给结论、最小范围、阻断未知和核心验收,不擅自产出整套 PRD、治理台账或新平台能力。
63+
- 用户要求修改存量产物时,先完成可比较的目标产物;Stage 0、ID 和检查账本默认留在工作过程,最终只报告影响决策的差异。
64+
- 未经证据或用户授权,不新增角色、页面、实体、审批、审计、版本、并发、指标或状态机。必要的安全/合规约束单列为阻断,不混入本期范围。
65+
- “示例子集”不能替代“修改/替换存量原型”。除非用户明确批准缩减范围,必须保留未变更的视图、字段、动作、状态、角色路径和代表性数据量;不能完整保留时返回 `BLOCKED`,不得包装成完成。
66+
- 外部数据集成先写清 `权威源 → 汇聚/转换方 → 消费方`、读写方向、触发、失败与纠错责任,再设计按钮、队列和自动化;反向同步不得进入正向上报队列。
67+
5868
## 需求闭环与禁止推断
5969

6070
1. 先检查用户材料、现有产物、权威层级和适用领域;存量 HTML/系统重写前先执行 Stage 0。
@@ -74,7 +84,7 @@ python scripts/ai_delivery_spec_cli.py gate --profile explore --artifact solutio
7484
python scripts/ai_delivery_spec_cli.py gate --profile clarify --artifact requirement-brief.md
7585
```
7686

77-
正式规格沿用 `gate --profile requirement|prd|prototype|handoff|full`静态门禁必须输出 `not_proven`,不能把结构通过宣传为领域正确、真实运行或客户签收。单产物 PASS 不等于交付闭环;宣称最终完成前必须 `gate --profile full`(或 handoff)组合门禁通过。
87+
正式规格沿用 `gate --profile requirement|prd|prototype|handoff|full`静态门禁只在目标里程碑运行一次;修复后重跑,不在每个经过的工作站重复执行。默认按根因分组输出诊断,JSON 保留全部明细。门禁必须输出 `not_proven`,不能把结构通过宣传为领域正确、真实运行或客户签收。单产物 PASS 不等于交付闭环;宣称最终完成前必须 `gate --profile full`(或 handoff)组合门禁通过。
7888

7989
5.4 模板用语言无关的 `<!-- ADS:* -->` 锚点,标题可按团队语言/模板改变。`resume_context` 记录相对路径、阶段和 SHA-256;漂移、缺失和路径越界必须阻断。大项目仍用执行检查点和 ID Slice,产物断点不能替代执行状态。
8090

agents/openai.yaml

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
interface:
22
display_name: "AI Delivery Spec"
3-
version: "5.4.1"
4-
short_description: "需求任一阶段进入,按目标交付可读、可实现、可追溯的最小合格产物。"
3+
short_description: "需求工作必须先触发;明确需求直达结果,模糊需求先发散再精准收敛。"
54
default_prompt: >
6-
使用 $ai-delivery-spec 作为需求管理内核。先从用户语义和已有产物识别 entry_stage 与 target_stage;
7-
显式目标和否定约束高于关键词。允许从任一需求阶段进入,并在用户需要的产物完成后停止;
8-
只有用户明确要求端到端交付时才持续跨阶段。进入正式准入后再静默判断交付形态和保证强度。
9-
除非用户明确覆盖,标题、正文、表格、问题和测试均跟随用户请求语言。默认只生成一份
10-
人类可读且 AI Coding 可执行的 PRD,其中包含30秒摘要、任务阅读地图、模块纵切规格和
11-
工程/AI索引,不生成互相竞争的两套 PRD。保留稳定 ID、双向追溯、变更影响、可执行验收
12-
和真实证据。存量项目重写前先完成 Stage 0;L3 原型必须有稳定区域和浏览器验收证据。
13-
编码、发布与运行维护属于下游系统。
5+
任何新增、修改、评审、反推或验收需求、PRD、原型、竞品和存量系统的任务都先使用
6+
$ai-delivery-spec;写/改小功能、加字段/列/页签/下拉、旧 HTML 小改也不得跳过。
7+
阶段只是路由地图,不是待办清单:
8+
识别 entry_stage 与 target_stage 后直达用户目标,不补跑无关阶段,不为过程机械建文件。
9+
明确小需求直接给可开发结果;模糊需求先在一轮内发散选项、推荐聚焦并深化关键业务链,
10+
再只问会改变范围的阻断问题。实时对话不展示内部 YAML、稳定 ID 或工作站术语,持久化、
11+
交接、审计和工具校验时再结构化。存量原型默认继承现有布局、密度、组件和视觉语言,
12+
保留未授权变更之外的视图、字段、动作、状态、角色路径和数据量,不能用示例子集冒充替换。
13+
外部集成先确认权威源、消费方和读写方向,反向同步不得进入正向上报队列。
14+
除非用户明确要求重设计。默认只生成一份人类可读且 Coding Agent 可执行的主产物;
15+
门禁只在目标里程碑运行,按根因一次给出可修复诊断。编码、发布与运行维护属于下游系统。
1416
1517
inputs:
1618
entry_stage:

examples/spec.config.example.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ assurance:
2929
human_gate_on: [regulated, money, safety, privacy, tenant_isolation, ai_writeback, migration]
3030
execution:
3131
environment: development
32-
expected_skill_version: 5.4.1
32+
expected_skill_version: 5.4.2
3333
dependency_policy: strict
3434
high_risk_failure: block
3535
low_risk_failure: human_review

maintainer/README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ Use this reference when changing the Skill, a shared template, a domain pack,
77
or a validator. The lab is a **release-hardening activity**. It is not a new
88
mandatory stage for every customer project.
99

10-
v5.3 系列的设计决策、模拟缺口和版本处置统一收纳在
11-
[`v5.3-design-record.md`](v5.3-design-record.md);不再为每个补丁版本新增平铺设计稿。
10+
历史探索记录保留在 Git 历史中;当前版本只维护仍能约束发布结论的设计记录、夹具与门禁,不再为每个补丁版本新增平铺材料。
1211

1312
## 1. Two Deliberately Separate Loops
1413

@@ -233,10 +232,6 @@ insufficient: modified, rejected and invalidated uses remain first-class records
233232
Sensitive project-local candidates are excluded even from the shared private
234233
package until an accountable owner redacts and moves them into the review area.
235234

236-
The 15-repository GitHub matrix is a method stress test, not domain promotion.
237-
Its consolidated v5.3.3 exploratory evidence fills previously unexecuted cells
238-
without inflating repository file count; a single-session cell remains partial
239-
until repetitions, token measurements, real coding delivery and accepted ACs exist.
240235

241236
## Reviewer Contract
242237

@@ -252,8 +247,16 @@ Open P0/P1 cannot be hidden in notes. Finish with scoped `PASS`,
252247
`REVIEW_COMPLETE_WITH_GAPS` or `BLOCKED`, citing exact IDs and evidence.
253248

254249
## Directory Policy
250+
The assurance lab is subordinate to the runtime skill. Budgets are enforced by
251+
`test_v511_runtime_budget.py`: at most 56 maintainer files, 450 KB, and 12 commands
252+
in the default fast check. Historical exploratory matrices and one-file-per-run
253+
evidence belong in Git history or an external evidence store, not the active tree.
255254

256-
- `evals/`: catalogs, runs and immutable evidence ledgers.
255+
`check` defaults to fast release-risk checks. Only release candidates run
256+
`check --profile release`; ordinary Skill use never loads this directory.
257+
258+
259+
- `evals/`: compact catalogs, current metrics and active evidence only.
257260
- `tests/`: deterministic regression and fixtures.
258261
- `examples/`: non-runtime reference projects used by regression.
259262
- `tools/`: release/evaluation utilities; user-facing commands stay in `scripts/`.

0 commit comments

Comments
 (0)