spec-wave 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +327 -0
- package/README.zh-CN.md +327 -0
- package/RELEASING.md +52 -0
- package/assets/README.md +30 -0
- package/assets/ci/samples/README.md +76 -0
- package/assets/ci/samples/hgm-ingest.yml.example +42 -0
- package/assets/ci/samples/lint-wiki-delta.pin.yml.example +47 -0
- package/assets/ci/samples/lint-wiki-delta.yml.example +49 -0
- package/assets/ci/samples/pytest.yml.example +49 -0
- package/assets/ci/samples/quality.yml.example +56 -0
- package/assets/ci/samples/skills-validate.yml.example +38 -0
- package/assets/ci/samples/tech-graph.yml.example +55 -0
- package/assets/coding_wiki/templates/README.md +115 -0
- package/assets/coding_wiki/templates/_index.md +19 -0
- package/assets/coding_wiki/templates/context.md +18 -0
- package/assets/coding_wiki/templates/stable.md +26 -0
- package/assets/coding_wiki/templates/topics/wiki_layout.md +13 -0
- package/assets/coding_wiki/templates/topics/wikilinks_export.md +13 -0
- package/assets/coding_wiki/templates/volatile.md +25 -0
- package/assets/docs/POINTER_ONBOARDING.md +9 -0
- package/assets/docs/POINTER_RUNBOOK_wiki_delta.md +18 -0
- package/assets/docs/POINTER_SDD_HAT_FLOW.md +8 -0
- package/assets/docs/POINTER_USER_GUIDE.md +8 -0
- package/assets/graph/stubs/README.md +6 -0
- package/assets/graph/templates/00_main.graph.yaml +72 -0
- package/assets/graph/templates/00_main.md +85 -0
- package/assets/graph/templates/01_struct.md +38 -0
- package/assets/graph/templates/02_version.md +7 -0
- package/assets/graph/templates/10_flow_MAIN.graph.yaml +105 -0
- package/assets/graph/templates/10_flow_MAIN.md +103 -0
- package/assets/graph/templates/99_mermaid_protocol.md +156 -0
- package/assets/graph/templates/README.md +66 -0
- package/assets/harness/README.md +18 -0
- package/assets/harness/discipline-coverage.yaml +320 -0
- package/assets/harness/invokes/README.md +22 -0
- package/assets/harness/invokes/TEMPLATE_invoke.md +61 -0
- package/assets/harness/lifecycle.yaml +127 -0
- package/assets/harness/prompts/00-orchestrator.md +91 -0
- package/assets/harness/prompts/10-spec-requirements.md +63 -0
- package/assets/harness/prompts/10-task-requirements.md +70 -0
- package/assets/harness/prompts/20-spec-audit.md +50 -0
- package/assets/harness/prompts/20-task-audit.md +90 -0
- package/assets/harness/prompts/30-execute-code.md +64 -0
- package/assets/harness/prompts/40-self-check.md +65 -0
- package/assets/harness/prompts/FRAGMENT_00_delegate_only_v1_zh.md +19 -0
- package/assets/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +34 -0
- package/assets/harness/prompts/FRAGMENT_30_invoke_block_v1_zh.md +28 -0
- package/assets/harness/prompts/FRAGMENT_hat_reanchor_v1_zh.md +19 -0
- package/assets/harness/prompts/README.md +67 -0
- package/assets/harness/prompts/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/harness/templates/FRAGMENT_task_domain_infer_v1_zh.md +16 -0
- package/assets/harness/templates/ONTOLOGY_consumer_slice_v1.md +41 -0
- package/assets/harness/templates/QUICKREF_v1_zh.md +35 -0
- package/assets/harness/templates/README.md +50 -0
- package/assets/harness/templates/TASK_TEMPLATE.md +133 -0
- package/assets/harness/templates/TASK_done_README.md +76 -0
- package/assets/harness/templates/TASK_epic.md +103 -0
- package/assets/harness/templates/TASK_graph_bootstrap.md +115 -0
- package/assets/harness/templates/VIEW_done_by_domain.md +66 -0
- package/assets/harness/templates/VIEW_done_thin_pointer.md +16 -0
- package/assets/ide/adapters/AGENTS.md.fragment.example +33 -0
- package/assets/ide/adapters/CLAUDE.md.fragment.example +32 -0
- package/assets/ide/adapters/README.md +57 -0
- package/assets/ide/adapters/cursor-harness-starter.mdc.example +39 -0
- package/assets/ide/commands/claude/kit/apply-standards.md +10 -0
- package/assets/ide/commands/claude/kit/gate-status.md +10 -0
- package/assets/ide/commands/claude/kit/graph-check.md +8 -0
- package/assets/ide/commands/claude/kit/hat-00-delegate.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-spec.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-task.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-spec-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-task-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-reanchor.md +8 -0
- package/assets/ide/commands/claude/kit/init-guide.md +16 -0
- package/assets/ide/commands/claude/kit/sync-prompts-guide.md +9 -0
- package/assets/ide/commands/claude/kit/verify.md +16 -0
- package/assets/ide/commands/cursor/kit-apply-standards.md +12 -0
- package/assets/ide/commands/cursor/kit-gate-status.md +12 -0
- package/assets/ide/commands/cursor/kit-graph-check.md +10 -0
- package/assets/ide/commands/cursor/kit-hat-00-delegate.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-spec.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-task.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-spec-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-task-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-reanchor.md +10 -0
- package/assets/ide/commands/cursor/kit-init-guide.md +18 -0
- package/assets/ide/commands/cursor/kit-sync-prompts-guide.md +11 -0
- package/assets/ide/commands/cursor/kit-verify.md +18 -0
- package/assets/ide/host-adapt/README.md +113 -0
- package/assets/ide/host-adapt/examples/mvp-hosts.yaml +78 -0
- package/assets/ide/host-adapt/host-adapt.schema.json +97 -0
- package/assets/ide/skills-orch/README.md +16 -0
- package/assets/ide/skills-orch/kit-apply-standards/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-gate-status/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-hat-reanchor/SKILL.md +15 -0
- package/assets/ide/skills-orch/kit-init-guide/SKILL.md +23 -0
- package/assets/ide/skills-orch/kit-verify/SKILL.md +23 -0
- package/assets/ontology.yaml +113 -0
- package/assets/skills/README.md +37 -0
- package/assets/skills/harness-00-delegate-only/SKILL.md +19 -0
- package/assets/skills/harness-10-spec/SKILL.md +63 -0
- package/assets/skills/harness-10-task/SKILL.md +70 -0
- package/assets/skills/harness-20-spec-audit/SKILL.md +50 -0
- package/assets/skills/harness-20-task-audit/SKILL.md +90 -0
- package/assets/skills/harness-20-task-audit/references/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/skills/harness-hat-reanchor/SKILL.md +19 -0
- package/assets/standards/POINTER_workspace_truth_v1_zh.md +42 -0
- package/assets/standards/README.md +35 -0
- package/assets/standards/SOURCES_v1_zh.md +49 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L1_v1_zh.md +88 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_backend_v1_zh.md +75 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_frontend_v1_zh.md +76 -0
- package/bin/dsh-coding-kit.js +7 -0
- package/bin/specgate.js +7 -0
- package/bin/validate_template_compliance.py +470 -0
- package/cordis.patch.yml +5 -0
- package/lib/cli-checks.d.ts +68 -0
- package/lib/cli-checks.js +812 -0
- package/lib/cli-checks.js.map +1 -0
- package/lib/cli-graph-hgm.d.ts +74 -0
- package/lib/cli-graph-hgm.js +416 -0
- package/lib/cli-graph-hgm.js.map +1 -0
- package/lib/cli-graph-yaml.d.ts +79 -0
- package/lib/cli-graph-yaml.js +602 -0
- package/lib/cli-graph-yaml.js.map +1 -0
- package/lib/cli-graph.d.ts +1 -0
- package/lib/cli-graph.js +199 -0
- package/lib/cli-graph.js.map +1 -0
- package/lib/cli-host.d.ts +24 -0
- package/lib/cli-host.js +1197 -0
- package/lib/cli-host.js.map +1 -0
- package/lib/cli-lifecycle.d.ts +2 -0
- package/lib/cli-lifecycle.js +401 -0
- package/lib/cli-lifecycle.js.map +1 -0
- package/lib/cli-refresh-ide-blocks.d.ts +66 -0
- package/lib/cli-refresh-ide-blocks.js +484 -0
- package/lib/cli-refresh-ide-blocks.js.map +1 -0
- package/lib/cli-shared.d.ts +74 -0
- package/lib/cli-shared.js +281 -0
- package/lib/cli-shared.js.map +1 -0
- package/lib/cli-skills.d.ts +52 -0
- package/lib/cli-skills.js +363 -0
- package/lib/cli-skills.js.map +1 -0
- package/lib/cli-status.d.ts +2 -0
- package/lib/cli-status.js +251 -0
- package/lib/cli-status.js.map +1 -0
- package/lib/cli-sync-prompts.d.ts +25 -0
- package/lib/cli-sync-prompts.js +158 -0
- package/lib/cli-sync-prompts.js.map +1 -0
- package/lib/cli-sync.d.ts +2 -0
- package/lib/cli-sync.js +124 -0
- package/lib/cli-sync.js.map +1 -0
- package/lib/cli-task-extra.d.ts +53 -0
- package/lib/cli-task-extra.js +408 -0
- package/lib/cli-task-extra.js.map +1 -0
- package/lib/cli-timeline.d.ts +28 -0
- package/lib/cli-timeline.js +68 -0
- package/lib/cli-timeline.js.map +1 -0
- package/lib/cli-wiki.d.ts +21 -0
- package/lib/cli-wiki.js +189 -0
- package/lib/cli-wiki.js.map +1 -0
- package/lib/cli.d.ts +22 -0
- package/lib/cli.js +1034 -0
- package/lib/cli.js.map +1 -0
- package/lib/host-contract.d.ts +23 -0
- package/lib/host-contract.js +143 -0
- package/lib/host-contract.js.map +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +290 -0
- package/lib/index.js.map +1 -0
- package/lib/yaml.d.ts +4 -0
- package/lib/yaml.js +10 -0
- package/lib/yaml.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
# Discipline coverage · Starter 子集机械化率资产(方向一)
|
|
2
|
+
#
|
|
3
|
+
# 运行时真值:本文件(随 npm 包分发)。
|
|
4
|
+
# 历史叙事:私仓 rethink 文档 03_coverage_matrix.md(2026-07 mechanization-rate · 不随包分发)
|
|
5
|
+
# 维护:新闸合入时更新 statements[].status / gaps[] / as_of_package_version
|
|
6
|
+
# 禁止:把本文件当「每周全量重盘」流程;不做 audit --discipline UI(本波)
|
|
7
|
+
# status 口径(DEF-005 重盘 · as_of = 本包实接线):
|
|
8
|
+
# mechanical = 机制在本包 src/ 已接线(mechanism 带锚点)
|
|
9
|
+
# partial = 有机制但覆盖不全
|
|
10
|
+
# prompt-only = 无机制,仅条文约束
|
|
11
|
+
# not_wired = 声称的机制在本包未接线(旧包机制名仅见于「旧包史实」notes · 接线计划见 PRD_DEF-003 阶段二)
|
|
12
|
+
|
|
13
|
+
version: "1"
|
|
14
|
+
as_of_package_version: "2.1.1"
|
|
15
|
+
scope: "Starter · harness/prompts (10/22/30/40 + FRAGMENT)+ TEMPLATE_invoke"
|
|
16
|
+
source_audit: "私仓 rethink 2026-07 mechanization-rate 转录聚合 · 2026-08-24 按 dsh-coding-kit 1.2.3 src/ 逐条重盘(DEF-005 机制台账)"
|
|
17
|
+
|
|
18
|
+
gaps:
|
|
19
|
+
- id: WIKI-DELTA
|
|
20
|
+
title: wiki_delta close 闸 + 晋升指针 + wiki export
|
|
21
|
+
status: closed
|
|
22
|
+
closed_in: "unreleased"
|
|
23
|
+
note: "task lint-wiki-delta(src/cli-task-extra.ts)与 wiki export(src/cli.ts)本包已接线;close_wiki_delta close 闸已接线(PRD_DEF-003 阶段二 T6 · src/cli-checks.ts evalCloseWikiDelta);close_wiki_promotion 晋升指针闸已接线(PRD_DEF-003 后续棒 · src/cli-checks.ts evalCloseWikiPromotion 对照旧包 @cyning/harness@2.24.0 evaluateWikiPromotionPointer · 豁免与 wiki_delta 共用 --allow-wiki-gap · test/cli-task-close-guards.test.ts 钉死)· 旧包史实(@cyning/harness 2.18.0 closed · SPEC-experience-wiki-feedback_loop)"
|
|
24
|
+
- id: G1
|
|
25
|
+
title: task md 结构 lint
|
|
26
|
+
status: closed
|
|
27
|
+
closed_in: "1.1.0"
|
|
28
|
+
note: "task lint E1–E7 本包已接线(src/cli.ts#430-511)· 旧包史实(@cyning/harness 2.3.0)"
|
|
29
|
+
- id: G2
|
|
30
|
+
title: reviews 留档闸
|
|
31
|
+
status: not_wired
|
|
32
|
+
closed_in: null
|
|
33
|
+
note: "findReview 仅 status 使用(src/cli-status.ts#70);verify/close 无 reviews 闸 · 旧包史实(@cyning/harness 2.5.0 · N4 全量 2.9.0)· 接线计划见 PRD_DEF-003 阶段二"
|
|
34
|
+
- id: G3
|
|
35
|
+
title: 文本纪律(绝对路径)
|
|
36
|
+
status: closed
|
|
37
|
+
closed_in: "1.1.0"
|
|
38
|
+
note: "task lint E6 本包已接线(src/cli.ts#481-485)· 旧包史实(@cyning/harness 2.3.0);invoke 预写 approved grep 仍缓做"
|
|
39
|
+
- id: G4
|
|
40
|
+
title: 思考轮结构
|
|
41
|
+
status: not_wired
|
|
42
|
+
closed_in: null
|
|
43
|
+
note: "本包仅 W4 warn-only(src/cli.ts#498-503);旧包 E8–E10 / W5 未随包 · 旧包史实(@cyning/harness 2.6.0)· 接线计划见 PRD_DEF-003 阶段二"
|
|
44
|
+
- id: G6
|
|
45
|
+
title: git 行为层
|
|
46
|
+
status: deferred
|
|
47
|
+
closed_in: null
|
|
48
|
+
note: "方向三"
|
|
49
|
+
- id: G7
|
|
50
|
+
title: 执行证据(真跑过)
|
|
51
|
+
status: deferred
|
|
52
|
+
closed_in: null
|
|
53
|
+
note: "方向二 runner;跟 lifecycle dry-run 之后"
|
|
54
|
+
- id: N2-C
|
|
55
|
+
title: verify --task lint → block
|
|
56
|
+
status: deferred
|
|
57
|
+
closed_in: null
|
|
58
|
+
note: "本包 verify 不含 lint 步(src/cli.ts#381-428)· 旧包史实(@cyning/harness warn-only 2.7.0)· 须 FAIL 率下降"
|
|
59
|
+
- id: SPEC-reviews
|
|
60
|
+
title: SPEC 审查文闸
|
|
61
|
+
status: closed
|
|
62
|
+
closed_in: "unreleased"
|
|
63
|
+
note: "verify --spec 本包已接线(src/cli.ts verifySpecMode · findSpecReview src/cli-checks.ts 单一实现源 · 缺失 exit 2 BLOCKED · --allow-no-spec-review 豁免留痕 · PRD_DEF-003 后续棒)· 旧包史实(@cyning/harness 2.8.0)"
|
|
64
|
+
- id: FULL-reviews
|
|
65
|
+
title: 裸 verify 全量 reviews + 双路径
|
|
66
|
+
status: not_wired
|
|
67
|
+
closed_in: null
|
|
68
|
+
note: "verify 须 --task 且不查 reviews(src/cli.ts#402)· 旧包史实(@cyning/harness N4 2.9.0)· 接线计划见 PRD_DEF-003 阶段二"
|
|
69
|
+
- id: LIFECYCLE-ENGINE
|
|
70
|
+
title: lifecycle dry-run 最小引擎
|
|
71
|
+
status: closed
|
|
72
|
+
closed_in: "1.1.0"
|
|
73
|
+
note: "lifecycle dry-run 本包已接线(src/cli-lifecycle.ts)· 旧包史实(@cyning/harness 2.10.0 · Epic T2 旁路报告)"
|
|
74
|
+
- id: INVOKE-HATS
|
|
75
|
+
title: 多帽 invoke 留档集合闸
|
|
76
|
+
status: not_wired
|
|
77
|
+
closed_in: null
|
|
78
|
+
note: "close 无 invoke 集合闸(src/cli.ts#535-607 仅 slug/自检/验收/状态四项);task lint-done 仅 slug 级(src/cli-task-extra.ts#282)· 旧包史实(@cyning/harness 2.12.0 · default 10,30,40)· 接线计划见 PRD_DEF-003 阶段二"
|
|
79
|
+
|
|
80
|
+
statements:
|
|
81
|
+
- id: A1
|
|
82
|
+
source: 30-execute-code.md
|
|
83
|
+
summary: HG pending → 拒开工、禁改码
|
|
84
|
+
status: mechanical
|
|
85
|
+
mechanism: "gate-check + verify(src/cli.ts#325,#381 · 1.1.0 P0 子集 · 须 --task)"
|
|
86
|
+
gap: null
|
|
87
|
+
notes: null
|
|
88
|
+
mechanism_quality: null
|
|
89
|
+
- id: A2
|
|
90
|
+
source: 30-execute-code.md
|
|
91
|
+
summary: 开工前首输出 GATE_VERIFY 闸扫描表
|
|
92
|
+
status: partial
|
|
93
|
+
mechanism: "verify 提供判定(src/cli.ts#381-428);Agent 是否先输出表无检查"
|
|
94
|
+
gap: null
|
|
95
|
+
notes: null
|
|
96
|
+
mechanism_quality: null
|
|
97
|
+
- id: A3
|
|
98
|
+
source: 30-execute-code.md
|
|
99
|
+
summary: 真值在 task 表;声称 vs 表 pending → STOP
|
|
100
|
+
status: partial
|
|
101
|
+
mechanism: "gate-check/verify 读 task 闸表(src/cli.ts#204-248)"
|
|
102
|
+
gap: null
|
|
103
|
+
notes: "用户声称侧不可机械"
|
|
104
|
+
mechanism_quality: null
|
|
105
|
+
- id: A4
|
|
106
|
+
source: 30-execute-code.md
|
|
107
|
+
summary: test_strategy required → 先可失败测试再改实现
|
|
108
|
+
status: partial
|
|
109
|
+
mechanism: "audit/verify D5 探测测试文件存在(src/cli.ts#270-322)"
|
|
110
|
+
gap: null
|
|
111
|
+
notes: "先红后绿顺序无机制 · mechanism_quality 预留"
|
|
112
|
+
mechanism_quality: null
|
|
113
|
+
- id: A5
|
|
114
|
+
source: 30-execute-code.md
|
|
115
|
+
summary: 运行验证命令 + 回填自检结论
|
|
116
|
+
status: mechanical
|
|
117
|
+
mechanism: "task close 自检结论非占位符检查(src/cli.ts#556-566)"
|
|
118
|
+
gap: G7
|
|
119
|
+
notes: "命令真跑过仍靠 40 诚实"
|
|
120
|
+
mechanism_quality: null
|
|
121
|
+
- id: A6
|
|
122
|
+
source: 30-execute-code.md
|
|
123
|
+
summary: invoke 快照落盘 by-task/<slug>/(按 required_invoke_hats 集合)
|
|
124
|
+
status: partial
|
|
125
|
+
mechanism: "task lint-done(src/cli-task-extra.ts#282 · slug 级存在性);帽集合覆盖闸未接线"
|
|
126
|
+
gap: null
|
|
127
|
+
notes: "旧包史实(@cyning/harness · close 集合闸 evaluateInvokeHatsRetention · v2.12.0 默认 10,30,40 · profile minimal/full · v2.12.1 前缀 hat run)· 本包未接线 · 接线计划见 PRD_DEF-003 阶段二"
|
|
128
|
+
mechanism_quality: null
|
|
129
|
+
- id: A7
|
|
130
|
+
source: 30-execute-code.md
|
|
131
|
+
summary: 归档只能 task close PASS 后进行
|
|
132
|
+
status: mechanical
|
|
133
|
+
mechanism: "task close(src/cli.ts#535-607)"
|
|
134
|
+
gap: null
|
|
135
|
+
notes: "手动 mv 旁路由 task lint-done 兜底(src/cli-task-extra.ts#282)"
|
|
136
|
+
mechanism_quality: null
|
|
137
|
+
- id: A8
|
|
138
|
+
source: 30-execute-code.md
|
|
139
|
+
summary: HG-GRAPH-MODULES pending → 禁改码
|
|
140
|
+
status: mechanical
|
|
141
|
+
mechanism: "gate-check 默认检查 HG-GRAPH-MODULES pending → blocked(src/cli.ts#238-241)"
|
|
142
|
+
gap: null
|
|
143
|
+
notes: "--graph 旗标被吞无语义(src/cli.ts#326 · DEF-011);该检查为默认行为非旗标触发"
|
|
144
|
+
mechanism_quality: null
|
|
145
|
+
- id: A9
|
|
146
|
+
source: 30-execute-code.md
|
|
147
|
+
summary: 缺验收/failure_paths/必读 → 仅输出阻塞清单
|
|
148
|
+
status: mechanical
|
|
149
|
+
mechanism: "task lint E1–E7(src/cli.ts#430-511)"
|
|
150
|
+
gap: G1
|
|
151
|
+
notes: "02 原 ❌ · 已刷新(G1 本包已接线)"
|
|
152
|
+
mechanism_quality: null
|
|
153
|
+
- id: A10
|
|
154
|
+
source: 30-execute-code.md
|
|
155
|
+
summary: 交接物 commit 仅本轮路径、禁 git add -A
|
|
156
|
+
status: prompt-only
|
|
157
|
+
mechanism: null
|
|
158
|
+
gap: G6
|
|
159
|
+
notes: null
|
|
160
|
+
mechanism_quality: null
|
|
161
|
+
- id: B1
|
|
162
|
+
source: 40-self-check.md
|
|
163
|
+
summary: 逐条对照验收标准标记 pass/fail
|
|
164
|
+
status: partial
|
|
165
|
+
mechanism: "task close 查无未勾选(src/cli.ts#567-574)"
|
|
166
|
+
gap: null
|
|
167
|
+
notes: null
|
|
168
|
+
mechanism_quality: null
|
|
169
|
+
- id: B2
|
|
170
|
+
source: 40-self-check.md
|
|
171
|
+
summary: 必须运行验证命令并摘要退出码
|
|
172
|
+
status: prompt-only
|
|
173
|
+
mechanism: null
|
|
174
|
+
gap: G7
|
|
175
|
+
notes: "真跑过无证据"
|
|
176
|
+
mechanism_quality: null
|
|
177
|
+
- id: B3
|
|
178
|
+
source: 40-self-check.md
|
|
179
|
+
summary: 必须回填自检结论(执行者)
|
|
180
|
+
status: mechanical
|
|
181
|
+
mechanism: "task close 自检结论回填闸(src/cli.ts#556-566)"
|
|
182
|
+
gap: null
|
|
183
|
+
notes: null
|
|
184
|
+
mechanism_quality: null
|
|
185
|
+
- id: B4
|
|
186
|
+
source: 40-self-check.md
|
|
187
|
+
summary: 禁止改 tasks/reviews/invokes(S2)
|
|
188
|
+
status: prompt-only
|
|
189
|
+
mechanism: null
|
|
190
|
+
gap: G6
|
|
191
|
+
notes: null
|
|
192
|
+
mechanism_quality: null
|
|
193
|
+
- id: B5
|
|
194
|
+
source: 40-self-check.md
|
|
195
|
+
summary: 不凭记忆声称测过
|
|
196
|
+
status: prompt-only
|
|
197
|
+
mechanism: null
|
|
198
|
+
gap: null
|
|
199
|
+
notes: "诚实纪律 · 设计上留 Prompt"
|
|
200
|
+
mechanism_quality: null
|
|
201
|
+
- id: C1
|
|
202
|
+
source: 22-task-audit.md
|
|
203
|
+
summary: 必须落盘 reviews task_*_audit_R*
|
|
204
|
+
status: not_wired
|
|
205
|
+
mechanism: "本包未接线(findReview 仅 status 使用 · src/cli-status.ts#70)"
|
|
206
|
+
gap: G2
|
|
207
|
+
notes: "旧包史实(@cyning/harness · verify/close reviews 闸 G2 v2.5+ · 全量 N4 v2.9)· 接线计划见 PRD_DEF-003 阶段二;内容质量仍 prompt-only"
|
|
208
|
+
mechanism_quality: null
|
|
209
|
+
- id: C2
|
|
210
|
+
source: 22-task-audit.md
|
|
211
|
+
summary: HG-AUDIT-R1 pending 时禁止附 30 Prompt
|
|
212
|
+
status: not_wired
|
|
213
|
+
mechanism: "本包未接线(无 reviews 存在性闸)"
|
|
214
|
+
gap: G2
|
|
215
|
+
notes: "旧包史实(@cyning/harness · 存在性闸随 G2)· 接线计划见 PRD_DEF-003 阶段二;审查文内容无检查"
|
|
216
|
+
mechanism_quality: null
|
|
217
|
+
- id: C3
|
|
218
|
+
source: 22-task-audit.md
|
|
219
|
+
summary: 思考轮审查不通过 → 退回 10
|
|
220
|
+
status: prompt-only
|
|
221
|
+
mechanism: null
|
|
222
|
+
gap: null
|
|
223
|
+
notes: "流程纪律"
|
|
224
|
+
mechanism_quality: null
|
|
225
|
+
- id: C4
|
|
226
|
+
source: 22-task-audit.md
|
|
227
|
+
summary: 零阻塞写已核对项;终轮写签收
|
|
228
|
+
status: prompt-only
|
|
229
|
+
mechanism: null
|
|
230
|
+
gap: null
|
|
231
|
+
notes: "审查文结构无 lint"
|
|
232
|
+
mechanism_quality: null
|
|
233
|
+
- id: D1
|
|
234
|
+
source: 10-requirements.md
|
|
235
|
+
summary: task 必含验收/failure_paths/非范围/依赖
|
|
236
|
+
status: mechanical
|
|
237
|
+
mechanism: "task lint E3/E4(src/cli.ts#458-466)"
|
|
238
|
+
gap: G1
|
|
239
|
+
notes: "02 原 ❌ · 已刷新(G1 本包已接线)"
|
|
240
|
+
mechanism_quality: null
|
|
241
|
+
- id: D2
|
|
242
|
+
source: 10-requirements.md
|
|
243
|
+
summary: 不写绝对本机路径
|
|
244
|
+
status: mechanical
|
|
245
|
+
mechanism: "task lint E6(src/cli.ts#481-485)"
|
|
246
|
+
gap: G3
|
|
247
|
+
notes: "02 原 ❌ · 已刷新(G3 本包已接线)"
|
|
248
|
+
mechanism_quality: null
|
|
249
|
+
- id: D3
|
|
250
|
+
source: 10-requirements.md
|
|
251
|
+
summary: 预置 R0–R5 + 思考轮控制表
|
|
252
|
+
status: not_wired
|
|
253
|
+
mechanism: "本包未接线(仅 W4 warn-only · src/cli.ts#498-503)"
|
|
254
|
+
gap: G4
|
|
255
|
+
notes: "旧包史实(@cyning/harness · task lint E8–E10 条件触发)· 接线计划见 PRD_DEF-003 阶段二;内容质量仍 20 帽"
|
|
256
|
+
mechanism_quality: null
|
|
257
|
+
- id: D4
|
|
258
|
+
source: 10-requirements.md
|
|
259
|
+
summary: 缺验收/failure_paths → 仅输出阻塞清单
|
|
260
|
+
status: mechanical
|
|
261
|
+
mechanism: "task lint E3/E4(src/cli.ts#458-466)"
|
|
262
|
+
gap: G1
|
|
263
|
+
notes: null
|
|
264
|
+
mechanism_quality: null
|
|
265
|
+
- id: E1
|
|
266
|
+
source: FRAGMENT_30
|
|
267
|
+
summary: invoke 中禁止预写 HG-AUDIT-R1 approved
|
|
268
|
+
status: prompt-only
|
|
269
|
+
mechanism: null
|
|
270
|
+
gap: G3
|
|
271
|
+
notes: "SPEC R2 缓做 · 误报风险"
|
|
272
|
+
mechanism_quality: null
|
|
273
|
+
- id: E2
|
|
274
|
+
source: FRAGMENT_30
|
|
275
|
+
summary: 用户确认 approved = 须核验非事实
|
|
276
|
+
status: partial
|
|
277
|
+
mechanism: "verify 读 task 闸表(src/cli.ts#204-248)"
|
|
278
|
+
gap: null
|
|
279
|
+
notes: null
|
|
280
|
+
mechanism_quality: null
|
|
281
|
+
- id: F1
|
|
282
|
+
source: TEMPLATE_invoke.md
|
|
283
|
+
summary: 落盘路径 by-task/<task_slug>/ 且帽子集合覆盖
|
|
284
|
+
status: partial
|
|
285
|
+
mechanism: "task lint-done(src/cli-task-extra.ts#282 · slug 级);帽集合覆盖闸未接线"
|
|
286
|
+
gap: null
|
|
287
|
+
notes: "旧包史实(@cyning/harness · evaluateInvokeHatsRetention · v2.12.0 文件名 hat token · 合并 30_40 可双计 · v2.12.1 前缀 run 防 slug 误计)· 本包未接线 · 接线计划见 PRD_DEF-003 阶段二"
|
|
288
|
+
mechanism_quality: null
|
|
289
|
+
- id: F2
|
|
290
|
+
source: TEMPLATE_invoke.md
|
|
291
|
+
summary: 同帽追问不新增 invoke;打回用 _r2
|
|
292
|
+
status: prompt-only
|
|
293
|
+
mechanism: null
|
|
294
|
+
gap: null
|
|
295
|
+
notes: "命名纪律 · 可留 prompt"
|
|
296
|
+
mechanism_quality: null
|
|
297
|
+
- id: F3
|
|
298
|
+
source: TEMPLATE_invoke.md
|
|
299
|
+
summary: 落盘 + task 回填后再 commit
|
|
300
|
+
status: prompt-only
|
|
301
|
+
mechanism: null
|
|
302
|
+
gap: G6
|
|
303
|
+
notes: null
|
|
304
|
+
mechanism_quality: null
|
|
305
|
+
- id: SK1
|
|
306
|
+
source: SPEC-agent-skills-packaging_v1(旧包史实 @cyning/harness v2.23.0 · Agent Skills 封装)
|
|
307
|
+
summary: skills/ 为纯生成物 · 条文改正文未重跑 build → skills check 挡
|
|
308
|
+
status: mechanical
|
|
309
|
+
mechanism: "skills check drift 闸(src/cli-skills.ts#227-235,#416-423)+ test/cli-docs-121.test.ts(生成物==落盘断言)+ test/cli-skills-install.test.ts"
|
|
310
|
+
gap: null
|
|
311
|
+
notes: "非条文纪律 · 新机制登记(格式纪律机械闸)"
|
|
312
|
+
mechanism_quality: null
|
|
313
|
+
- id: SK2
|
|
314
|
+
source: SPEC-agent-skills-packaging_v1(旧包史实 @cyning/harness v2.23.0)
|
|
315
|
+
summary: 30/40 执行帽不进 skills 默认分发(T1 评测判死 · eval_t1_gate_bypass 20260806)
|
|
316
|
+
status: mechanical
|
|
317
|
+
mechanism: "generateSkills track=starter-experimental 过滤(src/cli-skills.ts#16,#159,#283)+ 默认集断言(skills build --with-execute-hats 仅评测通道)"
|
|
318
|
+
gap: null
|
|
319
|
+
notes: "隔离编码进构建默认值 · 非文档呼吁"
|
|
320
|
+
mechanism_quality: null
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# harness/invokes
|
|
2
|
+
|
|
3
|
+
## 约定
|
|
4
|
+
|
|
5
|
+
- 路径:`docs/harness/invokes/by-task/<task_slug>/invoke_YYYYMMDD_<hat>_<slug>.md`
|
|
6
|
+
- 每 **新帽** 开局落盘 §3 调用体(同帽追问不新增)
|
|
7
|
+
- 与 task `### 自检结论`、`docs/harness/reviews/` 并列可追溯
|
|
8
|
+
|
|
9
|
+
## v0.1 已交付(T3 · M2)
|
|
10
|
+
|
|
11
|
+
| 文件 | 状态 | 说明 |
|
|
12
|
+
|------|------|------|
|
|
13
|
+
| [`TEMPLATE_invoke.md`](./TEMPLATE_invoke.md) | ✅ | 元信息表 + Prompt 快照 + 交付摘要骨架 |
|
|
14
|
+
|
|
15
|
+
## 完整规范 POINTER
|
|
16
|
+
|
|
17
|
+
Ink 工作区:`docs/harness/invokes/README.md`(命名、by-task 布局、pointer 策略)
|
|
18
|
+
|
|
19
|
+
## 纪律
|
|
20
|
+
|
|
21
|
+
- **M2 产品仓执行过程** invoke 可留工作区 `by-task/`(见 cyning-harness ONBOARDING)
|
|
22
|
+
- 用户仓 Epic / task 执行 invoke **落本仓** `docs/harness/invokes/`
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Harness invoke 快照模板
|
|
2
|
+
|
|
3
|
+
> **用途**:每 **新帽** 开局时,将 **占位符已全部替换** 的 §3 Prompt 落盘。
|
|
4
|
+
> **路径**:`docs/harness/invokes/by-task/<task_slug>/invoke_YYYYMMDD_<hat>_<slug>.md`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 元信息表(必填)
|
|
9
|
+
|
|
10
|
+
| 字段 | 值 |
|
|
11
|
+
|------|-----|
|
|
12
|
+
| hat_id | 10 / 22 / 30 / 40 / 50 / 00 / CLOSE(合并可写 `30(含 40)`) |
|
|
13
|
+
| task_slug | `<slug>` |
|
|
14
|
+
| freeze_id | (可选) |
|
|
15
|
+
| task_paths | `docs/tasks/active/task_….md` |
|
|
16
|
+
| related_review_or_none | `docs/harness/reviews/…` 或 `无` |
|
|
17
|
+
| git_branch | `task/<slug>` |
|
|
18
|
+
| worktree_root | (并行时必填 · 相对仓根) |
|
|
19
|
+
| created_utc_or_local | YYYY-MM-DD |
|
|
20
|
+
| notes | (可选) |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 可复制 Prompt 快照
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
(粘贴本帽 TEMPLATE-*-invoke §3 全文 · 占位符须全部替换)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 交付摘要(本帽结束时填)
|
|
33
|
+
|
|
34
|
+
- **验证命令** + 退出码
|
|
35
|
+
- **变更路径** 列表
|
|
36
|
+
- **下一棒** slug 或「交还 00」
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 纪律
|
|
41
|
+
|
|
42
|
+
| 规则 | 说明 |
|
|
43
|
+
|------|------|
|
|
44
|
+
| 同帽追问 | **不** 新增 invoke;沿用本节路径 |
|
|
45
|
+
| 打回重开 | 新文件或 `_r2` 后缀 |
|
|
46
|
+
| 与 reviews 分工 | reviews = 结论;invoke = **当时指令** |
|
|
47
|
+
| close 机械闸 | `task close` 按 task 元信息 `required_invoke_hats` / `invoke_retention_profile` 校验帽集合覆盖(v2.12+;缺省 `10,30,40`;文件名含 `30_40` 可双计;`--allow-invoke-gap` 豁免)——**本包已接线**(src/cli-checks.ts evalCloseGuard close_invoke · PRD_DEF-003 阶段二 T6 · test/cli-task-close-guards.test.ts 钉死);另含 **close_pr_merged** / **close_hub_index**(doc-health · v1.7.0+);dry-run=`CLOSE: READY`;`--yes` 成功=`CLOSE: PASS` |
|
|
48
|
+
| 命名 | `invoke_YYYYMMDD_<hat>[_<hat>...]_<slug>.md`(hat token **仅**在日期后、slug 前连续段;slug 勿夹 `10`/`40` 等白名单段 · v2.12.1) |
|
|
49
|
+
| commit | 落盘 + task 回填后再 commit(见 HANDOFF) |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 完整库 POINTER
|
|
54
|
+
|
|
55
|
+
Ink 工作区:`docs/harness/invokes/README.md` · 各 `TEMPLATE-*-invoke.md` §3
|
|
56
|
+
|
|
57
|
+
## 修订记录
|
|
58
|
+
|
|
59
|
+
| 日期 | 说明 |
|
|
60
|
+
|------|------|
|
|
61
|
+
| YYYY-MM-DD | 从 cyning-harness 嵌入 |
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Task lifecycle · 最小真值(方向二 · v1)
|
|
2
|
+
#
|
|
3
|
+
# 登记真值:状态 / 转移 / 守卫。yaml 本身不是引擎。
|
|
4
|
+
# 由 `lifecycle dry-run` 引擎消费(v2.10+ · 资格判定旁路报告 · 不写盘)。
|
|
5
|
+
# v2.11+ to_30:HG-AUDIT-R1 · HG-TASK-DRAFT 已接线(本包真接线);reviews_retention · audit_D5 · task_lint 已接线(PRD_DEF-003 阶段二 T3 · src/cli-lifecycle.ts evalGuard · test/cli-lifecycle-guards.test.ts 钉死)
|
|
6
|
+
# v2.13+ close:close_self_check · close_acceptance · close_slug · close_status 已接线;close_invoke · close_review 已接线(PRD_DEF-003 阶段二 T6 · src/cli-checks.ts evalCloseGuard · test/cli-task-close-guards.test.ts 钉死);close_wiki_promotion 已接线(见 v2.18 行)
|
|
7
|
+
# v2.17+ close 增补:close_graph_delta · close_kpi · close_experience —— 已接线(PRD_DEF-003 阶段二 T6 · 同 T6 锚点);close_wiki_promotion 已接线(PRD_DEF-003 后续棒 · 见 v2.18 行)
|
|
8
|
+
# v2.18+ close 增补:close_wiki_delta 已接线(PRD_DEF-003 阶段二 T6);close_wiki_promotion —— 已接线(PRD_DEF-003 后续棒 · src/cli-checks.ts evalCloseWikiPromotion 对照旧包 2.24.0 evaluateWikiPromotionPointer · test/cli-task-close-guards.test.ts 钉死)
|
|
9
|
+
# v2.19+ to_00:spec_reviews_retention 已接线(verify --spec 真闸交付 · src/cli-checks.ts findSpecReview/evalSpecReviewsRetention 单一实现源 · PRD_DEF-003 后续棒 · test/cli-verify-spec.test.ts 钉死);to_00/to_30/close 登记守卫全部已接线(dry-run 恒真求值 · 无 unevaluated 残留)
|
|
10
|
+
# v1.7.0+ close:close_pr_merged · close_hub_index 已接线(doc-health SPEC · src/cli-checks.ts · test/cli-task-close-guards.test.ts)
|
|
11
|
+
# 只读展示:npx spec-wave lifecycle show [--json]
|
|
12
|
+
# 本包未附带 JSON Schema(旧 schema 指针已移除 · DEF-009)
|
|
13
|
+
|
|
14
|
+
version: "1"
|
|
15
|
+
|
|
16
|
+
states:
|
|
17
|
+
- id: draft
|
|
18
|
+
note: "含 pending / active 等词表别名 · 见 KNOWN_STATUS_TOKENS;SPEC 侧亦用 draft"
|
|
19
|
+
- id: signed
|
|
20
|
+
note: "SPEC 人签 HG-SPEC-SIGNOFF 后 · 可起草 task"
|
|
21
|
+
- id: in_progress
|
|
22
|
+
- id: done
|
|
23
|
+
note: "close 可接受 completed 别名"
|
|
24
|
+
- id: archived
|
|
25
|
+
note: "task close 归档后 · 物理上在 done/ 目录"
|
|
26
|
+
|
|
27
|
+
transitions:
|
|
28
|
+
- id: to_00
|
|
29
|
+
from: ["draft", "signed"]
|
|
30
|
+
to: signed
|
|
31
|
+
hat: "00"
|
|
32
|
+
description: "SPEC 签收后起草 task(verify --spec 聚合 · v2.8+)"
|
|
33
|
+
# 守卫接线真值(本包):spec_reviews_retention 已接线(dry-run 真求值 · --task 携带待签收 SPEC 路径 · 与 verify --spec 同一实现源)
|
|
34
|
+
guards:
|
|
35
|
+
- id: spec_reviews_retention
|
|
36
|
+
command_or_check: "verify --spec · findSpecReview(v2.8+)"
|
|
37
|
+
severity: block
|
|
38
|
+
allow_flag: "--allow-no-spec-review"
|
|
39
|
+
note: "bugfix / skip_spec_audit 元信息豁免 · 不挂 verify --task"
|
|
40
|
+
|
|
41
|
+
- id: to_30
|
|
42
|
+
from: ["draft", "in_progress"]
|
|
43
|
+
to: in_progress
|
|
44
|
+
hat: "30"
|
|
45
|
+
description: "执行帽开工(verify --task 与全量模式聚合 · v2.9+)"
|
|
46
|
+
# 守卫接线真值(本包):to_30 五守卫全部已接线(HG-AUDIT-R1 / HG-TASK-DRAFT / reviews_retention / audit_D5 / task_lint · PRD_DEF-003 阶段二 T3 dry-run adapter 真求值)
|
|
47
|
+
guards:
|
|
48
|
+
- id: HG-AUDIT-R1
|
|
49
|
+
command_or_check: "gate-check · human_gate HG-AUDIT-R1=approved"
|
|
50
|
+
severity: block
|
|
51
|
+
- id: HG-TASK-DRAFT
|
|
52
|
+
command_or_check: "gate-check · HG-TASK-DRAFT=approved(blocks 22,30)"
|
|
53
|
+
severity: block
|
|
54
|
+
- id: audit_D5
|
|
55
|
+
command_or_check: "verify/audit · test_strategy vs 测试文件存在"
|
|
56
|
+
severity: block
|
|
57
|
+
- id: reviews_retention
|
|
58
|
+
command_or_check: "verify --task 与全量 · findReview R<n> 存在性(v2.5+ · 全量 v2.9+)"
|
|
59
|
+
severity: block
|
|
60
|
+
allow_flag: "--allow-no-review"
|
|
61
|
+
note: "全量模式扫描双路径 active;不跑 lint / D5"
|
|
62
|
+
- id: task_lint
|
|
63
|
+
command_or_check: "verify --task · lintTaskFile(v2.7+)"
|
|
64
|
+
severity: warn
|
|
65
|
+
allow_flag: "--allow-lint-fail"
|
|
66
|
+
note: "升 block 前置:active lint FAIL 率下降或另立「仅新流转」SPEC(N2-C)"
|
|
67
|
+
|
|
68
|
+
- id: close
|
|
69
|
+
from: ["done"]
|
|
70
|
+
to: archived
|
|
71
|
+
hat: "close"
|
|
72
|
+
description: "task close · active→done 归档(逻辑态 done→archived)"
|
|
73
|
+
# 守卫接线真值:既有 close_* + doc-health close_pr_merged / close_hub_index(src/cli-checks.ts evalCloseGuard · task close 与 lifecycle dry-run 同一实现源)
|
|
74
|
+
guards:
|
|
75
|
+
- id: close_invoke
|
|
76
|
+
command_or_check: "task close 检查1 · invoke hats 集合覆盖(required_invoke_hats / profile · v2.12+)"
|
|
77
|
+
severity: block
|
|
78
|
+
allow_flag: "--allow-invoke-gap"
|
|
79
|
+
note: "缺省 default=10,30,40;minimal=30;full=10,20,30,40,00,CLOSE(与旧包 2.24.0 口径已核对一致 · 不含 22/50);40 可与 30 合并文件名;v2.12.1 去掉 invoke_hats_retention 别名"
|
|
80
|
+
- id: close_self_check
|
|
81
|
+
command_or_check: "task close 检查2 · 自检结论已回填"
|
|
82
|
+
severity: block
|
|
83
|
+
- id: close_acceptance
|
|
84
|
+
command_or_check: "task close 检查3 · 验收勾选"
|
|
85
|
+
severity: block
|
|
86
|
+
allow_flag: "--allow-unchecked"
|
|
87
|
+
- id: close_slug
|
|
88
|
+
command_or_check: "task close 检查4 · slug 一致"
|
|
89
|
+
severity: block
|
|
90
|
+
- id: close_status
|
|
91
|
+
command_or_check: "task close 检查5 · 状态 done/completed"
|
|
92
|
+
severity: block
|
|
93
|
+
- id: close_review
|
|
94
|
+
command_or_check: "task close 检查6 · R<n> 审查文(v2.5+)"
|
|
95
|
+
severity: block
|
|
96
|
+
allow_flag: "--allow-no-review"
|
|
97
|
+
- id: close_graph_delta
|
|
98
|
+
command_or_check: "task close · graph_delta(缺字段 WARN;none 无 note / 路径不存在 BLOCK · v2.17+)"
|
|
99
|
+
severity: block
|
|
100
|
+
note: "缺字段由 adapter 返回 warn · 不挡 dry-run;fail 级与 close 同语义"
|
|
101
|
+
- id: close_kpi
|
|
102
|
+
command_or_check: "task close · KPI 可解析分数(kpi_aggregator=CLOSE · v2.17+)"
|
|
103
|
+
severity: block
|
|
104
|
+
allow_flag: "--allow-kpi-gap"
|
|
105
|
+
- id: close_experience
|
|
106
|
+
command_or_check: "task close · experience_capture(required 硬闸 · v2.17+ · 本包已接线 PRD_DEF-003 阶段二 T6)"
|
|
107
|
+
severity: block
|
|
108
|
+
allow_flag: "--allow-experience-gap"
|
|
109
|
+
- id: close_wiki_delta
|
|
110
|
+
command_or_check: "task close · wiki_delta(缺字段 BLOCK;none|n/a 无 note / 路径不存在 BLOCK · v2.18+)"
|
|
111
|
+
severity: block
|
|
112
|
+
allow_flag: "--allow-wiki-gap"
|
|
113
|
+
- id: close_wiki_promotion
|
|
114
|
+
command_or_check: "task close · wiki 晋升指针(experience=required 且 wiki_delta=path · v2.18+)"
|
|
115
|
+
severity: block
|
|
116
|
+
allow_flag: "--allow-wiki-gap"
|
|
117
|
+
note: "本包已接线(PRD_DEF-003 后续棒 · src/cli-checks.ts evalCloseWikiPromotion · 与 task close / dry-run 同一实现源 · 豁免与 wiki_delta 共用 --allow-wiki-gap)"
|
|
118
|
+
- id: close_pr_merged
|
|
119
|
+
command_or_check: "task close · 关联 PR MERGED(related_pr / gh pr view 当前分支 · doc-health)"
|
|
120
|
+
severity: block
|
|
121
|
+
allow_flag: "--allow-no-pr-merge"
|
|
122
|
+
note: "close_pr_policy=exempt + close_pr_exempt_note 亦可;不自动 gh pr merge"
|
|
123
|
+
- id: close_hub_index
|
|
124
|
+
command_or_check: "task close · Hub 索引行(检测 Hub 文件则要求含 basename · A+manifest 可关)"
|
|
125
|
+
severity: block
|
|
126
|
+
allow_flag: "--allow-no-hub"
|
|
127
|
+
note: "仓级 close_hub_gate 缺省 true;false 则 skip;无 Hub 文件 skip"
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# 帽子:总调度(Harness · 00 · Starter 精简)
|
|
2
|
+
|
|
3
|
+
> **编号 `00`**:**不插入** SDD 链 10→50 的法定顺序;由 **主 Chat Agent** 承担编排。
|
|
4
|
+
> **本文件**:随 `dsh-coding-kit` 发布的 **Starter 精简真值**(默认行为强制)。
|
|
5
|
+
> **完整 Extended**(KPI / Handoff 模板 / 链式 PROMPT):工作区或私仓 Extended 集;薄指针见 `assets/docs/POINTER_SDD_HAT_FLOW.md`。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 默认行为(强制)
|
|
10
|
+
|
|
11
|
+
> **问题**:未特别说明时,自称 00 的会话常把 10/20/30/文档迁移等过程工作**自己做完**。
|
|
12
|
+
> **预期默认**:00 是 **编排与收口**,不是全栈代劳。
|
|
13
|
+
|
|
14
|
+
| 阶段 | 00 默认做什么 | 00 默认不做什么 |
|
|
15
|
+
|------|----------------|-----------------|
|
|
16
|
+
| **开工前** | 读闸 / 大纲 / 定路径(A/B/C/D);产出 **下一棒可复制 Prompt** 交给子 Agent | 不顺手把整链做完 |
|
|
17
|
+
| **bulk-split 后 · 派 30 前** | bulk-split(一次拆 ≥2 个 active task)后、派第一棒 30 前**必跑** `npx --yes spec-wave task lint-wiki-delta --target .`(命令串与 lint-wiki-delta CI sample `run:` 行逐字一致),并确认每个新 task 文件已预填 `## Harness 元信息` + `wiki_delta` | 不跳过早检直接派第一棒 30 |
|
|
18
|
+
| **最多参与的第一步** | 按复杂度:**无初稿**时起草 SPEC **或** task 初版(二选一或「极简壳 + 交 10」) | 不兼做 20 审、30 改码、大段文档迁移实现 |
|
|
19
|
+
| **中间全链** | **全部交子 Agent**(`Task` / 新会话):10 → 20 → 30/40 → …;00 只收 ≤10 行回报、更新阶段表、准备下一棒 Prompt | **不**自己实现内容(含「顺手改 kit / 迁文档 / 写单测」) |
|
|
20
|
+
| **收口** | **50**(可自做 **或** 再开新 Agent)+ **CLOSE**(关账清单 / Hub / KPI / `task close`) | 50 未过时不擅自扩 scope 代 30 改 |
|
|
21
|
+
|
|
22
|
+
### 已有初版 SPEC 或 task 时(硬规则)
|
|
23
|
+
|
|
24
|
+
当用户明确 **「你是 00」**,且仓库里 **已存在** 可读的初版 SPEC 和/或 task(`docs/spec/**`、`docs/tasks/active/task_*.md` 等):
|
|
25
|
+
|
|
26
|
+
1. **禁止** 00 参与该题的 **实际内容实现**(改 `src/` / 业务文档正文落地 / 单测实现 / 大段迁移执行等)。
|
|
27
|
+
2. 00 **只**:闸扫描 → 产出/刷新 **下一棒 Prompt** → `Task` 派发 → 收短报 → 阶段表 → 最终 **50 + CLOSE**。
|
|
28
|
+
3. 若缺审核文 / 缺 invoke:00 **派 20 / 提醒落盘**,不自己扮 20/30 写完。
|
|
29
|
+
|
|
30
|
+
### 例外(须用户明示,写入 invoke notes)
|
|
31
|
+
|
|
32
|
+
仅当用户 **显式**写明下列之一,00 才可越权亲自做中间步:
|
|
33
|
+
|
|
34
|
+
- 「00 本窗亲自 30 / 亲自落地」
|
|
35
|
+
- 「同会话做完、不派子 Agent」
|
|
36
|
+
- 「授权 00 代签过程文档 **且** 亲自改码」(代签 ≠ 亲自实现;二者分开授权)
|
|
37
|
+
|
|
38
|
+
无例外句 → **按上表默认**。
|
|
39
|
+
|
|
40
|
+
### 长对话须 re-anchor
|
|
41
|
+
|
|
42
|
+
多轮读码 / 大 diff / 口头换帽后若上下文脏:**先读** [`FRAGMENT_hat_reanchor_v1_zh.md`](./FRAGMENT_hat_reanchor_v1_zh.md),再继续本帽。已有初稿时的只委派硬规则(**不改上表语义**)见 [`FRAGMENT_00_delegate_only_v1_zh.md`](./FRAGMENT_00_delegate_only_v1_zh.md)。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 身份
|
|
47
|
+
|
|
48
|
+
你是 **总调度** Agent:读 task 元信息与 `human_gate`;决定派哪顶帽、是否 `Task` 子代理;组 **Handoff**;收各帽短报告;汇总 **KPI**(若 `kpi_aggregator: 00`);对人类只报阶段结论 / 阻塞 / 待签字。
|
|
49
|
+
|
|
50
|
+
## 只做什么
|
|
51
|
+
|
|
52
|
+
- 扫描 task:`orchestration`、`audit_profile`、`human_gate`、`experience_capture`、`test_strategy`、`freeze_id`。
|
|
53
|
+
- 为每顶帽准备 **Handoff**(路径表 + ≤15 行结论;**禁止**贴 30/总 Chat 长文)。
|
|
54
|
+
- 用 **`Task` 工具** 派发子代理;默认中间帽全部派发;收口 50+CLOSE。
|
|
55
|
+
- 触发 **CLOSE** 时核对关账清单(含 dry-run=`CLOSE: READY` ≠ `PASS`;Hub / PR 闸若启用)。
|
|
56
|
+
|
|
57
|
+
## 禁止什么
|
|
58
|
+
|
|
59
|
+
- 不替人改 `human_gate` 为 `approved`;不代签审查(除非用户 **明示**授权代签过程文档)。
|
|
60
|
+
- 不把子代理工具日志贴回主会话(只收结构化短报告)。
|
|
61
|
+
- 不静默扩 task scope。
|
|
62
|
+
- **默认禁止**:在已有 SPEC/task 初版后,00 亲自做内容实现;禁止把「统筹落地」自行解释成「我把 30 做完」。
|
|
63
|
+
|
|
64
|
+
## 输出形状(对人类)
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
阶段:{帽} · {pass|blocked|待 HG-xxx}
|
|
68
|
+
交付:{Deliverable 路径列表}
|
|
69
|
+
下一棒:{帽 | CLOSE | 停—原因}
|
|
70
|
+
下一棒 Prompt:{已落盘路径或「见下复制区」}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
有初版 SPEC/task 且无「亲自实现」授权时,汇报须含一句:**本窗未改实现码 · 已派 / 待派子 Agent:{帽}**。
|
|
74
|
+
|
|
75
|
+
## 停止条件
|
|
76
|
+
|
|
77
|
+
- 关账完成(task → `done/` + 关闭回溯)。
|
|
78
|
+
- 或输出 **阻塞清单**(缺 gate、缺自检、KPI blocked、CI 红)。
|
|
79
|
+
|
|
80
|
+
## Judgment(00 自评 · 关账轮)
|
|
81
|
+
|
|
82
|
+
- **gate/risk**:是否仍有 pending 闸。
|
|
83
|
+
- **hat_self**:编排是否漏帽;**是否违反「默认不亲自实现」**(违规则记 fail 并说明例外授权句)。
|
|
84
|
+
|
|
85
|
+
## 修订记录
|
|
86
|
+
|
|
87
|
+
| 日期 | 摘要 |
|
|
88
|
+
|------|------|
|
|
89
|
+
| 2026-08-26 | v1.7.1:Starter 入包 · 默认行为表(自工作区 Extended 收敛) |
|
|
90
|
+
| 2026-08-27 | K4:默认行为表增 bulk-split 后 lint-wiki-delta 早检行(命令串与 CI sample 逐字一致) |
|
|
91
|
+
| 2026-08-31 | 长对话须 re-anchor:链到 FRAGMENT_hat_reanchor / FRAGMENT_00_delegate_only(不改默认表语义) |
|