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,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Cyning12/SpecGate/assets/ide/host-adapt/host-adapt.schema.json",
|
|
4
|
+
"title": "DSH host-adapt table",
|
|
5
|
+
"description": "Declarative host adaptation table (F6 / 2.x W1). Surfaces: always_on, skills, commands; optional verify. target / target_dir must not hit S2_TRUTH_PREFIXES (validated by CLI, not this schema alone).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["version", "hosts"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"version": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"description": "Table schema version (string, e.g. \"1\")."
|
|
14
|
+
},
|
|
15
|
+
"hosts": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"minItems": 1,
|
|
18
|
+
"items": { "$ref": "#/$defs/HostRow" }
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"$defs": {
|
|
22
|
+
"HostRow": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["host_id", "surfaces"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"host_id": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"minLength": 1,
|
|
30
|
+
"description": "Host identifier (e.g. dsh, cursor, claude)."
|
|
31
|
+
},
|
|
32
|
+
"surfaces": { "$ref": "#/$defs/Surfaces" }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"Surfaces": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"required": ["always_on", "skills", "commands"],
|
|
39
|
+
"properties": {
|
|
40
|
+
"always_on": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": { "$ref": "#/$defs/AlwaysOnEntry" }
|
|
43
|
+
},
|
|
44
|
+
"skills": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": { "$ref": "#/$defs/DirFromEntry" }
|
|
47
|
+
},
|
|
48
|
+
"commands": {
|
|
49
|
+
"type": "array",
|
|
50
|
+
"items": { "$ref": "#/$defs/CommandsEntry" }
|
|
51
|
+
},
|
|
52
|
+
"verify": { "$ref": "#/$defs/VerifyEntry" }
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"AlwaysOnEntry": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"additionalProperties": false,
|
|
58
|
+
"required": ["target", "source"],
|
|
59
|
+
"properties": {
|
|
60
|
+
"target": { "type": "string", "minLength": 1 },
|
|
61
|
+
"source": { "type": "string", "minLength": 1 }
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"DirFromEntry": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"additionalProperties": false,
|
|
67
|
+
"required": ["target_dir", "from"],
|
|
68
|
+
"properties": {
|
|
69
|
+
"target_dir": { "type": "string", "minLength": 1 },
|
|
70
|
+
"from": { "type": "string", "minLength": 1 }
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"CommandsEntry": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": false,
|
|
76
|
+
"required": ["target_dir", "from"],
|
|
77
|
+
"properties": {
|
|
78
|
+
"target_dir": { "type": "string", "minLength": 1 },
|
|
79
|
+
"from": { "type": "string", "minLength": 1 },
|
|
80
|
+
"profile": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"enum": ["core", "expanded", "custom"]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"VerifyEntry": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"additionalProperties": false,
|
|
89
|
+
"required": ["kind", "bin"],
|
|
90
|
+
"properties": {
|
|
91
|
+
"kind": { "type": "string", "const": "cli" },
|
|
92
|
+
"bin": { "type": "string", "minLength": 1 },
|
|
93
|
+
"failClosed": { "type": "boolean" }
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Skills · 编排轴(DSH `/kit-*`)
|
|
2
|
+
|
|
3
|
+
> **用途**:DSH 项目本地 slash 发现根为 `.dsh/skills`(上游 deepseek-harness · `project-dsh` · `docs/subsystems/skills.md`)。
|
|
4
|
+
> **无** `.dsh/commands` 扫描器;编排面以本目录五条 skill 物化,与帽子 `assets/skills/harness-*` 并存。
|
|
5
|
+
|
|
6
|
+
| skill_id | 真值 |
|
|
7
|
+
|----------|------|
|
|
8
|
+
| `kit-verify` | `verify --task` · exit 0/1/2 |
|
|
9
|
+
| `kit-gate-status` | `status` / `gate-check` + task 闸表 |
|
|
10
|
+
| `kit-init-guide` | 双入口(插件 ≠ CLI) |
|
|
11
|
+
| `kit-apply-standards` | DSH 工具或 standards POINTER |
|
|
12
|
+
| `kit-hat-reanchor` | POINTER → `harness-hat-reanchor` |
|
|
13
|
+
|
|
14
|
+
正文语义与 Cursor `assets/ide/commands/cursor/kit-*.md` 对齐:必跑 CLI;禁止口头代闸。
|
|
15
|
+
|
|
16
|
+
物化:`mvp-hosts.yaml` → `host_id: dsh` · `skills` 第二条 `from: assets/ide/skills-orch/*` → `.dsh/skills/kit-*/SKILL.md`。
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kit-apply-standards
|
|
3
|
+
description: 指导应用 coding standards(POINTER;不静默改 S2)。当用户要加载规范、apply standards 时使用。不用于:口头代闸;静默改 tasks/reviews/invokes。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: DSH 可调 apply_coding_standards;非 DSH 读 docs/standards/
|
|
6
|
+
metadata:
|
|
7
|
+
kit_command_id: kit-apply-standards
|
|
8
|
+
track: orch
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 编排 · kit-apply-standards
|
|
12
|
+
|
|
13
|
+
DSH 会话:请模型调用工具 apply_coding_standards(加载 ≠ 注入)。
|
|
14
|
+
非 DSH:读 docs/standards/ 与 AGENTS.md(薄 POINTER,勿复制 L1/L2 全文)。
|
|
15
|
+
|
|
16
|
+
禁止静默改写 S2 过程域:docs/tasks/、docs/harness/reviews/、docs/harness/invokes/by-task/。
|
|
17
|
+
真值在包内 docs/standards/ 与仓内 AGENTS.md,本 skill 只编排、不替代闸。
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kit-gate-status
|
|
3
|
+
description: 扫人工闸与 status(声称与闸表冲突则 STOP)。当用户问闸态、是否可开工、或口头声称闸已批时使用。不用于:口头代闸;改闸表。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave;task 文件为闸真值
|
|
6
|
+
metadata:
|
|
7
|
+
kit_command_id: kit-gate-status
|
|
8
|
+
track: orch
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 编排 · kit-gate-status
|
|
12
|
+
|
|
13
|
+
1. 读现行 task 的人工闸表(真值在 task 文件,不在聊天声称)
|
|
14
|
+
2. 必跑:npx spec-wave status --target . [--task <path>]
|
|
15
|
+
3. 可选:npx spec-wave gate-check --task <path>
|
|
16
|
+
4. 用户声称与闸表冲突 → STOP,以 task 表为准
|
|
17
|
+
5. 勿复制 hat / L1 / L2 全文;POINTER:docs/harness/prompts/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kit-hat-reanchor
|
|
3
|
+
description: 长对话丢帽时重锚(不替代 30 授权)。当上下文脏、多轮后纪律漂移、或换帽后仍自称旧帽时使用。不用于:授予 30 改码权;口头代闸。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires skill harness-hat-reanchor 或 FRAGMENT_hat_reanchor POINTER
|
|
6
|
+
metadata:
|
|
7
|
+
kit_command_id: kit-hat-reanchor
|
|
8
|
+
track: orch
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 编排 · kit-hat-reanchor
|
|
12
|
+
|
|
13
|
+
长对话丢失角色时:读 skill harness-hat-reanchor / FRAGMENT_hat_reanchor(POINTER,勿贴全文)。
|
|
14
|
+
本 skill 不授予 30 改码权;HG-AUDIT-R1 pending 时仍拒改码。
|
|
15
|
+
勿冒充 opsx 或其他产品的 slash 前缀。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kit-init-guide
|
|
3
|
+
description: 分清插件 init_coding_kit 与 CLI init(双入口不合并)。当用户问如何初始化 coding-kit / 插件 vs CLI 时使用。不用于:静默改 S2。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: DSH 会话可调 init_coding_kit;CLI 用 npx spec-wave init
|
|
6
|
+
metadata:
|
|
7
|
+
kit_command_id: kit-init-guide
|
|
8
|
+
track: orch
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 编排 · kit-init-guide
|
|
12
|
+
|
|
13
|
+
双入口互不替代,禁止混成同一动词。
|
|
14
|
+
|
|
15
|
+
插件面(DSH 会话):
|
|
16
|
+
- 工具名是 init_coding_kit(不是 CLI 子命令)
|
|
17
|
+
- 对话请模型调用该工具;不覆盖已有文件
|
|
18
|
+
|
|
19
|
+
CLI 面(Cursor / CI / 终端):
|
|
20
|
+
- npx spec-wave init --preset harness-only [--yes]
|
|
21
|
+
- 过程落盘根 .coding-kit/ ;不写 S2 过程域
|
|
22
|
+
|
|
23
|
+
勿把 init_coding_kit 与 CLI init 写成同一步。POINTER:仓根 README「选哪条入口」。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kit-verify
|
|
3
|
+
description: 编排跑 dsh-coding-kit verify(failClosed;解释 exit 0/1/2)。当用户要验闸、跑 verify、或声称「闸已过」时使用。不用于:口头代闸;冒充 opsx/speckit。
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Requires npx spec-wave;Open Folder = 消费者仓根
|
|
6
|
+
metadata:
|
|
7
|
+
kit_command_id: kit-verify
|
|
8
|
+
track: orch
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 编排 · kit-verify
|
|
12
|
+
|
|
13
|
+
你是 ops 编排助手,不是门禁本身。Verify 真值在 CLI;禁止用本 skill 假装闸过。
|
|
14
|
+
|
|
15
|
+
1. Open Folder = 消费者仓根
|
|
16
|
+
2. 确认 task 路径(默认 docs/tasks/active/ 下现行 task)
|
|
17
|
+
3. 必跑:npx spec-wave verify --task <path>
|
|
18
|
+
4. 按退出码汇报:
|
|
19
|
+
- 0 通过
|
|
20
|
+
- 1 用法错误或非阻断失败
|
|
21
|
+
- 2 门禁阻断(硬停,failClosed)
|
|
22
|
+
5. CLI 未跑或 exit 不为 0 时,禁止宣称闸已通过
|
|
23
|
+
6. 规范真值 POINTER:docs/standards/ · AGENTS.md · docs/harness/prompts/ ;勿粘贴 L1/L2/hat 全文
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# cyning-harness 产品设计本体 · 机器可读抽取(草案 v1.0.0)
|
|
2
|
+
# 人类真值:DESIGN_ONTOLOGY_v1_zh.md(私仓 cyning-harness 工作区文档 · 不随 npm 包分发)
|
|
3
|
+
# 冲突时以 Markdown 为准 · 机器校验请用 npx spec-wave graph axioms check
|
|
4
|
+
# (该命令校验 HGM 公理,不校验本文件;独立的 ontology-check 本包未接线)
|
|
5
|
+
|
|
6
|
+
version: "1.3"
|
|
7
|
+
product_semver: "2.1.1" # 自旧包 cyning-harness 2.0.4 迁移,对齐本包 package.json
|
|
8
|
+
license: MIT
|
|
9
|
+
|
|
10
|
+
classes:
|
|
11
|
+
- id: Track
|
|
12
|
+
domain: Package
|
|
13
|
+
subclasses: [GraphTrack, WikiTrack, StandardsTrack, ProcessTrack, VerifyTrack, IDETrack]
|
|
14
|
+
- id: Template
|
|
15
|
+
domain: Package
|
|
16
|
+
- id: Preset
|
|
17
|
+
domain: Package
|
|
18
|
+
- id: WizardTool
|
|
19
|
+
domain: Package
|
|
20
|
+
- id: IDEFragment
|
|
21
|
+
domain: Package
|
|
22
|
+
- id: AdoptedProfile
|
|
23
|
+
domain: Instance
|
|
24
|
+
- id: VersionManifest
|
|
25
|
+
domain: Instance
|
|
26
|
+
- id: Task
|
|
27
|
+
domain: Instance
|
|
28
|
+
- id: Hat
|
|
29
|
+
domain: Instance
|
|
30
|
+
- id: HumanGate
|
|
31
|
+
domain: Instance
|
|
32
|
+
- id: InvokeSnapshot
|
|
33
|
+
domain: Instance
|
|
34
|
+
- id: AuditReview
|
|
35
|
+
domain: Instance
|
|
36
|
+
- id: InformArtifact
|
|
37
|
+
domain: Instance
|
|
38
|
+
- id: ConstrainArtifact
|
|
39
|
+
domain: Instance
|
|
40
|
+
- id: VerifyArtifact
|
|
41
|
+
domain: Instance
|
|
42
|
+
|
|
43
|
+
relations:
|
|
44
|
+
- id: embedsInto
|
|
45
|
+
subject: DisciplinePackage
|
|
46
|
+
object: BusinessRepository
|
|
47
|
+
cardinality: "1..*"
|
|
48
|
+
- id: blocks
|
|
49
|
+
subject: HumanGate
|
|
50
|
+
object: Hat
|
|
51
|
+
cardinality: "1..*"
|
|
52
|
+
- id: governedBy
|
|
53
|
+
subject: Task
|
|
54
|
+
object: Hat
|
|
55
|
+
cardinality: "1..*"
|
|
56
|
+
- id: produces
|
|
57
|
+
subject: Hat
|
|
58
|
+
object: TraceArtifact
|
|
59
|
+
cardinality: "0..*"
|
|
60
|
+
|
|
61
|
+
# 公理命名空间:ONTO- 前缀,独立于 graph axioms 代码公理(D2/D3/S2/rejected→draft,src/cli-graph-hgm.ts)
|
|
62
|
+
axioms:
|
|
63
|
+
- id: ONTO-P1
|
|
64
|
+
text: "纪律包不含业务代码与 LLM Runtime"
|
|
65
|
+
- id: ONTO-S2
|
|
66
|
+
text: "禁止 sync 覆盖 docs/tasks、reviews、invokes/by-task"
|
|
67
|
+
- id: ONTO-S5
|
|
68
|
+
text: "harness-sync apply 前须 git-clean(可 --force 跳过)"
|
|
69
|
+
- id: ONTO-D1
|
|
70
|
+
text: "每次 20-task-audit 必须产出 AuditReview(零阻塞须写明)"
|
|
71
|
+
- id: ONTO-D2
|
|
72
|
+
text: "HG-AUDIT-R1 pending 时 20-task-audit 不得附 30 Prompt(别名 22-task-audit)"
|
|
73
|
+
- id: ONTO-D7
|
|
74
|
+
text: "public push 须 HG-RELEASE 人闸 checklist 全勾"
|
|
75
|
+
|
|
76
|
+
# V2 hat_id · Starter 闭包 + Extended POINTER(见 DESIGN_ONTOLOGY §3.2)
|
|
77
|
+
starter_hats:
|
|
78
|
+
- hat_id: "10-task"
|
|
79
|
+
role: TaskRequirementsHat
|
|
80
|
+
alias: "10-requirements"
|
|
81
|
+
- hat_id: "20-task-audit"
|
|
82
|
+
role: TaskAuditHat
|
|
83
|
+
alias: "22-task-audit"
|
|
84
|
+
- hat_id: "30-execute-code"
|
|
85
|
+
role: ExecuteHat
|
|
86
|
+
- hat_id: "40-self-check"
|
|
87
|
+
role: SelfCheckHat
|
|
88
|
+
|
|
89
|
+
extended_hats:
|
|
90
|
+
- hat_id: "10-spec"
|
|
91
|
+
role: SpecRequirementsHat
|
|
92
|
+
pointer: "工作区 docs/harness/prompts/10-spec-requirements.md"
|
|
93
|
+
- hat_id: "20-spec-audit"
|
|
94
|
+
role: SpecAuditHat
|
|
95
|
+
pointer: "工作区 docs/harness/prompts/20-spec-audit.md"
|
|
96
|
+
- hat_id: "00-orchestrator"
|
|
97
|
+
role: OrchestratorHat
|
|
98
|
+
- hat_id: "50-independent-reinspect"
|
|
99
|
+
role: ReinspectHat
|
|
100
|
+
|
|
101
|
+
human_gates:
|
|
102
|
+
- id: HG-TASK-DRAFT
|
|
103
|
+
blocks_hats: ["20-task-audit", "30-execute-code"]
|
|
104
|
+
- id: HG-SPEC-SIGNOFF
|
|
105
|
+
blocks_hats: ["30-execute-code"]
|
|
106
|
+
note: "Epic 级 · SPEC approved 后 00 方可派实现链至 30"
|
|
107
|
+
- id: HG-AUDIT-R1
|
|
108
|
+
blocks_hats: ["30-execute-code"]
|
|
109
|
+
- id: HG-RELEASE
|
|
110
|
+
blocks_hats: []
|
|
111
|
+
note: "维护者 CLOSE · npm/GitHub public · 非 Agent 自动签"
|
|
112
|
+
|
|
113
|
+
# schemas 段已移除:manifest/task JSON Schema 未随包交付(DEF-004 · 旧 ./schema/*.schema.json 指针悬空)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# skills/ · Agent Skills 标准封装(生成物 · 勿手改)
|
|
2
|
+
|
|
3
|
+
> **本目录由 `npx spec-wave skills build` 生成**;真值 = `harness/prompts/` 条文(frontmatter + 正文)。
|
|
4
|
+
> 改动请改条文后重跑 build;`npx spec-wave skills check` 会拦截任何手改 drift。
|
|
5
|
+
> 规范:https://agentskills.io/specification
|
|
6
|
+
|
|
7
|
+
## 安装(各 client 路径不同 · 复制或软链均可)
|
|
8
|
+
|
|
9
|
+
| 路径 | 用途 | 谁写入 |
|
|
10
|
+
|------|------|--------|
|
|
11
|
+
| DSH `<repo>/.dsh/skills/` | 消费者 Skill 安装落点 | `npx spec-wave skills install` |
|
|
12
|
+
| DSH `$HOME/.dsh/skills/` | 用户级安装落点 | `npx spec-wave skills install --global` |
|
|
13
|
+
| Claude Code `<repo>/.claude/skills/` 或 `~/.claude/skills/` | Claude skill 目录 | 用户另拷或 `--out`;**默认不写** |
|
|
14
|
+
|
|
15
|
+
`.dsh/coding-kit` / `.coding-kit` 是规范覆盖(`apply_coding_standards` / `init_coding_kit`),**不是** skill 目录,禁止当作 install dest。
|
|
16
|
+
|
|
17
|
+
已验证(2026-08-22 · 对照 DSH 上游源码 deepseek-harness@141eb6f,dsh 0.1.0-rc.8):DSH runtime **会自动扫描** `.dsh/skills` 与 `$HOME/.dsh/skills` 两个 **安装落点** 并 **按需加载**。证据锚点:`packages/skill/skill-filesystem/src/index.ts:246`(`<projectRoot>/.dsh/skills`,rank 100)与 `:253`(`$DSH_HOME` 或 `~/.dsh` 下 `skills/`,rank 400);目录级文档 `docs/subsystems/skills.md`「Local discovery priority」表同口径。结构要求:目录包 `<name>/SKILL.md` 或平铺 `<name>.md`(index.ts:724-728);frontmatter 必填 `name`/`description`,`name` 须 kebab-case(index.ts:810-816)。扫描/加载属 DSH runtime 行为契约,随上游版本演进,锚点对应 0.1.0-rc.8。
|
|
18
|
+
|
|
19
|
+
## 技能清单
|
|
20
|
+
|
|
21
|
+
| skill | hat_id | 用途 |
|
|
22
|
+
|-------|--------|------|
|
|
23
|
+
| [`harness-10-spec/`](./harness-10-spec/SKILL.md) | 10-spec | 起草/修订 SPEC(SDD 需求规格:背景/范围/非范围/验收/failure_paths + R0–R5 思考轮回填)。 |
|
|
24
|
+
| [`harness-10-task/`](./harness-10-task/SKILL.md) | 10-task | 起草/修订 Harness task 文件(验收标准、failure_paths、非范围、依赖、思考轮控制表 R0–R5)。 |
|
|
25
|
+
| [`harness-20-spec-audit/`](./harness-20-spec-audit/SKILL.md) | 20-spec-audit | 书面审查 SPEC:核对范围/非范围/验收/failure_paths 与 R0–R5 思考轮控制,结论落盘 docs/harness/reviews/ 审查文。 |
|
|
26
|
+
| [`harness-20-task-audit/`](./harness-20-task-audit/SKILL.md) | 20-task-audit | 书面审查 Harness task 文件(R 轮):对照 SPEC 核对范围/非范围/验收/failure_paths/思考轮,结论落盘 docs/harness/reviews/ 审查文。 |
|
|
27
|
+
| [`harness-00-delegate-only/`](./harness-00-delegate-only/SKILL.md) | 00 | 你是 00 且仓库已有 SPEC/task 初稿时,禁止亲自实现,只委派子 Agent。 |
|
|
28
|
+
| [`harness-hat-reanchor/`](./harness-hat-reanchor/SKILL.md) | reanchor | 长对话帽身份丢失时先读本片段 re-anchor(hat_id / task_slug / 禁区)。 |
|
|
29
|
+
|
|
30
|
+
## 执行帽缺席说明
|
|
31
|
+
|
|
32
|
+
`harness-30-execute` / `harness-40-self-check`(执行帽)**不在本分发**:其 skill 化须先通过 T1 闸绕开评测(`eval/t1_gate_bypass/` S1–S3)。
|
|
33
|
+
评测/维护者可用 `npx spec-wave skills build --with-execute-hats` 本地生成(仅供评测环境,勿装入生产 client)。
|
|
34
|
+
|
|
35
|
+
## 00 全文缺席说明
|
|
36
|
+
|
|
37
|
+
`00-orchestrator.md`(00 全文)**不在本分发**(仅 prompts 同步)。短片段 `harness-00-delegate-only` / `harness-hat-reanchor` **默认可分发**。
|
|
@@ -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,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`
|