Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .cursor/rules/06-harness-pointer.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
description: Harness Starter — 读序、task、人工闸与 Verify 纪律(嵌入业务仓 · Cursor)
alwaysApply: true
globs:
- "**/*"
---

# Harness Starter(业务仓 · Cursor)

> **单源真值**:`docs/coding_wiki/` 读序 + `docs/standards/` + `AGENTS.md`。
> **本规则**:摘要 + **POINTER**;条文真值在 `docs/harness/prompts/`。

## 执行 task 前

1. Open Folder = **本仓根**
2. 读 `docs/tasks/active/task_*.md`:`test_strategy` · `failure_paths` · **人工闸**表
3. **30 改码前** GATE_VERIFY(真值在 task **人工闸表**,**非** invoke 字面 `approved`):
- 运行 `npx @cyning/harness verify --target . --task docs/tasks/active/task_*.md`
- 首输出闸扫描 · `FRAGMENT_30_gate_verify_v1_zh.md`
- **`HG-AUDIT-R1` pending** → **30 拒改码**
- 声称与 task 表冲突 → **STOP**
4. 过程 invoke:`docs/harness/invokes/by-task/<task_slug>/`

## Verify(合并前)

| 栈 | 命令(与 `.github/workflows/` 一致) |
|----|--------------------------------------|
| 前端 | `pnpm lint` → `pnpm test` → `pnpm build` |
| 后端 | `pytest tests`(按仓 marker 裁剪) |
| iOS | `xcodebuild`(见 task `test_strategy_note`) |

## 关键词

`Harness`、`task`、`invoke`、`HG-AUDIT-R1`、`HG-GRAPH-MODULES`、`human_gate`、`拒开工`

## 完整库 POINTER

工作区:`docs/harness/prompts/`(22/30/TEMPLATE_30_gate_stop 等)
47 changes: 47 additions & 0 deletions .cyning-harness/QUICKREF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# cyning-harness · 业务仓速查

> 本文件由 `npx @cyning/harness init/upgrade` 自动生成,可手动删除。

---

## 常用命令

```bash
# 30 前聚合验证(gate-check + audit D5 + S5 warn + 可选 --graph)
npx @cyning/harness verify [--target .] [--task docs/tasks/active/task_xxx.md] [--graph] [--json] [--agent-hint] [--workspace-root PATH]

# 仅人工闸 npx @cyning/harness gate-check [--target .] [--task ...] [--graph] [--json]

# 生成 invoke 索引
npx @cyning/harness sync index [--target .]

# 升级 Harness 过程轨
npx @cyning/harness upgrade --target . --yes

# ICVO 审计(指定 task)
npx @cyning/harness audit --target . --task docs/tasks/active/task_xxx.md
```

## Node 仓可选路径

若 init/upgrade 时使用了 `--with-scripts`:

```bash
pnpm install
pnpm harness:verify --task docs/tasks/active/task_xxx.md
pnpm harness:gate
pnpm harness:audit --task docs/tasks/active/task_xxx.md
```

---

## 本地产品包覆盖

维护者开发时:

```bash
export CYNING_HARNESS=/path/to/cyning-harness
npx @cyning/harness verify --target .
```

