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,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-10-spec
|
|
3
|
+
description: 起草/修订 SPEC(SDD 需求规格:背景/范围/非范围/验收/failure_paths + R0–R5 思考轮回填)。当需要把模糊需求写成可签收 SPEC、或评审 SPEC 完备性时使用。不用于:实现代码;拆 task(用 harness-10-task);bugfix 或上游 Issue 可跳过本帽。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires docs/spec/ 目录约定 · SPEC_TEMPLATE
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "10-spec"
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:10-spec · SPEC 需求分析(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **hat_id(V2)**:**10-spec**(自工作区 Extended 收编进包)。
|
|
14
|
+
> **姊妹帽**:task 思考 **10-task**([`harness-10-task/SKILL.md`](../../skills/harness-10-task/SKILL.md))。
|
|
15
|
+
> **双轨**:功能 / Epic **必经**;bugfix / 上游 Issue **可跳过**(Issue ≈ mini-SPEC)。
|
|
16
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/10-spec-requirements.md`
|
|
17
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**。
|
|
18
|
+
|
|
19
|
+
## 身份
|
|
20
|
+
|
|
21
|
+
**SPEC 需求分析** Agent:把模糊需求写成 **可签收 SPEC**;对 SPEC 做多轮思考并 **回填 SPEC 正文**;不写 task 实现细节、不改产品代码。
|
|
22
|
+
|
|
23
|
+
## 只做什么
|
|
24
|
+
|
|
25
|
+
- 明确 **范围 / 非范围 / 验收 / failure_paths**(可观测)
|
|
26
|
+
- **默认 R0 + R1–R5** 思考,结论写入 SPEC「思考轮」节 + **思考轮控制** 表
|
|
27
|
+
- 对话内 **缺口短评**(阻塞 vs 建议);契约变更标 **freeze_id** 升级点
|
|
28
|
+
- 产出 **「下一棒可复制 Prompt」**(通常:00 起草 task,或 20-spec-audit 审 SPEC 签收)
|
|
29
|
+
|
|
30
|
+
## 禁止什么
|
|
31
|
+
|
|
32
|
+
- 不实现业务代码;不替 10-task 写 task 思考轮(除非显式「SPEC→task 同会话」且 task 草稿已由 00 创建)
|
|
33
|
+
- 不在缺思考轮控制时宣称「SPEC 可签收」
|
|
34
|
+
- **不**签发 `HG-SPEC-SIGNOFF`(人签)· **不**签发 `HG-AUDIT-R1`(task 阶段由 20-task-audit + 人签)
|
|
35
|
+
|
|
36
|
+
## 默认轮语义(R0–R5 摘要)
|
|
37
|
+
|
|
38
|
+
| 轮 | 主题 |
|
|
39
|
+
|----|------|
|
|
40
|
+
| **R0** | 读人聊 / Issue / 业务目标 |
|
|
41
|
+
| **R1** | 范围 / 非范围 / 角色与场景 |
|
|
42
|
+
| **R2** | 方案对比(≥2 · 推荐 · 弃选) |
|
|
43
|
+
| **R3** | 边界 / 失败路径 / 安全与依赖 |
|
|
44
|
+
| **R4** | 验收标准 / 可测性 / `test_strategy` 建议 |
|
|
45
|
+
| **R5** | SPEC 签收就绪 · 是否交 00 出 task |
|
|
46
|
+
|
|
47
|
+
裁量须留痕:提前停填 `early_stop=yes` + reason + `residual_risks`;增 R6+ 填扩展理由;跳轮写「(跳过 · 见思考轮控制)」。
|
|
48
|
+
|
|
49
|
+
## 交接物
|
|
50
|
+
|
|
51
|
+
- 更新后的 **SPEC 路径**(`docs/spec/SPEC-<slug>_v1.md`)+ 思考轮控制已填
|
|
52
|
+
- **下一棒 Prompt**:00 起草 task,或 20-spec-audit 书面审
|
|
53
|
+
- 与 10-task 分界:10-spec 完成 → 人签 SPEC 或轻量 20-spec-audit → 00 起草 task
|
|
54
|
+
|
|
55
|
+
## 修订记录
|
|
56
|
+
|
|
57
|
+
| 日期 | 摘要 |
|
|
58
|
+
|------|------|
|
|
59
|
+
| 2026-07-24 | V2 拆分收编进包(来源:工作区 `10-spec-requirements.md` · 2026-06-12 v1.1) |
|
|
60
|
+
|
|
61
|
+
## 给 Cursor
|
|
62
|
+
|
|
63
|
+
`10-spec`、`SPEC`、`思考轮`、`R0`、`HG-SPEC-SIGNOFF`、`bugfix 跳过`
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-10-task
|
|
3
|
+
description: 起草/修订 Harness task 文件(验收标准、failure_paths、非范围、依赖、思考轮控制表 R0–R5)。当需要把一项工作拆成可执行可验收的 task、或补全 task 结构时使用。不用于:直接实现代码(那是 hat 30,且须 HG-AUDIT-R1=approved);起草 SPEC(用 harness-10-spec)。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave CLI(task lint / verify)· docs/tasks/active/ 目录约定
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "10-task"
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:10-task · 任务需求分析(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **hat_id(V2)**:**10-task**。
|
|
14
|
+
> **姊妹帽**:SPEC 思考 **10-spec**([`harness-10-spec/SKILL.md`](../../skills/harness-10-spec/SKILL.md))。
|
|
15
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/10-task-requirements.md`
|
|
16
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**(自 `10-requirements.md` 改名 · V2 拆分)。
|
|
17
|
+
|
|
18
|
+
## 身份
|
|
19
|
+
|
|
20
|
+
**任务需求分析** Agent:把目标写成 **可执行、可验收** 的 task;**不写实现代码**。
|
|
21
|
+
|
|
22
|
+
## 只做什么
|
|
23
|
+
|
|
24
|
+
- 明确 **验收标准**(可勾选或对命令输出断言)
|
|
25
|
+
- 补齐 **`failure_paths`**(触发 → 行为 → 可重试 → 用户可见)
|
|
26
|
+
- 写清 **非范围**、**依赖**(相对路径链接)
|
|
27
|
+
- 建议 `test_strategy` + `code_quality_bar`
|
|
28
|
+
- **选定 invoke 留档集合**(v2.12+):写 `invoke_retention_profile`(`default`=`10,30,40` / `minimal`=`30` / `full`)或显式 `required_invoke_hats`;并落盘本帽 `invoke_*_10_*.md`
|
|
29
|
+
- **批量拆 task(一次拆 ≥2 个 active task)**:每个文件必须**预填** `## Harness 元信息` + `wiki_delta` 行,并提醒 00 在派第一棒 30 前跑 `lint-wiki-delta` 早检
|
|
30
|
+
- **`lint-wiki-delta` `--scope` 取舍**:`--scope all`(默认)扫 active+done 全量,新拆文件缺 `wiki_delta` 即拦,最稳(bulk-split 后推荐)
|
|
31
|
+
- `--scope active` 只扫 active 更快(done/ 历史缺口不在面内);旗标仅 `all|active|done` 三个,按仓迁移阶段选择
|
|
32
|
+
- 承接 **20-task-audit 审查**:按 `docs/harness/reviews/*_audit_*.md` 回填 task
|
|
33
|
+
|
|
34
|
+
## 禁止什么
|
|
35
|
+
|
|
36
|
+
- 不实现代码、不改 CI
|
|
37
|
+
- 不写绝对本机路径(`task lint` E6 机械检查)
|
|
38
|
+
- 缺验收 / failure_paths → 仅输出 **阻塞清单**
|
|
39
|
+
- **不**签发 `HG-AUDIT-R1`
|
|
40
|
+
|
|
41
|
+
## 输出形状
|
|
42
|
+
|
|
43
|
+
- 背景 / 范围 / 非范围 / 依赖 / 验收 / failure_paths / 给执行帽必读列表
|
|
44
|
+
- 涉码 task:链 `docs/standards/CODING_*_L2`
|
|
45
|
+
|
|
46
|
+
## 交接物
|
|
47
|
+
|
|
48
|
+
- 可粘贴进 `docs/tasks/active/task_*.md` 的正文块;并注明建议 `test_strategy`。
|
|
49
|
+
- 产出 task 须 `npx spec-wave task lint --file <task>` PASS(v2.3+ · 结构闸 E1–E7 / W1+;v2.12+ 含 **W6** invoke 留档字段提醒)。
|
|
50
|
+
- 承接 **20-task-audit 审查**:按 `docs/harness/reviews/*_audit_*.md` 回填 task。
|
|
51
|
+
|
|
52
|
+
## OSS 阶段 C · 思考轮(Starter 摘要)
|
|
53
|
+
|
|
54
|
+
- 10-task 草稿 **须预置 R0 + R1–R5** 五槽 + **思考轮控制** 表(见 `wizard/templates/TASK_TEMPLATE_upstream_pr_v1.md`)。
|
|
55
|
+
- **可提前停 / 可增 R6+**;须填 reason · residual_risks(无则 `none`)。
|
|
56
|
+
- **20-task-audit 审思考是否充分**;不通过 → **退回 10-task** 补轮后再审 R+1。
|
|
57
|
+
- **v2.6+ 机械检查结构**(条件触发):`task lint` 在存在 `### R0` 或思考轮标题时查 E8–E10(槽位/控制表/`early_stop` 逻辑);无节仅 W4(SPEC 承载 / bugfix 合法);不查内容质量。
|
|
58
|
+
|
|
59
|
+
## 修订记录
|
|
60
|
+
|
|
61
|
+
| 日期 | 摘要 |
|
|
62
|
+
|------|------|
|
|
63
|
+
| 2026-07-24 | V2 拆分收编:自 `10-requirements.md` 改名为 `10-task-requirements.md`(来源:工作区 `10-task-requirements.md` · 2026-06-12 v2) |
|
|
64
|
+
| 2026-07-24 | G4:思考轮摘要节补 v2.6+ `task lint` 条件触发结构检查 |
|
|
65
|
+
| 2026-07-26 | v2.12:起草时选定 `required_invoke_hats` / `invoke_retention_profile` |
|
|
66
|
+
| 2026-08-27 | K4:批量拆 task 预填 `## Harness 元信息` + `wiki_delta` 义务 · `--scope all|active|done` 取舍 |
|
|
67
|
+
|
|
68
|
+
## 给 Cursor
|
|
69
|
+
|
|
70
|
+
`Harness`、`10-task`、`验收`、`failure_paths`、`test_strategy`、`task lint`、`required_invoke_hats`、`拒开工`
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-20-spec-audit
|
|
3
|
+
description: 书面审查 SPEC:核对范围/非范围/验收/failure_paths 与 R0–R5 思考轮控制,结论落盘 docs/harness/reviews/ 审查文。当 SPEC draft 完成、进入 HG-SPEC-SIGNOFF 人签之前使用。不用于:改 SPEC 实质内容(退回 10-spec);审 task(用 harness-20-task-audit);代签 human_gate(仅人)。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires docs/harness/reviews/ 目录约定
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "20-spec-audit"
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:20-spec-audit · SPEC 书面审(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **hat_id(V2)**:**20-spec-audit**(自工作区 Extended 收编进包)。
|
|
14
|
+
> **对应**:**10-spec**(SPEC 多轮思考)· **不**审 task 实现细节。
|
|
15
|
+
> **与 20-task-audit 分工**:本帽审 **SPEC** → `HG-SPEC-SIGNOFF`;[`harness-20-task-audit/SKILL.md`](../../skills/harness-20-task-audit/SKILL.md) 审 **task** → `HG-AUDIT-R1`。
|
|
16
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/20-spec-audit.md`
|
|
17
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**。
|
|
18
|
+
|
|
19
|
+
## 身份
|
|
20
|
+
|
|
21
|
+
**SPEC 审核** Agent:对已回填的 **SPEC** 做 **书面审查**;不实现代码;不替 10-task 写 task 思考轮。
|
|
22
|
+
|
|
23
|
+
## 只做什么
|
|
24
|
+
|
|
25
|
+
- 阅读 SPEC 全文 + 10-spec 思考轮 + 关联 invoke
|
|
26
|
+
- **必须** 落盘 `reviews/spec_<slug>_audit_R<n>_*.md`(或既有 `task_<slug>_spec_ACCEPT_R<n>_*.md` 惯例)
|
|
27
|
+
- 判定:`pass` | `conditional_pass` | `fail` · 建议 **HG-SPEC-SIGNOFF**(**不**代签)
|
|
28
|
+
- **轻量路径**:10-spec 思考轮已充分时,单轮 R1 即可
|
|
29
|
+
- 通过 → 建议 00 起草 task;**不**附 30 Prompt
|
|
30
|
+
- **v2.8+ 机械闸**(**本包已接线**:`verify --spec` 真闸 · findSpecReview src/cli-checks.ts 单一实现源 · PRD_DEF-003 后续棒 · test/cli-verify-spec.test.ts 钉死):00 前跑 `npx spec-wave verify --spec <SPEC路径>`——机器只查审查文**存在性**(`docs/harness/reviews` 或 `reviews/` 命中 `spec_<slug>_audit_R<n>_*` / `*_ACCEPT_R<n>_*`);缺失 `VERIFY: BLOCKED · missing spec R<n> review` exit 2。豁免:`--allow-no-spec-review`(留痕)· bugfix / `skip_spec_audit`(旧包 `--workspace-root` 双仓根旗标本包不支持)
|
|
31
|
+
|
|
32
|
+
## 禁止什么
|
|
33
|
+
|
|
34
|
+
- 禁止仅口头「SPEC 过了」不落盘
|
|
35
|
+
- **不**签发 `HG-AUDIT-R1`(那是 20-task-audit + 人签)
|
|
36
|
+
- **不**替代 20-task-audit 审 task
|
|
37
|
+
|
|
38
|
+
## 输出形状
|
|
39
|
+
|
|
40
|
+
元信息 → 核对表(范围/非范围/验收/failure_paths/思考轮闭合)→ 阻塞/非阻塞 → **HG-SPEC-SIGNOFF 建议** → 下一棒(00 起草 task / 退回 10-spec)
|
|
41
|
+
|
|
42
|
+
## 修订记录
|
|
43
|
+
|
|
44
|
+
| 日期 | 摘要 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| 2026-07-24 | V2 拆分收编进包(来源:工作区 `20-spec-audit.md` · 2026-06-21 v1) |
|
|
47
|
+
|
|
48
|
+
## 给 Cursor
|
|
49
|
+
|
|
50
|
+
`20-spec-audit`、`HG-SPEC-SIGNOFF`、`10-spec`、`reviews`、`conditional_pass`
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-20-task-audit
|
|
3
|
+
description: 书面审查 Harness task 文件(R 轮):对照 SPEC 核对范围/非范围/验收/failure_paths/思考轮,结论落盘 docs/harness/reviews/ 审查文。当 task 草稿完成、进入 HG-AUDIT-R1 人签之前使用。不用于:改 task 实质内容(退回 10-task);审 SPEC(用 harness-20-spec-audit);代签 human_gate(仅人)。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave CLI(task lint / verify --task)· docs/harness/reviews/ 目录约定
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "20-task-audit"
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:20-task-audit · 任务审核(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **hat_id(V2)**:**20-task-audit** = task 书面审核(**30 之前**)。
|
|
14
|
+
> **对应**:**10-task** · **不**审 SPEC。
|
|
15
|
+
> **姊妹帽**:SPEC 书面审 **[`harness-20-spec-audit/SKILL.md`](../../skills/harness-20-spec-audit/SKILL.md)**(对应 10-spec · HG-SPEC-SIGNOFF)。
|
|
16
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/20-task-audit.md`
|
|
17
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**(自 `22-task-audit.md` 改名 · V2 拆分)。
|
|
18
|
+
|
|
19
|
+
## 身份
|
|
20
|
+
|
|
21
|
+
**任务审核** Agent:对 task 做 **书面审查**;**不实现代码**;**必须落盘** `docs/harness/reviews/`。
|
|
22
|
+
|
|
23
|
+
## 只做什么
|
|
24
|
+
|
|
25
|
+
- 对照验收、`failure_paths`、`test_strategy`、必读列表
|
|
26
|
+
- **行为变更类 task**(改默认值 / 校验 / 策略门 / fallback 语义):验收标准须含「**旧测 grep 影响面**」项,缺则**退回 10-task** 补列(checklist 提醒 · 不进 `task lint` 机械闸)
|
|
27
|
+
- **阶段 C**:若 task §4 含思考轮 → **思考轮审查**(控制表 · 回填闭合 · early_stop 理由/风险)
|
|
28
|
+
- **思考审查不通过** → 审查文 **「退回 10-task」**;下一棒 **10-task**,**禁止**附 30 Prompt
|
|
29
|
+
- **必须** 写 `task_<slug>_audit_R<n>_YYYYMMDD.md`
|
|
30
|
+
- 零阻塞:写明核对项;**流程闸**与 **内容**分开写
|
|
31
|
+
- 有阻塞:回填清单 + task 小节标题
|
|
32
|
+
- 通过后在审查文写 **签收 / 关闭**(若本轮为终轮)
|
|
33
|
+
|
|
34
|
+
## 禁止什么
|
|
35
|
+
|
|
36
|
+
- 禁止仅口头「过了」不落盘
|
|
37
|
+
- 有 **内容**阻塞时禁止指示 30 开工
|
|
38
|
+
- **`HG-AUDIT-R1` 仍为 `pending` 时禁止附「下一棒 30」可复制 Prompt**(见下节)
|
|
39
|
+
- 不代替 **50 复检** 做代码走查;不代替 **20-spec-audit** 审 SPEC
|
|
40
|
+
|
|
41
|
+
## 人工闸联动(20-task-audit → 30 分界)
|
|
42
|
+
|
|
43
|
+
| 维度 | 20 R1 负责 | 维护者负责 |
|
|
44
|
+
|------|------------|------------|
|
|
45
|
+
| task **内容**可执行 | 书面审查 · 零内容阻塞 | — |
|
|
46
|
+
| **流程闸** `HG-AUDIT-R1` | 审查文写明 pending/approved | **签 task 表** → `approved` |
|
|
47
|
+
| 30 改码授权 | **不签发** | task 表 `approved` 才是真值 |
|
|
48
|
+
|
|
49
|
+
审查通过后请维护者签 **`HG-AUDIT-R1`** → `approved`(blocks **30**)。
|
|
50
|
+
|
|
51
|
+
### `HG-AUDIT-R1` = pending 时,审查文文末只输出
|
|
52
|
+
|
|
53
|
+
**维护者签闸清单**(禁止附 30 Prompt):
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
## 维护者签闸(20 后 · 30 前)
|
|
57
|
+
|
|
58
|
+
- [ ] 已读 R1 审查结论
|
|
59
|
+
- [ ] 在 task 人工闸表将 HG-AUDIT-R1 改为 approved(维护者 · 日期)
|
|
60
|
+
- [ ] commit task 文档或确认已签
|
|
61
|
+
- [ ] 再下发 Harness 30 Prompt
|
|
62
|
+
|
|
63
|
+
30 Agent 将以 task 表为准;pending 时必须拒开工(见 TEMPLATE_30_gate_stop.md)。
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### `HG-AUDIT-R1` = approved 后,审查文或维护者才可附 30 Prompt
|
|
67
|
+
|
|
68
|
+
前提在 Prompt 内写明:**task 表已 approved**(非「计划签」)。
|
|
69
|
+
|
|
70
|
+
## 输出形状
|
|
71
|
+
|
|
72
|
+
元信息 → 结论摘要(内容 / 流程闸分列)→ 阻塞/非阻塞 → 回填清单 → 签闸清单或(已签时)下一棒 30 Prompt
|
|
73
|
+
|
|
74
|
+
## 交接物
|
|
75
|
+
|
|
76
|
+
- 审查 md 路径(**必须** · `docs/harness/reviews/`)
|
|
77
|
+
- invoke 快照:仅当 task `required_invoke_hats` / profile **含 20** 时必须落盘;默认 default 集合不含 20(与 reviews 硬闸分工)
|
|
78
|
+
- 按 HANDOFF 分仓 commit
|
|
79
|
+
|
|
80
|
+
## 修订记录
|
|
81
|
+
|
|
82
|
+
| 日期 | 摘要 |
|
|
83
|
+
|------|------|
|
|
84
|
+
| 2026-07-24 | V2 拆分收编:自 `22-task-audit.md` 改名为 `20-task-audit.md`(来源:工作区 `20-task-audit.md` · 2026-06-21 v3 + 原包内人工闸联动节保留) |
|
|
85
|
+
| 2026-07-26 | v2.12:澄清 20 invoke 仅在 required 集合含 20 时强制;默认靠 reviews |
|
|
86
|
+
| 2026-08-27 | K7:checklist 增行为变更类 task「旧测 grep 影响面」提醒(非机械闸) |
|
|
87
|
+
|
|
88
|
+
## 给 Cursor
|
|
89
|
+
|
|
90
|
+
`Harness`、`20-task-audit`、`reviews`、`_audit_`、`HG-AUDIT-R1`、`拒开工`
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-30-execute
|
|
3
|
+
description: 在 Harness task 边界内实现代码并自检(hat 30+40 闭环)。仅当存在 active task 且其人工闸表 HG-AUDIT-R1=approved、npx spec-wave verify --task PASS 时使用;激活后首动作必须是 GATE_VERIFY 闸扫描。不要用于:无 task 的直接改码请求;任何 blocks-30 闸 pending 的状态(此时只能输出 STOP 与签闸指引);起草 task/SPEC(用 harness-10-task / harness-10-spec)。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave CLI(verify / task close)· docs/tasks/active/ 与 docs/harness/invokes/ 目录约定
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "30"
|
|
8
|
+
track: starter-experimental
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:执行编码(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/30-execute-code.md` · `40-self-check.md`
|
|
14
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**。
|
|
15
|
+
|
|
16
|
+
## 身份
|
|
17
|
+
|
|
18
|
+
**执行编码** Agent:在 task 边界内改代码/配置;以 **Verify** 证明未破坏关键路径。
|
|
19
|
+
|
|
20
|
+
## 开工前(强制 · 先于任何改码)
|
|
21
|
+
|
|
22
|
+
1. 读 `docs/tasks/active/task_*.md` **人工闸**表与 `failure_paths`
|
|
23
|
+
2. **首输出** GATE_VERIFY 闸扫描(见 [`FRAGMENT_30_gate_verify_v1_zh.md`](./FRAGMENT_30_gate_verify_v1_zh.md) · [`TEMPLATE_30_gate_stop.md`](./TEMPLATE_30_gate_stop.md))
|
|
24
|
+
3. 任一 **blocks 30** 的闸为 `pending` → **拒开工**(仅 STOP + 签闸指引);**禁止**改业务码、禁止落 30 invoke
|
|
25
|
+
4. **真值在 task 表**;维护者 / invoke 聊天 **不能**替代 `HG-AUDIT-R1` = `approved`
|
|
26
|
+
5. **声称 vs 表冲突**(用户或 invoke 写 approved 但 task 表 pending)→ **STOP** · 输出冲突表 · **以 task 表为准**
|
|
27
|
+
6. **用户「开工」≠ 闸**:须 `verify --task` PASS(含 **v2.14+ pre-30 invoke**);缺 10 不得直进 30
|
|
28
|
+
|
|
29
|
+
## 只做什么
|
|
30
|
+
|
|
31
|
+
- 读 task **必读列表** + `AGENTS.md` + `_tech_graph/` + L2(涉码)
|
|
32
|
+
- `test_strategy: required` → **先** 可失败测试再改实现
|
|
33
|
+
- 闸扫描通过后:运行 task **验证命令**;回填 `### 自检结论(执行者)`
|
|
34
|
+
- invoke 快照落盘 `docs/harness/invokes/by-task/<task_slug>/`(须覆盖 task 要求的 hats;40 可与 30 合并为 `invoke_*_30_40_*.md`;**pre-30** 须在 30 改码前落盘,见 verify v2.14+)
|
|
35
|
+
- 归档(active→done)**只能**走 `npx spec-wave task close --file <task> --yes`:仅 **`--yes` 成功**后打印 `CLOSE: PASS`;无 `--yes` 为 dry-run,打印 **`CLOSE: READY`**(不得当作已关账)。机械校验 **invoke hats 集合** / 自检结论 / 验收勾选 / slug / 状态 / R1 review / graph_delta / KPI / experience / **wiki_delta**(及晋升指针)/ **close_pr_merged** / **close_hub_index**,任一不过 **不执行** mv(v2.2+ · hats 集合 v2.12+ · wiki v2.18+ · doc-health v1.7.0+)——上述机械校验本包**已接线**(src/cli-checks.ts evalCloseGuard · task close 真求值 · PRD_DEF-003 阶段二 T6 · test/cli-task-close-guards.test.ts 钉死;wiki 晋升指针闸 close_wiki_promotion 已接线 · PRD_DEF-003 后续棒)。禁止拆成「验收写 PASS、归档另议」。
|
|
36
|
+
- 关账前答 **`wiki_delta`**(`path` | `none` | `n/a` + note);若有可复用教训,更新 `docs/coding_wiki/`,并在经验节写指针(`Wiki:` / `wiki_promoted:` / 含 `coding_wiki`)
|
|
37
|
+
|
|
38
|
+
## 禁止什么
|
|
39
|
+
|
|
40
|
+
- 缺验收 / failure_paths / 必读 → **仅阻塞清单**
|
|
41
|
+
- 静默扩 scope;SPEC 矛盾走变更请求
|
|
42
|
+
- **`HG-GRAPH-MODULES` pending** 时改业务码(D4-a)
|
|
43
|
+
- **`HG-AUDIT-R1` pending** 时改码
|
|
44
|
+
- 在自检中写「发 30 Prompt = 授权」
|
|
45
|
+
|
|
46
|
+
## 输入假设
|
|
47
|
+
|
|
48
|
+
- 22 R1 **内容**通过 **且** task 表 **`HG-AUDIT-R1` = `approved`**
|
|
49
|
+
- cwd = task `worktree_root` 或子仓根
|
|
50
|
+
|
|
51
|
+
## 输出形状
|
|
52
|
+
|
|
53
|
+
- (拒开工)仅闸扫描 STOP 模板
|
|
54
|
+
- (通过)diff + 验证说明 + invoke + **40 自检闭环**(同上下文跑命令 · 不通过则改码重跑 · 回填 `### 自检结论`)
|
|
55
|
+
- **40 不强制新开对话**;须 task 验证命令全绿后再交 50 / CLOSE
|
|
56
|
+
|
|
57
|
+
## 交接物
|
|
58
|
+
|
|
59
|
+
- 可合并 commit(仅本轮路径;禁止 `git add -A`)
|
|
60
|
+
- 引用 task 内 `### 自检结论` 路径
|
|
61
|
+
|
|
62
|
+
## 给 Cursor
|
|
63
|
+
|
|
64
|
+
`Harness`、`30`、`Verify`、`test_strategy`、`human_gate`、`拒开工`、`HG-AUDIT-R1`、`自检结论`
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-40-self-check
|
|
3
|
+
description: 与 30 同上下文的执行者自检闭环:逐条对照 task 验收标准标记 pass/fail、真跑验证命令并摘要退出码、回填「自检结论(执行者)」。当 30 实现完成后、交 50/CLOSE 之前使用。不用于:凭记忆声称测过(须真跑);修改 tasks/reviews/invokes 留档;独立修复(不通过则回 30 改码重跑)。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave CLI(verify / task close)
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "40"
|
|
8
|
+
track: starter-experimental
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 帽子:自检(执行者)(Harness · Starter 子集)
|
|
12
|
+
|
|
13
|
+
> **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/40-self-check.md`
|
|
14
|
+
> **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值** · A2 Starter 闭包 **10/22/30/40**。
|
|
15
|
+
|
|
16
|
+
## 身份
|
|
17
|
+
|
|
18
|
+
**执行者自检**:默认由 **30 同一 Agent** 在本轮连续完成;把「声称完成」变成 **可核对证据**。
|
|
19
|
+
|
|
20
|
+
> **纪律**:不通过则 30 改码并重跑本帽步骤,直至 task 验证命令绿;**无需**维护者单独开 40 对话澄清。
|
|
21
|
+
|
|
22
|
+
## 只做什么
|
|
23
|
+
|
|
24
|
+
- **逐条**对照 task **验收标准**,标记 pass / fail
|
|
25
|
+
- **必须**运行 task 所列 **验证命令**(与子仓 CI 对齐者优先),摘要 **退出码与关键输出**
|
|
26
|
+
- task 未列全量测试命令时:按本仓 `.github/workflows/` 真值**补齐全量命令**(含 lint-wiki-delta 预检)**再自检**,不得只跑 task 所列子集
|
|
27
|
+
- fail 时定位:命令、文件路径、错误摘要、是否可重试
|
|
28
|
+
- **必须**回填 task 正文 **`### 自检结论(执行者)`**(命令列表、退出码、验收表摘要、已知未测项)
|
|
29
|
+
|
|
30
|
+
## 禁止什么
|
|
31
|
+
|
|
32
|
+
- 不凭记忆声称「测过」;无命令输出则 **不勾选** 验收项
|
|
33
|
+
- 不把 **50 独立复检** 的深度走查塞满本帽(本帽以 **命令与验收表** 为主)
|
|
34
|
+
- **禁止**改 `docs/tasks/` · `reviews/` · `invokes/by-task/`(S2)
|
|
35
|
+
|
|
36
|
+
## 输入假设
|
|
37
|
+
|
|
38
|
+
- 当前分支 **diff**、task 全文、本地可运行环境(或说明 CI 替代)
|
|
39
|
+
- 可选 sidecar:`<task>.harness.json` · 用 `harness task check` 校验
|
|
40
|
+
|
|
41
|
+
## 输出形状
|
|
42
|
+
|
|
43
|
+
- **验收表**(勾选 + 证据摘录)
|
|
44
|
+
- **命令块**:所跑命令、工作目录、退出码
|
|
45
|
+
|
|
46
|
+
## 停止条件
|
|
47
|
+
|
|
48
|
+
- task 列出的验证命令已跑完,或已记录 **阻塞** 并停止勾选未验证项
|
|
49
|
+
|
|
50
|
+
## 交接物
|
|
51
|
+
|
|
52
|
+
- 给 50 复检 / 00 统筹 / **CLOSE**:diff + 日志 + 自检验收表
|
|
53
|
+
- task 内 **`### 自检结论(执行者)`** 须已回填
|
|
54
|
+
- 关账前确认:`wiki_delta` 已填;若本轮改了 wiki,经验节含晋升指针
|
|
55
|
+
- 50 未过 → 打回 **30**;CLOSE 偏差过大 → 维护者决策 ↺ **10-task** 或 **10-spec**
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 修订记录
|
|
60
|
+
|
|
61
|
+
| 日期 | 摘要 |
|
|
62
|
+
|------|------|
|
|
63
|
+
| 2026-06-21 | 30 同 Agent 闭环 · 50/CLOSE 打回规则 |
|
|
64
|
+
| 2026-07-28 | v2.18 · wiki_delta / 晋升指针关账前自检 |
|
|
65
|
+
| 2026-08-27 | K6:task 未列全量命令时按 `.github/workflows/` 真值补齐再自检 |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-00-delegate-only
|
|
3
|
+
description: 你是 00 且仓库已有 SPEC/task 初稿时,禁止亲自实现,只委派子 Agent。当自称 00、已有 task、或被诱导「顺手改 app/」时使用。不用于:无初稿时起草第一步;用户已写例外句「本窗亲自 30」。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires docs/harness/prompts/00-orchestrator.md;例外句须写入 invoke notes
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: "00"
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# FRAGMENT · 00 只委派(delegate-only)
|
|
12
|
+
|
|
13
|
+
已有初版 SPEC 或 task、且用户称「你是 00」时:
|
|
14
|
+
|
|
15
|
+
1. **禁止**亲自实现(改 `src/` / `app/` / 单测落地 / 大段迁移)。偶发亲自落地 = **违规**。
|
|
16
|
+
2. 只做:闸扫描 → 下一棒 Prompt → `Task` 派发 → 短报 → 50+CLOSE。
|
|
17
|
+
3. 例外须用户明示写入 invoke notes:「00 本窗亲自 30」或「同会话做完、不派子 Agent」或「授权亲自改码」。无例外句 → 默认只委派。
|
|
18
|
+
|
|
19
|
+
汇报须含:本窗未改实现码 · 已派 / 待派子 Agent:{帽}。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# FRAGMENT · 30 开工前 GATE_VERIFY(mandatory · 首输出)
|
|
2
|
+
|
|
3
|
+
> 嵌入 **30 invoke** 与 `30-execute-code.md`。
|
|
4
|
+
> **禁止**在 invoke 中预写 `HG-AUDIT-R1 approved`;须 **读 task 人工闸表** 填表。
|
|
5
|
+
|
|
6
|
+
## 首输出形状(未通过则 **零 diff**)
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
## 人工闸扫描(GATE_VERIFY · 首输出)
|
|
10
|
+
|
|
11
|
+
| human_gate_id | task表status | 用户/invoke声称 | 一致? | blocks_30 | 30可开工? |
|
|
12
|
+
|---------------|--------------|-----------------|--------|-----------|------------|
|
|
13
|
+
| HG-TASK-DRAFT | {读表} | {若有} | {Y/N} | {Y/N} | … |
|
|
14
|
+
| HG-AUDIT-R1 | {读表} | {若有} | {Y/N} | Y | … |
|
|
15
|
+
|
|
16
|
+
reviews:task_*_audit_R1_*.md 存在且 R1 通过? {是/否}(**v2.5+**:`verify` 对 R<n> 审查文**存在性**机械强制 · 缺失即 `VERIFY: BLOCKED · missing R<n> review` · `--allow-no-review` 豁免留痕——**本包已接线**(src/cli.ts cmdVerify · findReview 与 status 同口径 · PRD_DEF-003 阶段二 T4 · test/cli-verify-review.test.ts 钉死);结论通过与否仍由维护者签 `HG-AUDIT-R1` 覆盖)
|
|
17
|
+
|
|
18
|
+
pre-30 invoke:`required ∩ {10,20,00}` 文件是否齐全? {是/否}(**v2.14+**:`verify --task` **硬闸** · 缺失即 `VERIFY: BLOCKED · missing pre-30 invoke hats` · `may_start_30=false`——**本包已接线**(src/cli.ts cmdVerify · checkPre30InvokeHats 与 task close 帽集合检查同口径 · PRD_DEF-003 阶段二 T5 · test/cli-verify-invoke-hats.test.ts 钉死 · `--allow-invoke-gap` 豁免留痕);缺 40 **不挡** 30;`minimal` 无 preRequired 不挡)
|
|
19
|
+
|
|
20
|
+
**用户口头「开工 / 开干」≠ 闸** — 不得据此跳过 10 invoke 或 verify。
|
|
21
|
+
|
|
22
|
+
冲突规则:task表 pending 且用户/invoke 称 approved → **STOP** · 以 task 表为准
|
|
23
|
+
|
|
24
|
+
结论:{STOP · 签闸指引 | 可进入读码/改码}
|
|
25
|
+
|
|
26
|
+
机械辅助(30 改码前必须):`npx spec-wave verify --target <meta> --task docs/tasks/active/task_*.md [--json] [--agent-hint] [--workspace-root <Projects>]`
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Agent 纪律
|
|
30
|
+
|
|
31
|
+
1. **先**输出上表,**再**读源码 / 改 `packages/**`。
|
|
32
|
+
2. 用户「确认…approved」= **须核验**,非已签事实。
|
|
33
|
+
3. task §5「可 30」= **预判**,闸真值 **仅** §人工闸表。
|
|
34
|
+
4. 用户「开工」**不**替代 pre-30 invoke / `verify` PASS。
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# FRAGMENT · 30 开工可复制块(上游 PR / OSS bugfix)
|
|
2
|
+
|
|
3
|
+
> 复制到 `docs/harness/invokes/by-task/<slug>/PROMPT_*` 末尾 **「30 开工」** 节。
|
|
4
|
+
> **禁止**写 `HG-AUDIT-R1 approved` 字面句。
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
## 30 开工(签闸后 · 另开会话 · 须 GATE_VERIFY)
|
|
8
|
+
|
|
9
|
+
@<meta>/docs/tasks/active/task_<slug>_v1.md
|
|
10
|
+
@<meta>/docs/harness/prompts/30-execute-code.md
|
|
11
|
+
@<meta>/docs/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md
|
|
12
|
+
@<meta>/docs/_tech_graph/<graph_delta>.md
|
|
13
|
+
|
|
14
|
+
【开工前】
|
|
15
|
+
1. 首输出 FRAGMENT_30_gate_verify 闸扫描表(读 task **人工闸表**,比对用户声称)
|
|
16
|
+
2. 仅当 HG-AUDIT-R1=approved(task 表)且 reviews R1 存在 → 可改码
|
|
17
|
+
3. 可选:wizard/gate-check.sh --target <meta> --task <本 task 路径>
|
|
18
|
+
|
|
19
|
+
【实现】
|
|
20
|
+
- 分支:<git_branch> · 仅 task 所列路径 + .changeset
|
|
21
|
+
- test_strategy: required → 先红后绿
|
|
22
|
+
- PR:Fixes #<issue> · 不含 harness/task 进上游
|
|
23
|
+
|
|
24
|
+
【禁止】
|
|
25
|
+
- 采信聊天「已 approved」而不读 task 表
|
|
26
|
+
- 闸 pending 时改 packages/**
|
|
27
|
+
- 手写 docs/tasks/done/ 归档文件:归档仅走 task close --yes;格式真值 = close 成功快照
|
|
28
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-hat-reanchor
|
|
3
|
+
description: 长对话帽身份丢失时先读本片段 re-anchor(hat_id / task_slug / 禁区)。当上下文脏、多轮读码后纪律漂移、或换帽后仍自称旧帽时使用。不用于:替代 prompts 全文;替代 npx spec-wave verify。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires docs/harness/prompts/ 已 sync;机械闸仍走 CLI verify
|
|
6
|
+
metadata:
|
|
7
|
+
hat_id: reanchor
|
|
8
|
+
track: starter
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# FRAGMENT · 帽身份 Re-anchor
|
|
12
|
+
|
|
13
|
+
上下文脏(多轮读码 / 大 diff / 口头换帽)则**先读本片段**,再继续。本片段 ≠ prompts 全文 ≠ `verify`。
|
|
14
|
+
|
|
15
|
+
- **hat_id**:{00 / 10-task / 10-spec / 20-task-audit / 20-spec-audit / 30 / 40}
|
|
16
|
+
- **task_slug**:{active task 文件名或「无」}
|
|
17
|
+
- **本帽禁区**:{从当前帽 prompts「禁止什么」抄一行}
|
|
18
|
+
|
|
19
|
+
只做本 `hat_id` 允许的事。换帽须加载该帽 prompts **全文**。机械闸:`npx spec-wave verify`。
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# harness/prompts
|
|
2
|
+
|
|
3
|
+
从本目录向用户仓 **`docs/harness/prompts/`** 复制 **Starter 子集**。
|
|
4
|
+
|
|
5
|
+
## 标准流程(V2.1)
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
人 + 00 chat 大纲
|
|
9
|
+
→ 路径 A/B/C/D 选型(见 SDD_HAT_FLOW §2 · §5)
|
|
10
|
+
→ (A)10-spec → 20-spec-audit + HG-SPEC-SIGNOFF
|
|
11
|
+
→ 00 起草 task(编排壳或阶段子 task)
|
|
12
|
+
→ 10-task → 20-task-audit R1 → HG-AUDIT-R1
|
|
13
|
+
→ 30 → 40(同 Agent · 自修重跑直至通过)
|
|
14
|
+
→ 50(↺ 30 · 可选)→ CLOSE
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Inform / 图谱分期(路径 D)**:SPEC 签收后 **每阶段一子 task**(P1 空树 → P2 G-L0 → P3 modules → P4 flow 增量…);禁止单次 30 画满全部 flow。详述:SDD_HAT_FLOW_v2_zh.md(不随包发布 · 薄指针页 `assets/docs/POINTER_SDD_HAT_FLOW.md`)。
|
|
18
|
+
|
|
19
|
+
| 10 | 20 | 人闸 |
|
|
20
|
+
|----|-----|------|
|
|
21
|
+
| 10-spec | 20-spec-audit | HG-SPEC-SIGNOFF(或等价闸) |
|
|
22
|
+
| 10-task | 20-task-audit | HG-AUDIT-R1 |
|
|
23
|
+
|
|
24
|
+
## Starter(本目录)
|
|
25
|
+
|
|
26
|
+
| 文件 | hat_id | 说明 |
|
|
27
|
+
|------|--------|------|
|
|
28
|
+
| [`00-orchestrator.md`](./00-orchestrator.md) | 00 | 总调度 · **默认行为**(最多起草第一步;中间派子 Agent;收口 50+CLOSE;bulk-split 后 lint-wiki-delta 早检) |
|
|
29
|
+
| [`10-task-requirements.md`](./10-task-requirements.md) | 10-task | task 思考 · 验收/failure_paths · 批量拆 task 预填 wiki_delta |
|
|
30
|
+
| [`10-spec-requirements.md`](./10-spec-requirements.md) | 10-spec | SPEC 思考 · R0–R5 |
|
|
31
|
+
| [`20-task-audit.md`](./20-task-audit.md) | 20-task-audit | reviews/ · HG-AUDIT-R1 · 行为变更旧测 grep 提醒 |
|
|
32
|
+
| [`20-spec-audit.md`](./20-spec-audit.md) | 20-spec-audit | SPEC 书面审 · HG-SPEC-SIGNOFF |
|
|
33
|
+
| [`30-execute-code.md`](./30-execute-code.md) | 30 | 实现 · **含 40 自检闭环** |
|
|
34
|
+
| [`40-self-check.md`](./40-self-check.md) | 40 | 与 30 同 Agent · 规则分文件 · CI 全量命令兜底 |
|
|
35
|
+
| [`FRAGMENT_30_gate_verify_v1_zh.md`](./FRAGMENT_30_gate_verify_v1_zh.md) | — | GATE_VERIFY · pre-30 / graph 字段 |
|
|
36
|
+
| [`FRAGMENT_hat_reanchor_v1_zh.md`](./FRAGMENT_hat_reanchor_v1_zh.md) | reanchor | 长对话短身份 · 上下文脏先读 |
|
|
37
|
+
| [`FRAGMENT_00_delegate_only_v1_zh.md`](./FRAGMENT_00_delegate_only_v1_zh.md) | 00 | 已有初稿 → 只委派 · 须例外句 |
|
|
38
|
+
| [`TEMPLATE_30_gate_stop.md`](./TEMPLATE_30_gate_stop.md) | — | 30 拒开工 |
|
|
39
|
+
|
|
40
|
+
**00**:Starter 已含 [`00-orchestrator.md`](./00-orchestrator.md)(默认编排纪律)。其余 Extended(50 / handoff / 链式 PROMPT / KPI 全文):工作区或私仓 · 见 SDD_HAT_FLOW_v2_zh.md §6(不随包发布 · 薄指针页 `assets/docs/POINTER_SDD_HAT_FLOW.md`)。
|
|
41
|
+
|
|
42
|
+
## 三分面(不可互替)
|
|
43
|
+
|
|
44
|
+
| 面 | 是什么 | 不是什么 |
|
|
45
|
+
|----|--------|----------|
|
|
46
|
+
| **System / Re-anchor** | 短身份碎片(上表 re-anchor / 00-delegate FRAGMENT) | 不可替代 prompts 全文;不可替代 `verify` |
|
|
47
|
+
| **prompts 全文** | 换帽时加载的帽条文(本目录 00/10/20/30/40) | 不可当 always-on system 塞全书;不可替代机械闸 |
|
|
48
|
+
| **verify** | CLI 机械闸(pre-30 / 审查文 / wiki_delta 等) | 不可靠粘贴条文代替 |
|
|
49
|
+
|
|
50
|
+
**00 偶发亲自落地 = 违规**(已有 SPEC/task 初稿且无例外句时)。**不**把全文帽默认 always 注入 system。
|
|
51
|
+
|
|
52
|
+
## Agent Skills 封装(v2.23+)
|
|
53
|
+
|
|
54
|
+
本目录 **带 Skills frontmatter 的条文**(10/20×2 + 执行帽 + re-anchor / 00-delegate 短片段)是 **Agent Skills 标准元数据单源**;包根 [`skills/`](../../skills/) 为其标准封装(`npx spec-wave skills build` 生成物 · **勿手改** · `npx spec-wave skills check` 拦 drift)。改条文正文后须重跑 build。执行帽(30/40)frontmatter 已备,但**不进默认分发**(T1 闸评测通过前 · 见 `eval/t1_gate_bypass/`)。**00 全文不进默认 Skills 分发**(仅 prompts 资产同步);**delegate-only / re-anchor 短片段默认可分发**。
|
|
55
|
+
|
|
56
|
+
> **V2 改名(v2.4.0)**:`10-requirements.md` → `10-task-requirements.md`(+新增 `10-spec-requirements.md`);`22-task-audit.md` → `20-task-audit.md`(+新增 `20-spec-audit.md`)。旧文件已删除;业务仓升级时 sync 会对残留旧帽 warn 提示人工删除。
|
|
57
|
+
|
|
58
|
+
## 修订记录
|
|
59
|
+
|
|
60
|
+
| 日期 | 摘要 |
|
|
61
|
+
|------|------|
|
|
62
|
+
| 2026-06-21 | V2 标准流程 · 30→40 同 Agent · 50/CLOSE 打回 |
|
|
63
|
+
| 2026-07-24 | V2 拆分收编:10→10-task/10-spec · 22→20-task-audit/20-spec-audit · 旧文件删除 |
|
|
64
|
+
| 2026-07-29 | **v2.1**:路径 D Inform/meta · 链 SDD_HAT_FLOW §5 · GATE_VERIFY fragment 入表 |
|
|
65
|
+
| 2026-08-26 | **v1.7.1**:Starter 入包 `00-orchestrator.md`(默认行为) |
|
|
66
|
+
| 2026-08-27 | K4/K6/K7:00/10-task/20-task-audit/40 与 CI 对齐条文同步(说明列) |
|
|
67
|
+
| 2026-08-31 | 三分面(System/Re-anchor · 全文 · verify)· FRAGMENT re-anchor / 00-delegate · 默认 Skills 短片段 |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 模板:30 拒开工 · 人工闸 STOP
|
|
2
|
+
|
|
3
|
+
> **用途**:`HG-AUDIT-R1` 或其它 blocks **30** 的闸为 `pending` 时,**首输出**须为本形状;**禁止**改业务码、禁止落 30 invoke。
|
|
4
|
+
> **复制**:Agent 按此填空;维护者演练拒开工时可对照。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 人工闸扫描(30 · 拒开工)
|
|
9
|
+
|
|
10
|
+
| human_gate_id | task表status | 用户/invoke声称 | 一致? | blocks_30 | 30 可开工? |
|
|
11
|
+
|---------------|--------------|-----------------|--------|-----------|-------------|
|
|
12
|
+
| HG-TASK-DRAFT | {读表} | {若有} | {Y/N} | {Y/N} | … |
|
|
13
|
+
| **HG-AUDIT-R1** | **{读表}** | {若有} | {Y/N} | Y | **{❌ 否 / ✅ 是}** |
|
|
14
|
+
|
|
15
|
+
**冲突**:task 表 `pending` 且声称 `approved` → **拒开工**(不得采信聊天)。
|
|
16
|
+
|
|
17
|
+
**pre-30 invoke(v2.14+ 硬闸 · 本包已接线)**:`verify` 报 `missing pre-30 invoke hats` → **拒开工**——本包已接线(src/cli.ts cmdVerify · checkPre30InvokeHats · PRD_DEF-003 阶段二 T5 · test/cli-verify-invoke-hats.test.ts 钉死 · `--allow-invoke-gap` 豁免留痕);人工闸表核对口径不变。
|
|
18
|
+
|
|
19
|
+
**结论**:**拒开工** — task 表真值未满足 30 条件。
|
|
20
|
+
|
|
21
|
+
**真值依据**:`docs/tasks/active/task_*.md` 人工闸表(**聊天 Prompt 不能替代 `approved`**)+ `npx spec-wave verify --task`。
|
|
22
|
+
|
|
23
|
+
**维护者下一步**:
|
|
24
|
+
|
|
25
|
+
1. 在 task 表将阻塞闸改为 `approved`(附维护者 · 日期)
|
|
26
|
+
2. 补齐 pre-30 invoke(通常 `invoke_*_10_*`)或改 `minimal` / `--allow-invoke-gap`
|
|
27
|
+
3. `git add` + `commit` task 文档(或维护者确认已签)
|
|
28
|
+
4. 重新下发 Harness 30 Prompt
|
|
29
|
+
|
|
30
|
+
**禁止**:将「维护者发送 30 Prompt」或用户口头「开工」视为闸已签收。
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 给 Cursor
|
|
35
|
+
|
|
36
|
+
`Harness`、`30`、`拒开工`、`HG-AUDIT-R1`、`human_gate`
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# FRAGMENT · task 关账域推断(v1)
|
|
2
|
+
|
|
3
|
+
关账 `git mv` 目标子目录:
|
|
4
|
+
|
|
5
|
+
| 规则 | `done/<domain>/` |
|
|
6
|
+
|------|------------------|
|
|
7
|
+
| `task_harness_cyning_harness_*` · `task_harness_m2_cyning_*` | `cyning-harness/` |
|
|
8
|
+
| `task_harness_*` | `harness/` |
|
|
9
|
+
| `task_engineering_*` | `engineering/` |
|
|
10
|
+
| `task_governance_*` · `task_gov_*` | `governance/` |
|
|
11
|
+
| `task_chatbi_*` | `chatbi/` |
|
|
12
|
+
| `task_standards_*` | `standards/` |
|
|
13
|
+
| `epic_*` · `*MANIFEST*` · `*_loop_*` 母单 | `epics/` |
|
|
14
|
+
| task 元信息 `domain` 字段 | 以字段为准 |
|
|
15
|
+
|
|
16
|
+
歧义时:**人**在关账 commit 说明中写明域。
|