@cyning/harness 1.0.1 → 1.1.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/CHANGELOG.md +29 -0
- package/README.md +2 -1
- package/docs/USER_GUIDE_v1.0_zh.md +58 -5
- package/docs/methodology/graph/INFORM_YAML_MIGRATION_v1_zh.md +81 -0
- package/docs/methodology/graph/PROMPT_ontology_inventory_scan_G0_v1_zh.md +313 -0
- package/docs/methodology/graph/README.md +2 -0
- package/docs/methodology/graph/inventory/ONTOLOGY_INVENTORY_ai_ink_brain_api_python_v1.yaml +283 -0
- package/docs/methodology/graph/inventory/ONTOLOGY_INVENTORY_cyning_harness_v1.yaml +233 -0
- package/examples/demo_checkout/00_main.graph.yaml +42 -0
- package/examples/demo_checkout/00_main.md +66 -0
- package/examples/demo_checkout/README.md +3 -0
- package/examples/demo_checkout/graph.json +111 -0
- package/lib/cli.js +153 -7
- package/lib/graph-yaml.js +547 -0
- package/lib/verify.js +58 -9
- package/ontology.yaml +1 -1
- package/package.json +4 -1
- package/schema/inform_graph.v3.schema.json +134 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,35 @@
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.1.0] - 2026-06-17
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **Inform Graph YAML v3**:`schema/inform_graph.v3.schema.json` · 对齐试点 `*.graph.yaml` 编辑源
|
|
12
|
+
- **Inform-YAML 迁移对照表**:`docs/methodology/graph/INFORM_YAML_MIGRATION_v1_zh.md` · 试点字段 → 产品字段
|
|
13
|
+
- **`harness graph yaml compile|check`**:YAML → Mermaid MD + 结构化表 · YAML ↔ graph.json slice diff
|
|
14
|
+
- **demo_checkout dogfood**:`examples/demo_checkout/00_main.graph.yaml` + `graph.json` + `00_main.md`
|
|
15
|
+
- **测试覆盖**:`test/graph-yaml.test.js` + `test/gate-check.graph.test.js` Inform-YAML 路径
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- **USER_GUIDE v1.0**:新增 §13 Inform-YAML 章 · 明确 MD / YAML / HGM 三轨边界
|
|
20
|
+
- **README**:当前版本 → **v1.1.0** · 补充 `graph yaml` 命令速查
|
|
21
|
+
- **`ontology.yaml`**:`product_semver: "1.1.0"`
|
|
22
|
+
|
|
23
|
+
### Notes
|
|
24
|
+
|
|
25
|
+
- **HG-RELEASE**(tag v1.1.0 · npm publish)仍留维护者人闸
|
|
26
|
+
- `gate-check --graph` 语义不变;Inform 模块闸仍读 `docs/_tech_graph/`
|
|
27
|
+
- HGM G1 v2.0 仍待 Y1 merge + npm 发布(或维护者书面豁免)后启动
|
|
28
|
+
|
|
29
|
+
## [1.0.2] - 2026-06-16
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **`verify` 无 `--task`**:摘要不再误匹配闸表行 `❌ 拒 30`;多 task 阻塞时摘要列出 blocked task 名
|
|
34
|
+
- **`verify` BLOCKED**:exit 2 时不再打印空 `Error` stack trace
|
|
35
|
+
|
|
7
36
|
## [1.0.1] - 2026-06-16
|
|
8
37
|
|
|
9
38
|
### Added
|
package/README.md
CHANGED
|
@@ -91,6 +91,7 @@ npx @cyning/harness upgrade --gate-check # upgrade 前自动 audit
|
|
|
91
91
|
- **S5**:dirty 工作区 warn,apply 须 `--force` 明示
|
|
92
92
|
|
|
93
93
|
Inform 图谱闸:`npx @cyning/harness gate-check --graph --target /path/to/your-repo`
|
|
94
|
+
Inform-YAML:`npx @cyning/harness graph yaml compile|check --input docs/_tech_graph`(v1.1+)
|
|
94
95
|
Invoke 索引:`npx @cyning/harness sync index --target /path/to/your-repo`(不覆盖 S2 域)
|
|
95
96
|
|
|
96
97
|
Node 仓可选:`npx @cyning/harness init --with-scripts` → `pnpm harness:verify`。
|
|
@@ -167,7 +168,7 @@ cyning-harness/
|
|
|
167
168
|
|
|
168
169
|
| 项 | 值 |
|
|
169
170
|
|----|-----|
|
|
170
|
-
| 当前 | **v1.
|
|
171
|
+
| 当前 | **v1.1.0** — Inform-YAML · `graph yaml compile|check` · ICVO audit · invoke_index · gate-check --graph · B2 证据 |
|
|
171
172
|
| 上一档 | v0.4.0 — A3 public push · MIT · 脱敏金样 |
|
|
172
173
|
| 许可 | **MIT** · [`LICENSE`](LICENSE) · Release [`docs/RELEASE_v1.0.0.md`](docs/RELEASE_v1.0.0.md) |
|
|
173
174
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# cyning-harness v1.0 · 使用手册
|
|
2
2
|
|
|
3
3
|
> **读者**:要在 **自己的业务仓库** 里落地 AI 辅助研发纪律的开发者(非 cyning-harness 维护者)。
|
|
4
|
-
> **版本**:[`@cyning/harness@1.0
|
|
4
|
+
> **版本**:[`@cyning/harness@1.1.0`](https://www.npmjs.com/package/@cyning/harness) · MIT
|
|
5
5
|
> **仓库**:<https://github.com/Cyning12/cyning-harness>
|
|
6
6
|
> **更短入口**:[`README.md`](../README.md) Quick Start · [`ONBOARDING.md`](./ONBOARDING.md) 接入细节
|
|
7
7
|
> **Release**:[`RELEASE_v1.0.1.md`](./RELEASE_v1.0.1.md) · [`CHANGELOG.md`](../CHANGELOG.md)
|
|
@@ -226,20 +226,66 @@ npm run harness -- check --target /tmp/foo
|
|
|
226
226
|
|
|
227
227
|
---
|
|
228
228
|
|
|
229
|
-
## 10.
|
|
229
|
+
## 10. Inform-YAML 图谱编辑源(v1.1+)
|
|
230
|
+
|
|
231
|
+
从 `@cyning/harness@1.1.0` 起,业务仓可选择用 **`docs/_tech_graph/*.graph.yaml`** 作为 Inform 架构图谱的编辑源,再编译为 `.md`(人类可读)与 `graph.json`(机器可读)。
|
|
232
|
+
|
|
233
|
+
### 10.1 三轨边界
|
|
234
|
+
|
|
235
|
+
| 轨 | 文件 | 用途 | 版本 |
|
|
236
|
+
| --- | --- | --- | --- |
|
|
237
|
+
| **MD 人类轨** | `docs/_tech_graph/*.md` | 代码审阅、README 引用、Mermaid 渲染 | v1.0+ |
|
|
238
|
+
| **YAML 编辑源** | `docs/_tech_graph/*.graph.yaml` | 结构化编辑、diff、CI 校验 | **v1.1+** |
|
|
239
|
+
| **HGM 过程轨** | `.cyning-harness/events/*.jsonl` | Task / Gate / Review 实例与事件史 | **v2.0+** |
|
|
240
|
+
|
|
241
|
+
**原则**:YAML 为 Inform 编辑源,HGM 为过程事件图;YAML **不替代** task/review 真值,HGM **不替代** YAML/MD Inform 正文。
|
|
242
|
+
|
|
243
|
+
### 10.2 最小工作流
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# 1. 在业务仓编辑 docs/_tech_graph/00_main.graph.yaml
|
|
247
|
+
# 2. 编译为 Markdown(人类可读)
|
|
248
|
+
npx @cyning/harness graph yaml compile --graph-id 00_main --input docs/_tech_graph
|
|
249
|
+
|
|
250
|
+
# 3. 校验 YAML 与 graph.json 切片是否一致
|
|
251
|
+
npx @cyning/harness graph yaml check --graph-id 00_main --input docs/_tech_graph
|
|
252
|
+
|
|
253
|
+
# 4. 一次性编译/校验全部 *.graph.yaml
|
|
254
|
+
npx @cyning/harness graph yaml compile --all --input docs/_tech_graph
|
|
255
|
+
npx @cyning/harness graph yaml check --all --input docs/_tech_graph
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### 10.3 schema 与迁移
|
|
259
|
+
|
|
260
|
+
- **产品 schema**:[`schema/inform_graph.v3.schema.json`](../../schema/inform_graph.v3.schema.json)
|
|
261
|
+
- **迁移对照表**:[`docs/methodology/graph/INFORM_YAML_MIGRATION_v1_zh.md`](./methodology/graph/INFORM_YAML_MIGRATION_v1_zh.md)
|
|
262
|
+
- **试点真值**:Ink 后端 `ai-ink-brain-api-python/docs/_tech_graph/*.graph.yaml`
|
|
263
|
+
|
|
264
|
+
### 10.4 与 gate-check --graph 的关系
|
|
265
|
+
|
|
266
|
+
`gate-check --graph` 语义不变:仍扫描 `docs/_tech_graph/` 下所有模块/流程文件,输出 `HG-GRAPH-MODULES` 状态摘要。新增 `.graph.yaml` 文件会 **友好列出**,不改变通过/失败规则。
|
|
267
|
+
|
|
268
|
+
### 10.5 金样
|
|
269
|
+
|
|
270
|
+
`examples/demo_checkout/00_main.graph.yaml` 提供零风险 Inform-YAML 切片,可对照其生成的 `00_main.md` 与 `graph.json`。
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 11. 局限与诚实边界(v1.1)
|
|
230
275
|
|
|
231
276
|
| 项 | 说明 |
|
|
232
277
|
| --- | --- |
|
|
233
278
|
| 不是胜率工具 | [`README` 试点证据 B2](../README.md) · 完整表 [`PILOT_EVIDENCE_B2_v1_zh.md`](./methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md) · **小样本机制证据**,不可外推 |
|
|
234
279
|
| bench `100` | [SDD-Compliance](../examples/compliance_bench/README.md) 四场景合规率 · 见上文 §6.1 |
|
|
235
280
|
| Extended 帽 | 00/50/链式 PROMPT 不在 Starter 默认包 · 见 [`harness/prompts/README.md`](../harness/prompts/README.md) |
|
|
236
|
-
|
|
|
281
|
+
| Inform-YAML | **v1.1+** · 可选编辑源 · 须 `graph yaml check` 与 `graph.json` 一致 |
|
|
282
|
+
| HGM / 图数据库 | **Track G · v2.0+ 提案**,v1.1 未实现事件 ingest |
|
|
237
283
|
| Agent-shell | 研究轨 #9,非 npm 功能 |
|
|
238
284
|
| rejected→draft | bench S5 场景 v1 未纳入;gate-check 对非 approved 拒 30 |
|
|
239
285
|
|
|
240
286
|
---
|
|
241
287
|
|
|
242
|
-
##
|
|
288
|
+
## 12. 常见问题
|
|
243
289
|
|
|
244
290
|
**Q:Harness 会调用我的 LLM 吗?**
|
|
245
291
|
A:不会。LLM 在你使用的 IDE 里;Harness 只提供文件、脚本与约定。
|
|
@@ -253,12 +299,18 @@ A:`init --ide cursor` 会生成入口片段;Harness task + prompts 是 **任
|
|
|
253
299
|
**Q:升级后 task 会被覆盖吗?**
|
|
254
300
|
A:不会(S2 域)。若 prompts 模板有更新,apply 会更新 **模板侧**,不删你的 active task。
|
|
255
301
|
|
|
302
|
+
**Q:如何编辑 Inform 架构图?**
|
|
303
|
+
A:v1.1+ 可选 `docs/_tech_graph/*.graph.yaml` 作为编辑源,运行 `npx @cyning/harness graph yaml compile|check` 生成 MD / 校验 graph.json。
|
|
304
|
+
|
|
305
|
+
**Q:HGM 与 Inform-YAML 是什么关系?**
|
|
306
|
+
A:Inform-YAML 是 **架构图谱** 的编辑源;HGM(v2.0+)是 **过程协作** 的事件图。二者并列,HGM 通过 `InformArtifact` 节点引用 Inform 产物,但不覆盖其正文。
|
|
307
|
+
|
|
256
308
|
**Q:如何贡献或报 issue?**
|
|
257
309
|
A:GitHub [Cyning12/cyning-harness](https://github.com/Cyning12/cyning-harness) · MIT。
|
|
258
310
|
|
|
259
311
|
---
|
|
260
312
|
|
|
261
|
-
##
|
|
313
|
+
## 13. 进一步阅读
|
|
262
314
|
|
|
263
315
|
| 优先级 | 文档 |
|
|
264
316
|
| --- | --- |
|
|
@@ -282,3 +334,4 @@ A:GitHub [Cyning12/cyning-harness](https://github.com/Cyning12/cyning-harness)
|
|
|
282
334
|
| 2026-06-16 | v1.0 stable 首版使用手册 |
|
|
283
335
|
| 2026-06-16 | 补全相对链接 · §6.1 compliance-bench · §12 阅读索引 |
|
|
284
336
|
| 2026-06-16 | v1.0.1:verify / gate-check / sync index CLI · `--with-scripts` · QUICKREF |
|
|
337
|
+
| 2026-06-17 | v1.1.0:新增 §10 Inform-YAML · `graph yaml compile|check` · 三轨边界说明 |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Inform-YAML 迁移对照表 · v1.1+
|
|
2
|
+
|
|
3
|
+
> **范围**:将 Ink 后端 `*.graph.yaml` 试点能力抽象进 `@cyning/harness@1.1+`。
|
|
4
|
+
> **真值来源**:`ai-ink-brain-api-python/docs/_tech_graph/*.graph.yaml`(P0–P1 done)。
|
|
5
|
+
> **产品 schema**:`schema/inform_graph.v3.schema.json`。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 字段对照
|
|
10
|
+
|
|
11
|
+
| 试点字段(后端 graph_v2 YAML) | 产品字段(v3 schema) | 变化 | 说明 |
|
|
12
|
+
| ---------------------------- | ------------------- | ---- | ---- |
|
|
13
|
+
| `graph_id` | `graph_id` | 无 | 图 ID · 与文件名一致 |
|
|
14
|
+
| `title` | `title` | 无 | 人类可读标题 |
|
|
15
|
+
| `description` | `description` | 无 | 用途简述 |
|
|
16
|
+
| `version` | `version` | 无 | 编辑源版本 |
|
|
17
|
+
| — | `schema_version` | **新增** | 固定 `inform_graph.v3` · 显式声明 |
|
|
18
|
+
| — | `direction` | **新增** | Mermaid 方向 · 默认 `TD` |
|
|
19
|
+
| `notes` | `notes` | 无 | 字符串或字符串数组 |
|
|
20
|
+
| `nodes[].id` | `nodes[].id` | 无 | 节点 ID |
|
|
21
|
+
| `nodes[].label` | `nodes[].label` | 无 | 显示标签 |
|
|
22
|
+
| — | `nodes[].kind` | **新增** | `flow` / `struct` / `external` |
|
|
23
|
+
| `edges[].from` | `edges[].from` | 无 | 源节点 |
|
|
24
|
+
| `edges[].to` | `edges[].to` | 无 | 目标节点 |
|
|
25
|
+
| `edges[].mark` | `edges[].mark` | 无 | Mermaid 箭头标记 |
|
|
26
|
+
| `edges[].label` | `edges[].label` | 无 | 语义标签 |
|
|
27
|
+
| `edges[].type` | `edges[].type` | 无 | 显式边类型 |
|
|
28
|
+
| `edges[].anchors` | `edges[].anchors` | 无 | 代码锚点 |
|
|
29
|
+
| `anchors[].path` | `anchors[].path` | 无 | 相对路径 |
|
|
30
|
+
| `anchors[].symbol` | `anchors[].symbol` | 无 | 符号名 |
|
|
31
|
+
| `anchors[].line` | `anchors[].line` | 无 | 行号 |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. 有漂移须说明
|
|
36
|
+
|
|
37
|
+
### 2.1 `schema_version` 新增
|
|
38
|
+
|
|
39
|
+
- **原因**:产品化后须机械区分 YAML 版本,避免后端试点与产品 schema 混用。
|
|
40
|
+
- **兼容**:`harness graph yaml compile` 对缺 `schema_version` 的 YAML 发出 warn,但仍尝试编译(graceful)。
|
|
41
|
+
|
|
42
|
+
### 2.2 `nodes[].kind` 新增
|
|
43
|
+
|
|
44
|
+
- **原因**:试点 graph_v2 schema 在 `graph.json` 阶段未强制 kind;v3 将其前移到编辑源,便于 Mermaid class 渲染与 HGM `InformArtifact` 子类型推断。
|
|
45
|
+
- **兼容**:缺省 `kind` 时编译器按 label 启发式推断形状,与试点 `graph_yaml_compile.py` 行为一致。
|
|
46
|
+
|
|
47
|
+
### 2.3 `direction` 新增
|
|
48
|
+
|
|
49
|
+
- **原因**:试点 `00_main.graph.yaml` 未声明方向,编译器默认 `TD`;v3 显式支持 `TD/TB/BT/LR/RL`。
|
|
50
|
+
- **兼容**:缺省仍为 `TD`。
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 3. 无漂移(保持语义)
|
|
55
|
+
|
|
56
|
+
- `graph_id` / `title` / `description` / `version` / `notes`
|
|
57
|
+
- `nodes[].id` / `nodes[].label`
|
|
58
|
+
- `edges[].from` / `edges[].to` / `edges[].mark` / `edges[].label` / `edges[].type`
|
|
59
|
+
- `edges[].anchors[].path` / `symbol` / `line`
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 4. 产物对照
|
|
64
|
+
|
|
65
|
+
| 产物 | 试点 | 产品 v1.1+ |
|
|
66
|
+
| ---- | ---- | ---------- |
|
|
67
|
+
| 人类可读 MD | `scripts/graph_yaml_compile.py` | `harness graph yaml compile` |
|
|
68
|
+
| graph.json 切片 | `tools/tech_graph_graph_export.py` + `tech_graph_graph_v2_yaml.py` | `harness graph yaml check`(diff 模式) |
|
|
69
|
+
| 校验 schema | `tools/tech_graph_graph_v2_schema.py` | `schema/inform_graph.v3.schema.json` |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 5. 与 HGM G1 接口
|
|
74
|
+
|
|
75
|
+
- **InformArtifact 节点 ID**:`inform:{repo_rel_path}`,其中 `repo_rel_path` 为业务仓 `docs/_tech_graph/` 下编译产物路径(如 `docs/_tech_graph/00_main.md`)。
|
|
76
|
+
- **MUST_READ 边**:Task → InformArtifact,由 task 表 `must_read` 或 `gate-check --graph` 解析。
|
|
77
|
+
- **正文来源**:仍来自 YAML/MD 真值 · HGM 只存指针。
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
freeze_id: CYNING-HARNESS-Y1-YAML-INFORM
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
# Prompt · 项目本体构成扫描 · HGM G0(v1.3)
|
|
2
|
+
|
|
3
|
+
| 项 | 内容 |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **状态** | `active` · G0 讨论素材 · **须满足执行前提 P1–P5** |
|
|
6
|
+
| **用途** | 扫描产品仓或试点仓 · 产出 **本体清单报告**(不修改 DESIGN_ONTOLOGY) |
|
|
7
|
+
| **触发时机** | Inform YAML 闭环 **done** + **HG-TASK-DRAFT** 签收 · 见 [`task_ontology_inventory_scan_g0_v1.md`](../../../../docs/harness/tasks/active/task_ontology_inventory_scan_g0_v1.md) · [`HGM_UPGRADE_OUTLINE_v1_zh.md`](./HGM_UPGRADE_OUTLINE_v1_zh.md) G0 |
|
|
8
|
+
| **关联 task** | [`task_ontology_inventory_scan_g0_v1.md`](../../../../docs/harness/tasks/active/task_ontology_inventory_scan_g0_v1.md) · [`task_cyning_harness_g1_hgm_v2_v1.md`](../../../../docs/harness/tasks/active/task_cyning_harness_g1_hgm_v2_v1.md)(HGM G1 · deferred) |
|
|
9
|
+
| **语义真值(执行时必读)** | [`../product/DESIGN_ONTOLOGY_v1_zh.md`](../product/DESIGN_ONTOLOGY_v1_zh.md) · [`HARNESS_GRAPH_MODEL_design_v0_zh.md`](./HARNESS_GRAPH_MODEL_design_v0_zh.md) |
|
|
10
|
+
| **预期产出** | [`inventory/ONTOLOGY_INVENTORY_cyning_harness_v1.yaml`](./inventory/ONTOLOGY_INVENTORY_cyning_harness_v1.yaml)(主)· [`inventory/ONTOLOGY_INVENTORY_ai_ink_brain_api_python_v1.yaml`](./inventory/ONTOLOGY_INVENTORY_ai_ink_brain_api_python_v1.yaml)(试点) |
|
|
11
|
+
| **Open Folder** | **`cyning-harness/`** 或 **`ai-ink-brain-api-python/`** · **禁止**工作区根全量扫描 |
|
|
12
|
+
| **invoke** | [`PROMPT_START_30_v1.md`](../../../../docs/harness/invokes/by-task/ontology-inventory-scan-g0/PROMPT_START_30_v1.md) |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 执行 Prompt(v1.3 · P3 放宽 · 先扫描后删 ai.md)
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
# 任务:扫描当前项目,生成“项目本体构成报告”
|
|
20
|
+
|
|
21
|
+
> **维护者决策 D-G0-P3(v1.3)**:试点仓 **允许** 仍存在 `@deprecated` 的 `*.ai.md`。
|
|
22
|
+
> 扫描须将其列入 `legacy_pending_delete` · **不在本任务删除** · 删源见后继 task `graph-yaml-remove-ai-md`。
|
|
23
|
+
|
|
24
|
+
## ⚠️ 执行前提(硬性检查,不满足则终止)
|
|
25
|
+
|
|
26
|
+
在开始扫描之前,**必须先确认以下条件全部满足**。任一 **硬门槛** 不满足,输出 fail_msg 并终止。
|
|
27
|
+
|
|
28
|
+
**试点仓检查顺序**:**P1 → P2 → P4 → P5** · **P3 为盘点项(不阻断扫描)**
|
|
29
|
+
|
|
30
|
+
### 前置条件清单
|
|
31
|
+
|
|
32
|
+
preconditions:
|
|
33
|
+
# 1. 仓库范围确认(硬门槛)
|
|
34
|
+
- id: "P1"
|
|
35
|
+
check: "当前所在目录是 cyning-harness/ 或 ai-ink-brain-api-python/"
|
|
36
|
+
fail_msg: "请在产品仓(cyning-harness/)或试点仓(ai-ink-brain-api-python/)下执行此扫描。工作区根不执行全量扫描。"
|
|
37
|
+
|
|
38
|
+
# 2. YAML 图源就绪(试点仓 · 硬门槛)
|
|
39
|
+
- id: "P2"
|
|
40
|
+
check: "test -s docs/_tech_graph/00_main.graph.yaml"
|
|
41
|
+
fail_msg: "docs/_tech_graph/00_main.graph.yaml 不存在或为空。请先完成 00_main YAML 迁移。"
|
|
42
|
+
note: "试点仓执行时检查;产品仓跳过 P2"
|
|
43
|
+
|
|
44
|
+
# 3. deprecated .ai.md 盘点(试点仓 · 软门槛 · 不阻断)
|
|
45
|
+
- id: "P3"
|
|
46
|
+
check: "find docs/_tech_graph -name '*.ai.md' 2>/dev/null"
|
|
47
|
+
fail_msg: null
|
|
48
|
+
note: |
|
|
49
|
+
试点仓:若存在 .ai.md → 逐文件列入报告 legacy_pending_delete(status: deprecated_readonly)。
|
|
50
|
+
**不得** 因 .ai.md 存在而终止扫描。
|
|
51
|
+
产品仓跳过 P3。
|
|
52
|
+
|
|
53
|
+
# 4. 维护者审批(硬门槛)
|
|
54
|
+
- id: "P4"
|
|
55
|
+
check: "HG-TASK-DRAFT approved(task_ontology_inventory_scan_g0_v1)"
|
|
56
|
+
fail_msg: "请先获得维护者签收 HG-TASK-DRAFT 后再执行。"
|
|
57
|
+
|
|
58
|
+
# 5. 扫描目的声明
|
|
59
|
+
- id: "P5"
|
|
60
|
+
note: "本次扫描仅为 G0 讨论提供素材,不代替 HGM G1 开发规格,不修改 DESIGN_ONTOLOGY。"
|
|
61
|
+
|
|
62
|
+
### 扫描范围规则
|
|
63
|
+
|
|
64
|
+
- 若在 **cyning-harness/** 下执行 → 输出 **产品仓主报告**
|
|
65
|
+
- 若在 **ai-ink-brain-api-python/** 下执行 → 输出 **试点仓辅助报告**
|
|
66
|
+
- 若在其他目录 → **终止**并提示
|
|
67
|
+
|
|
68
|
+
两份报告各自独立;**产品仓报告为「主报告」**,试点仓报告为「验证参考」。
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 角色设定
|
|
73
|
+
|
|
74
|
+
你是一位精通**本体论(Ontology)**、**图论(Graph Theory)**和**知识工程**的架构分析师。你的任务是扫描给定的代码仓库/文档目录,识别其中隐含的「本体结构」,并按标准化格式输出报告。
|
|
75
|
+
|
|
76
|
+
## 本体定义(给你判断用的标准)
|
|
77
|
+
|
|
78
|
+
在软件工程中,**本体(Ontology)** = 对某一领域内的**概念(类)、属性、关系、公理(约束)** 的显式、形式化规范说明。
|
|
79
|
+
|
|
80
|
+
你需要区分:
|
|
81
|
+
- **元本体(Meta-Ontology)**:定义「如何定义本体」的顶层框架
|
|
82
|
+
- **子本体(Sub-Ontology)**:针对特定领域的具体概念模型(如 Task/Hat/Gate;Node/Edge/Anchor)
|
|
83
|
+
|
|
84
|
+
## 判断标准:什么是「本体文件」?
|
|
85
|
+
|
|
86
|
+
清单内文件 **默认** 为本体载体;若某文件不在清单中但符合以下 **≥2 条**,可追加到报告 `gaps` 或 `additional_files`:
|
|
87
|
+
1. 定义 **类/实体**
|
|
88
|
+
2. 定义 **关系**
|
|
89
|
+
3. 定义 **约束/公理**
|
|
90
|
+
4. 作为 **唯一真相源**
|
|
91
|
+
5. 在 **CI 或工具链** 中用于校验/生成
|
|
92
|
+
|
|
93
|
+
## 四原语分类框架(T/K/H/B)
|
|
94
|
+
|
|
95
|
+
| 原语 | 全称 | 判断标准 | 示例 |
|
|
96
|
+
|---|---|---|---|
|
|
97
|
+
| **T** | Topic | 分类节点 · 抽象概念 · 领域名称 | RAG、Track、Hat |
|
|
98
|
+
| **K** | Keyword | 检索/验证锚点 · 阈值 · 约束 | payload_min_keys、test_strategy=required |
|
|
99
|
+
| **H** | History | 时序节点 · 状态变更 · 执行轨迹 | InvokeSnapshot、AuditReview、Git commit |
|
|
100
|
+
| **B** | Business | 终端业务实体/产物 | Task 实例、documents 表、npm 包 |
|
|
101
|
+
|
|
102
|
+
## 四原语定位说明(重要)
|
|
103
|
+
|
|
104
|
+
T/K/H/B 四原语**仅作为本次扫描报告的「分类标签」(Lens)**,用于标记扫描到的本体元素属于哪种原语类型。
|
|
105
|
+
|
|
106
|
+
**它们不写入 HGM Schema、不修改 DESIGN_ONTOLOGY、不作为 HGM 节点类型。** HGM 节点类型保持项目现有命名:
|
|
107
|
+
Task, Hat, HumanGate, InformArtifact, AuditReview, InvokeSnapshot, FailureReport
|
|
108
|
+
|
|
109
|
+
**映射规则**(报告中 `primitives_used` 字段使用此表):
|
|
110
|
+
|
|
111
|
+
| 原语 | 映射到项目中的 | 示例 |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| **T (Topic)** | Track, Hat, Epic, OrchestratorHat | 概念分类、领域名称 |
|
|
114
|
+
| **K (Keyword)** | _contract_manifest 中 payload_min_keys/allowed_events;embedding;RAG_MATCH_THRESHOLD | 检索锚点、约束阈值 |
|
|
115
|
+
| **H (History)** | trace.json, InvokeSnapshot, AuditReview, Git commit, .version/ 索引 | 时序节点、状态变更 |
|
|
116
|
+
| **B (Business)** | Task 实例, User, Project, documents/code_chunks 表, npm 包 | 终端业务实体/产物 |
|
|
117
|
+
|
|
118
|
+
**报告中不出现「T/K/H/B 是 HGM 节点类型」的表述。**
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 你需要执行的具体步骤
|
|
123
|
+
|
|
124
|
+
### 第1步:扫描固定文件清单(不使用通配符)
|
|
125
|
+
|
|
126
|
+
**不要**使用 `*.ontology.yaml` 等模糊匹配。仅扫描以下清单中的文件(若不存在则跳过并记入 gaps)。
|
|
127
|
+
|
|
128
|
+
#### 产品仓 cyning-harness/ 清单
|
|
129
|
+
|
|
130
|
+
product_manifest:
|
|
131
|
+
- path: "docs/methodology/STRATEGY_ONTOLOGY_cyning_harness_v1_zh.md"
|
|
132
|
+
role: "战略本体"
|
|
133
|
+
- path: "docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md"
|
|
134
|
+
role: "产品设计本体(主)"
|
|
135
|
+
- path: "docs/methodology/product/PRODUCT_ONTOLOGY_v1.1.md"
|
|
136
|
+
role: "产品设计本体(v1.1,若存在)"
|
|
137
|
+
- path: "docs/methodology/graph/HGM_UPGRADE_OUTLINE_v1_zh.md"
|
|
138
|
+
role: "HGM 升级大纲(G0)"
|
|
139
|
+
- path: "docs/methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md"
|
|
140
|
+
role: "HGM 设计稿(v0)"
|
|
141
|
+
- path: "docs/methodology/ROADMAP_v1_zh.md"
|
|
142
|
+
role: "路线图"
|
|
143
|
+
- path: "harness/meta/ontology.yaml"
|
|
144
|
+
role: "机器可读本体(v0.4+ 规划,若存在)"
|
|
145
|
+
|
|
146
|
+
#### 试点仓 ai-ink-brain-api-python/ 清单
|
|
147
|
+
|
|
148
|
+
pilot_manifest:
|
|
149
|
+
- path: "docs/_tech_graph/00_main.graph.yaml"
|
|
150
|
+
role: "图源 YAML(主流程)"
|
|
151
|
+
- path: "docs/_tech_graph/*.graph.yaml"
|
|
152
|
+
role: "图源 YAML(全量 flow)· 展开 glob 后逐文件扫描"
|
|
153
|
+
- path: "docs/_tech_graph/*.ai.md"
|
|
154
|
+
role: "legacy · @deprecated 只读对照 · 须列入 legacy_pending_delete · 本任务不删"
|
|
155
|
+
- path: "docs/_tech_graph/_manifest.json"
|
|
156
|
+
role: "端点/表/env 索引本体"
|
|
157
|
+
- path: "docs/_tech_graph/_contract_manifest.json"
|
|
158
|
+
role: "契约/公理本体"
|
|
159
|
+
- path: "docs/_tech_graph/99_spec.md"
|
|
160
|
+
role: "治理/规约本体"
|
|
161
|
+
- path: "docs/_tech_graph/01_struct.md"
|
|
162
|
+
role: "数据结构本体"
|
|
163
|
+
- path: "docs/_tech_graph/graph.json"
|
|
164
|
+
role: "物化图(由 YAML 生成,非手写)"
|
|
165
|
+
|
|
166
|
+
#### 工作区共有(仅引用,不重复扫描)
|
|
167
|
+
|
|
168
|
+
- Projects/docs/harness/guides/POST_V1_0_SEQUENCE_v1_zh.md(上下文引用)
|
|
169
|
+
- Projects/docs/harness/tasks/active/*.md(**仅** Task 模板结构,不扫描实例全文)
|
|
170
|
+
|
|
171
|
+
输出:每个已扫描文件的路径 + role + 是否存在。
|
|
172
|
+
|
|
173
|
+
### 第2步:对每个本体文件,提取其核心内容
|
|
174
|
+
|
|
175
|
+
对每个文件,回答:
|
|
176
|
+
- 定义了哪些 **类/实体**?
|
|
177
|
+
- 定义了哪些 **关系**(类型与方向)?
|
|
178
|
+
- 定义了哪些 **约束/公理**(摘录)?
|
|
179
|
+
- **primitives_used**(T/K/H/B 标签 · 仅 Lens)
|
|
180
|
+
|
|
181
|
+
### 第3步:识别子本体(对齐 Track 命名)
|
|
182
|
+
|
|
183
|
+
子本体分组**必须**使用以下 Track 名称,避免三「图」混淆:
|
|
184
|
+
|
|
185
|
+
| 子本体 ID | 名称 | 职责 | 典型文件 |
|
|
186
|
+
|---|---|---|---|
|
|
187
|
+
| PROCESS_TRACK | 过程本体 | Task/Hat/Gate/Review | DESIGN_ONTOLOGY §1–§5 |
|
|
188
|
+
| GRAPH_TRACK | 图源本体 | YAML 源 → graph.json | docs/_tech_graph/*.graph.yaml、graph.json |
|
|
189
|
+
| WIKI_TRACK | 知识库本体 | coding_wiki 叙事 | coding_wiki/syntheses/*.md |
|
|
190
|
+
| STANDARDS_TRACK | 约束本体 | 编码规范、L2 | standards/、.cursor/rules/ |
|
|
191
|
+
| VERIFY_TRACK | 验证本体 | CI、测试样本 | .github/workflows/、ci/samples/ |
|
|
192
|
+
| IDE_TRACK | IDE 适配本体 | IDE 片段、marker | ide/adapters/、CLAUDE.md |
|
|
193
|
+
| GOVERNANCE_TRACK | 治理本体 | CI 校验、漂移、规约 | 99_spec.md、_contract_manifest.json |
|
|
194
|
+
|
|
195
|
+
若某子本体无对应项,可新增并标注「新增 Track · 待维护者确认」。
|
|
196
|
+
|
|
197
|
+
### 第4步:分析关系——元路径(`*b` 模式)
|
|
198
|
+
|
|
199
|
+
扫描是否隐含元路径(T→K→B、T→H→B、H→T→B 等),并指出在哪些文件/流程中被隐式使用。
|
|
200
|
+
**注明**:元路径为分析 Lens,**非** HGM 边类型(HGM 边见 design v0 §1.2)。
|
|
201
|
+
|
|
202
|
+
### 第5步:Epic 映射(对齐 Harness 术语)
|
|
203
|
+
|
|
204
|
+
项目定义:**Epic 是 Task 的特化子类**(DESIGN_ONTOLOGY §1.4),**不**单独升格为一等类(v1)。
|
|
205
|
+
|
|
206
|
+
报告中须含:
|
|
207
|
+
|
|
208
|
+
epic_task_mapping:
|
|
209
|
+
definition: "EpicTask 是 Task 的特化子类"
|
|
210
|
+
evidence: "DESIGN_ONTOLOGY_v1_zh.md §1.4"
|
|
211
|
+
fields:
|
|
212
|
+
- depends_on: "string[] — 子 Task slug 列表"
|
|
213
|
+
- completion_policy: "must_complete_all | any_completes"
|
|
214
|
+
related_gate: "HG-EPIC-ROADMAP(Epic CLOSE 专用闸门)"
|
|
215
|
+
note: "Epic 不直接执行 30,通过子 Task 状态聚合判断完成"
|
|
216
|
+
|
|
217
|
+
### 第6步:输出「项目本体构成报告」
|
|
218
|
+
|
|
219
|
+
YAML 结构(字段名须保留):
|
|
220
|
+
|
|
221
|
+
project: "<cyning-harness | ai-ink-brain-api-python>"
|
|
222
|
+
scan_date: "<YYYY-MM-DD>"
|
|
223
|
+
report_role: "<primary | pilot_reference>"
|
|
224
|
+
|
|
225
|
+
meta_ontology:
|
|
226
|
+
- 是否隐式定义顶层原语 Lens(T/K/H/B)?在哪些文档?
|
|
227
|
+
- 是否有显式元路径约定?
|
|
228
|
+
- 是否有全局公理约束所有子本体?
|
|
229
|
+
|
|
230
|
+
sub_ontologies:
|
|
231
|
+
- id: "<PROCESS_TRACK | ...>"
|
|
232
|
+
name: "<Track 名称>"
|
|
233
|
+
files: ["..."]
|
|
234
|
+
primitives_used: ["T", "K"]
|
|
235
|
+
core_classes: ["..."]
|
|
236
|
+
key_relations: ["..."]
|
|
237
|
+
key_axioms: ["..."]
|
|
238
|
+
|
|
239
|
+
epic_task_mapping: { ... 见第5步 ... }
|
|
240
|
+
|
|
241
|
+
graph_summary:
|
|
242
|
+
primitive_lens_used: ["T", "K", "H", "B"]
|
|
243
|
+
hgm_node_labels: ["Task", "Hat", ...] # 来自 DESIGN_ONTOLOGY · 非 T/K/H/B
|
|
244
|
+
meta_paths_observed: ["tkb", "htb"]
|
|
245
|
+
missing_meta_paths: ["..."]
|
|
246
|
+
|
|
247
|
+
legacy_pending_delete: # 试点仓 · v1.3 新增 · 仅盘点
|
|
248
|
+
- path: "docs/_tech_graph/00_main.ai.md"
|
|
249
|
+
status: "deprecated_readonly"
|
|
250
|
+
successor: "docs/_tech_graph/00_main.graph.yaml"
|
|
251
|
+
note: "删源 task: graph-yaml-remove-ai-md · 须 HG-INVENTORY-ARCHIVED 后"
|
|
252
|
+
# ... 其余 6× flow .ai.md 同理 ...
|
|
253
|
+
|
|
254
|
+
gaps:
|
|
255
|
+
- "..."
|
|
256
|
+
|
|
257
|
+
### 与 harness ontology-check 的关系
|
|
258
|
+
|
|
259
|
+
| 维度 | 本次扫描 | harness ontology-check(v0.4+ 规划) |
|
|
260
|
+
|---|---|---|
|
|
261
|
+
| 目的 | 发现本体文件、分组、原语 Lens | 验证 DESIGN_ONTOLOGY 与 ontology.yaml 一致性 |
|
|
262
|
+
| 输出 | 盘点报告 YAML | PASS/FAIL + 差异列表 |
|
|
263
|
+
| 时机 | G0 讨论前执行一次 | CI / 产品变更时 |
|
|
264
|
+
| 关系 | **串联**:先扫描了解现状,再校验一致性。**扫描不替代校验。** |
|
|
265
|
+
|
|
266
|
+
### 输出要求
|
|
267
|
+
|
|
268
|
+
- **报告格式**:YAML
|
|
269
|
+
- **落盘路径**(根据执行目录):
|
|
270
|
+
- 产品仓扫描:`cyning-harness/docs/methodology/graph/inventory/ONTOLOGY_INVENTORY_cyning_harness_v1.yaml`
|
|
271
|
+
- 试点仓扫描:`cyning-harness/docs/methodology/graph/inventory/ONTOLOGY_INVENTORY_ai_ink_brain_api_python_v1.yaml`
|
|
272
|
+
(试点仓执行时仍写入产品仓 inventory/ · 若无法跨仓写入则落盘 invoke 附件并提示维护者手动拷贝)
|
|
273
|
+
- **提交策略**:维护者审阅后 **须提交 Git 留档**(本链 D-G0-ARCHIVE)· 签 HG-INVENTORY-ARCHIVED · 此后方可删 `.ai.md`。
|
|
274
|
+
- **若目录不存在**:mkdir -p docs/methodology/graph/inventory/ 后写入。
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## 整合执行流程
|
|
279
|
+
|
|
280
|
+
1. 检查执行前提 **P1 → P2 → P4 → P5** → 硬门槛失败则终止
|
|
281
|
+
2. 试点仓执行 **P3 盘点** → 填充 `legacy_pending_delete` · **不终止**
|
|
282
|
+
3. 确定当前目录 → 产品仓 or 试点仓
|
|
283
|
+
4. 读取固定文件清单 → 逐个解析(含 deprecated `.ai.md` 只读摘要)
|
|
284
|
+
5. 标注原语类型 T/K/H/B(仅 Lens)
|
|
285
|
+
6. 按 Track 命名分组 → sub_ontologies
|
|
286
|
+
7. 输出 epic_task_mapping
|
|
287
|
+
8. 生成报告 → 落盘到 inventory/ 指定路径
|
|
288
|
+
9. 提示维护者:「扫描完成 · 请审阅 · 留档 merge 后签 HG-INVENTORY-ARCHIVED · 再开删 ai.md task」
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## 重要约束
|
|
293
|
+
|
|
294
|
+
- 不要编造;不存在则写「未发现」
|
|
295
|
+
- 必须打开文件阅读内容,不只靠文件名
|
|
296
|
+
- 冲突处标记「冲突点」
|
|
297
|
+
- 优先使用项目内部术语(Hat、InvokeSnapshot 等)
|
|
298
|
+
- **禁止**修改 DESIGN_ONTOLOGY 或任何真值文件
|
|
299
|
+
|
|
300
|
+
开始执行
|
|
301
|
+
满足 P1–P5 后,按上述流程扫描并生成报告。无法判断的文件列入 gaps 并标注「待确认」。
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 修订记录
|
|
307
|
+
|
|
308
|
+
| 版本 | 日期 | 说明 |
|
|
309
|
+
| --- | --- | --- |
|
|
310
|
+
| v1.0 | 2026-06-16 | 初版落盘 |
|
|
311
|
+
| v1.1 | 2026-06-16 | 整合修正:P1–P5 前提 · T/K/H/B Lens · 固定清单 · Track 分组 · epic_task_mapping · inventory 落盘 · ontology-check 关系 |
|
|
312
|
+
| v1.2 | 2026-06-16 | P2 路径改为 `docs/_tech_graph/00_main.graph.yaml` · P3 前置为硬门槛(全删 `.ai.md` 后方可执行)· pilot_manifest 去 `src/` |
|
|
313
|
+
| v1.3 | 2026-06-17 | **D-G0-P3**:P3 改为软门槛 · `legacy_pending_delete` 盘点 · 先扫描后删 ai.md · 落盘须 Git 留档 · 关联 task_ontology_inventory_scan_g0_v1 · 试点产出文件名统一 |
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
| 文档 | 状态 | 说明 |
|
|
6
6
|
| --- | --- | --- |
|
|
7
7
|
| **[`HARNESS_GRAPH_MODEL_design_v0_zh.md`](./HARNESS_GRAPH_MODEL_design_v0_zh.md)** | proposal · **v2.0+** | **真值稿** · 节点/边/事件 · CLI 路线 |
|
|
8
|
+
| [`HGM_UPGRADE_OUTLINE_v1_zh.md`](./HGM_UPGRADE_OUTLINE_v1_zh.md) | outline | G0 讨论入口 · 依赖链 |
|
|
9
|
+
| [`PROMPT_ontology_inventory_scan_G0_v1_zh.md`](./PROMPT_ontology_inventory_scan_G0_v1_zh.md) | active · **v1.3** | G0 本体扫描 · P3 软门槛 · legacy 盘点 · inventory/ 落盘 |
|
|
8
10
|
| [`HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md`](./HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md) | archive | 对话参考 · **非真值** |
|
|
9
11
|
|
|
10
12
|
```text
|