@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.
Files changed (125) hide show
  1. package/AGENTS.md +20 -0
  2. package/CHANGELOG.md +127 -0
  3. package/README.md +133 -0
  4. package/bin/harness.js +7 -0
  5. package/ci/samples/README.md +42 -0
  6. package/ci/samples/pytest.yml.example +49 -0
  7. package/ci/samples/quality.yml.example +56 -0
  8. package/coding_wiki/templates/README.md +11 -0
  9. package/coding_wiki/templates/context.md +11 -0
  10. package/coding_wiki/templates/stable.md +19 -0
  11. package/coding_wiki/templates/volatile.md +15 -0
  12. package/docs/ARCHITECTURE.md +71 -0
  13. package/docs/DESIGN_ONTOLOGY_v1_zh.md +9 -0
  14. package/docs/HARNESS_GRAPH_MODEL_design_v0_zh.md +6 -0
  15. package/docs/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md +8 -0
  16. package/docs/ONBOARDING.md +126 -0
  17. package/docs/P0_V0.2_GAP.md +6 -0
  18. package/docs/README.md +38 -0
  19. package/docs/methodology/AUDIT_doc_consistency_2026-06-15_zh.md +69 -0
  20. package/docs/methodology/DOCUMENT_MAP_v1_zh.md +122 -0
  21. package/docs/methodology/README.md +147 -0
  22. package/docs/methodology/ROADMAP_v1_zh.md +136 -0
  23. package/docs/methodology/execution/P0_V0.2_GAP.md +93 -0
  24. package/docs/methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md +132 -0
  25. package/docs/methodology/execution/README.md +12 -0
  26. package/docs/methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md +258 -0
  27. package/docs/methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md +132 -0
  28. package/docs/methodology/graph/README.md +22 -0
  29. package/docs/methodology/pointers/ADOPTION_METHODOLOGY_v1_zh.md +8 -0
  30. package/docs/methodology/pointers/ADOPTION_TARGET_STATE_v1_zh.md +6 -0
  31. package/docs/methodology/pointers/ASSESSMENT_etclovg_v1_zh.md +5 -0
  32. package/docs/methodology/pointers/ASSESSMENT_ink_v1_zh.md +5 -0
  33. package/docs/methodology/pointers/GUIDANCE_distribution_v1_zh.md +6 -0
  34. package/docs/methodology/pointers/HARNESS_V2_PLAN_v1_zh.md +8 -0
  35. package/docs/methodology/pointers/PILOT_kimi_code_fork_v1_zh.md +6 -0
  36. package/docs/methodology/pointers/POINTER_cyning_harness_repo_v1_zh.md +6 -0
  37. package/docs/methodology/pointers/README.md +40 -0
  38. package/docs/methodology/pointers/SDD_HAT_FLOW_v1_zh.md +8 -0
  39. package/docs/methodology/pointers/STRATEGY_MASTER_v1_zh.md +8 -0
  40. package/docs/methodology/pointers/STRATEGY_ONTOLOGY_v1_zh.md +9 -0
  41. package/docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md +719 -0
  42. package/docs/methodology/product/README.md +25 -0
  43. package/docs/methodology/prompts/PROMPT_article_theory_roundtable_v1_zh.md +127 -0
  44. package/docs/methodology/prompts/PROMPT_doc_consistency_audit_v1_zh.md +131 -0
  45. package/docs/methodology/prompts/PROMPT_feasibility_review_b_evidence_v1_zh.md +86 -0
  46. package/docs/methodology/prompts/README.md +10 -0
  47. package/docs/methodology/reviews/PROCESS_track_b_evidence_audit_2026-06-15_v1_zh.md +101 -0
  48. package/docs/methodology/reviews/README.md +9 -0
  49. package/docs/methodology/reviews/REVIEW_B3_pilot_evidence_and_sdd_compliance_bench_v1_zh.md +154 -0
  50. package/docs/methodology/reviews/REVIEW_B9_agent_shell_parallel_v1_zh.md +158 -0
  51. package/examples/demo_checkout/ACCEPTANCE.md +80 -0
  52. package/examples/demo_checkout/README.md +41 -0
  53. package/examples/demo_checkout/task_demo_p0_golden_v1.md +101 -0
  54. package/examples/oss-fork/README.md +139 -0
  55. package/examples/oss-fork/kimi-code/00_main.ai.md +23 -0
  56. package/examples/oss-fork/kimi-code/00_main.md +38 -0
  57. package/examples/oss-fork/kimi-code/01_struct.md +39 -0
  58. package/examples/oss-fork/kimi-code/02_version.md +6 -0
  59. package/examples/oss-fork/kimi-code/10_flow_cli_session.md +22 -0
  60. package/examples/oss-fork/kimi-code/README.md +15 -0
  61. package/golden/POINTER_gold_epic_serial.md +93 -0
  62. package/golden/README.md +30 -0
  63. package/graph/stubs/README.md +6 -0
  64. package/graph/templates/00_main.ai.md +28 -0
  65. package/graph/templates/00_main.md +52 -0
  66. package/graph/templates/01_struct.md +38 -0
  67. package/graph/templates/10_flow_MAIN.ai.md +43 -0
  68. package/graph/templates/10_flow_MAIN.md +47 -0
  69. package/graph/templates/99_mermaid_protocol.md +100 -0
  70. package/graph/templates/README.md +34 -0
  71. package/harness/README.md +18 -0
  72. package/harness/invokes/README.md +22 -0
  73. package/harness/invokes/TEMPLATE_invoke.md +59 -0
  74. package/harness/prompts/10-requirements.md +42 -0
  75. package/harness/prompts/22-task-audit.md +67 -0
  76. package/harness/prompts/30-execute-code.md +50 -0
  77. package/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +30 -0
  78. package/harness/prompts/FRAGMENT_30_invoke_block_v1_zh.md +27 -0
  79. package/harness/prompts/README.md +28 -0
  80. package/harness/prompts/TEMPLATE_30_gate_stop.md +34 -0
  81. package/harness/templates/FRAGMENT_task_domain_infer_v1_zh.md +16 -0
  82. package/harness/templates/README.md +48 -0
  83. package/harness/templates/TASK_TEMPLATE.md +111 -0
  84. package/harness/templates/TASK_done_README.md +75 -0
  85. package/harness/templates/TASK_epic.md +101 -0
  86. package/harness/templates/TASK_graph_bootstrap.md +113 -0
  87. package/harness/templates/VIEW_done_by_domain.md +66 -0
  88. package/harness/templates/VIEW_done_thin_pointer.md +16 -0
  89. package/ide/adapters/AGENTS.md.fragment.example +31 -0
  90. package/ide/adapters/CLAUDE.md.fragment.example +30 -0
  91. package/ide/adapters/README.md +46 -0
  92. package/ide/adapters/cursor-harness-starter.mdc.example +37 -0
  93. package/lib/cli.js +180 -0
  94. package/lib/manifest.js +38 -0
  95. package/lib/paths.js +36 -0
  96. package/lib/run.js +33 -0
  97. package/package.json +37 -0
  98. package/schema/manifest.v1.schema.json +37 -0
  99. package/standards/POINTER_workspace_truth_v1_zh.md +57 -0
  100. package/standards/README.md +35 -0
  101. package/standards/SOURCES_v1_zh.md +49 -0
  102. package/standards/TEMPLATE_CODING_BASELINE_L1_v1_zh.md +88 -0
  103. package/standards/TEMPLATE_CODING_BASELINE_L2_backend_v1_zh.md +75 -0
  104. package/standards/TEMPLATE_CODING_BASELINE_L2_frontend_v1_zh.md +76 -0
  105. package/wizard/ONBOARDING_wizard_v1_zh.md +112 -0
  106. package/wizard/README.md +213 -0
  107. package/wizard/adopt-existing.sh +37 -0
  108. package/wizard/bootstrap-oss-fork-meta.sh +177 -0
  109. package/wizard/gate-check.sh +118 -0
  110. package/wizard/harness-sync.sh +237 -0
  111. package/wizard/install.sh +206 -0
  112. package/wizard/lib/common.sh +247 -0
  113. package/wizard/lib/manifest.sh +110 -0
  114. package/wizard/profiles/fullstack-node-py.json +21 -0
  115. package/wizard/profiles/harness-only.json +19 -0
  116. package/wizard/profiles/ios-cursor.json +19 -0
  117. package/wizard/profiles/issue-scan-presets.json +51 -0
  118. package/wizard/profiles/oss-fork-meta.json +17 -0
  119. package/wizard/scan-upstream-issues.sh +287 -0
  120. package/wizard/templates/FRAGMENT_rethink_backfill_task_v1_zh.md +44 -0
  121. package/wizard/templates/POINTER_PILOT_adoption_workspace.md +23 -0
  122. package/wizard/templates/TASK_TEMPLATE_upstream_pr_v1.md +164 -0
  123. package/wizard/templates/task_graph_bootstrap_v1.md +53 -0
  124. package/wizard/uninstall.sh +218 -0
  125. package/wizard/upgrade.sh +164 -0
