@cyning/harness 0.3.0
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/AGENTS.md +20 -0
- package/CHANGELOG.md +127 -0
- package/README.md +133 -0
- package/bin/harness.js +7 -0
- package/ci/samples/README.md +42 -0
- package/ci/samples/pytest.yml.example +49 -0
- package/ci/samples/quality.yml.example +56 -0
- package/coding_wiki/templates/README.md +11 -0
- package/coding_wiki/templates/context.md +11 -0
- package/coding_wiki/templates/stable.md +19 -0
- package/coding_wiki/templates/volatile.md +15 -0
- package/docs/ARCHITECTURE.md +71 -0
- package/docs/DESIGN_ONTOLOGY_v1_zh.md +9 -0
- package/docs/HARNESS_GRAPH_MODEL_design_v0_zh.md +6 -0
- package/docs/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md +8 -0
- package/docs/ONBOARDING.md +126 -0
- package/docs/P0_V0.2_GAP.md +6 -0
- package/docs/README.md +38 -0
- package/docs/methodology/AUDIT_doc_consistency_2026-06-15_zh.md +69 -0
- package/docs/methodology/DOCUMENT_MAP_v1_zh.md +122 -0
- package/docs/methodology/README.md +147 -0
- package/docs/methodology/ROADMAP_v1_zh.md +136 -0
- package/docs/methodology/execution/P0_V0.2_GAP.md +93 -0
- package/docs/methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md +132 -0
- package/docs/methodology/execution/README.md +12 -0
- package/docs/methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md +258 -0
- package/docs/methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md +132 -0
- package/docs/methodology/graph/README.md +22 -0
- package/docs/methodology/pointers/ADOPTION_METHODOLOGY_v1_zh.md +8 -0
- package/docs/methodology/pointers/ADOPTION_TARGET_STATE_v1_zh.md +6 -0
- package/docs/methodology/pointers/ASSESSMENT_etclovg_v1_zh.md +5 -0
- package/docs/methodology/pointers/ASSESSMENT_ink_v1_zh.md +5 -0
- package/docs/methodology/pointers/GUIDANCE_distribution_v1_zh.md +6 -0
- package/docs/methodology/pointers/HARNESS_V2_PLAN_v1_zh.md +8 -0
- package/docs/methodology/pointers/PILOT_kimi_code_fork_v1_zh.md +6 -0
- package/docs/methodology/pointers/POINTER_cyning_harness_repo_v1_zh.md +6 -0
- package/docs/methodology/pointers/README.md +40 -0
- package/docs/methodology/pointers/SDD_HAT_FLOW_v1_zh.md +8 -0
- package/docs/methodology/pointers/STRATEGY_MASTER_v1_zh.md +8 -0
- package/docs/methodology/pointers/STRATEGY_ONTOLOGY_v1_zh.md +9 -0
- package/docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md +719 -0
- package/docs/methodology/product/README.md +25 -0
- package/docs/methodology/prompts/PROMPT_article_theory_roundtable_v1_zh.md +127 -0
- package/docs/methodology/prompts/PROMPT_doc_consistency_audit_v1_zh.md +131 -0
- package/docs/methodology/prompts/PROMPT_feasibility_review_b_evidence_v1_zh.md +86 -0
- package/docs/methodology/prompts/README.md +10 -0
- package/docs/methodology/reviews/PROCESS_track_b_evidence_audit_2026-06-15_v1_zh.md +101 -0
- package/docs/methodology/reviews/README.md +9 -0
- package/docs/methodology/reviews/REVIEW_B3_pilot_evidence_and_sdd_compliance_bench_v1_zh.md +154 -0
- package/docs/methodology/reviews/REVIEW_B9_agent_shell_parallel_v1_zh.md +158 -0
- package/examples/demo_checkout/ACCEPTANCE.md +80 -0
- package/examples/demo_checkout/README.md +41 -0
- package/examples/demo_checkout/task_demo_p0_golden_v1.md +101 -0
- package/examples/oss-fork/README.md +139 -0
- package/examples/oss-fork/kimi-code/00_main.ai.md +23 -0
- package/examples/oss-fork/kimi-code/00_main.md +38 -0
- package/examples/oss-fork/kimi-code/01_struct.md +39 -0
- package/examples/oss-fork/kimi-code/02_version.md +6 -0
- package/examples/oss-fork/kimi-code/10_flow_cli_session.md +22 -0
- package/examples/oss-fork/kimi-code/README.md +15 -0
- package/golden/POINTER_gold_epic_serial.md +93 -0
- package/golden/README.md +30 -0
- package/graph/stubs/README.md +6 -0
- package/graph/templates/00_main.ai.md +28 -0
- package/graph/templates/00_main.md +52 -0
- package/graph/templates/01_struct.md +38 -0
- package/graph/templates/10_flow_MAIN.ai.md +43 -0
- package/graph/templates/10_flow_MAIN.md +47 -0
- package/graph/templates/99_mermaid_protocol.md +100 -0
- package/graph/templates/README.md +34 -0
- package/harness/README.md +18 -0
- package/harness/invokes/README.md +22 -0
- package/harness/invokes/TEMPLATE_invoke.md +59 -0
- package/harness/prompts/10-requirements.md +42 -0
- package/harness/prompts/22-task-audit.md +67 -0
- package/harness/prompts/30-execute-code.md +50 -0
- package/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +30 -0
- package/harness/prompts/FRAGMENT_30_invoke_block_v1_zh.md +27 -0
- package/harness/prompts/README.md +28 -0
- package/harness/prompts/TEMPLATE_30_gate_stop.md +34 -0
- package/harness/templates/FRAGMENT_task_domain_infer_v1_zh.md +16 -0
- package/harness/templates/README.md +48 -0
- package/harness/templates/TASK_TEMPLATE.md +111 -0
- package/harness/templates/TASK_done_README.md +75 -0
- package/harness/templates/TASK_epic.md +101 -0
- package/harness/templates/TASK_graph_bootstrap.md +113 -0
- package/harness/templates/VIEW_done_by_domain.md +66 -0
- package/harness/templates/VIEW_done_thin_pointer.md +16 -0
- package/ide/adapters/AGENTS.md.fragment.example +31 -0
- package/ide/adapters/CLAUDE.md.fragment.example +30 -0
- package/ide/adapters/README.md +46 -0
- package/ide/adapters/cursor-harness-starter.mdc.example +37 -0
- package/lib/cli.js +180 -0
- package/lib/manifest.js +38 -0
- package/lib/paths.js +36 -0
- package/lib/run.js +33 -0
- package/package.json +37 -0
- package/schema/manifest.v1.schema.json +37 -0
- package/standards/POINTER_workspace_truth_v1_zh.md +57 -0
- package/standards/README.md +35 -0
- package/standards/SOURCES_v1_zh.md +49 -0
- package/standards/TEMPLATE_CODING_BASELINE_L1_v1_zh.md +88 -0
- package/standards/TEMPLATE_CODING_BASELINE_L2_backend_v1_zh.md +75 -0
- package/standards/TEMPLATE_CODING_BASELINE_L2_frontend_v1_zh.md +76 -0
- package/wizard/ONBOARDING_wizard_v1_zh.md +112 -0
- package/wizard/README.md +213 -0
- package/wizard/adopt-existing.sh +37 -0
- package/wizard/bootstrap-oss-fork-meta.sh +177 -0
- package/wizard/gate-check.sh +118 -0
- package/wizard/harness-sync.sh +237 -0
- package/wizard/install.sh +206 -0
- package/wizard/lib/common.sh +247 -0
- package/wizard/lib/manifest.sh +110 -0
- package/wizard/profiles/fullstack-node-py.json +21 -0
- package/wizard/profiles/harness-only.json +19 -0
- package/wizard/profiles/ios-cursor.json +19 -0
- package/wizard/profiles/issue-scan-presets.json +51 -0
- package/wizard/profiles/oss-fork-meta.json +17 -0
- package/wizard/scan-upstream-issues.sh +287 -0
- package/wizard/templates/FRAGMENT_rethink_backfill_task_v1_zh.md +44 -0
- package/wizard/templates/POINTER_PILOT_adoption_workspace.md +23 -0
- package/wizard/templates/TASK_TEMPLATE_upstream_pr_v1.md +164 -0
- package/wizard/templates/task_graph_bootstrap_v1.md +53 -0
- package/wizard/uninstall.sh +218 -0
- package/wizard/upgrade.sh +164 -0
|
@@ -0,0 +1,719 @@
|
|
|
1
|
+
# 产品设计本体 · cyning-harness(v1.2)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
| 项 | 内容 |
|
|
5
|
+
| ------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
6
|
+
| **状态** | `draft` |
|
|
7
|
+
| **版本** | v1.2 |
|
|
8
|
+
| **日期** | 2026-06-15 |
|
|
9
|
+
| **范围** | **产品内部**概念模型 · 指导模板 / wizard / sync / SDD 链实现 |
|
|
10
|
+
| **非范围** | 商业战略、ETCLOVG 行业对标(见 [`../pointers/STRATEGY_ONTOLOGY_v1_zh.md`](../pointers/STRATEGY_ONTOLOGY_v1_zh.md)) |
|
|
11
|
+
| **真值** | 本文件 + [`../../ARCHITECTURE.md`](../../ARCHITECTURE.md) + [`../../../harness/templates/`](../../../harness/templates/) + `ontology.yaml`(机器可读抽取 · v0.4+ · 与本文件同目录) |
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
> **用途**:把 Harness **是什么、由哪些实体组成、如何允许状态转移** 说清,供实现 npx CLI、schema、新轨扩展时 **不破坏边界**。
|
|
15
|
+
> **读者**:维护者、未来协作者、实现 Agent。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 0. 与战略本体的分层
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
战略本体(STRATEGY_ONTOLOGY) 产品设计本体(本文件)
|
|
23
|
+
──────────────────────────── ────────────────────────
|
|
24
|
+
DisciplinePackage 对外定位 Track / Template / Preset 产品结构
|
|
25
|
+
Public push / MIT Install · Sync · Marker 机制
|
|
26
|
+
Stakeholder Hat · Task · Gate · Review 运行时
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 0.1 元本体(本文件如何维护)
|
|
30
|
+
|
|
31
|
+
| 维度 | 规则 |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| **版本语义** | `v1.x` = 产品设计本体;与产品包 semver(`0.3.0`)**解耦** · 本体 major 变更须写迁移附录 |
|
|
34
|
+
| **变更原则** | 新增类/公理 → 须同步 §6 映射表 + §7.3 扩展规则 +(若影响 sync 域)S2 列表 · **禁止** silent 改基数约束 |
|
|
35
|
+
| **评审流程** | 维护者自审 +(重大变更)对照 `STRATEGY_ONTOLOGY` 战略约束 · 修订记入 §12 · **外部 PR**(v1.0 后)须按 §0.3 最小变更清单自检 |
|
|
36
|
+
| **机器可读双轨** | Markdown(人类真值)+ `ontology.yaml`(§0.4 骨架 · **v0.4+** 供 `harness ontology-check`) |
|
|
37
|
+
| **v1→v2 迁移(预案)** | ① 保留 v1 只读 POINTER 6 个月 ② 公理 ID(P/S/D)**不重编号** ③ 新增类用子命名空间(如 `DecisionArtifact`)④ breaking 变更须 CLI `harness migrate --dry-run` |
|
|
38
|
+
|
|
39
|
+
### 0.2 当前实现范围(防过度设计)
|
|
40
|
+
|
|
41
|
+
| 产品版本 | 本体类/能力 **须实现** | **文档-only / 延后** |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| **v0.2** | ProcessTrack · StarterHat · Sync S1–S4 · GateCheckRun 基础 | VersionManifest · rollback · ontology.yaml |
|
|
44
|
+
| **v0.3** | VersionManifest · npx upgrade · S5 git-clean | Sync rollback · 三路合并 |
|
|
45
|
+
| **v0.4** | ExtendedHat POINTER · `ontology.yaml` · D7 HG-RELEASE | 热插拔 Track(Q5) |
|
|
46
|
+
| **v1.0** | ICVO 四支柱 CLI 审计 · invoke_index · gate-check --graph | Epic 一等类升格 |
|
|
47
|
+
|
|
48
|
+
### 0.3 外部贡献与最小变更清单(v1.0 public push 后)
|
|
49
|
+
|
|
50
|
+
> v1.0 前 **一人维护** · 本节为 public 后预备;PR 须更新本体对应节 + 通过 `harness ontology-check`(v0.4+)。
|
|
51
|
+
|
|
52
|
+
| 变更类型 | 须同步修改(自检) |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| **新 Hat** | §3.2 帽链 · §8 编号表 · `harness/prompts/` 模板 · invoke §3 · `gate-check.sh` · §7.3 |
|
|
55
|
+
| **新 HumanGate** | Task 模板闸表 · `blocks_hats` HatRef · gate-check 解析 · §2.3 基数 · §5.3 若影响 D* |
|
|
56
|
+
| **新 Track** | §3.1 + `track.yaml`(§3.1.1)· profile `tracks.*` · install/sync 分支 · §6 映射 |
|
|
57
|
+
| **新 Artifact 类型** | §1.2 类表 · §2.1 关系 · **S2 禁止覆盖列表** · §6 映射 · sync plan 显示 |
|
|
58
|
+
| **新公理 P/S/D** | §5 公理表 · §0.1 变更原则 · `ontology.yaml` axioms · §12 修订记录 |
|
|
59
|
+
| **改状态机** | §4 全节 · 相关 Hat 模板 · gate-check 行为 |
|
|
60
|
+
|
|
61
|
+
**PR 描述模板(建议)**:`Ontology impact: [无 | Hat | Gate | Track | Axiom | State]` + 勾选上表行。
|
|
62
|
+
|
|
63
|
+
### 0.4 `ontology.yaml` 骨架(v0.4+ · 与 §0.1 双轨)
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
# docs/ontology.yaml · 从本 Markdown 抽取 · 非第二真值
|
|
67
|
+
version: "1.2"
|
|
68
|
+
classes:
|
|
69
|
+
- id: Track
|
|
70
|
+
domain: Package
|
|
71
|
+
- id: HumanGate
|
|
72
|
+
domain: Instance
|
|
73
|
+
properties:
|
|
74
|
+
- id: blocks
|
|
75
|
+
subject: HumanGate
|
|
76
|
+
object: Hat
|
|
77
|
+
cardinality: "1..*"
|
|
78
|
+
axioms:
|
|
79
|
+
- id: S2
|
|
80
|
+
text: "禁止 sync 覆盖 docs/tasks, reviews, invokes/by-task"
|
|
81
|
+
schemas:
|
|
82
|
+
track: "./track-schema.json" # TrackManifest · 见 §3.1.1
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
完整抽取由 `harness ontology-check --emit` 生成;**Markdown 冲突时以本文件为准**。
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 1. 核心类(Core Classes)
|
|
90
|
+
|
|
91
|
+
### 1.1 产品包侧(Package Domain)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
| 类 | 定义 | 物理落点 | 示例 |
|
|
95
|
+
| --------------- | ------------------- | -------------------------- | -------------------- |
|
|
96
|
+
| **Track** | 可独立勾选安装的一轨能力 | `graph/`、`harness/`、`ci/`… | `ProcessTrack` |
|
|
97
|
+
| **TrackManifest** | Track 的机器可读声明(v0.4+) | 产品仓 `*/track.yaml` · 实例 `.cyning-harness/tracks/*.yaml` | `process.track.yaml` |
|
|
98
|
+
| **Template** | 产品仓内可复制的骨架文件 | `*/templates/`、`prompts/` | `TASK_TEMPLATE.md` |
|
|
99
|
+
| **Preset** | 轨道勾选的组合配置 | `wizard/profiles/*.json` | `harness-only` |
|
|
100
|
+
| **WizardTool** | 安装 / 同步 / 闸检查脚本 | `wizard/*.sh` | `harness-sync.sh` |
|
|
101
|
+
| **IDEFragment** | 带 marker 的 IDE 入口片段 | `ide/adapters/` | `CLAUDE.md.fragment` |
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### 1.2 业务仓侧(Instance Domain · 嵌入后)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
| 类 | 定义 | 典型路径 | 示例 |
|
|
108
|
+
| --------------------- | -------------------- | ---------------------------------- | -------------------------- |
|
|
109
|
+
| **AdoptedProfile** | 安装时生成的轨道真值 | `.cyning-harness/profile.json` | `harness_prompts: true` |
|
|
110
|
+
| **VersionManifest** | 钉住产品包版本(v0.3+) | `.cyning-harness/manifest.json` | `{ "version": "0.3.0" }` |
|
|
111
|
+
| **Task** | 可验收工作项文档 | `docs/tasks/active/task_*.md` | 改码 task |
|
|
112
|
+
| **Epic** | 多 Task 总纲(**v1 暂为 Task 特化** · 见 §1.4) | `docs/tasks/active/TASK_epic_*.md` | Epic 编排 |
|
|
113
|
+
| **Hat** | SDD 角色帽(行为约束) | `docs/harness/prompts/N-*.md` | `22-task-audit` |
|
|
114
|
+
| **InvokeSnapshot** | 新帽开局时的调用体落盘 | `docs/harness/invokes/` | `invoke_*_30_*.md` |
|
|
115
|
+
| **AuditReview** | 任务审核书面产出 | `docs/harness/reviews/` | `*_audit_R1_*.md` |
|
|
116
|
+
| **FailureReport** | 30 执行失败时的结构化产出(v0.3+) | `docs/harness/reviews/` 或 task 附录 | `*_30_failure_*.md` |
|
|
117
|
+
| **HumanGate** | 人工审批闸 | task 内表格行 | `HG-AUDIT-R1` |
|
|
118
|
+
| **InformArtifact** | 告知层真值 | `docs/_tech_graph/`、`coding_wiki/` | `01_struct.md` |
|
|
119
|
+
| **ConstrainArtifact** | 约束层真值 | `docs/standards/`、`.cursor/rules/` | L2 规范 |
|
|
120
|
+
| **VerifyArtifact** | 验证层真值 | `.github/workflows/` | `quality.yml` |
|
|
121
|
+
| **MarkerBlock** | IDE 文件中可 merge 的纪律区段 | `CLAUDE.md`、`AGENTS.md` | `cyning-harness:begin/end` |
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
### 1.3 跨包关系类
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
| 类 | 定义 |
|
|
128
|
+
| ----------------- | ------------------------------------- |
|
|
129
|
+
| **SyncOperation** | `plan` / `apply` / `rollback` 一次同步事务 |
|
|
130
|
+
| **GateCheckRun** | `gate-check.sh` 对 active task 闸表的机械扫描 |
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### 1.4 Epic 编排规则(v1 · Task 特化期)
|
|
134
|
+
|
|
135
|
+
Epic **暂不**独立 schema;通过 EpicTask 模板字段表达编排语义:
|
|
136
|
+
|
|
137
|
+
```yaml
|
|
138
|
+
EpicTask:
|
|
139
|
+
depends_on: string[] # 子 Task slug · 手动声明 · v1.1+
|
|
140
|
+
completion_policy: must_complete_all | any_completes # 默认 must_complete_all
|
|
141
|
+
child_tasks: string[] # 显式子 Task 列表
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
| 策略 | 含义 | 30 门禁 |
|
|
145
|
+
| --- | --- | --- |
|
|
146
|
+
| `must_complete_all` | 全部子 Task `done` 后 Epic 可 CLOSE | Epic **不**直接 30 |
|
|
147
|
+
| `any_completes` | 任一子 Task `done` 即 Epic 可签收(文档类 Epic) | 同上 |
|
|
148
|
+
|
|
149
|
+
**升格条件(backlog)**:需 Epic 看板 / 自动推进子 Task 时,Epic 升为 **一等类** + 独立 `epic.harness.v1.json`。
|
|
150
|
+
|
|
151
|
+
**依赖约束(v1.2+)**:
|
|
152
|
+
|
|
153
|
+
- `depends_on` / `child_tasks` 引用 **须** 指向已存在 task slug。
|
|
154
|
+
- **禁止循环依赖** · CLI:`harness task check --no-circular`(v0.3+ · A2 与 schema 同批)。
|
|
155
|
+
- 检测到环 → exit 非 0 · 列出环路径 · Epic CLOSE 阻塞。
|
|
156
|
+
|
|
157
|
+
### 1.5 VersionManifest 跨版本迁移(v0.3+ 设计)
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
upgrade vX → vY
|
|
161
|
+
1. manifest.json 记录 { version, upgraded_at, from_version }
|
|
162
|
+
2. AdoptedProfile:schema 字段 **只增不删** · CLI migrate 补默认值 · 未知字段保留在 _legacy
|
|
163
|
+
3. InvokeSnapshot / AuditReview:**永不**因 upgrade 改写(S2)
|
|
164
|
+
4. Template 实例(prompts 等):三路合并(见 §4.3 · **base 取自产品仓**)
|
|
165
|
+
5. rollback:SyncOperation.rollback(target_version) 读 manifest 快照 diff(v0.4+)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 2. 属性与关系
|
|
171
|
+
|
|
172
|
+
### 2.1 对象属性
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
# 产品 → 实例(安装 / 同步)
|
|
176
|
+
Preset --configures--> AdoptedProfile [1:1]
|
|
177
|
+
Track --declaredIn--> TrackManifest [1:1] # v0.4+
|
|
178
|
+
Track --materializesVia--> Template [1..*]
|
|
179
|
+
Template --copiedTo--> InstanceArtifact [0..*] # 按 Track 类型映射
|
|
180
|
+
|
|
181
|
+
WizardTool --installs--> AdoptedProfile [1:1]
|
|
182
|
+
WizardTool --executes--> SyncOperation [0..*]
|
|
183
|
+
SyncOperation --updates--> Template-derived files [subset] # 非全量
|
|
184
|
+
SyncOperation --mayRollbackTo--> VersionManifest [0..1] # v0.4+
|
|
185
|
+
|
|
186
|
+
# SDD 过程链(业务仓内)
|
|
187
|
+
Epic --decomposesInto--> Task [1..*]
|
|
188
|
+
Task --dependsOn--> Task [0..*] # task.depends_on · v1.1+
|
|
189
|
+
Epic --aggregatesStatusFrom--> Task [1..*] # 按 completion_policy
|
|
190
|
+
Task --governedBy--> Hat [1..*]
|
|
191
|
+
Task --hasGate--> HumanGate [0..*]
|
|
192
|
+
HumanGate --blocks--> Hat [1..*] # 每 Gate ≥1 Hat · 同 Gate 内 hat_id 不重复
|
|
193
|
+
Hat --mayBeBlockedBy--> HumanGate [0..*] # 同一 Hat 可被同 Task 多 Gate 阻塞(如 30 被 HG-AUDIT-R1 + HG-GRAPH-MODULES)
|
|
194
|
+
Hat --mayProduce--> InvokeSnapshot [0..1 per 新局]
|
|
195
|
+
Hat --mayProduce--> AuditReview [0..1 per 22 轮]
|
|
196
|
+
Hat --mayProduce--> FailureReport [0..1 per 30 失败]
|
|
197
|
+
Task --mustRead--> InformArtifact [1..*]
|
|
198
|
+
Task --constrainedBy--> ConstrainArtifact [0..*]
|
|
199
|
+
Task --verifiedBy--> VerifyArtifact [0..1]
|
|
200
|
+
|
|
201
|
+
# ICVO 与五轨映射
|
|
202
|
+
InformArtifact ← GraphTrack + WikiTrack
|
|
203
|
+
ConstrainArtifact ← StandardsTrack + IDETrack
|
|
204
|
+
ProcessTrack → Task, Hat, Invoke, Review, FailureReport
|
|
205
|
+
VerifyTrack → VerifyArtifact
|
|
206
|
+
OrchestrateTrack → OrchestratorHat, Epic 编排(Extended · 工作区)
|
|
207
|
+
|
|
208
|
+
# 执行壳(外置 · 仅引用)
|
|
209
|
+
Task --executedIn--> ExecutionShell [external] # Cursor / Kimi Code · 插件解耦
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 2.2 数据属性(节选)
|
|
213
|
+
|
|
214
|
+
```yaml
|
|
215
|
+
Hat:
|
|
216
|
+
hat_id: string # 稳定 ID · 如 "22-task-audit" · gate-check 解析用
|
|
217
|
+
|
|
218
|
+
Task:
|
|
219
|
+
task_slug: string
|
|
220
|
+
status: draft | pending | in_progress | blocked | failed | done
|
|
221
|
+
test_strategy: required | recommended | not_applicable
|
|
222
|
+
audit_profile: full | post_close | human_only
|
|
223
|
+
git_branch: string
|
|
224
|
+
depends_on: string[] # v1.1+ · 可选
|
|
225
|
+
|
|
226
|
+
HumanGate:
|
|
227
|
+
human_gate_id: string
|
|
228
|
+
status: pending | approved | rejected
|
|
229
|
+
blocks_hats: HatRef[] # [{ hat_id: "30-execute" }] · 禁止重复 hat_id
|
|
230
|
+
|
|
231
|
+
AuditReview:
|
|
232
|
+
audit_round: R1 | R2 | ... | CLOSE
|
|
233
|
+
invoke_snapshot: path
|
|
234
|
+
|
|
235
|
+
AdoptedProfile:
|
|
236
|
+
preset: string
|
|
237
|
+
tracks.*: boolean
|
|
238
|
+
_legacy: object # migrate 保留的未知字段
|
|
239
|
+
|
|
240
|
+
VersionManifest:
|
|
241
|
+
version: semver
|
|
242
|
+
from_version: semver | null
|
|
243
|
+
upgraded_at: iso8601
|
|
244
|
+
sync_snapshot_id: string # rollback 用 · v0.4+
|
|
245
|
+
|
|
246
|
+
SyncOperation:
|
|
247
|
+
mode: plan | apply | rollback
|
|
248
|
+
force_tracks: boolean # FORCE_TRACKS=1
|
|
249
|
+
require_clean_git: boolean # 默认 true · 见 S5
|
|
250
|
+
target_version: semver # rollback 专用
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### 2.3 基数约束(设计 invariant 预览)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
| 关系 | 基数 | 含义 |
|
|
257
|
+
| --------------------------- | -------------- | ------------- |
|
|
258
|
+
| Task → HumanGate | **0..*** | 一 Task 可有多个 Gate |
|
|
259
|
+
| HumanGate → blocks_hats | **1..*** · **无重复 hat_id** | 同一 Gate 内不可重复阻塞同一帽 |
|
|
260
|
+
| Hat → blocked_by_gates | **0..***(同 Task 内) | 多 Gate 可叠阻塞同一 Hat(如 30) |
|
|
261
|
+
| Task → HG-AUDIT-R1 | 改码类 **1:1 必须** | 30 前须存在且可解析 |
|
|
262
|
+
| 22 每轮 → AuditReview | **1:1 必须** | 零阻塞也落盘 |
|
|
263
|
+
| InvokeSnapshot → 新帽开局 | **0..1** | 每帽首次 §3 替换后落盘 |
|
|
264
|
+
| Sync → Task/Reviews/by-task | **禁止覆盖** | 业务数据与纪律层分离 |
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 3. 层次结构(Hierarchies)
|
|
270
|
+
|
|
271
|
+
### 3.1 五轨(Track 特化)
|
|
272
|
+
|
|
273
|
+
```text
|
|
274
|
+
Track(抽象)
|
|
275
|
+
├── GraphTrack → _tech_graph 模板
|
|
276
|
+
├── WikiTrack → coding_wiki 模板
|
|
277
|
+
├── StandardsTrack → standards 模板
|
|
278
|
+
├── ProcessTrack → harness/templates + prompts + invokes
|
|
279
|
+
├── VerifyTrack → ci/samples
|
|
280
|
+
└── IDETrack → cursor / claude / agents fragments
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
每轨产品仓可含 `track.yaml`(**v0.4+**):
|
|
284
|
+
|
|
285
|
+
```yaml
|
|
286
|
+
# 示例:harness/track.yaml
|
|
287
|
+
track_id: process
|
|
288
|
+
templates_root: harness/
|
|
289
|
+
sync_policy: discipline_only # 见 S1
|
|
290
|
+
depends_on: [] # 可选轨间依赖
|
|
291
|
+
instance_marker: .cyning-harness/tracks/process.yaml
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
#### 3.1.1 `track.yaml` / `track-schema.json`(TrackManifest · v0.4+)
|
|
295
|
+
|
|
296
|
+
| 字段 | 类型 | 必填 | 说明 |
|
|
297
|
+
| --- | --- | --- | --- |
|
|
298
|
+
| `track_id` | string | ✅ | 与 profile `tracks.<id>` 键一致 |
|
|
299
|
+
| `templates_root` | string | ✅ | 相对产品仓根 |
|
|
300
|
+
| `sync_policy` | enum | ✅ | `discipline_only` \| `install_only` \| `never` |
|
|
301
|
+
| `depends_on` | string[] | | 其他 `track_id` · 安装顺序 |
|
|
302
|
+
| `instance_marker` | string | | 业务仓实例声明路径 |
|
|
303
|
+
| `sync_globs` | string[] | | 覆盖默认 S1 域时的显式 glob(须 PR 审) |
|
|
304
|
+
|
|
305
|
+
JSON Schema 真值:`docs/schemas/track-schema.json`(v0.4+ · 与 `ontology.yaml` 的 `schemas.track` 互链)。
|
|
306
|
+
|
|
307
|
+
### 3.2 帽链(Hat 特化 · Starter vs Extended)
|
|
308
|
+
|
|
309
|
+
```text
|
|
310
|
+
Hat(抽象)
|
|
311
|
+
├── OrchestratorHat(00 · 工作区 Extended · 非 Starter 默认)
|
|
312
|
+
├── StarterHat
|
|
313
|
+
│ ├── RequirementsHat(10)
|
|
314
|
+
│ ├── TaskAuditHat(22)
|
|
315
|
+
│ └── ExecuteHat(30)
|
|
316
|
+
└── ExtendedHat(工作区 POINTER · 20/40/50/链式 PROMPT)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**设计决策**:
|
|
320
|
+
|
|
321
|
+
- 产品包默认闭包 = **StarterHat 子集 + ProcessTrack**。
|
|
322
|
+
- **ExtendedHat 仅供内部 / 签约伙伴** · 工作区 POINTER · **不**复制进用户仓 · README 须明确声明,避免社区误以为功能缺失。
|
|
323
|
+
- `blocks_hats` **必须**引用 `Hat.hat_id` · gate-check 动态解析 · **禁止**硬编码裸编号字符串作为唯一真值。
|
|
324
|
+
|
|
325
|
+
### 3.3 Preset 特化
|
|
326
|
+
|
|
327
|
+
```text
|
|
328
|
+
Preset
|
|
329
|
+
├── harness-only # Process + IDE(最小)
|
|
330
|
+
├── fullstack-node-py # 五轨 + quality + pytest
|
|
331
|
+
├── oss-fork-meta # harness-only + 上游 PR task 模板(通用 OSS fork)
|
|
332
|
+
└── kimi-code-meta # oss-fork-meta 的 Kimi Code 特化 · 见 §3.3.1
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### 3.3.1 `meta` 与 `bootstrap` 用语(与试点仓 kimi-code-meta 对齐)
|
|
336
|
+
|
|
337
|
+
| 用语 | 层级 | 含义 | 示例 |
|
|
338
|
+
| --- | --- | --- | --- |
|
|
339
|
+
| **meta**(过程轨 / 元层) | **实例 · 分支纪律** | 与 **main 产品轨** 分离的 Harness 过程层;承载 task / invoke / review · **不进上游 PR** | Git 分支 `cyning/meta` · 文档所称业务仓 **`kimi-code-meta`** |
|
|
340
|
+
| **bootstrap**(引导初始化) | **动作 · 一次性** | 在空 fork 上 **首次** 装入 Harness 纪律包的那一步 | `adopt-existing.sh --preset kimi-code-meta` · commit msg「过程轨 bootstrap」 |
|
|
341
|
+
| **kimi-code-meta**(Preset) | **产品 · 配置** | 面向 Kimi Code fork 的 preset:**等价于** 你对试点仓「kimi-code-meta」所期望的一键接入配置 | `wizard/profiles/kimi-code-meta.json` |
|
|
342
|
+
|
|
343
|
+
```text
|
|
344
|
+
kimi-code-meta(业务仓实例名)
|
|
345
|
+
└── 由 preset kimi-code-meta bootstrap 一次
|
|
346
|
+
└── 过程轨常驻分支 cyning/meta(meta 轨)
|
|
347
|
+
└── 产品 PR 从 main → feature/*(D6 · 双分支)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
- **`kimi-code-meta` Preset ≈ 试点里的 `kimi-code-meta` 仓**:同一意图 · 前者是产品侧可分发配置 · 后者是已运行的 BusinessRepository 实例(本地路径或 `kimi-code/` + `cyning/meta` 分支)。
|
|
351
|
+
- **与 `oss-fork-meta` 关系**:`kimi-code-meta` **extends** `oss-fork-meta`(继承上游 PR 模板 + 双分支纪律)+ Kimi 目录约定 + 可选 ExecutionShell 插件。
|
|
352
|
+
- **核心 Harness 与 Kimi Code 解耦** · Kimi 适配为可选插件(`examples/kimi-code-integration/`)· 不绑定单一 AI 后端。
|
|
353
|
+
|
|
354
|
+
**发布节奏**:**v0.3** `examples/kimi-code-integration/` 文档化手动 bootstrap · **v0.4** 正式 `wizard/profiles/kimi-code-meta.json` 内置 preset。
|
|
355
|
+
|
|
356
|
+
### 3.4 Task 特化
|
|
357
|
+
|
|
358
|
+
```text
|
|
359
|
+
Task(抽象)
|
|
360
|
+
├── CodeChangeTask # 须 HG-GRAPH-MODULES + HG-AUDIT-R1 + test_strategy
|
|
361
|
+
├── DocsOnlyTask # test_strategy 常 not_applicable
|
|
362
|
+
├── EpicTask # 编排子 Task · 不直接 30 · 见 §1.4
|
|
363
|
+
└── UpstreamPrTask # oss-fork 模板 · 双分支纪律
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## 4. 状态机与生命周期
|
|
369
|
+
|
|
370
|
+
### 4.1 SDD 帽链(ProcessTrack 核心)
|
|
371
|
+
|
|
372
|
+
```text
|
|
373
|
+
[00] ──► 10 ◄──────────────────────────────────────────────┐
|
|
374
|
+
│ draft/pending/in_progress │
|
|
375
|
+
▼ │
|
|
376
|
+
[20?] ──► 22(R*) ──[HG approved]──► 30 ──► 40 ──► 22(CLOSE) ──► done
|
|
377
|
+
│ │ │
|
|
378
|
+
│ ├── HG pending ──► blocked ──► (approve) ──► 继续
|
|
379
|
+
│ ├── HG rejected ──► task.status=draft ──► 10(强制)
|
|
380
|
+
│ └── 30 失败 ──► FailureReport ──► failed ──► 22 或 10
|
|
381
|
+
└── 否决 ──► 10
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**FailureReport 联动(模板级 · v0.3+)**:10 / 22 Prompt **须**检查 task 是否关联 `FailureReport`;若存在,`failed` 原因与退回路径须在 Review / 需求节 **显式引用** 该 Artifact 路径。
|
|
385
|
+
|
|
386
|
+
| 转移 | 条件 |
|
|
387
|
+
| ------- | ----------------------------------------------- |
|
|
388
|
+
| → 30 | `HG-AUDIT-R1 = approved` **且** 22 无内容阻塞 |
|
|
389
|
+
| 30 拒开工 | 任一 blocking gate = pending · 或 failure_paths 缺失 → **blocked** |
|
|
390
|
+
| 30 执行失败 | 产出 **FailureReport** · task.status → **failed** · 维护者选择退回 22 或 10 |
|
|
391
|
+
| HG rejected | 记录否决理由 · task.status → **draft** · **强制** 回 10 |
|
|
392
|
+
| → CLOSE | 22 终轮「签收/关闭」节 + task status → done |
|
|
393
|
+
| 10 重入 | 来自 20 否决 · HG **rejected** · 30 **failed**(含 FailureReport) |
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
| Task.status | 含义 | 恢复路径 |
|
|
397
|
+
| --- | --- | --- |
|
|
398
|
+
| `blocked` | Gate pending 或 30 拒开工 | Gate approved → 继续 30 |
|
|
399
|
+
| `failed` | 30 执行失败已落 FailureReport | 退回 22 修复 或 退回 10 重定范围 |
|
|
400
|
+
|
|
401
|
+
### 4.2 HumanGate
|
|
402
|
+
|
|
403
|
+
```text
|
|
404
|
+
pending ──(maintainer approve)──► approved
|
|
405
|
+
pending ──(maintainer reject)──► rejected
|
|
406
|
+
│ │
|
|
407
|
+
│ ├── 记录 reject_reason(gate-check / task 表格)
|
|
408
|
+
│ ├── task.status → draft
|
|
409
|
+
│ └── **强制退回 10**
|
|
410
|
+
pending ──(Agent 30 扫描)──► BLOCKED(运行时 · 非持久 status)──► TEMPLATE_30_gate_stop
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
| status | 22 行为 | 30 行为 | 后续 |
|
|
414
|
+
| --- | --- | --- | --- |
|
|
415
|
+
| `pending` | 可产出 Review · **禁止**附 30 Prompt(D2) | **BLOCKED** | — |
|
|
416
|
+
| `approved` | 正常 | 允许开工 | — |
|
|
417
|
+
| `rejected` | 须记录 `reject_reason` | **禁止** | **强制退回 10** · task.status → `draft` |
|
|
418
|
+
|
|
419
|
+
**gate-check 行为(v0.3+)**:解析到 `rejected` 时写入 `.cyning-harness/gate-check.log` · 若 task.status 仍为 `in_progress` 则 **警告** 并建议改 `draft`。
|
|
420
|
+
|
|
421
|
+
### 4.3 安装与同步(AdoptedProfile)
|
|
422
|
+
|
|
423
|
+
```text
|
|
424
|
+
Uninstalled
|
|
425
|
+
│ install.sh + preset
|
|
426
|
+
▼
|
|
427
|
+
Installed(profile.json + 首次 copy)
|
|
428
|
+
│ harness-sync apply(S5 git-clean 检查)
|
|
429
|
+
▼
|
|
430
|
+
Synced(纪律层文件 = 产品包选定版本)
|
|
431
|
+
│ upgrade / npx harness upgrade(v0.3+)
|
|
432
|
+
▼
|
|
433
|
+
Synced(vY)(manifest.version 更新 · 三路合并)
|
|
434
|
+
│ SyncOperation.rollback(target_version)(v0.4+)
|
|
435
|
+
▼
|
|
436
|
+
Synced(vX)(纪律层回滚 · Task/Reviews 仍受 S2 保护)
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
**不变式**:`Synced → Synced` **never** 覆盖 Task / AuditReview / invokes/by-task / 已填 Inform 正文。
|
|
440
|
+
|
|
441
|
+
**三路合并(upgrade 时 · v0.3+ 设计 · v0.4 实现)**:
|
|
442
|
+
|
|
443
|
+
```text
|
|
444
|
+
base = 产品仓 DisciplinePackage@from_version 的原始 Template( tarball / npm 包内 · **非** 业务仓旧实例)
|
|
445
|
+
ours = 业务仓当前实例(用户 sync 后改写的 prompts/22-*.md 等)
|
|
446
|
+
theirs = 产品仓 DisciplinePackage@target_version 的原始 Template
|
|
447
|
+
|
|
448
|
+
冲突 → 写 *.merge 文件 + 冲突清单 · **必须人工 resolve** 后方可 continue apply · **禁止** auto-skip 或静默覆盖
|
|
449
|
+
无冲突 → 自动合并 · 仍须 plan 可见 diff(S4)
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
**plan 预检(v0.3+)**:`harness sync plan` / `upgrade plan` 对 S1 域文件比较 **ours vs theirs** 哈希或 diff · **提前** 列出「将冲突」清单 · 不必等到 apply 才失败。
|
|
453
|
+
|
|
454
|
+
用户改写过的 Template 实例:**默认保留用户修改** · 非强制覆盖 · **冲突一律人工介入**(无「渐进简化」分支 · 见 v1.1 设计讨论)。
|
|
455
|
+
|
|
456
|
+
### 4.4 AuditReview 轮次
|
|
457
|
+
|
|
458
|
+
```text
|
|
459
|
+
R1 ──(内容阻塞)──► task 回填 ──► R2 ── … ──► CLOSE
|
|
460
|
+
R1 ──(零阻塞 + 人签)──► 30 允许
|
|
461
|
+
30 failed ──► FailureReport ──► 22(R*) 追加轮次
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## 5. 关键规则与公理(Axioms)
|
|
467
|
+
|
|
468
|
+
### 5.1 产品结构公理
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
| ID | 公理 |
|
|
472
|
+
| ------ | ----------------------------------------------------------- |
|
|
473
|
+
| **P1** | 产品包 **不含** 业务代码、LLM Runtime、MCP Host |
|
|
474
|
+
| **P2** | 单源模板在产品仓;业务仓为 **实例**,自行维护增量 |
|
|
475
|
+
| **P3** | `refuse_if_product_root`:禁止对 `cyning-harness` 自身 apply sync · CLI **硬检查** + 友好提示 |
|
|
476
|
+
| **P4** | IDE 合并仅用 `<!-- cyning-harness:begin/end -->` marker 区 |
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
### 5.2 同步公理
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
| ID | 公理 |
|
|
483
|
+
| ------ | ---------------------------------------------------------------- |
|
|
484
|
+
| **S1** | 默认 sync 域:`harness/prompts`、`invokes/TEMPLATE`、IDE 规则/fragment |
|
|
485
|
+
| **S2** | **禁止** sync 覆盖:`docs/tasks/`**、`reviews/**`、`invokes/by-task/**` · **新 Artifact 类型入 sync 域前须更新本列表** |
|
|
486
|
+
| **S3** | 图谱/wiki **仅** install 或 `FORCE_TRACKS=1` 重拷 |
|
|
487
|
+
| **S4** | sync 前须 `plan` 可见 diff(人机信任) |
|
|
488
|
+
| **S5** | sync/apply 前检测 Git 工作区干净 · 否则 **警告** 或要求 `--force`(v0.3+) |
|
|
489
|
+
| **S6** | rollback **不得** 触及 S2 保护域 · 仅恢复纪律层 Template 实例(v0.4+) |
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
### 5.3 SDD 过程公理
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
| ID | 公理 |
|
|
496
|
+
| ------ | --------------------------------------------------- |
|
|
497
|
+
| **D1** | 每次 22 **必须** 产出 `AuditReview`(零阻塞须写明) |
|
|
498
|
+
| **D2** | `HG-AUDIT-R1 = pending` 时 22 **禁止** 附 30 Prompt |
|
|
499
|
+
| **D3** | 30 首输出 **必须** 扫描 task 闸表(见 `TEMPLATE_30_gate_stop`) · 目标 CLI:`gate-check` |
|
|
500
|
+
| **D4** | 改码 task 开工前 `HG-GRAPH-MODULES = approved`(D4-a) |
|
|
501
|
+
| **D5** | `test_strategy=required` → 须先失败测试再实现(或同 PR 可见红过) |
|
|
502
|
+
| **D6** | 上游 OSS PR **不得** 含 ProcessTrack / Harness 纪律层实例(双分支 · 见 **D6-a**) |
|
|
503
|
+
| **D7** | `git_branch ∈ {main, master}` 的 Task 须 `HG-RELEASE = approved` 方可合并/发布(v0.4+ · HumanGate) |
|
|
504
|
+
|
|
505
|
+
**D6-a · 上游 PR 禁止路径(机械检查)**:
|
|
506
|
+
|
|
507
|
+
```text
|
|
508
|
+
docs/harness/** # prompts · invokes · reviews · POINTER
|
|
509
|
+
docs/tasks/**
|
|
510
|
+
.cyning-harness/**
|
|
511
|
+
.cursor/rules/*harness* # 含 06-harness-pointer 等
|
|
512
|
+
AGENTS.md / CLAUDE.md 内 cyning-harness marker 区段(整文件若仅含 marker 亦禁止)
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
试点自检命令(与 PILOT 一致):`git diff upstream/main --name-only` 不得命中上列路径。
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
### 5.4 ICVO 映射公理
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
| 支柱 | 产品轨 | 实例类 |
|
|
522
|
+
| ------------- | ------------------ | ----------------------------------- |
|
|
523
|
+
| **Inform** | Graph + Wiki | InformArtifact |
|
|
524
|
+
| **Constrain** | Standards + IDE | ConstrainArtifact |
|
|
525
|
+
| **Verify** | CI samples + 22/40 | VerifyArtifact + AuditReview + 自检结论 |
|
|
526
|
+
| **Orchestrate** | ProcessTrack(Extended) | OrchestratorHat · Epic 编排 · Invoke 索引 · Handoff |
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
**Guides(Hat)** 叠加于 ICV 之上;**Orchestrate** 管过程编排与 Extended 帽 · **不替代** Verify(CI)。
|
|
530
|
+
|
|
531
|
+
**CLI 审计目标(v1.0)**:`harness audit` / `harness check` 机械执行 D3、D5、S5 子集。
|
|
532
|
+
|
|
533
|
+
---
|
|
534
|
+
|
|
535
|
+
## 6. 物理映射表(类 → 路径)
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
| 类 | 产品包路径 | 业务仓实例路径 |
|
|
539
|
+
| ---------------------- | ------------------------------------ | ---------------------------------------- |
|
|
540
|
+
| GraphTrack 模板 | `graph/templates/` · `graph/track.yaml` | `docs/_tech_graph/` |
|
|
541
|
+
| WikiTrack 模板 | `coding_wiki/templates/` · `track.yaml` | `docs/coding_wiki/` |
|
|
542
|
+
| StandardsTrack | `standards/` · `track.yaml` | `docs/standards/` |
|
|
543
|
+
| ProcessTrack · Task 模板 | `harness/templates/` · `track.yaml` | `docs/tasks/` |
|
|
544
|
+
| ProcessTrack · Hat | `harness/prompts/` | `docs/harness/prompts/` |
|
|
545
|
+
| InvokeSnapshot 模板 | `harness/invokes/TEMPLATE_invoke.md` | `docs/harness/invokes/` |
|
|
546
|
+
| InvokeSnapshot 索引 | — | `.cyning-harness/invoke_index.json`(sync --index · v1.0) |
|
|
547
|
+
| VerifyTrack | `ci/samples/` · `track.yaml` | `.github/workflows/` |
|
|
548
|
+
| IDETrack | `ide/adapters/` · `track.yaml` | `.cursor/rules/`、`CLAUDE.md`、`AGENTS.md` |
|
|
549
|
+
| AdoptedProfile | — | `.cyning-harness/profile.json` |
|
|
550
|
+
| VersionManifest | — | `.cyning-harness/manifest.json`(v0.3+) |
|
|
551
|
+
| GateCheckRun 日志 | — | `.cyning-harness/gate-check.log`(追加 · 审计) |
|
|
552
|
+
| TrackManifest(实例) | — | `.cyning-harness/tracks/*.yaml` |
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## 7. 基于本体的产品设计含义
|
|
558
|
+
|
|
559
|
+
### 7.1 核心枢纽(实现优先级)
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
| 枢纽 | 说明 |
|
|
563
|
+
| ------------------------------------------------ | ----------------------------------- |
|
|
564
|
+
| **ProcessTrack × Hat × HumanGate × AuditReview** | 产品差异化核心 · Starter 须闭环 |
|
|
565
|
+
| **SyncOperation 边界(S1–S6)** | wizard 正确性的根本 · npx CLI 须复用同一 apply |
|
|
566
|
+
| **Preset → AdoptedProfile** | 安装 UX 的单一配置真值 |
|
|
567
|
+
| **MarkerBlock** | 多 IDE 不分裂 AGENTS/CLAUDE 真值 |
|
|
568
|
+
| **ICVO 四支柱** | 对外叙事 · Inform/Constrain/Verify/Orchestrate |
|
|
569
|
+
|
|
570
|
+
|
|
571
|
+
### 7.2 当前薄弱类(v0.2 缺口)
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
| 类 / 关系 | 缺口 | 设计 backlog · 建议 Issue 标签 |
|
|
575
|
+
| ----------------------- | ------------- | ------------------------------ |
|
|
576
|
+
| **VersionManifest** | 未实现 | A1 · npx upgrade · `enhancement` |
|
|
577
|
+
| **SyncOperation.rollback** | 未实现 | A1-b · manifest 快照 · v0.4 |
|
|
578
|
+
| **Hat · 40-self-check** | Starter 未含 | A2 闭包 · `enhancement` |
|
|
579
|
+
| **Task × JSON Schema** | 仅 Markdown 约定 | `task.harness.v1.json` · A2 |
|
|
580
|
+
| **InvokeSnapshot 索引** | 无机器索引 | `invoke_index.json` · sync --index |
|
|
581
|
+
| **gate-check --graph** | 部分实现 | Q3 产品化 · D4-a 可视化 |
|
|
582
|
+
| **ExtendedHat** | 与 Starter 双真值 | POINTER 文档化 · 不开源全文 · README 声明 |
|
|
583
|
+
| **ontology.yaml** | 未抽取 | v0.4 · `harness ontology-check` |
|
|
584
|
+
| **FailureReport** | 未模板化 | v0.3 · 30 失败路径 |
|
|
585
|
+
| **kimi-code-meta** preset | examples v0.3 · profiles v0.4 | `examples/kimi-code-integration/` · `enhancement` |
|
|
586
|
+
| **Harness Graph Model** | 未实现 · 对话已归档 | [`../graph/HARNESS_GRAPH_MODEL_design_v0_zh.md`](../graph/HARNESS_GRAPH_MODEL_design_v0_zh.md) · v0.5+ |
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
### 7.3 扩展规则(加新功能时)
|
|
590
|
+
|
|
591
|
+
|
|
592
|
+
| 若要加… | 须先… |
|
|
593
|
+
| ----------- | -------------------------------------------------------------------- |
|
|
594
|
+
| 新 Track | 定义 Track 类 → `track.yaml` → Template 路径 → profile.json `tracks.*` → install/sync 分支 |
|
|
595
|
+
| 新 Hat | 定义 Hat 子类 + **hat_id** → 是否入 Starter → invoke 模板 §3 → SDD_HAT_FLOW 编号 |
|
|
596
|
+
| 新 HumanGate | 定义 blocks_hats(HatRef)→ gate-check.sh 解析 → 30/22 联动文案 |
|
|
597
|
+
| 新 Preset | 新建 profiles JSON → ONBOARDING 菜单 → 不破坏 S1–S6 |
|
|
598
|
+
| 新 Artifact 类型 | 定义与 Task/Hat 关系 → **更新 S2 禁止覆盖列表** → sync plan 须显示该类路径 · 更新 §6 映射 |
|
|
599
|
+
|
|
600
|
+
|
|
601
|
+
### 7.4 v0.3 设计约束(来自本体)
|
|
602
|
+
|
|
603
|
+
```text
|
|
604
|
+
npx CLI ≡ WizardTool 新实例
|
|
605
|
+
→ 读 VersionManifest
|
|
606
|
+
→ 下载 DisciplinePackage@version
|
|
607
|
+
→ 调用同一 harness-sync.sh apply(S5 · S4 plan)
|
|
608
|
+
→ 不得新增「绕过 S2 的写路径」
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
### 7.5 与同类工具的差异(对外简述)
|
|
612
|
+
|
|
613
|
+
| 维度 | cyning-harness | LangChain / Semantic Kernel 等 |
|
|
614
|
+
| --- | --- | --- |
|
|
615
|
+
| 定位 | **纪律包** · SDD 过程审计 | Agent 编排 / 工具链 SDK |
|
|
616
|
+
| 过程落盘 | AuditReview · InvokeSnapshot · HumanGate | 通常无一等过程制品 |
|
|
617
|
+
| ICVO 分离 | Inform / Constrain / Verify / Orchestrate 显式映射 | 上下文与工具混编 |
|
|
618
|
+
| 同步边界 | S2 铁律 · 不覆盖用户 Task | 不适用 |
|
|
619
|
+
| AI 后端 | ExecutionShell 外置 · 插件可选 | 常绑定模型/provider |
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## 8. 与 SDD 编号对照(快速查)
|
|
624
|
+
|
|
625
|
+
|
|
626
|
+
| 编号 | Hat 类 | 必落盘类 |
|
|
627
|
+
| --- | --------------- | ---------------- |
|
|
628
|
+
| 00 | OrchestratorHat | —(Handoff / KPI · Extended) |
|
|
629
|
+
| 10 | RequirementsHat | Task(更新) |
|
|
630
|
+
| 20 | SpecReviewHat | —(对话 · Extended) |
|
|
631
|
+
| 22 | TaskAuditHat | **AuditReview** |
|
|
632
|
+
| 30 | ExecuteHat | 代码 diff · **FailureReport**(失败时) |
|
|
633
|
+
| 40 | SelfCheckHat | Task.自检结论 · Extended Starter 待 A2 |
|
|
634
|
+
| 50 | ReinspectHat | 可选 Review · Extended |
|
|
635
|
+
|
|
636
|
+
|
|
637
|
+
---
|
|
638
|
+
|
|
639
|
+
## 9. 开放问题(初稿待收敛)
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
| # | 问题 | 建议决策方向 |
|
|
643
|
+
| --- | ----------------------------------------------- | -------------------------- |
|
|
644
|
+
| Q1 | Epic 是否升格为一等类(独立 schema)? | **v1 暂为 Task 特化** · 模板增 `depends_on` · 看板需求再升格 |
|
|
645
|
+
| Q2 | `invokes/by-task/<slug>/` 是否纳入本体索引? | **是** · InvokeSnapshot 聚合容器 · `invoke_index.json` 由 sync --index 生成 |
|
|
646
|
+
| Q3 | graph 模块表 `HG-GRAPH-MODULES` 是否产品化进 gate-check? | **是** · `gate-check --graph` 输出依赖模块图 + 审核状态 |
|
|
647
|
+
| Q4 | KPI(00)是否进 Starter? | **否** · 保持 Extended |
|
|
648
|
+
| Q5 | 是否支持热插拔 Track(动态启停轨而不 reinstall)? | **v0.5+ 再议** · 须改 profile + 部分 sync · 复杂度高 |
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
---
|
|
652
|
+
|
|
653
|
+
## 10. 对 v1.0 评审意见的采纳说明(2026-06-15)
|
|
654
|
+
|
|
655
|
+
| 评审点 | 采纳 | 落点 |
|
|
656
|
+
| --- | --- | --- |
|
|
657
|
+
| 元本体 / 维护规则 | ✅ | §0.1 |
|
|
658
|
+
| 实现分阶段(防过度设计) | ✅ | §0.2 |
|
|
659
|
+
| VersionManifest 迁移 | ✅ | §1.5 |
|
|
660
|
+
| Epic 编排 / depends_on | ✅ | §1.4 · Task.depends_on |
|
|
661
|
+
| Sync rollback + 三路合并 | ✅ 设计 · v0.4 实现 | §1.3 · §4.3 · S6 |
|
|
662
|
+
| HumanGate rejected + HatRef | ✅ | §2.2 · §4.2 |
|
|
663
|
+
| SDD 异常态 / FailureReport | ✅ | §4.1 · Task.status |
|
|
664
|
+
| S5 git-clean · D7 HG-RELEASE | ✅ | §5.2 · §5.3 |
|
|
665
|
+
| ICVO 第四支柱 Orchestrate | ✅ | §5.4 |
|
|
666
|
+
| track.yaml · gate-check.log | ✅ | §3.1 · §6 |
|
|
667
|
+
| kimi-code-meta preset | ✅ 更名 · 与试点仓对齐 | §3.3.1 |
|
|
668
|
+
| HumanGate rejected → 10 | ✅ **已锁定** | §4.2 |
|
|
669
|
+
| 三路合并冲突 | ✅ **人工介入 · 禁止 auto-skip** | §4.3 |
|
|
670
|
+
| ExtendedHat README 声明 | ✅ | §3.2 |
|
|
671
|
+
| ontology.yaml 机器可读 | ✅ v0.4+ | §0.1 · §7.2 |
|
|
672
|
+
| Q5 热插拔 Track | ✅ 延后 | §9 Q5 |
|
|
673
|
+
| README 设计哲学 / 对比表 | ⏳ 实现期 | §7.5 摘要 · 完整版进 README(A3 前) |
|
|
674
|
+
| examples/kimi-code-integration | ⏳ v0.4 | §3.3 · §7.2 backlog |
|
|
675
|
+
|
|
676
|
+
---
|
|
677
|
+
|
|
678
|
+
## 11. 对 v1.2 评审意见的采纳说明(2026-06-15)
|
|
679
|
+
|
|
680
|
+
| 评审点 | 采纳 | 落点 |
|
|
681
|
+
| --- | --- | --- |
|
|
682
|
+
| 外部贡献 / 最小变更清单 | ✅ v1.0 后 | §0.3 |
|
|
683
|
+
| `ontology.yaml` 骨架 | ✅ v0.4 实现 | §0.4 |
|
|
684
|
+
| `track.yaml` schema | ✅ | §3.1.1 · track-schema.json |
|
|
685
|
+
| depends_on 禁环 | ✅ v0.3 CLI | §1.4 |
|
|
686
|
+
| 三路合并 base 澄清 | ✅ | §4.3(产品仓原始 Template) |
|
|
687
|
+
| plan 预检冲突 | ✅ v0.3 | §4.3 |
|
|
688
|
+
| HumanGate 基数细化 | ✅ | §2.1 · §2.3 |
|
|
689
|
+
| 状态图 draft/rejected | ✅ | §4.1 · §4.2 |
|
|
690
|
+
| FailureReport → 10/22 引用 | ✅ 模板级 | §4.1 |
|
|
691
|
+
| gate-check rejected → draft | ✅ v0.3 | §4.2 |
|
|
692
|
+
| D6 路径枚举 D6-a | ✅ | §5.3 |
|
|
693
|
+
| kimi-code-meta v0.3 examples | ✅ | §3.3.1 · §7.2 |
|
|
694
|
+
| GitHub Issues 预建 | ⏳ push 前 | §7.2 标签 · 非本体 |
|
|
695
|
+
| README / 博客 / 最小闭环 | ⏳ **优先实现** | 见下节 §11.1 |
|
|
696
|
+
|
|
697
|
+
### 11.1 下一步优先级(评审共识 · 非本体变更)
|
|
698
|
+
|
|
699
|
+
```text
|
|
700
|
+
P0 最小 v0.2 闭环(harness-only · sync plan/apply · 10→22→30 金样)
|
|
701
|
+
P1 gate-check 基础 · README Quick Start + §7.5 展开
|
|
702
|
+
P2 examples/kimi-code-integration(v0.3)· 第一篇对外博客
|
|
703
|
+
P3 v0.2.0 tag · Kimi 社区触达 · 简历链 GitHub
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
**原则**:v1.2 本体 **冻结至 v0.2 闭环跑通**;实现中发现的缺口走 §12 小版本修订,不再做大改。
|
|
707
|
+
|
|
708
|
+
---
|
|
709
|
+
|
|
710
|
+
## 12. 修订记录
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
| 版本 | 日期 | 说明 |
|
|
714
|
+
| ---- | ---------- | ---------------------------------- |
|
|
715
|
+
| v1.0 | 2026-06-13 | 初稿:产品包/实例域 · 五轨 · SDD 公理 · v0.3 约束 |
|
|
716
|
+
| v1.1 | 2026-06-15 | 吸收外部评审:元本体 · ICVO · 异常态 · 迁移/rollback · Epic 编排 · S5/S6/D7 · track.yaml · Q5 |
|
|
717
|
+
| v1.1.1 | 2026-06-15 | Preset 更名 `kimi-code-meta` · §3.3.1 meta/bootstrap 用语 · 锁定 rejected→10 · 合并冲突强制人工 |
|
|
718
|
+
| v1.2 | 2026-06-15 | v1.2 评审:§0.3 贡献清单 · §0.4 ontology.yaml · track-schema · D6-a · 合并 base 澄清 · plan 预检 · 状态图细化 · depends_on 禁环 |
|
|
719
|
+
|