@cyning/harness 0.4.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +65 -11
- package/bin/harness.js +1 -1
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/BENCHMARK_REPORT_TEMPLATE.md +135 -0
- package/docs/ONBOARDING.md +32 -0
- package/docs/README.md +2 -2
- package/docs/RELEASE_v1.0.0.md +91 -0
- package/docs/RELEASE_v1.0.1.md +87 -0
- package/docs/ROADMAP_TO_AGENT_GOVERNANCE.md +209 -0
- package/docs/USER_GUIDE_v1.0_zh.md +284 -0
- package/docs/methodology/AUDIT_doc_consistency_2026-06-15_zh.md +5 -3
- package/docs/methodology/README.md +7 -6
- package/docs/methodology/ROADMAP_v1_zh.md +45 -12
- package/docs/methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md +45 -37
- package/docs/methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md +25 -23
- package/docs/methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md +2 -2
- package/docs/methodology/graph/HGM_UPGRADE_OUTLINE_v1_zh.md +248 -0
- package/docs/methodology/graph/README.md +2 -2
- package/docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md +2 -2
- package/docs/methodology/prompts/PROMPT_article_theory_roundtable_v1_zh.md +3 -3
- package/docs/methodology/prompts/PROMPT_doc_consistency_audit_v1_zh.md +4 -4
- package/examples/compliance_bench/README.md +81 -0
- package/examples/compliance_bench/S1_r1_pending/task.md +30 -0
- package/examples/compliance_bench/S2_r1_no_review/task.md +31 -0
- package/examples/compliance_bench/S3_r1_with_review/reviews/s3_r1_with_review_audit_R1_20260616.md +18 -0
- package/examples/compliance_bench/S3_r1_with_review/task.md +31 -0
- package/examples/compliance_bench/S4_sync_domain/profile.json +16 -0
- package/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +1 -1
- package/harness/templates/QUICKREF_v1_zh.md +47 -0
- package/ide/adapters/AGENTS.md.fragment.example +1 -0
- package/ide/adapters/CLAUDE.md.fragment.example +1 -0
- package/ide/adapters/cursor-harness-starter.mdc.example +1 -0
- package/lib/audit.js +166 -0
- package/lib/cli.js +245 -5
- package/lib/package-scripts.js +65 -0
- package/lib/paths.js +27 -0
- package/lib/verify.js +103 -0
- package/ontology.yaml +2 -2
- package/package.json +1 -1
- package/schema/invoke_index.v1.schema.json +53 -0
- package/wizard/README.md +4 -0
- package/wizard/compliance-bench.sh +251 -0
- package/wizard/gate-check.sh +139 -19
- package/wizard/harness-sync.sh +16 -3
- package/wizard/install.sh +5 -3
- package/wizard/lib/generate-invoke-index.js +60 -0
- package/wizard/upgrade.sh +7 -2
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# 演进路线图:从项目纪律包到 Agent 治理平台
|
|
2
|
+
|
|
3
|
+
> **用途**:远期规划草案 · 展示 Harness 从 MVP 到 Agent 治理层的演进路径。
|
|
4
|
+
> **状态**:`proposal` · **非**当前 semver 承诺 · 与 Track G(HGM)提案并列评估
|
|
5
|
+
> **真值边界**:当前产品能力以 [`methodology/ROADMAP_v1_zh.md`](./methodology/ROADMAP_v1_zh.md) 为准;本文档为愿景与架构方向
|
|
6
|
+
|
|
7
|
+
| 项 | 内容 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| **版本** | v1.0 |
|
|
10
|
+
| **日期** | YYYY-MM-DD |
|
|
11
|
+
| **状态** | proposal |
|
|
12
|
+
| **依赖** | cyning-harness v0.2+ 核心(Sync、Gate、ProcessTrack) |
|
|
13
|
+
| **愿景** | 为任意 Agent(Kimi Code、Claude Code、Cursor 等)提供统一的治理层:约束、审计、闸门、可观测性 |
|
|
14
|
+
|
|
15
|
+
**核心思想**:Harness 定义的是一套「受治理的执行语义」,执行者可以是人,也可以是 Agent。通过轻量适配器,将治理能力无损注入 Agent 原生调用链。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 1. 为什么需要 Agent 治理?
|
|
20
|
+
|
|
21
|
+
当前 AI Agent 的痛点:
|
|
22
|
+
|
|
23
|
+
- **行为不可控**:Agent 可能执行未授权的命令、访问敏感文件。
|
|
24
|
+
- **过程不透明**:无法回溯 Agent 的决策路径和中间结果。
|
|
25
|
+
- **合规性缺失**:企业无法满足审计要求(谁、何时、做了什么)。
|
|
26
|
+
- **无标准化闸门**:无法插入人工审批、自动校验等环节。
|
|
27
|
+
|
|
28
|
+
cyning-harness 已经通过 HumanGate、AuditReview、InvokeSnapshot 等实体解决了人类 + AI 协作的治理问题。下一步是将这些能力无损迁移到纯 Agent 执行场景。
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. 三阶段演进路径
|
|
33
|
+
|
|
34
|
+
### 阶段 0:当前状态(v0.2 – v0.4)
|
|
35
|
+
|
|
36
|
+
| 项 | 内容 |
|
|
37
|
+
| --- | --- |
|
|
38
|
+
| **形态** | 项目纪律包,需手动绑定到仓库,要求开发者遵循 SDD 帽链 |
|
|
39
|
+
|
|
40
|
+
**能力**:
|
|
41
|
+
|
|
42
|
+
- ProcessTrack + StarterHat(10/22/30/40)
|
|
43
|
+
- HumanGate 与 AuditReview 落盘
|
|
44
|
+
- Sync 机制(S1–S6)
|
|
45
|
+
- 基础 ICVO 映射
|
|
46
|
+
|
|
47
|
+
**限制**:
|
|
48
|
+
|
|
49
|
+
- 必须有人参与闸门审批(HumanGate)
|
|
50
|
+
- 未与 Agent 运行时集成
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
### 阶段 1:Agent 适配器层(v0.5 – v0.6)
|
|
55
|
+
|
|
56
|
+
**目标**:允许现有 Agent(如 Kimi Code、Claude Code)透明地被 Harness 包裹,自动获得治理能力。
|
|
57
|
+
|
|
58
|
+
**技术要点**:
|
|
59
|
+
|
|
60
|
+
**通用适配器接口**
|
|
61
|
+
|
|
62
|
+
定义 `HarnessMiddleware` 规范,拦截 Agent 的输入/输出。
|
|
63
|
+
|
|
64
|
+
示例(伪代码):
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
class HarnessMiddleware:
|
|
68
|
+
def before_execution(task_id, input):
|
|
69
|
+
# 创建 Task 节点,检查 Gate 状态
|
|
70
|
+
pass
|
|
71
|
+
|
|
72
|
+
def after_execution(result):
|
|
73
|
+
# 记录 AuditReview,更新状态
|
|
74
|
+
pass
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**零侵入集成**
|
|
78
|
+
|
|
79
|
+
- 通过环境变量或启动脚本代理 Agent 的 API 调用。
|
|
80
|
+
- 例如:`export KIMI_CODE_HARNESS_CONFIG=./harness.yml && kimi-code ...`
|
|
81
|
+
|
|
82
|
+
**自动化 Gate 处理**
|
|
83
|
+
|
|
84
|
+
- 将 HumanGate 降级为可配置的自动规则(例如:`auto_approve_if_test_pass=true`)或转发给另一个审核 Agent。
|
|
85
|
+
|
|
86
|
+
**输出适配**
|
|
87
|
+
|
|
88
|
+
- 将 AuditReview、InvokeSnapshot 以 Agent 可读的格式(JSON、结构化日志)输出,便于 Agent 后续使用。
|
|
89
|
+
|
|
90
|
+
**交付物**:
|
|
91
|
+
|
|
92
|
+
- `harness-agent-proxy` CLI 工具
|
|
93
|
+
- 至少一个 Agent 的集成示例(如 Kimi Code + kimi-code-meta preset)
|
|
94
|
+
- 更新本体:增加 `AgentExecutor` 作为 `ExecutionShell` 的子类
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 阶段 2:Agent 原生治理 SDK(v0.7 – v0.8)
|
|
99
|
+
|
|
100
|
+
**目标**:提供官方 SDK,让 Agent 开发者可以显式调用 Harness 的治理能力。
|
|
101
|
+
|
|
102
|
+
**技术要点**:
|
|
103
|
+
|
|
104
|
+
**多语言 SDK(TypeScript / Python 优先)**
|
|
105
|
+
|
|
106
|
+
提供 `HarnessClient`,支持:
|
|
107
|
+
|
|
108
|
+
- `task.create()`
|
|
109
|
+
- `gate.check()`
|
|
110
|
+
- `audit.log()`
|
|
111
|
+
- `artifact.upload()`
|
|
112
|
+
|
|
113
|
+
**声明式策略(Policy as Code)**
|
|
114
|
+
|
|
115
|
+
允许通过 YAML 定义治理规则:
|
|
116
|
+
|
|
117
|
+
```yaml
|
|
118
|
+
rules:
|
|
119
|
+
- name: "禁止修改生产数据库"
|
|
120
|
+
condition: "action == 'db.update' && env == 'prod'"
|
|
121
|
+
action: "block"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**与本体自动同步**
|
|
125
|
+
|
|
126
|
+
- SDK 可直接读取 `ontology.yaml`,生成强类型客户端。
|
|
127
|
+
|
|
128
|
+
**交付物**:
|
|
129
|
+
|
|
130
|
+
- `@cyning-harness/sdk-python` 和 `@cyning-harness/sdk-ts`
|
|
131
|
+
- 策略引擎(使用 Open Policy Agent 或自定义解释器)
|
|
132
|
+
- 示例:用 Harness SDK 改写一个开源 Agent(如 AutoGPT)的核心行为
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### 阶段 3:企业级 Harness Gateway(v0.9 – v1.0)
|
|
137
|
+
|
|
138
|
+
**目标**:独立部署的治理网关,统一拦截组织中所有 Agent 的调用,提供集中式审计、合规、闸门管理。
|
|
139
|
+
|
|
140
|
+
**架构**:
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
Agent 1 (Kimi Code) --\
|
|
144
|
+
Agent 2 (Claude Code) ---> Harness Gateway (sidecar/proxy) --> 后端系统
|
|
145
|
+
Agent 3 (Custom) --/
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**功能**:
|
|
149
|
+
|
|
150
|
+
| 能力 | 说明 |
|
|
151
|
+
| --- | --- |
|
|
152
|
+
| **调用拦截** | 基于 eBPF / HTTP 代理,无侵入 |
|
|
153
|
+
| **策略集中管理** | 管理员可在 Web UI 定义全局规则 |
|
|
154
|
+
| **审计日志中心** | 所有 Agent 行为结构化存储,可检索、可回放 |
|
|
155
|
+
| **闸门集成** | 与企业 SSO、工单系统、审批流对接(如 Jira、ServiceNow) |
|
|
156
|
+
|
|
157
|
+
**交付物**:
|
|
158
|
+
|
|
159
|
+
- 可部署的 Docker 镜像 + Helm Chart
|
|
160
|
+
- 管理控制台(React)
|
|
161
|
+
- 与主流 Agent 的预配置集成(Kimi Code、Cursor、Continue)
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 3. 与现有本体的对应关系
|
|
166
|
+
|
|
167
|
+
| HGM 概念 | 阶段 1 适配器 | 阶段 2 SDK | 阶段 3 Gateway |
|
|
168
|
+
| --- | --- | --- | --- |
|
|
169
|
+
| Task | 自动创建 | 显式创建 | 自动创建 + 关联组织 |
|
|
170
|
+
| HumanGate | 可配置自动批准 | 策略控制 | 对接企业审批系统 |
|
|
171
|
+
| AuditReview | 自动生成 | SDK 记录 | 中心化存储 |
|
|
172
|
+
| InvokeSnapshot | 自动捕获 | 可选 | 完整保存 |
|
|
173
|
+
| ConstraintArtifact | 读取本地规则 | SDK 加载 | 策略下发 |
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 4. 对个人开发者 / 求职者的价值
|
|
178
|
+
|
|
179
|
+
即使不实现全部三个阶段,规划这份路线图本身就展示了:
|
|
180
|
+
|
|
181
|
+
- **前瞻性架构思维**:不局限于当前 MVP,能预见 AI 工程化的演进方向。
|
|
182
|
+
- **对企业需求的理解**:知道企业最终需要的是集中、可控、可审计的 AI 治理。
|
|
183
|
+
- **技术深度**:能设计代理拦截、策略引擎、多语言 SDK 等组件。
|
|
184
|
+
|
|
185
|
+
在面试月之暗面等公司时,你可以说:
|
|
186
|
+
|
|
187
|
+
> 「我设计的 Harness 目前是项目纪律包,但它的本体和治理模型可以无缝扩展到 Agent 治理层。这里有一份三阶段路线图,展示了如何从现有 MVP 演进到企业级 AI Gateway。」
|
|
188
|
+
|
|
189
|
+
这远比只说「我做了一个约束 AI 的工具」更有冲击力。
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 5. 与产品路线图的边界
|
|
194
|
+
|
|
195
|
+
| 文档 | 关系 |
|
|
196
|
+
| --- | --- |
|
|
197
|
+
| [`methodology/ROADMAP_v1_zh.md`](./methodology/ROADMAP_v1_zh.md) | **semver 真值** · v0.2→v1.0 主轨 |
|
|
198
|
+
| Track G(HGM) | v1.0 后提案 · 事件/schema 子集 |
|
|
199
|
+
| **本文档** | 愿景层 · Agent 治理全栈 · **不占用 v1.0 前人月** |
|
|
200
|
+
|
|
201
|
+
启动条件建议:v1.0 stable push 完成 + 本体/ontology.yaml 冻结 + 至少一条 B2 量化证据(见 [`BENCHMARK_REPORT_TEMPLATE.md`](./BENCHMARK_REPORT_TEMPLATE.md))。
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 6. 修订记录
|
|
206
|
+
|
|
207
|
+
| 版本 | 日期 | 说明 |
|
|
208
|
+
| --- | --- | --- |
|
|
209
|
+
| v1.0 | YYYY-MM-DD | 初稿:三阶段演进、适配器设计、企业网关愿景 |
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# cyning-harness v1.0 · 使用手册
|
|
2
|
+
|
|
3
|
+
> **读者**:要在 **自己的业务仓库** 里落地 AI 辅助研发纪律的开发者(非 cyning-harness 维护者)。
|
|
4
|
+
> **版本**:[`@cyning/harness@1.0.1`](https://www.npmjs.com/package/@cyning/harness) · MIT
|
|
5
|
+
> **仓库**:<https://github.com/Cyning12/cyning-harness>
|
|
6
|
+
> **更短入口**:[`README.md`](../README.md) Quick Start · [`ONBOARDING.md`](./ONBOARDING.md) 接入细节
|
|
7
|
+
> **Release**:[`RELEASE_v1.0.1.md`](./RELEASE_v1.0.1.md) · [`CHANGELOG.md`](../CHANGELOG.md)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 这是什么 · 不是什么
|
|
12
|
+
|
|
13
|
+
**cyning-harness** 是一套可嵌入任意 Git 仓库的 **SDD 过程纪律包**:
|
|
14
|
+
|
|
15
|
+
- 提供:task 模板、审核 prompt、人工闸约定、同步脚本、CI 样例、架构图谱模板
|
|
16
|
+
- **不提供**:业务代码、LLM API、Agent 编排 SDK(与 LangChain 等 **互补**)
|
|
17
|
+
|
|
18
|
+
**v1.0 解决什么问题**:陌生人不仅能在空仓库 `npx init`,还能用 **`audit` / `gate-check` / `sync --index`** 机械检查「Inform / Constrain / Verify / Orchestrate(ICVO)」是否在仓库里就绪,而不是只靠口头约定。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 前置条件
|
|
23
|
+
|
|
24
|
+
| 项 | 要求 |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| Git | 目标业务仓已是 Git 仓库(或 `git init` 后使用) |
|
|
27
|
+
| Node.js | 能运行 `npx`(仅安装/升级 CLI 时需要) |
|
|
28
|
+
| IDE | 推荐带 Agent 的编辑器(Cursor、Claude Code 等) |
|
|
29
|
+
| 工程习惯 | 至少有 lint、test 或 build 之一(便于对齐 `ci/` 样例) |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 3. 五分钟上手(推荐路径)
|
|
34
|
+
|
|
35
|
+
在 **你的业务仓库根目录** 执行(**不要**在 clone 下来的 `cyning-harness` 产品仓根跑 `npx`,会报 `harness: command not found`):
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 1. 首次安装(钉 preset 与 IDE 入口)
|
|
39
|
+
npx @cyning/harness@1.0.1 init --preset harness-only --ide cursor,agents --yes
|
|
40
|
+
|
|
41
|
+
# 2. 30 前验证(gate-check + audit D5 + S5 warn)
|
|
42
|
+
npx @cyning/harness verify --target . --task docs/tasks/active/task_xxx.md
|
|
43
|
+
|
|
44
|
+
# 3. 产品包升级时(拉取模板更新)
|
|
45
|
+
npx @cyning/harness upgrade --yes
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**安装后你会得到**(典型):
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
your-repo/
|
|
52
|
+
├── .cyning-harness/
|
|
53
|
+
│ ├── manifest.json # 钉住的 harness 版本与 preset
|
|
54
|
+
│ └── profile.json # 同步轨道配置
|
|
55
|
+
├── docs/
|
|
56
|
+
│ ├── tasks/active/ # 你的 task 单(Agent 不覆盖)
|
|
57
|
+
│ ├── tasks/done/ # 关账归档
|
|
58
|
+
│ ├── harness/prompts/ # Starter 四帽 10/22/30/40
|
|
59
|
+
│ ├── harness/invokes/ # 执行快照约定
|
|
60
|
+
│ ├── _tech_graph/ # 架构图谱(按需填写)
|
|
61
|
+
│ ├── coding_wiki/ # LLM 读序
|
|
62
|
+
│ └── standards/ # 编码规范模板
|
|
63
|
+
└── AGENTS.md 等 IDE 入口片段
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 4. 典型 SDD 工作流(Starter 四帽)
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
10 需求/任务分析 → 22 任务审核 → gate-check → 30 执行编码 → 40 自检 → 关账
|
|
72
|
+
↑ ↑ ↑
|
|
73
|
+
prompts/10 落盘 reviews/ HG-AUDIT-R1 = approved
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 4.1 新建一张 task
|
|
77
|
+
|
|
78
|
+
1. 复制 [`docs/harness/templates/`](../harness/templates/) 或金样 [`task_demo_p0_golden_v1.md`](../examples/demo_checkout/task_demo_p0_golden_v1.md) 到 `docs/tasks/active/task_xxx.md`
|
|
79
|
+
2. 填写:背景、范围、验收标准、`test_strategy`(`required` / `recommended` / `not_applicable`)
|
|
80
|
+
3. 在 task 表填写 **人工闸**(至少 `HG-TASK-DRAFT`、`HG-AUDIT-R1`)
|
|
81
|
+
|
|
82
|
+
### 4.2 在 IDE 里执行
|
|
83
|
+
|
|
84
|
+
1. `@` 你的 task 文件 + `@docs/harness/prompts/10-requirements.md` → 产出需求/范围(帽说明见 [`harness/prompts/README.md`](../harness/prompts/README.md))
|
|
85
|
+
2. `@` [`22-task-audit.md`](../harness/prompts/22-task-audit.md) → 审核员落盘 `docs/harness/reviews/` · 维护者签 **`HG-AUDIT-R1 = approved`**
|
|
86
|
+
3. **30 之前** 跑 gate-check(见 §5)
|
|
87
|
+
4. `@` [`30-execute-code.md`](../harness/prompts/30-execute-code.md) → 改代码
|
|
88
|
+
5. `@` [`40-self-check.md`](../harness/prompts/40-self-check.md) → 命令证据 · 回填 task
|
|
89
|
+
6. 关账:`git mv` task → `docs/tasks/done/<domain>/`(见 [`ONBOARDING.md`](./ONBOARDING.md) §6 · [`FRAGMENT_task_domain_infer`](../harness/templates/FRAGMENT_task_domain_infer_v1_zh.md))
|
|
90
|
+
|
|
91
|
+
### 4.3 练手金样(零风险)
|
|
92
|
+
|
|
93
|
+
不碰生产仓库时,在 `/tmp` 跑通一遍:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
mkdir -p /tmp/harness-demo && cd /tmp/harness-demo && git init -q
|
|
97
|
+
npx @cyning/harness@1.0.1 init --preset harness-only --ide cursor,agents --yes
|
|
98
|
+
# 30 前验证:npx @cyning/harness verify --target . --task docs/tasks/active/task_demo_p0_golden_v1.md
|
|
99
|
+
# 金样 task(二选一):
|
|
100
|
+
# · 已 clone 产品仓:cp /path/to/cyning-harness/examples/demo_checkout/task_demo_p0_golden_v1.md docs/tasks/active/
|
|
101
|
+
# · 仅 npx:从 GitHub 浏览 examples/demo_checkout/ 复制 task 内容
|
|
102
|
+
# 逐步验收:examples/demo_checkout/ACCEPTANCE.md(见下方链接)
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
分步勾选:[`examples/demo_checkout/README.md`](../examples/demo_checkout/README.md) · [`ACCEPTANCE.md`](../examples/demo_checkout/ACCEPTANCE.md) · 差距说明 [`P0_V0.2_GAP.md`](./methodology/execution/P0_V0.2_GAP.md)
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 5. 人工闸与 gate-check(30 前必做)
|
|
110
|
+
|
|
111
|
+
**原则**:Agent 可以写 task 和 review,**人工闸只有维护者能签**。
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# 30 前聚合验证(gate-check + audit D5 + S5 warn + 可选 --graph)
|
|
115
|
+
npx @cyning/harness verify --target . --task docs/tasks/active/task_xxx.md
|
|
116
|
+
|
|
117
|
+
# 仅人工闸
|
|
118
|
+
npx @cyning/harness gate-check --target . --task docs/tasks/active/task_xxx.md
|
|
119
|
+
npx @cyning/harness gate-check --graph --target . # Inform 图谱闸
|
|
120
|
+
|
|
121
|
+
# 等价底层脚本(离线 clone 产品仓路径 · 见 wizard/README)
|
|
122
|
+
/path/to/cyning-harness/wizard/gate-check.sh --target .
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
脚本说明:[`wizard/README.md`](../wizard/README.md) · [`wizard/gate-check.sh`](../wizard/gate-check.sh)
|
|
126
|
+
|
|
127
|
+
| 闸 ID | 含义 | 30 影响 |
|
|
128
|
+
| --- | --- | --- |
|
|
129
|
+
| `HG-AUDIT-R1` | 22 审核通过 | **非 approved → 拒 30** |
|
|
130
|
+
| `HG-TASK-DRAFT` | task 初稿维护者签 | pending 且 blocks 含 30 → 拒 30 |
|
|
131
|
+
| `HG-GRAPH-MODULES` | 架构模块表人签 | pending → 拒改码 30 |
|
|
132
|
+
| `HG-RELEASE` | 发版闸(产品仓) | 一般业务仓不涉及 |
|
|
133
|
+
|
|
134
|
+
**Inform 图谱闸(v1.0)**:改码类 task 前,确保 `docs/_tech_graph/` 模块表已维护者签 `HG-GRAPH-MODULES = approved`。存量大仓可按 [`ONBOARDING.md`](./ONBOARDING.md) §3 选 S0–S3 档位,**不必一次画完所有 Mermaid**。
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 6. v1.0 CLI 命令速查
|
|
139
|
+
|
|
140
|
+
| 命令 | 用途 |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `npx @cyning/harness init` | 首次安装模板与 manifest(可选 `--with-scripts`) |
|
|
143
|
+
| `npx @cyning/harness upgrade` | 同步产品包更新(可加 `--gate-check` 先 audit) |
|
|
144
|
+
| `npx @cyning/harness check` | 检查是否有新版本 |
|
|
145
|
+
| `npx @cyning/harness verify` | 30 前聚合:gate-check + audit D5 + S5 warn + 可选 `--graph` |
|
|
146
|
+
| `npx @cyning/harness gate-check` | 仅人工闸(`--graph` / `--json`) |
|
|
147
|
+
| `npx @cyning/harness audit` | ICVO 机械审计(D3/D5/S5) |
|
|
148
|
+
| `npx @cyning/harness sync index` | 生成 `.cyning-harness/invoke_index.json` |
|
|
149
|
+
| [`harness-sync.sh`](../wizard/harness-sync.sh) `plan/apply` | 预览/应用模板同步 |
|
|
150
|
+
|
|
151
|
+
**ICVO audit 检查什么**:
|
|
152
|
+
|
|
153
|
+
| 公理 | 行为 |
|
|
154
|
+
| --- | --- |
|
|
155
|
+
| **D3** | 30 前人闸 · 同 gate-check |
|
|
156
|
+
| **D5** | `test_strategy=required` 须有测试路径或 CI 引用 |
|
|
157
|
+
| **S5** | 工作区 dirty 时 warn;`sync apply` 须 `--force` 明示 |
|
|
158
|
+
|
|
159
|
+
Audit **不替代** 维护者判断;22 内容质量仍须人读 review。详见 [`ONBOARDING.md`](./ONBOARDING.md) §2.2。
|
|
160
|
+
|
|
161
|
+
### 6.1 SDD-Compliance bench(维护者 · 可选)
|
|
162
|
+
|
|
163
|
+
> **业务仓日常不必跑**;用于验证 `gate-check` / `sync` 公理行为,或对照 README「试点证据」中的 bench 数字。
|
|
164
|
+
|
|
165
|
+
仅在 **clone 下来的 cyning-harness 产品仓根** 执行:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
cd /path/to/cyning-harness
|
|
169
|
+
./wizard/compliance-bench.sh --all # 逐项解释 + 摘要(推荐人工看)
|
|
170
|
+
./wizard/compliance-bench.sh --quiet --all # stdout 仅合规率数字;说明在 stderr
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
| 输出 | 含义 |
|
|
174
|
+
| --- | --- |
|
|
175
|
+
| **`100`** | S1–S4 四个合成场景全 PASS · **不是** LLM 解题分数 |
|
|
176
|
+
| **`< 100`** | 有场景 FAIL · 见 `--all` 输出或 stderr 摘要表 |
|
|
177
|
+
|
|
178
|
+
场景与公理解读:[`examples/compliance_bench/README.md`](../examples/compliance_bench/README.md) · 脚本 [`wizard/compliance-bench.sh`](../wizard/compliance-bench.sh)
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 7. 同步边界(重要 · S2)
|
|
183
|
+
|
|
184
|
+
`harness-sync` **不会覆盖** 你的业务数据:
|
|
185
|
+
|
|
186
|
+
- `docs/tasks/**`
|
|
187
|
+
- `docs/harness/reviews/**`
|
|
188
|
+
- `docs/harness/invokes/by-task/**`(按 task 域的执行快照)
|
|
189
|
+
|
|
190
|
+
纪律层(prompts 模板、wizard 脚本引用)与业务 task **分离**。升级产品包前建议:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
git status # 应干净,或知晓 S5 warn
|
|
194
|
+
npx @cyning/harness upgrade --yes
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 8. Preset 怎么选
|
|
200
|
+
|
|
201
|
+
| preset | 适合 |
|
|
202
|
+
| --- | --- |
|
|
203
|
+
| **`harness-only`**(默认) | 任意栈 · 只要 SDD 过程轨 + IDE 入口 |
|
|
204
|
+
| `fullstack-node-py` | Node 前端 + Python 后端全栈五轨 |
|
|
205
|
+
| `oss-fork-meta` | 个人 OSS fork · 过程轨与 upstream 双分支(见 [`examples/oss-fork/README.md`](../examples/oss-fork/README.md)) |
|
|
206
|
+
|
|
207
|
+
交互式问卷:`wizard/install.sh`(离线 clone 路径)。
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 9. 离线 / 无 npx 环境
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
git clone https://github.com/Cyning12/cyning-harness.git
|
|
215
|
+
cd your-project
|
|
216
|
+
/path/to/cyning-harness/wizard/install.sh --target . --preset harness-only --ide cursor,agents
|
|
217
|
+
/path/to/cyning-harness/wizard/harness-sync.sh apply --target .
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
维护者在 **产品仓根** 验证 CLI:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npm run harness -- check --target /tmp/foo
|
|
224
|
+
# 或 node bin/harness.js audit --target /path/to/your-repo
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 10. 局限与诚实边界(v1.0)
|
|
230
|
+
|
|
231
|
+
| 项 | 说明 |
|
|
232
|
+
| --- | --- |
|
|
233
|
+
| 不是胜率工具 | [`README` 试点证据 B2](../README.md) · 完整表 [`PILOT_EVIDENCE_B2_v1_zh.md`](./methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md) · **小样本机制证据**,不可外推 |
|
|
234
|
+
| bench `100` | [SDD-Compliance](../examples/compliance_bench/README.md) 四场景合规率 · 见上文 §6.1 |
|
|
235
|
+
| Extended 帽 | 00/50/链式 PROMPT 不在 Starter 默认包 · 见 [`harness/prompts/README.md`](../harness/prompts/README.md) |
|
|
236
|
+
| HGM / 图数据库 | **Track G · v2.0+ 提案**,v1.0 未实现 |
|
|
237
|
+
| Agent-shell | 研究轨 #9,非 npm 功能 |
|
|
238
|
+
| rejected→draft | bench S5 场景 v1 未纳入;gate-check 对非 approved 拒 30 |
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## 11. 常见问题
|
|
243
|
+
|
|
244
|
+
**Q:Harness 会调用我的 LLM 吗?**
|
|
245
|
+
A:不会。LLM 在你使用的 IDE 里;Harness 只提供文件、脚本与约定。
|
|
246
|
+
|
|
247
|
+
**Q:必须用完 10→22→30→40 才能提交代码吗?**
|
|
248
|
+
A:团队自定。Starter 设计是 **改码前 22 审核 + gate-check**;小修可标 `test_strategy=not_applicable` 并写理由。
|
|
249
|
+
|
|
250
|
+
**Q:和 `.cursor/rules` 什么关系?**
|
|
251
|
+
A:`init --ide cursor` 会生成入口片段;Harness task + prompts 是 **任务级 SDD**,rules 是 **编辑器级约束**,可同时用。
|
|
252
|
+
|
|
253
|
+
**Q:升级后 task 会被覆盖吗?**
|
|
254
|
+
A:不会(S2 域)。若 prompts 模板有更新,apply 会更新 **模板侧**,不删你的 active task。
|
|
255
|
+
|
|
256
|
+
**Q:如何贡献或报 issue?**
|
|
257
|
+
A:GitHub [Cyning12/cyning-harness](https://github.com/Cyning12/cyning-harness) · MIT。
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 12. 进一步阅读
|
|
262
|
+
|
|
263
|
+
| 优先级 | 文档 |
|
|
264
|
+
| --- | --- |
|
|
265
|
+
| **本手册** | 你正在读 · 对外入口 [`docs/README.md`](./README.md) |
|
|
266
|
+
| **接入** | [`ONBOARDING.md`](./ONBOARDING.md) · [`wizard/README.md`](../wizard/README.md) · [`wizard/ONBOARDING_wizard_v1_zh.md`](../wizard/ONBOARDING_wizard_v1_zh.md) |
|
|
267
|
+
| **练手** | [`demo_checkout/README.md`](../examples/demo_checkout/README.md) · [`ACCEPTANCE.md`](../examples/demo_checkout/ACCEPTANCE.md) |
|
|
268
|
+
| **合规 bench** | [`examples/compliance_bench/README.md`](../examples/compliance_bench/README.md) |
|
|
269
|
+
| **理论** | [`methodology/README.md`](./methodology/README.md) · [`DESIGN_ONTOLOGY_v1_zh.md`](./methodology/product/DESIGN_ONTOLOGY_v1_zh.md) |
|
|
270
|
+
| **路线** | [`methodology/ROADMAP_v1_zh.md`](./methodology/ROADMAP_v1_zh.md) |
|
|
271
|
+
| **试点证据** | [`PILOT_EVIDENCE_B2_v1_zh.md`](./methodology/execution/PILOT_EVIDENCE_B2_v1_zh.md) |
|
|
272
|
+
| **ETCLOVG** | [`ETCLOVG_MAPPING_v1_zh.md`](./ETCLOVG_MAPPING_v1_zh.md) |
|
|
273
|
+
| **架构** | [`ARCHITECTURE.md`](./ARCHITECTURE.md) |
|
|
274
|
+
| **变更** | [`CHANGELOG.md`](../CHANGELOG.md) · [`RELEASE_v1.0.0.md`](./RELEASE_v1.0.0.md) |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
**修订记录**
|
|
279
|
+
|
|
280
|
+
| 日期 | 说明 |
|
|
281
|
+
| --- | --- |
|
|
282
|
+
| 2026-06-16 | v1.0 stable 首版使用手册 |
|
|
283
|
+
| 2026-06-16 | 补全相对链接 · §6.1 compliance-bench · §12 阅读索引 |
|
|
284
|
+
| 2026-06-16 | v1.0.1:verify / gate-check / sync index CLI · `--with-scripts` · QUICKREF |
|
|
@@ -18,7 +18,8 @@ L2 真值链大体自洽,但存在 semver(v0.5 HGM 晚于 v1.0 闸门)、H
|
|
|
18
18
|
|
|
19
19
|
| 级别 | ID | 问题 | 影响读者 | 建议改法 | 涉及文件 | 状态 |
|
|
20
20
|
| --- | --- | --- | --- | --- | --- | --- |
|
|
21
|
-
| P0 | SEM-01 | v0.5.x 在 semver 表位于 v1.0 后,数字易误读 | 以为 HGM 是 v1.0 前产品版 | Track G 子表 + 对外脚注 | `ROADMAP_v1_zh.md` 等 | ✅ |
|
|
21
|
+
| P0 | SEM-01 | v0.5.x 在 semver 表位于 v1.0 后,数字易误读 | 以为 HGM 是 v1.0 前产品版 | Track G 子表 + 对外脚注 | `ROADMAP_v1_zh.md` 等 | ✅ → **SEM-02 改 v2.x** |
|
|
22
|
+
| P0 | SEM-02 | SEM-01 脚注仍不足 · v0.5/v0.6 像主轨续号 | 问「0.5 在哪」 | HGM 改 **v2.0+ / v2.1+** · ROADMAP §2.0 | 全 L2 链 | ✅ 2026-06-15 |
|
|
22
23
|
| P0 | ICV-01 | 公众 ICV 三支柱 vs 产品 ICVO 四支柱 | 续篇自相矛盾 | ICVO 升级说明 + 地图 v1.0.3 脚注 | 本体 · README · 公众稿 | ✅ |
|
|
23
24
|
| P0 | IMPL-01 | A0「已完成」vs P0 进行中 | 过度承诺 v0.2 | 拆 A0a/A0b | `STRATEGY_MASTER` | ✅ |
|
|
24
25
|
| P0 | IMPL-02 | HGM/jsonl/npx 未标 proposal | 以为已实现 | 统一 `proposal · 未实现` | HGM · README §5.3 | ✅ |
|
|
@@ -46,7 +47,7 @@ L2 真值链大体自洽,但存在 semver(v0.5 HGM 晚于 v1.0 闸门)、H
|
|
|
46
47
|
|
|
47
48
|
## semver / Track G 对外统一用语建议
|
|
48
49
|
|
|
49
|
-
> cyning-harness
|
|
50
|
+
> cyning-harness **主轨**按 **v0.2 → v0.3 → v0.4 → v1.0** 推进。**Track G(HGM)** 在 **v1.0 关账后** 以 **v2.x** 推进(G1 **v2.0+** · G2 **v2.1+**),**不是**主轨 semver,也 **不阻塞** public push。对外请写 **「Track G 提案 · v2.x」** 或 **「G1:事件+jsonl ingest(proposal · 未实现)」**。~~v0.5/v0.6 指 HGM~~ **已废止(SEM-02)**。
|
|
50
51
|
|
|
51
52
|
---
|
|
52
53
|
|
|
@@ -58,7 +59,7 @@ L2 真值链大体自洽,但存在 semver(v0.5 HGM 晚于 v1.0 闸门)、H
|
|
|
58
59
|
- [x] DESIGN_ONTOLOGY product/README 链到续篇 / ICVO 对照
|
|
59
60
|
- [x] HGM design §5 / 依赖行校正
|
|
60
61
|
- [x] STRATEGY_MASTER A0 · §1.1 · §4.9
|
|
61
|
-
- [x]
|
|
62
|
+
- [x] ROADMAP **SEM-02**:HGM **v0.5/v0.6 → v2.x** · §2.0 命名纪律
|
|
62
63
|
|
|
63
64
|
---
|
|
64
65
|
|
|
@@ -67,3 +68,4 @@ L2 真值链大体自洽,但存在 semver(v0.5 HGM 晚于 v1.0 闸门)、H
|
|
|
67
68
|
| 日期 | 说明 |
|
|
68
69
|
| --- | --- |
|
|
69
70
|
| 2026-06-15 | 初版审计 · 同日落盘修复 |
|
|
71
|
+
| 2026-06-15 | SEM-02:HGM semver **v2.x** 全链回填 |
|
|
@@ -61,7 +61,7 @@ L3 运行实例 业务仓 docs/tasks · harness · … (S2 保
|
|
|
61
61
|
产品设计本体 (Track · Hat · Gate · P/S/D 公理 · ICVO)
|
|
62
62
|
↓ 实现
|
|
63
63
|
wizard / harness-sync / gate-check(命令式 · 类 OOP)
|
|
64
|
-
↓ 可选
|
|
64
|
+
↓ 可选 v2.0+(Track G · v1.0 后)
|
|
65
65
|
Harness Graph Model(显式边 + 事件历史 + 公理查询)
|
|
66
66
|
```
|
|
67
67
|
|
|
@@ -97,7 +97,7 @@ HGM = 结构化对象 + 显式带类型的边 + 不可变事件历史 + 可推
|
|
|
97
97
|
| --- | --- | --- |
|
|
98
98
|
| O1 | `ontology.yaml` 从本体抽取 | v0.4 |
|
|
99
99
|
| O2 | 本总指引与 STRATEGY_MASTER 日历双向链 | v0.3 |
|
|
100
|
-
| O3 | HGM `events/*.jsonl` 原型(**proposal · 未实现**) | Track G ·
|
|
100
|
+
| O3 | HGM `events/*.jsonl` 原型(**proposal · 未实现**) | Track G · **v2.0+** |
|
|
101
101
|
| O4 | 对外博客 · ICVO 四支柱 · §7.5 展开 | Q3 push 前 |
|
|
102
102
|
| O5 | 治理仓 L0 单页摘要(不重复 L2) | 可选 |
|
|
103
103
|
| O6 | `DOCUMENT_MAP` 随 semver 自动校验脚本 | v1.0 |
|
|
@@ -118,12 +118,12 @@ HGM = 结构化对象 + 显式带类型的边 + 不可变事件历史 + 可推
|
|
|
118
118
|
|
|
119
119
|
| # | 项 | 版本 |
|
|
120
120
|
| --- | --- | --- |
|
|
121
|
-
| K1 | 事件 schema + ingest(**proposal · 未实现**) | Track G · G1 /
|
|
122
|
-
| K2 | snapshot + axioms check(**proposal**) |
|
|
123
|
-
| K3 | timeline / patterns(**proposal**) |
|
|
121
|
+
| K1 | 事件 schema + ingest(**proposal · 未实现**) | Track G · G1 / **v2.0+** |
|
|
122
|
+
| K2 | snapshot + axioms check(**proposal**) | **v2.0–v2.1** |
|
|
123
|
+
| K3 | timeline / patterns(**proposal**) | **v2.1–v2.2** |
|
|
124
124
|
| K4 | 与 Runtime/C 轨推理衔接 | v1.0+ · **未立项** |
|
|
125
125
|
|
|
126
|
-
> **Track G 用语**:**G1 /
|
|
126
|
+
> **Track G 用语**:**G1 / v2.0+** 为能力标签,**启动闸门在 v1.0 之后**(见 [`ROADMAP_v1_zh.md`](./ROADMAP_v1_zh.md) §2.0 · §2.2 · §5)· **非**主轨下一档 semver(**废止 v0.5/v0.6 指 HGM**)。
|
|
127
127
|
|
|
128
128
|
### 5.4 试点与叙事轨(B/D · 摘要)
|
|
129
129
|
|
|
@@ -145,3 +145,4 @@ HGM = 结构化对象 + 显式带类型的边 + 不可变事件历史 + 可推
|
|
|
145
145
|
| v1.1 | 2026-06-15 | §5 扩为 O/P/K/B/D 全景 · ROADMAP · 写作 Prompt |
|
|
146
146
|
| v1.1.1 | 2026-06-15 | K/O 轨 proposal 标注 · Track G 脚注 · 链审计报告 |
|
|
147
147
|
| v1.2 | 2026-06-15 | Track B 证据 #8/#9 · reviews/ · 可行性审核 Prompt |
|
|
148
|
+
| v1.3 | 2026-06-15 | **SEM-02**:Track G **v2.x** · 对齐 ROADMAP v1.4 |
|