@@ -0,0 +1,93 @@
1
+ # POINTER · 金样:串行 Epic + invoke 链(M1 · 不复制业务代码)
2
+
3
+ | 项 | 内容 |
4
+ | --- | --- |
5
+ | **状态** | `active` |
6
+ | **日期** | 2026-06-09 |
7
+ | **freeze_id** | `freeze_epic_orchestration_pilot_v1` |
8
+ | **性质** | **只读指针**;金样真值在 Ink 私有工作区,本产品 **不复制** 业务代码或 invoke 全文 |
9
+
10
+ ---
11
+
12
+ ## 金样是什么
13
+
14
+ **M1 已签收** 的前端 Epic 串行编排试点:Epic 总纲 + 00 编排 + **M01→M02→M03** 子 task 链 + invoke 落盘 + CI 绿 + PR merge。
15
+
16
+ | 维度 | 值 |
17
+ |------|-----|
18
+ | **编排模式** | 单分支串行 · `Cursor Task 链` · `semi_auto: false` |
19
+ | **子仓** | `ai-ink-brain/`(前端 Ink) |
20
+ | **Epic slug** | `tech-debt-code-quality-frontend` |
21
+ | **分支(已 merge)** | `task/tech-debt-code-quality-frontend` |
22
+ | **人签** | `HG-M1-SIGNOFF` approved(2026-06-09) |
23
+
24
+ ---
25
+
26
+ ## 证据路径(Ink 私有工作区 · 只读)
27
+
28
+ > 本地常名 `Projects/`(cyning-ink-workspace)。无访问权限时仅用本产品 `harness/templates/TASK_epic.md` 作结构对照。
29
+
30
+ ### 工作区 · M1 跟踪 task
31
+
32
+ | 资产 | 路径 |
33
+ |------|------|
34
+ | M1 签收单 | `docs/harness/tasks/done/task_harness_m1_epic_orchestration_frontend_pilot_v1.md` |
35
+ | Epic 编排 GUIDANCE | `docs/harness/guides/GUIDANCE_epic_orchestration_task_chain_v1_zh.md` |
36
+ | PLAN §6 M1 行 | `docs/harness/guides/PLAN_self_hosted_runtime_mvp_phases_v1_zh.md` |
37
+
38
+ ### 前端子仓 · Epic 与 invoke
39
+
40
+ | 资产 | 路径 |
41
+ |------|------|
42
+ | Epic 总纲(done) | `ai-ink-brain/docs/tasks/done/task_tech_debt_code_quality_frontend_epic_v1.md` |
43
+ | **invoke 索引目录** | `ai-ink-brain/docs/harness/invokes/by-task/tech-debt-code-quality-frontend/` |
44
+ | 关账 invoke | `…/invoke_20260609_CLOSE_epic.md` |
45
+ | 00 编排 | `…/invoke_20260609_00_orchestrator.md` |
46
+
47
+ ### M1 签收子集(串行棒)
48
+
49
+ | 棒 | 子 task(done) | 典型 invoke |
50
+ |----|-----------------|-------------|
51
+ | 00 | 编排派发 M01 | `invoke_20260609_00_orchestrator.md` |
52
+ | M01 | `task_tech_debt_cq_frontend_m01_py_proxy_v1.md` | `invoke_20260609_40_m01_py_proxy.md` |
53
+ | M02 | `task_tech_debt_cq_frontend_m02_bff_routes_v1.md` | `invoke_20260609_40_m02_bff_routes.md` |
54
+ | M03 | `task_tech_debt_cq_frontend_m03_unified_chat_v1.md` | `invoke_20260609_40_m03_unified_chat.md` |
55
+
56
+ M04~M06 为编码 Epic 延续(已关账),**不阻塞** M1 签收。
57
+
58
+ ### 外部链接
59
+
60
+ | 项 | URL |
61
+ |----|-----|
62
+ | PR → production | https://github.com/Cyning12/ai-ink-brain/pull/64 |
63
+ | PR → main | https://github.com/Cyning12/ai-ink-brain/pull/65 |
64
+
65
+ ---
66
+
67
+ ## 与本产品(cyning-harness)的关系
68
+
69
+ | 本产品资产 | 对照金样 |
70
+ |------------|----------|
71
+ | [`harness/templates/TASK_epic.md`](../harness/templates/TASK_epic.md) | Epic 编排主表 §3.1 |
72
+ | [`harness/templates/TASK_TEMPLATE.md`](../harness/templates/TASK_TEMPLATE.md) | 各 sub-task 结构 |
73
+ | [`harness/invokes/TEMPLATE_invoke.md`](../harness/invokes/TEMPLATE_invoke.md) | invoke 快照格式 |
74
+ | M2 本仓执行 invoke | 工作区 `docs/harness/invokes/by-task/cyning-harness-v0-1/`(**不**复制进产品仓) |
75
+
76
+ **纪律**:clone `cyning-harness` 的用户 **打开金样** = 有权限时读上述 Ink 路径;否则按模板 + 本 POINTER 摘要演练。
77
+
78
+ ---
79
+
80
+ ## 后端编码 Epic(可选对照 · 非 M1 别名)
81
+
82
+ | 项 | 路径 |
83
+ |----|------|
84
+ | CC W2~W8 Manifest | `ai-ink-brain-api-python/docs/tasks/active/task_standards_backend_api_modularization_manifest_v1.md` |
85
+ | 说明 | 形态类似 Epic+PR,**≠** PLAN M1 编排试点;可作 M2 扩展金样来源 |
86
+
87
+ ---
88
+
89
+ ## 修订记录
90
+
91
+ | 日期 | 说明 |
92
+ |------|------|
93
+ | 2026-06-09 | M2 T6:M1 串行 Epic 金样 POINTER 首版 |
@@ -0,0 +1,30 @@
1
+ # golden · 金样 pointer
2
+
3
+ 本目录仅存放 **外部金样链接说明**(invoke 链、验收口径摘要),**不复制**任何业务代码。
4
+
5
+ ## v0.1 已交付(T6 · M2)
6
+
7
+ | 文件 | 状态 | 说明 |
8
+ |------|------|------|
9
+ | [`POINTER_gold_epic_serial.md`](./POINTER_gold_epic_serial.md) | ✅ | M1 串行 Epic 金样 · invoke 链索引 · PR 证据 |
10
+
11
+ ## 金样摘要
12
+
13
+ | 项 | 值 |
14
+ |----|-----|
15
+ | **freeze_id** | `freeze_epic_orchestration_pilot_v1` |
16
+ | **Epic slug** | `tech-debt-code-quality-frontend` |
17
+ | **invoke 目录** | `ai-ink-brain/docs/harness/invokes/by-task/tech-debt-code-quality-frontend/` |
18
+ | **M1 跟踪** | 工作区 `docs/harness/tasks/done/task_harness_m1_epic_orchestration_frontend_pilot_v1.md` |
19
+
20
+ ## 使用
21
+
22
+ 1. 读本目录 POINTER → 有权限时钻取 Ink 路径对照
23
+ 2. 无私有工作区:用 [`harness/templates/TASK_epic.md`](../harness/templates/TASK_epic.md) 结构演练
24
+ 3. **禁止** 将金样 invoke 全文或业务代码复制进产品仓分发包
25
+
26
+ ## 修订记录
27
+
28
+ | 日期 | 说明 |
29
+ |------|------|
30
+ | 2026-06-09 | T6 M2 首版 POINTER |
@@ -0,0 +1,6 @@
1
+ # graph/stubs
2
+
3
+ 产品包 **不内置** 某上游 OSS 的预填图谱。
4
+
5
+ - 默认 bootstrap:仅用 [`../templates/`](../templates/)(通用占位)+ 删除 `10_flow_MAIN*`。
6
+ - 项目专用快照:见 [`../../examples/oss-fork/`](../../examples/oss-fork/),通过 `--stub-dir` 显式加载。
@@ -0,0 +1,28 @@
1
+ ```mermaid
2
+ flowchart TD
3
+ %% version: YYYY-MM-DD — AI 协议版 · 须与 00_main.md 语义等价
4
+ %% 拓扑:见 99_mermaid_protocol.md
5
+
6
+ %% === 入口阶段 ===
7
+ Q[[用户 / 客户端请求]] --"->"--> E{"应用入口"}
8
+ // → src/main.py#L1 或 app/router/index.ts#L1(替换为真实锚点)
9
+
10
+ %% === 主业务分支 ===
11
+ E --"主路径 A"--> M1[[核心业务处理]]
12
+ // → 例:handlers/resource.py::handle_create
13
+ E --"主路径 B"--> M2[[次要路径]]
14
+ // → 例:handlers/health.py::health_check
15
+ E --"管理/批处理"--> ADM[[Admin / Job]]
16
+ // → 例:jobs/ingest.py::run_sync
17
+
18
+ %% === 子流程折叠 ===
19
+ M1 --"::triggers"--> FLOW_MAIN[[主路径子流程]]
20
+ FLOW_MAIN --"加载"--> FLOW_DOC[>10_flow_MAIN.md]
21
+
22
+ M1 --"->"--> DB[(持久化)]
23
+ // → 例:db/repository.py 或 ORM 层
24
+ ADM --"->"--> DB
25
+
26
+ %% === 按需加载(可选)===
27
+ E --"加载"--> STRUCT_DOC[>01_struct.md]
28
+ ```
@@ -0,0 +1,52 @@
1
+ # 顶层流程总图(人类友好版)
2
+
3
+ > **用途**:`docs/_tech_graph/00_main.md` — 本仓 **Happy Path** 主干;子流程折叠为 `10_flow_*.md` 链接。
4
+ > **双轨**:须与 [`00_main.ai.md`](./00_main.ai.md) 语义等价;flowchart 改 `.ai.md` 优先,再同步本文件。
5
+ > **协议**:[`99_mermaid_protocol.md`](./99_mermaid_protocol.md)
6
+
7
+ ## 维护说明
8
+
9
+ 1. 替换下方占位节点为你的 **真实入口**(HTTP 路由 / CLI / 事件总线等)。
10
+ 2. 子图节点 > 7 时折叠为 `[[Phase]]`,链至独立 `10_flow_*.md`。
11
+ 3. 异常分支可挂侧链;主干保持可读。
12
+
13
+ ```mermaid
14
+ flowchart TD
15
+ %% version: YYYY-MM-DD — 替换为首次人签日期
16
+
17
+ %% === 入口 ===
18
+ Q[用户 / 客户端请求] --> E{应用入口<br/>例:src/main.py 或 app/router}
19
+
20
+ %% === 主业务分支(示例 · 按栈裁剪)===
21
+ E -->|主路径 A| M1[核心业务处理<br/>例:/api/v1/resource]
22
+ E -->|主路径 B| M2[次要路径<br/>例:/health 或 /metrics]
23
+ E -->|管理/批处理| ADM[Admin / Job<br/>例:ingest / sync]
24
+
25
+ %% === 子流程折叠 ===
26
+ M1 --> FLOW_MAIN[主路径子流程]
27
+ FLOW_MAIN --> FLOW_DOC[> 10_flow_MAIN.md]
28
+
29
+ M1 --> DB[(持久化<br/>例:PostgreSQL / 文件)]
30
+ ADM --> DB
31
+
32
+ %% === 样式(可选)===
33
+ classDef start fill:#e1f5fe,stroke:#01579b,stroke-width:2px
34
+ classDef main fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
35
+ classDef infra fill:#fff8e1,stroke:#ff6f00,stroke-width:1px
36
+
37
+ class Q,E start
38
+ class M1,M2,ADM main
39
+ class FLOW_MAIN,DB infra
40
+ ```
41
+
42
+ ## 待补 flow 清单(存量 S2+ 可用)
43
+
44
+ | flow 文件 | 状态 | 说明 |
45
+ |-----------|------|------|
46
+ | `10_flow_MAIN.md` | 示例已提供 | 主请求路径;嵌入后替换为真实 API/页面流 |
47
+ | `10_flow_*.md` | 待增量 | 每 Epic 或跨模块改动时补 1 张 |
48
+
49
+ ## 关联
50
+
51
+ - 模块边界:[`01_struct.md`](./01_struct.md)(**HG-GRAPH-MODULES** 人签真值)
52
+ - 拓扑协议:[`99_mermaid_protocol.md`](./99_mermaid_protocol.md)
@@ -0,0 +1,38 @@
1
+ # 模块边界登记表(L0-b · D4-a 人签真值)
2
+
3
+ > **用途**:`docs/_tech_graph/01_struct.md` — **一级模块** 边界;**HG-GRAPH-MODULES** approved 后方可 **30 执行改码**。
4
+ > **不是**:全仓 flow 一次画完;flow 按 task **增量** 维护。
5
+ > **嵌入后**:删除示例行,填真实模块;维护者人签后更新 task 内 `HG-GRAPH-MODULES` → `approved`。
6
+
7
+ ## 模块表(必填)
8
+
9
+ | module_id | 名称 | 路径 glob | 依赖方向(仅指向谁) | 负责人/备注 |
10
+ |-----------|------|-----------|----------------------|-------------|
11
+ | `core` | 核心业务 | `src/core/**` 或 `app/**` | → `infra` | 示例 · **替换** |
12
+ | `api` | HTTP / RPC 入口 | `src/api/**` 或 `routes/**` | → `core` | 示例 · **替换** |
13
+ | `infra` | DB / 缓存 / 外部 SDK | `src/infra/**` | —(被依赖) | 示例 · **替换** |
14
+ | `_TODO_` | (待填) | `(glob)` | → | 新增行 |
15
+
16
+ ### 填写规则
17
+
18
+ 1. **module_id**:小写 snake_case;全仓唯一。
19
+ 2. **路径 glob**:能覆盖该模块源码根; monorepo 按 **子包** 分行。
20
+ 3. **依赖方向**:只写 **出边**(本模块允许 import / 调用谁);禁止循环 unless 文档化。
21
+ 4. **一级模块**:通常 3~12 行;更细粒度放 Wiki 或子 task,不膨胀本表。
22
+
23
+ ## 跨模块契约(可选)
24
+
25
+ | 契约 | 提供方 module_id | 消费方 | 说明 |
26
+ |------|------------------|--------|------|
27
+ | `(例:UserDTO)` | `core` | `api` | 共享类型 / OpenAPI schema |
28
+
29
+ ## 人签记录(嵌入后填写)
30
+
31
+ | human_gate_id | status | 签核人 | 日期 | 说明 |
32
+ |---------------|--------|--------|------|------|
33
+ | HG-GRAPH-MODULES | pending | | | `01_struct` 模块表覆盖一级模块 |
34
+
35
+ ## 关联
36
+
37
+ - 顶层图:[`00_main.md`](./00_main.md) · [`00_main.ai.md`](./00_main.ai.md)
38
+ - 主 flow 示例:[`10_flow_MAIN.md`](./10_flow_MAIN.md)
@@ -0,0 +1,43 @@
1
+ ```mermaid
2
+ flowchart TD
3
+ %% Entry: 例 POST /api/v1/resource — 替换锚点为真实代码
4
+ %% 拓扑协议:见 99_mermaid_protocol.md
5
+
6
+ %% === 请求阶段 ===
7
+ IN[[HTTP 请求]] --"->"--> AUTH[[鉴权 / 会话校验]]
8
+ // → middleware/auth.py::require_user 或 src/auth/guard.ts
9
+
10
+ AUTH --"[ok]"--> VAL[[参数校验]]
11
+ AUTH --"[err]"--> ERR_AUTH[>Auth Failed]
12
+ // → middleware/auth.py#L42
13
+
14
+ VAL --"[ok]"--> SVC[[业务服务层]]
15
+ // → services/resource_service.py::handle
16
+ VAL --"[err]"--> ERR_VAL[>Validation Failed]
17
+
18
+ %% === 数据阶段 ===
19
+ SVC --"->"--> REPO[[仓储 / ORM]]
20
+ // → repositories/resource_repo.py::find_by_id
21
+
22
+ REPO --"->"--> DB[(数据库 / 存储)]
23
+ // → db/session.py 或 ORM model
24
+
25
+ REPO --"?>"--> HIT{record exists?}
26
+ HIT --"[no]"--> NOTFOUND[[404 / 空结果]]
27
+ HIT --"[yes]"--> SVC
28
+
29
+ SVC --"[err]"--> BIZERR[[4xx 业务错误]]
30
+ // → services/resource_service.py 业务规则分支
31
+
32
+ %% === 响应阶段 ===
33
+ SVC --"->"--> RESP[[组装响应 DTO]]
34
+ RESP --"->"--> OUT[[返回 JSON / 页面]]
35
+ // → handlers/resource.py::to_response
36
+
37
+ %% === 归档 ===
38
+ OUT --"::archives"--> LOG[[结构化日志]]
39
+ // → observability/logger.py
40
+
41
+ %% === 顶层链接 ===
42
+ IN --"加载"--> MAIN_DOC[>00_main.md]
43
+ ```
@@ -0,0 +1,47 @@
1
+ # 主路径 Flow 示例(人类友好版)
2
+
3
+ > **用途**:`docs/_tech_graph/10_flow_MAIN.md` — **至少 1 条**主业务流(新仓 / S0 必做)。
4
+ > **双轨**:须与 [`10_flow_MAIN.ai.md`](./10_flow_MAIN.ai.md) 语义等价。
5
+ > **嵌入后**:将占位路径替换为真实 handler / 路由 / 页面流。
6
+
7
+ ```mermaid
8
+ flowchart TD
9
+ %% Entry: 例 GET/POST /api/v1/resource — 替换为真实入口
10
+
11
+ %% === 请求阶段 ===
12
+ IN[HTTP 请求] --> AUTH[鉴权 / 会话校验]
13
+ AUTH --> VAL[参数校验<br/>schema / DTO]
14
+ VAL --> SVC[业务服务层<br/>例:ResourceService]
15
+
16
+ %% === 数据阶段 ===
17
+ SVC --> REPO[仓储 / ORM<br/>例:ResourceRepository]
18
+ REPO --> DB[(数据库 / 存储)]
19
+
20
+ REPO -->|无记录| NOTFOUND[404 / 空结果]
21
+ SVC -->|业务规则失败| BIZERR[4xx 业务错误]
22
+
23
+ %% === 响应阶段 ===
24
+ SVC --> RESP[组装响应 DTO]
25
+ RESP --> OUT[返回 JSON / 页面]
26
+
27
+ %% === 可观测(可选)===
28
+ OUT --> LOG[结构化日志 / trace]
29
+
30
+ %% 样式
31
+ classDef request fill:#e1f5fe,stroke:#01579b,stroke-width:2px
32
+ classDef domain fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
33
+ classDef data fill:#fff8e1,stroke:#ff6f00,stroke-width:1px
34
+
35
+ class IN,AUTH,VAL request
36
+ class SVC,RESP,OUT domain
37
+ class REPO,DB,LOG data
38
+ ```
39
+
40
+ ## 与顶层图关系
41
+
42
+ - 在 [`00_main.md`](./00_main.md) 中由 `M1` 或等价节点 **加载** 本文件。
43
+ - 模块归属见 [`01_struct.md`](./01_struct.md) 中 `api` / `core` 等行。
44
+
45
+ ## 增量维护
46
+
47
+ 改 BFF / API 契约时:**同 task** 更新本 flow 或另开图谱子 task;Harness 关账 ≠ 图谱关账。
@@ -0,0 +1,100 @@
1
+ # Mermaid 拓扑协议(通用 · v2)
2
+
3
+ > **用途**:`docs/_tech_graph/99_mermaid_protocol.md` — flowchart **双轨** 与边标记真值。
4
+ > **双轨制**:`.md` 人类友好;`.ai.md` AI / 脚本协议版;**语义等价**。
5
+
6
+ | 后缀 | 维护者 | 特点 |
7
+ |------|--------|------|
8
+ | `.md` | 开发者 | 简洁可读;少量裸边可接受 |
9
+ | `.ai.md` | LLM / 脚本 | 结构化标记、锚点分离、**零裸边** |
10
+
11
+ **转换方向**:人写 `.md` → 按本协议生成/同步 `.ai.md` → 渲染审阅。
12
+
13
+ ---
14
+
15
+ ## 1. 边标记
16
+
17
+ ### 1.1 执行流
18
+
19
+ | 标记 | 语义 | 何时用 |
20
+ |------|------|--------|
21
+ | `->` | 同步顺序执行 | 普通调用 |
22
+ | `~>` | 异步 / await | 非阻塞 I/O |
23
+ | `=>` | 赋值 / 映射 | 数据转换 |
24
+ | `?>` | 条件分支 | if / switch / 路由 |
25
+
26
+ ### 1.2 状态与可靠性
27
+
28
+ | 标记 | 语义 | 示例 |
29
+ |------|------|------|
30
+ | `[ok]` | 成功路径 | `validate() --"[ok]"--> save()` |
31
+ | `[err]` | 失败 / 异常 | `parse() --"[err]"--> fallback()` |
32
+ | `[retry=N]` | 重试 | `call_api() --"[retry=3]"--> call_api()` |
33
+ | `[timeout]` | 超时降级 | `fetch() --"[timeout]"--> cache_get()` |
34
+
35
+ ### 1.3 元关系(`::` 命名空间)
36
+
37
+ | 标记 | 语义 |
38
+ |------|------|
39
+ | `::yields` | 流式 / 生成器产出 |
40
+ | `::triggers` | 触发子流程或后台任务 |
41
+ | `::gates` | 门禁 / 鉴权 / 依赖注入 |
42
+ | `::branches` | 并行分支 |
43
+ | `::merges` | 多路归并 |
44
+ | `::signoff` | 持久化确认 / 事务提交 |
45
+ | `::archives` | 日志 / 审计归档 |
46
+
47
+ ---
48
+
49
+ ## 2. 节点形状(flowchart)
50
+
51
+ | 形状 | 含义 | 示例 |
52
+ |------|------|------|
53
+ | `[[...]]` | 阶段 / 流程块 | `[[Query Phase]]` |
54
+ | `[...]` | 函数 / 操作 | `[process_request]` |
55
+ | `[(...)]` | 数据 / 模型 | `[(UserRecord)]` |
56
+ | `{...}` | 判断 / 路由 | `{authorized?}` |
57
+ | `>...]` | 里程碑 / 文档指针 | `>10_flow_MAIN.md]` |
58
+ | `((...))` | 循环 / 归档 | `((write_log))` |
59
+
60
+ ---
61
+
62
+ ## 3. 锚点规则(`.ai.md` 强制)
63
+
64
+ 每条 **硬边** 须可追溯到代码或文档:
65
+
66
+ ```text
67
+ // → src/handlers/foo.py#L42
68
+ // → src/handlers/foo.py::handle_request
69
+ // → migrations/001_init.sql#L12
70
+ // → docs/_tech_graph/10_flow_MAIN.md
71
+ ```
72
+
73
+ - 锚点用 **独立注释行** `// → path#Ln`,不塞进节点标签。
74
+ - 跨模块调用:虚线或 `::triggers`,**不**展开对方内部。
75
+
76
+ ---
77
+
78
+ ## 4. 分层与折叠
79
+
80
+ | 条件 | 操作 |
81
+ |------|------|
82
+ | 子图节点 ≤ 7 | 可在主图展开 |
83
+ | 子图节点 > 7 | 折叠为 `[[Phase]]`,链独立 `10_flow_*.md` |
84
+ | 异常分支 | 挂侧链;Happy Path 走主干 |
85
+
86
+ ---
87
+
88
+ ## 5. 禁止项
89
+
90
+ - `.ai.md` 中 **禁止裸边**(须带 `"->"` 等标记)。
91
+ - 禁止虚构文件路径;未知处用 `// → TBD` 并开 task 补锚点。
92
+ - **禁止** onboarding 默认「全仓扫描生图」。
93
+
94
+ ---
95
+
96
+ ## 6. 修订记录
97
+
98
+ | 日期 | 说明 |
99
+ |------|------|
100
+ | YYYY-MM-DD | 嵌入用户仓时填写首次版本 |
@@ -0,0 +1,34 @@
1
+ # graph/templates
2
+
3
+ 复制到用户仓 **`docs/_tech_graph/`**。
4
+
5
+ ## v0.1 已交付模板(T1 · M2)
6
+
7
+ | 文件 | 状态 | 说明 |
8
+ |------|------|------|
9
+ | [`00_main.md`](./00_main.md) | ✅ | 顶层流程(人类友好版) |
10
+ | [`00_main.ai.md`](./00_main.ai.md) | ✅ | 顶层流程(AI 协议版 · 双轨) |
11
+ | [`01_struct.md`](./01_struct.md) | ✅ | **模块边界表**(D4-a · **HG-GRAPH-MODULES** 人签真值) |
12
+ | [`99_mermaid_protocol.md`](./99_mermaid_protocol.md) | ✅ | Mermaid 拓扑协议 |
13
+ | [`10_flow_MAIN.md`](./10_flow_MAIN.md) | ✅ | 主路径 flow 示例(人类版) |
14
+ | [`10_flow_MAIN.ai.md`](./10_flow_MAIN.ai.md) | ✅ | 主路径 flow 示例(AI 版) |
15
+
16
+ ## 仍可选补(非 T1 硬门槛)
17
+
18
+ | 文件 | 说明 |
19
+ |------|------|
20
+ | `02_version.md` | 版本时间线;新仓建议嵌入后首周补 |
21
+
22
+ ## 嵌入后
23
+
24
+ - **新仓**:骨架 + 模块表人签 + 至少 1 主 flow(见 [`docs/ONBOARDING.md`](../../docs/ONBOARDING.md) §3)
25
+ - **存量**:按 ONBOARDING 档位 S0~S3;**禁止**首次全 flow 构图
26
+ - **人签**:`01_struct` 模块表 → **HG-GRAPH-MODULES** approved → 允许 30 改码
27
+
28
+ ## 复制命令
29
+
30
+ ```bash
31
+ mkdir -p docs/_tech_graph
32
+ cp -R cyning-harness/graph/templates/* docs/_tech_graph/
33
+ # 按需删除 README 或本说明段
34
+ ```
@@ -0,0 +1,18 @@
1
+ # harness · 过程轨
2
+
3
+ | 子目录 | 内容 | T3 状态 |
4
+ |--------|------|---------|
5
+ | [`templates/`](templates/) | task、Epic、graph_bootstrap | ✅ v0.1 |
6
+ | [`prompts/`](prompts/) | 10/22/30 Starter 子集 | ✅ v0.1 |
7
+ | [`invokes/`](invokes/) | invoke 落盘约定 + TEMPLATE | ✅ v0.1 |
8
+
9
+ 用户仓对应路径建议:`docs/tasks/`、`docs/harness/prompts/`、`docs/harness/invokes/`。
10
+
11
+ ## 嵌入一键清单
12
+
13
+ ```bash
14
+ mkdir -p docs/tasks/active docs/harness/prompts docs/harness/invokes/by-task docs/harness/reviews
15
+ cp -R harness/templates/* docs/tasks/ # 或按需单文件复制并重命名
16
+ cp harness/prompts/*.md docs/harness/prompts/
17
+ cp harness/invokes/TEMPLATE_invoke.md docs/harness/invokes/
18
+ ```
@@ -0,0 +1,22 @@
1
+ # harness/invokes
2
+
3
+ ## 约定
4
+
5
+ - 路径:`docs/harness/invokes/by-task/<task_slug>/invoke_YYYYMMDD_<hat>_<slug>.md`
6
+ - 每 **新帽** 开局落盘 §3 调用体(同帽追问不新增)
7
+ - 与 task `### 自检结论`、`docs/harness/reviews/` 并列可追溯
8
+
9
+ ## v0.1 已交付(T3 · M2)
10
+
11
+ | 文件 | 状态 | 说明 |
12
+ |------|------|------|
13
+ | [`TEMPLATE_invoke.md`](./TEMPLATE_invoke.md) | ✅ | 元信息表 + Prompt 快照 + 交付摘要骨架 |
14
+
15
+ ## 完整规范 POINTER
16
+
17
+ Ink 工作区:`docs/harness/invokes/README.md`(命名、by-task 布局、pointer 策略)
18
+
19
+ ## 纪律
20
+
21
+ - **M2 产品仓执行过程** invoke 可留工作区 `by-task/`(见 cyning-harness ONBOARDING)
22
+ - 用户仓 Epic / task 执行 invoke **落本仓** `docs/harness/invokes/`
@@ -0,0 +1,59 @@
1
+ # Harness invoke 快照模板
2
+
3
+ > **用途**:每 **新帽** 开局时,将 **占位符已全部替换** 的 §3 Prompt 落盘。
4
+ > **路径**:`docs/harness/invokes/by-task/<task_slug>/invoke_YYYYMMDD_<hat>_<slug>.md`
5
+
6
+ ---
7
+
8
+ ## 元信息表(必填)
9
+
10
+ | 字段 | 值 |
11
+ |------|-----|
12
+ | hat_id | 10 / 22 / 30 / 40 / 50 / 00 / CLOSE |
13
+ | task_slug | `<slug>` |
14
+ | freeze_id | (可选) |
15
+ | task_paths | `docs/tasks/active/task_….md` |
16
+ | related_review_or_none | `docs/harness/reviews/…` 或 `无` |
17
+ | git_branch | `task/<slug>` |
18
+ | worktree_root | (并行时必填 · 相对仓根) |
19
+ | created_utc_or_local | YYYY-MM-DD |
20
+ | notes | (可选) |
21
+
22
+ ---
23
+
24
+ ## 可复制 Prompt 快照
25
+
26
+ ```text
27
+ (粘贴本帽 TEMPLATE-*-invoke §3 全文 · 占位符须全部替换)
28
+ ```
29
+
30
+ ---
31
+
32
+ ## 交付摘要(本帽结束时填)
33
+
34
+ - **验证命令** + 退出码
35
+ - **变更路径** 列表
36
+ - **下一棒** slug 或「交还 00」
37
+
38
+ ---
39
+
40
+ ## 纪律
41
+
42
+ | 规则 | 说明 |
43
+ |------|------|
44
+ | 同帽追问 | **不** 新增 invoke;沿用本节路径 |
45
+ | 打回重开 | 新文件或 `_r2` 后缀 |
46
+ | 与 reviews 分工 | reviews = 结论;invoke = **当时指令** |
47
+ | commit | 落盘 + task 回填后再 commit(见 HANDOFF) |
48
+
49
+ ---
50
+
51
+ ## 完整库 POINTER
52
+
53
+ Ink 工作区:`docs/harness/invokes/README.md` · 各 `TEMPLATE-*-invoke.md` §3
54
+
55
+ ## 修订记录
56
+
57
+ | 日期 | 说明 |
58
+ |------|------|
59
+ | YYYY-MM-DD | 从 cyning-harness 嵌入 |
@@ -0,0 +1,42 @@
1
+ # 帽子:需求 / 任务分析(Harness · Starter 子集)
2
+
3
+ > **完整版 POINTER**(Ink 工作区):`docs/harness/prompts/10-requirements.md`
4
+ > **本文件**:嵌入用户仓 `docs/harness/prompts/` 的 **精简真值**。
5
+
6
+ ## 身份
7
+
8
+ **需求与任务分析** Agent:把目标写成 **可执行、可验收** 的 task;**不写实现代码**。
9
+
10
+ ## 只做什么
11
+
12
+ - 明确 **验收标准**(可勾选或对命令输出断言)
13
+ - 补齐 **`failure_paths`**(触发 → 行为 → 可重试 → 用户可见)
14
+ - 写清 **非范围**、**依赖**(相对路径链接)
15
+ - 建议 `test_strategy` + `code_quality_bar`
16
+ - 承接 **22 审查**:按 `docs/harness/reviews/*_audit_*.md` 回填 task
17
+
18
+ ## 禁止什么
19
+
20
+ - 不实现代码、不改 CI
21
+ - 不写绝对本机路径
22
+ - 缺验收 / failure_paths → 仅输出 **阻塞清单**
23
+
24
+ ## 输出形状
25
+
26
+ - 背景 / 范围 / 非范围 / 依赖 / 验收 / failure_paths / 给执行帽必读列表
27
+ - 涉码 task:链 `docs/standards/CODING_*_L2`
28
+
29
+ ## 交接物
30
+
31
+ - 可粘贴进 `docs/tasks/active/task_*.md` 的正文块;并注明建议 `test_strategy`。
32
+ - 承接 **22 审查**:按 `docs/harness/reviews/*_audit_*.md` 回填 task。
33
+
34
+ ## OSS 阶段 C · 思考轮(Starter 摘要)
35
+
36
+ - 10 帽草稿 **须预置 R0 + R1–R5** 五槽 + **思考轮控制** 表(见 `wizard/templates/TASK_TEMPLATE_upstream_pr_v1.md`)。
37
+ - **可提前停 / 可增 R6+**;须填 reason · residual_risks(无则 `none`)。
38
+ - **22 审思考是否充分**;不通过 → **退回 10** 补轮后再 22 R+1。完整版:`Projects/docs/harness/prompts/10-requirements.md` § OSS fork。
39
+
40
+ ## 给 Cursor
41
+
42
+ `Harness`、`10`、`验收`、`failure_paths`、`test_strategy`、`拒开工`