业务仓无需 clone 产品包即可使用 CLI。
7 changes: 7 additions & 0 deletions .cyning-harness/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"version": "2.19.0",
"preset": "harness-only",
"ide": ["cursor","claude","agents"],
"from_version": "2.18.0",
"upgraded_at": "2026-07-28T08:20:36Z"
}
19 changes: 19 additions & 0 deletions .cyning-harness/profile.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"version": 1,
"preset": "harness-only",
"description": "仅过程轨 + Cursor 规则(不覆盖图谱/业务 task)",
"paths": {
"ide_cursor": ".cursor/rules/06-harness-pointer.mdc"
},
"tracks": {
"graph": false,
"wiki": false,
"standards": false,
"harness_prompts": true,
"harness_invoke_template": true,
"ide_cursor": true,
"ide_claude": true,
"ide_agents": true,
"ci": "none"
}
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,6 @@ docs/diary/jsonPKmermaid/**/raw/
# --- Harness sessions(B1 · 本地 Inform 真值 · 不入库)---
docs/harness/sessions/**
!docs/harness/sessions/README.md

# cyning-harness local path (machine-specific)
.cyning-harness/local.json
35 changes: 35 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,38 @@
| `40-error-handling.mdc` | Error Handling | 错误处理与降级策略 — 结构化响应、异常分支、备选方案 |

全文附录:`python tools/gen_agents_md.py --full`

<!-- cyning-harness:begin -->
# Harness Starter(业务仓 · 通用 Agent)

> **单源真值**:`docs/coding_wiki/` 读序 + `docs/standards/` + 本文件其余业务约定。
> **本片段**:摘要 + **POINTER**;Harness 条文真值在 `docs/harness/prompts/`。

## 执行 task 前

1. Open Folder = **本仓根**
2. 读 `docs/tasks/active/task_*.md`:`test_strategy` · `failure_paths` · **人工闸**表
3. **30 改码前** GATE_VERIFY(真值在 task **人工闸表**,**非**聊天 / invoke 字面 `approved`):
- 运行 `npx @cyning/harness verify --target . --task docs/tasks/active/task_*.md`
- 首输出闸扫描表 · 见 `docs/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md`
- **`HG-AUDIT-R1` pending** → **30 拒改码**(须维护者签 task 表 `approved`)
- **`HG-GRAPH-MODULES` pending** → **30 拒改码**(D4-a)
- 用户声称与 task 表冲突 → **STOP** · 以 task 表为准
4. 过程 invoke:`docs/harness/invokes/by-task/<task_slug>/`

## Verify(合并前)

| 栈 | 命令(与 `.github/workflows/` 一致) |
|----|--------------------------------------|
| 前端 | `pnpm lint` → `pnpm test` → `pnpm build` |
| 后端 | `pytest tests`(按仓 marker 裁剪) |
| iOS | `xcodebuild`(见 task `test_strategy_note`) |

## 关键词

`Harness`、`task`、`invoke`、`HG-AUDIT-R1`、`HG-GRAPH-MODULES`、`human_gate`、`拒开工`

## 完整库 POINTER

工作区:`docs/harness/prompts/`(22/30/TEMPLATE_30_gate_stop 等)
<!-- cyning-harness:end -->
34 changes: 34 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1 +1,35 @@
@AGENTS.md

<!-- cyning-harness:begin -->
# Harness Starter(业务仓 · Claude Code)

> **单源真值**:`docs/coding_wiki/` 读序 + `docs/standards/` + `AGENTS.md`。
> **本片段**:摘要 + **POINTER**;条文真值在 `docs/harness/prompts/`。

## 执行 task 前

1. Open Folder = **本仓根**
2. 读 `docs/tasks/active/task_*.md`:`test_strategy` · `failure_paths` · **人工闸**表
3. **30 改码前** GATE_VERIFY(真值在 task **人工闸表**,**非** invoke 字面 `approved`):
- 运行 `npx @cyning/harness verify --target . --task docs/tasks/active/task_*.md`
- 首输出闸扫描 · `FRAGMENT_30_gate_verify_v1_zh.md`
- **`HG-AUDIT-R1` pending** → **30 拒改码**
- 声称与 task 表冲突 → **STOP**
4. 过程 invoke:`docs/harness/invokes/by-task/<task_slug>/`

## Verify(合并前)

| 栈 | 命令(与 `.github/workflows/` 一致) |
|----|--------------------------------------|
| 前端 | `pnpm lint` → `pnpm test` → `pnpm build` |
| 后端 | `pytest tests`(按仓 marker 裁剪) |
| iOS | `xcodebuild`(见 task `test_strategy_note`) |

## 关键词

`Harness`、`task`、`invoke`、`HG-AUDIT-R1`、`HG-GRAPH-MODULES`、`human_gate`、`拒开工`

## 完整库 POINTER

工作区:`docs/harness/prompts/`(22/30/TEMPLATE_30_gate_stop 等)
<!-- cyning-harness:end -->
12 changes: 12 additions & 0 deletions docs/harness/HARNESS_V2_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,17 @@ Inform(告知)与 Constrain(约束)在前后端子仓及工作区根已
- **00 总调度** 可链外编排并逐帽填 HatInstance;未用 00 时由 **关账(CLOSE)** 读各帽 Judgment + 50/reinspect 填表。
- **blocked**(任一帽 D2/D5 fail)→ **不得关账**;与 `human_gate` pending、50 书面阻塞、必绿 CI 红 **并行** 硬规则。

### 5.9 `wiki_delta` / `wiki_delta_note`(Wiki 反馈 · `@cyning/harness` ≥2.18)

| 取值 | 含义 | 关账时 |
|------|------|--------|
| `path` | 相对仓根的 wiki 文件/目录(通常 `docs/coding_wiki/…`) | 路径须存在;`experience_capture=required` 时经验节须含 `coding_wiki` / `Wiki:` / `wiki_promoted:` 指针 |
| `none` | 本 task 不改 wiki | **须** `wiki_delta_note` |
| `n/a` | 本仓未启用 WikiTrack | **须** `wiki_delta_note` |

- **缺字段 → `task close` BLOCK**(`verify --task` 默认 WARN;`--strict-wiki-delta` 可升 BLOCK)。
- **勿**默认 `--allow-wiki-gap`。钉版本见仓根 `harness.pin.json` 与 [`README.md`](./README.md)「npm 纪律包钉版本」。

---

## 6. 冻结点 vs 修订记录(再次落盘)
Expand Down Expand Up @@ -229,6 +240,7 @@ Inform(告知)与 Constrain(约束)在前后端子仓及工作区根已
| 2026-05-17 | §5.5 `audit_profile`、§5.6 `human_gate` / `semi_auto`;§0.2 链 [`handoff/HANDOFF_SEMI_AUTO.md`](prompts/HANDOFF_SEMI_AUTO.md) |
| 2026-06-08 | §5.6 升格 `orchestration` 链式常模 + `semi_auto` 过渡/废弃;链 [`SPEC-Governance-Harness-Chain-Orchestration-v1.md`](../spec/governance/SPEC-Governance-Harness-Chain-Orchestration-v1.md) |
| 2026-05-30 | §5.1 本仓 TDD 实践口径;task 模板 Delta/Scenario(OpenSpec 借鉴);链 diary TDD 专项分析 |
| 2026-07-28 | §5.9 `wiki_delta` / `wiki_delta_note`(对齐 `@cyning/harness@2.18.0` close 硬闸);钉版本见 `harness.pin.json` |
| 2026-05-31 | §5.7 `experience_capture`、§5.8 `kpi_rubric` / `kpi_aggregator` / `### KPI(00)`;链 KPI_RUBRIC_v1_2 与 00-orchestrator |

---
Expand Down
10 changes: 10 additions & 0 deletions docs/harness/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@
> **目标**:日常只读本目录 + `docs/tasks/`;含 **三方 Agent(50 帽)** 可查收落盘。
> **历史**:22/reviews、旧 invoke 见 [`../diary/harness-archive/`](../diary/harness-archive/README.md)。

### npm 纪律包钉版本(`@cyning/harness`)

| 项 | 真值 |
| --- | --- |
| **pin** | 仓根 [`harness.pin.json`](../../harness.pin.json)(当前 **2.19.0**) |
| **manifest** | [`.cyning-harness/manifest.json`](../../.cyning-harness/manifest.json) · preset `harness-only` |
| **升级** | `npx --yes @cyning/harness@<pin.version> upgrade --yes`(干净工作区;init 后改动未提交时可用 `--force`) |
| **破坏性(2.18+)** | task 缺 `wiki_delta` → **`task close` BLOCK**;`none`/`n/a` 须 `wiki_delta_note`。**勿**默认 `--allow-wiki-gap` |
| **本仓帽正文** | 真值仍在 `prompts/hats/` · `templates/` · `handoff/`;产品包扁平帽(`prompts/30-execute-code.md` 等)为 sync 对照层,**不**替代 `hats/` |

---

## 1. 日常读什么
Expand Down
Loading
Loading