@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
package/AGENTS.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# cyning-harness · Agent 入口
|
|
2
|
+
|
|
3
|
+
> **范围**:本仓库 **仅** 维护 Harness 产品包模板与文档;**不含** 业务代码与 LLM Runtime。
|
|
4
|
+
|
|
5
|
+
## 阅读顺序
|
|
6
|
+
|
|
7
|
+
1. [`README.md`](README.md)
|
|
8
|
+
2. [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)
|
|
9
|
+
3. [`docs/ONBOARDING.md`](docs/ONBOARDING.md)
|
|
10
|
+
4. 按任务进入 `harness/templates/` 或 `wizard/`
|
|
11
|
+
|
|
12
|
+
## 修改纪律
|
|
13
|
+
|
|
14
|
+
- 模板与 POINTER:**本仓真值**
|
|
15
|
+
- 嵌入用户业务仓时:**复制生成**,勿假设本仓路径与用户仓一致
|
|
16
|
+
- 版本发布:更新 `CHANGELOG.md` 与 git tag(`v0.x.y`)
|
|
17
|
+
|
|
18
|
+
## 关键词
|
|
19
|
+
|
|
20
|
+
`cyning-harness`、`graph`、`coding_wiki`、`standards`、`harness`、`invoke`、`wizard`
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本仓库遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.3.0] - 2026-06-15
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`@cyning/harness` npm CLI**:`init` · `upgrade` · `check`(薄封装 · 内部复用 `wizard/*.sh`)
|
|
12
|
+
- **`.cyning-harness/manifest.json`**:install/upgrade 写入 · schema [`schema/manifest.v1.schema.json`](schema/manifest.v1.schema.json)
|
|
13
|
+
- **S5 git-clean**:`harness-sync.sh apply` 前检测已跟踪文件变更 · `--force` / `HARNESS_SYNC_FORCE=1` 跳过
|
|
14
|
+
- **集成测试**:`npm test`(空目录 init · upgrade 等价 upgrade.sh · S5)
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- `docs/ONBOARDING.md` · `README.md` · `wizard/README.md`:**npx 优先**,clone 路径为维护者/离线
|
|
19
|
+
- `wizard/install.sh` · `wizard/upgrade.sh`:写入/更新 manifest · 支持 `HARNESS_VERSION`
|
|
20
|
+
|
|
21
|
+
## [0.2.1] - 2026-06-13
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **done 分层索引模板**:`TASK_done_README.md` · `VIEW_done_by_domain.md` · `VIEW_done_thin_pointer.md` · `FRAGMENT_task_domain_infer_v1_zh.md`
|
|
26
|
+
- **`install.sh`**:创建 `done/<domain>/` 子目录 · 首次嵌入 Hub 与 `_views` 薄指针(文件不存在时)
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- `harness/templates/README.md`:关账纪律与嵌入步骤
|
|
31
|
+
- `docs/ONBOARDING.md` §6:task 关账与 done 分层索引
|
|
32
|
+
|
|
33
|
+
## [0.2.0] - 2026-06-11
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **D3 IDE 适配**:`ide/adapters/CLAUDE.md.fragment.example` · `AGENTS.md.fragment.example`(单源 POINTER)
|
|
38
|
+
- **`install.sh --ide`**:逗号列表 `cursor,claude,agents` → 写入 profile `tracks.ide_*`
|
|
39
|
+
- **`harness-sync.sh` marker merge**:`<!-- cyning-harness:begin/end -->` 合并至仓根 `CLAUDE.md` / `AGENTS.md`
|
|
40
|
+
|
|
41
|
+
### Changed
|
|
42
|
+
|
|
43
|
+
- `wizard/profiles/harness-only.json` · `fullstack-node-py.json`:增 `ide_claude` / `ide_agents`(默认 `false`)
|
|
44
|
+
- `ide/adapters/README.md` · `wizard/ONBOARDING_wizard_v1_zh.md` §3 · `docs/ONBOARDING.md`:v0.2 可执行勾选
|
|
45
|
+
- `wizard/README.md`:§1 增 `--ide` 示例
|
|
46
|
+
- `README.md` 当前版本 → **v0.2.0**
|
|
47
|
+
|
|
48
|
+
### Notes
|
|
49
|
+
|
|
50
|
+
- **backward-compat**:profile 无 `ide_claude`/`ide_agents` 时等同 v0.1.3(仅 `ide_cursor`)
|
|
51
|
+
- **freeze_id**:`freeze_cyning_harness_v0_2_d3`(tag 由 CLOSE 棒独立打)
|
|
52
|
+
|
|
53
|
+
## [0.1.3] - 2026-06-11
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- **上游 PR task 模板**:`wizard/templates/TASK_TEMPLATE_upstream_pr_v1.md` — Harness 元信息 · 思考轮 §4 · 图谱闸 · 验收清单
|
|
58
|
+
- **思考回填 FRAGMENT**:`wizard/templates/FRAGMENT_rethink_backfill_task_v1_zh.md` — Agent 须写回 task §4 + **思考轮控制**;22 可退回 10 补思考
|
|
59
|
+
- **10/22 帽**:阶段 C task 预置 **R0+R1–R5** 五槽;可提前停/增轮须留 reason 与 residual_risks
|
|
60
|
+
- **扫描 preset**:`kimi-c3-candidate`(排除 #565/#566/#583 · 无 open PR)
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
|
|
64
|
+
- `wizard/bootstrap-oss-fork-meta.sh`:初始化时复制 task 模板 + FRAGMENT 至 `docs/tasks/` · `docs/harness/`
|
|
65
|
+
- `examples/oss-fork/README.md`:§6 阶段 C3 工作流(思考回填 · 图谱闸 · PR 暂缓策略)
|
|
66
|
+
- `wizard/README.md` · `docs/ONBOARDING.md`:v0.1.3 · `kimi-c3-candidate` 交叉引用
|
|
67
|
+
- `wizard/scan-upstream-issues.sh`:`--format text` 作为 `table` 别名(修复 CLI 报错)
|
|
68
|
+
|
|
69
|
+
### Notes
|
|
70
|
+
|
|
71
|
+
- **试点证据**:MoonshotAI/kimi-code · C1 #622 merged · C2 #583 · C3 #580 local_done(PR 暂缓至 2026-06-13)
|
|
72
|
+
- **不含**:D3 `CLAUDE.md` / `AGENTS.md.fragment`(规划 v0.2)
|
|
73
|
+
|
|
74
|
+
## [0.1.2] - 2026-06-10
|
|
75
|
+
|
|
76
|
+
### Added
|
|
77
|
+
|
|
78
|
+
- **OSS fork 选题**:`wizard/scan-upstream-issues.sh` — `gh` + `jq` 扫描上游 issue、可选 PR 占坑检查、`table` / `markdown` / `json` 输出
|
|
79
|
+
- **扫描预设**:`wizard/profiles/issue-scan-presets.json`(`kimi-open-bug` · `kimi-c2-candidate` · `kimi-open-all` · `kimi-open-enhancement`;可自定义 `--repo`)
|
|
80
|
+
- **OSS fork 一键初始化**(v0.1.1 起累积、本版文档收口):`wizard/bootstrap-oss-fork-meta.sh` · preset `oss-fork-meta` · 可选 `--stub-dir`
|
|
81
|
+
- **examples/oss-fork/**:kimi-code 图谱快照指针;**双 worktree** 拓扑与 issue 扫描说明
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- `wizard/README.md`:§4 上游 Issue 扫描 · OSS fork 工作流交叉引用
|
|
86
|
+
- `wizard/bootstrap-oss-fork-meta.sh`:完成提示含 worktree / `scan-upstream-issues` · 默认 `docs/tasks/done/`
|
|
87
|
+
- `examples/oss-fork/README.md`:过程轨 vs 产品 PR 纪律(v0.1.2)
|
|
88
|
+
|
|
89
|
+
### Notes
|
|
90
|
+
|
|
91
|
+
- **不含**:D3 `CLAUDE.md` / `AGENTS.md.fragment`(规划 v0.2)· Starter 仍 10/22/30
|
|
92
|
+
- **试点证据**:MoonshotAI/kimi-code fork · C1 PR #622 · 工作区 `ISSUE_SCAN_kimi_code_open_c2_v1_zh.md`
|
|
93
|
+
|
|
94
|
+
## [0.1.1] - 2026-06-09
|
|
95
|
+
|
|
96
|
+
### Added
|
|
97
|
+
|
|
98
|
+
- **人工闸 P0**(ios_buy 事故跟进):`HG-AUDIT-R1` 写入 Cursor 规则 · `30` 拒开工 STOP 模板 · `22` pending 时不附 30 Prompt
|
|
99
|
+
- **wizard 脚本**:`install.sh` · `harness-sync.sh`(plan/apply)· `gate-check.sh` · `profiles/*.json`
|
|
100
|
+
|
|
101
|
+
### Changed
|
|
102
|
+
|
|
103
|
+
- `harness/prompts/30-execute-code.md`:输入改为「22 通过 **且** AUDIT approved」;强制首输出闸扫描
|
|
104
|
+
- `ide/adapters/cursor-harness-starter.mdc.example`:并列 `HG-AUDIT-R1` 与 `HG-GRAPH-MODULES`
|
|
105
|
+
|
|
106
|
+
## [0.1.0] - 2026-06-09
|
|
107
|
+
|
|
108
|
+
**freeze_id**: `freeze_cyning_harness_v0_1`
|
|
109
|
+
|
|
110
|
+
### Added
|
|
111
|
+
|
|
112
|
+
- **T1 图谱轨** `graph/templates/`:`00_main` 双轨、`01_struct` 模块表、`99_mermaid_protocol`、`10_flow_MAIN` 示例
|
|
113
|
+
- **T2 规范轨** `standards/`:L1/L2 TEMPLATE、`SOURCES`、`POINTER_workspace_truth`(不复制 Ink 全文)
|
|
114
|
+
- **T3 过程轨** `harness/templates/` · `prompts/` · `invokes/TEMPLATE_invoke`;`TASK_graph_bootstrap` 含 **HG-GRAPH-MODULES**
|
|
115
|
+
- **T4 Verify 轨** `ci/samples/`:`quality.yml.example`、`pytest.yml.example`
|
|
116
|
+
- **T5 IDE + wizard**:`cursor-harness-starter.mdc.example` · `wizard/ONBOARDING_wizard_v1_zh.md`
|
|
117
|
+
- **T6 golden**:`POINTER_gold_epic_serial.md` 链 M1 Epic(只读 POINTER)
|
|
118
|
+
|
|
119
|
+
### Changed
|
|
120
|
+
|
|
121
|
+
- 各轨 README 清单更新为 v0.1 已交付
|
|
122
|
+
|
|
123
|
+
## [0.0.1] - 2026-06-09
|
|
124
|
+
|
|
125
|
+
### Added
|
|
126
|
+
|
|
127
|
+
- 初始架构与 README(无业务代码、无内置 LLM)
|
package/README.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# cyning-harness
|
|
2
|
+
|
|
3
|
+
可 clone、可嵌入业务仓库的 **Harness 纪律包**(无业务代码,无内置 LLM)。
|
|
4
|
+
|
|
5
|
+
> **设计哲学**:用 **本体论** 定义「Track / Hat / Gate / Artifact」与 **ICVO 四支柱**(Inform · Constrain · Verify · Orchestrate),把 AI Coding 的上下文、规则与验收变成 **可同步、可审计、不覆盖用户 task** 的仓库真值。
|
|
6
|
+
> **公众连载** 使用 **ICV 三支柱**(SDD 层);**Orchestrate** 是对卷三过程编排的 **产品化命名**,见 [`docs/methodology/product/README.md`](docs/methodology/product/README.md) · [`docs/methodology/AUDIT_doc_consistency_2026-06-15_zh.md`](docs/methodology/AUDIT_doc_consistency_2026-06-15_zh.md)。
|
|
7
|
+
> **方法论总指引**:[`docs/methodology/README.md`](docs/methodology/README.md) · 本体 [`docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md`](docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 是什么
|
|
12
|
+
|
|
13
|
+
**cyning-harness** 提供在任意软件项目中落地 AI 辅助研发纪律所需的 **模板、读序与过程约定**:
|
|
14
|
+
|
|
15
|
+
| 轨 | 目录 | 作用 |
|
|
16
|
+
|----|------|------|
|
|
17
|
+
| 图谱 | `graph/` | 架构地图模板(`docs/_tech_graph` 嵌入用) |
|
|
18
|
+
| Wiki | `coding_wiki/` | LLM 读序(stable / context / volatile) |
|
|
19
|
+
| 规范 | `standards/` | L1/L2 编码规范模板 |
|
|
20
|
+
| 过程 | `harness/` | task、prompts、invoke 约定 |
|
|
21
|
+
| 验证 | `ci/` | CI 门禁样例 |
|
|
22
|
+
| IDE | `ide/` | Cursor / Claude Code / AGENTS 入口片段 |
|
|
23
|
+
| 向导 | `wizard/` | 安装与勾选式初始化 |
|
|
24
|
+
|
|
25
|
+
**不提供:** 业务实现代码、LLM API、Agent 编排 SDK(与 LangChain 等互补 · 见本体 §7.5)。
|
|
26
|
+
|
|
27
|
+
**边界(S2):** sync **不覆盖** `docs/tasks/`、`reviews/`、`invokes/by-task/` — 纪律层与业务数据分离。
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Quick Start(npx · v0.3+)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 新业务仓根
|
|
35
|
+
npx @cyning/harness@latest init --preset harness-only --ide cursor,agents
|
|
36
|
+
|
|
37
|
+
# 日常升级
|
|
38
|
+
npx @cyning/harness upgrade
|
|
39
|
+
npx @cyning/harness check
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**维护者 / 离线(clone 路径):**
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
git clone git@github.com:Cyning12/cyning-harness.git && cd cyning-harness
|
|
46
|
+
/path/to/cyning-harness/wizard/install.sh --target /path/to/your-repo --preset harness-only --ide cursor,agents
|
|
47
|
+
/path/to/cyning-harness/wizard/harness-sync.sh apply --target /path/to/your-repo
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**P0 金样(10→22→30):** [`examples/demo_checkout/README.md`](examples/demo_checkout/README.md) · [`docs/methodology/execution/P0_V0.2_GAP.md`](docs/methodology/execution/P0_V0.2_GAP.md)
|
|
51
|
+
|
|
52
|
+
**Kimi Code fork:** `--preset oss-fork-meta` 或 [`wizard/bootstrap-oss-fork-meta.sh`](wizard/bootstrap-oss-fork-meta.sh) · 过程轨不进上游 PR。
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## 典型工作流
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
install / adopt → harness-sync plan/apply → @ task + prompts(10→22→30)
|
|
60
|
+
↑ 产品包 git pull 后 upgrade.sh
|
|
61
|
+
30 前:gate-check.sh · HG-AUDIT-R1 = approved
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
1. 阅读 [`docs/ONBOARDING.md`](docs/ONBOARDING.md)
|
|
65
|
+
2. [`wizard/install.sh`](wizard/install.sh) 或 [`adopt-existing.sh`](wizard/adopt-existing.sh)
|
|
66
|
+
3. 产品包更新:[`wizard/upgrade.sh`](wizard/upgrade.sh) 或 [`harness-sync.sh`](wizard/harness-sync.sh) `apply`
|
|
67
|
+
4. IDE `@` task + `docs/harness/prompts/`;30 前 [`gate-check.sh`](wizard/gate-check.sh)
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 与通用 Agent 框架的差异(摘要)
|
|
72
|
+
|
|
73
|
+
| 维度 | cyning-harness | LangChain / Semantic Kernel 等 |
|
|
74
|
+
| --- | --- | --- |
|
|
75
|
+
| 定位 | **纪律包** · SDD 过程审计 | Agent 编排 / 工具链 SDK |
|
|
76
|
+
| 过程落盘 | AuditReview · InvokeSnapshot · HumanGate | 通常无一等过程制品 |
|
|
77
|
+
| 同步边界 | S2 · 不覆盖用户 Task | 不适用 |
|
|
78
|
+
|
|
79
|
+
完整对比:[`DESIGN_ONTOLOGY` §7.5](docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md)。
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 仓库结构
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
cyning-harness/
|
|
87
|
+
├── README.md
|
|
88
|
+
├── docs/
|
|
89
|
+
│ ├── README.md # 文档索引
|
|
90
|
+
│ ├── methodology/ # ★ 方法论总指引
|
|
91
|
+
│ │ ├── README.md
|
|
92
|
+
│ │ ├── DOCUMENT_MAP_v1_zh.md
|
|
93
|
+
│ │ ├── product/ # 产品设计本体
|
|
94
|
+
│ │ ├── graph/ # HGM
|
|
95
|
+
│ │ ├── execution/ # P0 差距
|
|
96
|
+
│ │ └── pointers/ # 工作区 / 治理 POINTER
|
|
97
|
+
│ ├── ARCHITECTURE.md
|
|
98
|
+
│ └── ONBOARDING.md
|
|
99
|
+
├── examples/demo_checkout/
|
|
100
|
+
├── wizard/ · harness/ · graph/ …
|
|
101
|
+
└── golden/
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 版本与状态
|
|
107
|
+
|
|
108
|
+
| 项 | 值 |
|
|
109
|
+
|----|-----|
|
|
110
|
+
| 当前 | **v0.2.1** — P0 金样 · 方法论归集 · 本体 v1.2 |
|
|
111
|
+
| 下一档 | **v0.3** — npx CLI · manifest · S5 git-clean |
|
|
112
|
+
| 许可 | 私有;战略见 [`methodology/pointers/STRATEGY_ONTOLOGY_v1_zh.md`](docs/methodology/pointers/STRATEGY_ONTOLOGY_v1_zh.md) |
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 文档索引
|
|
117
|
+
|
|
118
|
+
| 优先级 | 文档 |
|
|
119
|
+
| --- | --- |
|
|
120
|
+
| **总指引** | [`methodology/README.md`](docs/methodology/README.md) · [关系图](docs/methodology/DOCUMENT_MAP_v1_zh.md) · [路线 ROADMAP](docs/methodology/ROADMAP_v1_zh.md) |
|
|
121
|
+
| **本体** | [DESIGN_ONTOLOGY v1.2](docs/methodology/product/DESIGN_ONTOLOGY_v1_zh.md) |
|
|
122
|
+
| **落地** | [P0 差距](docs/methodology/execution/P0_V0.2_GAP.md) · [金样验收](examples/demo_checkout/ACCEPTANCE.md) |
|
|
123
|
+
| **远期** | [HGM 草案](docs/methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md) |
|
|
124
|
+
| **接入** | [ONBOARDING](docs/ONBOARDING.md) · [ARCHITECTURE](docs/ARCHITECTURE.md) |
|
|
125
|
+
|
|
126
|
+
根目录 `docs/DESIGN_ONTOLOGY_v1_zh.md` 等为 **POINTER** · 兼容旧链接。
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 变更与 Agent
|
|
131
|
+
|
|
132
|
+
- [CHANGELOG.md](CHANGELOG.md)
|
|
133
|
+
- [AGENTS.md](AGENTS.md)
|
package/bin/harness.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# ci/samples · Verify 轨
|
|
2
|
+
|
|
3
|
+
复制并改写为用户仓 **`.github/workflows/`** workflow。
|
|
4
|
+
|
|
5
|
+
## v0.1 已交付(T4 · M2)
|
|
6
|
+
|
|
7
|
+
| 样例 | 状态 | 适用栈 | 三门禁 |
|
|
8
|
+
|------|------|--------|--------|
|
|
9
|
+
| [`quality.yml.example`](./quality.yml.example) | ✅ | Node/TS · Next 等 | install → lint → test → build |
|
|
10
|
+
| [`pytest.yml.example`](./pytest.yml.example) | ✅ | Python · FastAPI 等 | install → pytest |
|
|
11
|
+
|
|
12
|
+
## 嵌入步骤
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
mkdir -p .github/workflows
|
|
16
|
+
cp cyning-harness/ci/samples/quality.yml.example .github/workflows/quality.yml
|
|
17
|
+
# 或
|
|
18
|
+
cp cyning-harness/ci/samples/pytest.yml.example .github/workflows/pytest.yml
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
按 `package.json` / `requirements.txt` / Node 版本 / env 变量 **裁剪注释块**。
|
|
22
|
+
|
|
23
|
+
## 金样 POINTER(Ink · 只读对照)
|
|
24
|
+
|
|
25
|
+
| 栈 | 路径(工作区) |
|
|
26
|
+
|----|----------------|
|
|
27
|
+
| 前端 | `ai-ink-brain/.github/workflows/quality.yml` |
|
|
28
|
+
| 后端 | `ai-ink-brain-api-python/.github/workflows/pytest.yml` |
|
|
29
|
+
|
|
30
|
+
Ink workflow 含图谱 export、跨仓 checkout 等 **业务专有** 步骤;Starter 样例为 **最小三门禁**,按需从金样增量合并。
|
|
31
|
+
|
|
32
|
+
## 与 Harness 关系
|
|
33
|
+
|
|
34
|
+
- task `test_strategy: required` → 本地/CI 须与 workflow 命令一致
|
|
35
|
+
- L2 模板 CI 对齐节:[`standards/TEMPLATE_CODING_BASELINE_L2_*.md`](../standards/)
|
|
36
|
+
- ONBOARDING §5:五轨检查清单含 CI 样例已适配
|
|
37
|
+
|
|
38
|
+
## 修订记录
|
|
39
|
+
|
|
40
|
+
| 日期 | 说明 |
|
|
41
|
+
|------|------|
|
|
42
|
+
| 2026-06-09 | T4 M2 首版样例 |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Harness Verify · 后端 pytest 样例(Python · FastAPI 等)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/pytest.yml 并按仓裁剪。
|
|
4
|
+
# 金样 POINTER(Ink):Cyning12/ai-ink-brain-api-python · .github/workflows/pytest.yml
|
|
5
|
+
# 本地路径(工作区对照):ai-ink-brain-api-python/.github/workflows/pytest.yml
|
|
6
|
+
#
|
|
7
|
+
# 合并前必绿:pytest tests -m "not intent_eval and not intent_benchmark"(按仓调整 marker)
|
|
8
|
+
|
|
9
|
+
name: pytest
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request:
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- main
|
|
16
|
+
# - production # 按需启用
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
pytest:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 25
|
|
22
|
+
env:
|
|
23
|
+
# CI dummy 环境变量 — 替换为你的 .env.example 文档化变量名
|
|
24
|
+
# 禁止在 workflow 中写入真实密钥
|
|
25
|
+
EXAMPLE_API_KEY: "dummy-ci-key"
|
|
26
|
+
DATABASE_URL: "postgresql://u:p@localhost:5432/test"
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout
|
|
30
|
+
uses: actions/checkout@v5
|
|
31
|
+
|
|
32
|
+
- name: Setup Python
|
|
33
|
+
uses: actions/setup-python@v6
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.11" # 改为你的版本
|
|
36
|
+
cache: "pip"
|
|
37
|
+
cache-dependency-path: requirements.txt
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: pip install -r requirements.txt
|
|
41
|
+
|
|
42
|
+
- name: Run pytest
|
|
43
|
+
run: pytest tests -q --tb=short
|
|
44
|
+
# 有 slow/intent marker 时示例:
|
|
45
|
+
# run: pytest tests -m "not intent_eval and not intent_benchmark" -q --tb=short
|
|
46
|
+
|
|
47
|
+
# --- 可选:Ruff / mypy(L2 落地后启用)---
|
|
48
|
+
# - name: Ruff
|
|
49
|
+
# run: ruff check .
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Harness Verify · 前端 quality 样例(Node/TS · Next 等)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/quality.yml 并按仓裁剪。
|
|
4
|
+
# 金样 POINTER(Ink):Cyning12/ai-ink-brain · .github/workflows/quality.yml
|
|
5
|
+
# 本地路径(工作区对照):ai-ink-brain/.github/workflows/quality.yml
|
|
6
|
+
#
|
|
7
|
+
# 合并前三门禁:pnpm install --frozen-lockfile → pnpm lint → pnpm test → pnpm build
|
|
8
|
+
# npm/yarn 用户:替换 install/lint/test/build 命令与 cache 配置。
|
|
9
|
+
|
|
10
|
+
name: quality
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
pull_request:
|
|
14
|
+
push:
|
|
15
|
+
branches:
|
|
16
|
+
- main
|
|
17
|
+
# - production # 按需启用
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
lint-and-build:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
timeout-minutes: 20
|
|
23
|
+
steps:
|
|
24
|
+
- name: Checkout
|
|
25
|
+
uses: actions/checkout@v5
|
|
26
|
+
|
|
27
|
+
# 版本以 package.json 的 packageManager 为真源(pnpm)
|
|
28
|
+
- name: Setup pnpm
|
|
29
|
+
uses: pnpm/action-setup@v5
|
|
30
|
+
|
|
31
|
+
- name: Setup Node
|
|
32
|
+
uses: actions/setup-node@v5
|
|
33
|
+
with:
|
|
34
|
+
node-version: "24" # 改为你的 LTS
|
|
35
|
+
cache: "pnpm"
|
|
36
|
+
cache-dependency-path: pnpm-lock.yaml
|
|
37
|
+
|
|
38
|
+
- name: Install
|
|
39
|
+
run: pnpm install --frozen-lockfile
|
|
40
|
+
|
|
41
|
+
# --- 可选:图谱 / 契约检查(有 docs/_tech_graph/ 时启用)---
|
|
42
|
+
# - name: Setup Python
|
|
43
|
+
# uses: actions/setup-python@v5
|
|
44
|
+
# with:
|
|
45
|
+
# python-version: "3.11"
|
|
46
|
+
# - name: Tech graph check
|
|
47
|
+
# run: python3 tools/tech_graph_check.py --input docs/_tech_graph
|
|
48
|
+
|
|
49
|
+
- name: Lint
|
|
50
|
+
run: pnpm lint
|
|
51
|
+
|
|
52
|
+
- name: Test
|
|
53
|
+
run: pnpm test
|
|
54
|
+
|
|
55
|
+
- name: Build
|
|
56
|
+
run: pnpm build
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# coding_wiki · LLM 读序
|
|
2
|
+
|
|
3
|
+
复制本目录文件到用户仓 **`docs/coding_wiki/`**。
|
|
4
|
+
|
|
5
|
+
| 文件 | 层 | 说明 |
|
|
6
|
+
|------|-----|------|
|
|
7
|
+
| [`stable.md`](stable.md) | stable | 短摘要 · 规范十二条 · IDE 规则指针 |
|
|
8
|
+
| [`context.md`](context.md) | context | L2、PROJECT_CONFIG 类指针 |
|
|
9
|
+
| [`volatile.md`](volatile.md) | volatile | 本 task 必读(由 task 引用) |
|
|
10
|
+
|
|
11
|
+
invoke §3 应 **pointer** 到本目录,勿重复贴长文。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# coding_wiki · stable
|
|
2
|
+
|
|
3
|
+
> **层**:stable · 每次会话可注入的短摘要(≤15 行正文建议)
|
|
4
|
+
|
|
5
|
+
## 编码底线(L1 摘要占位)
|
|
6
|
+
|
|
7
|
+
1. 最小改动 · 不扩 scope
|
|
8
|
+
2. 类型严格 · 禁 `any`(TS)
|
|
9
|
+
3. 错误结构化返回
|
|
10
|
+
4. 测试策略见 task `test_strategy`
|
|
11
|
+
5. 图谱优先于纯文本臆造
|
|
12
|
+
|
|
13
|
+
完整 L1:用户仓 `docs/standards/CODING_BASELINE_L1_*.md`(由 `standards/` 模板生成)。
|
|
14
|
+
|
|
15
|
+
## IDE 入口
|
|
16
|
+
|
|
17
|
+
- Cursor:`.cursor/rules/*`
|
|
18
|
+
- Claude Code:`CLAUDE.md`
|
|
19
|
+
- 通用:`AGENTS.md`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# coding_wiki · volatile
|
|
2
|
+
|
|
3
|
+
> **层**:volatile · **本 task 专属**;由 task「给执行帽必读」或 invoke §3 引用
|
|
4
|
+
|
|
5
|
+
## 用法
|
|
6
|
+
|
|
7
|
+
1. 每个 active task 在正文或 invoke 中 pointer 到本文件或 task 内小节
|
|
8
|
+
2. Epic 子 task 可共用 Epic 级 volatile 片段
|
|
9
|
+
3. 关账后归档或清空,避免 stale 上下文
|
|
10
|
+
|
|
11
|
+
## 本 task(占位)
|
|
12
|
+
|
|
13
|
+
- task_slug:`<填写>`
|
|
14
|
+
- 必读图谱:`docs/_tech_graph/<flow>.md`
|
|
15
|
+
- `code_quality_bar`:`<strict | recommended | not_applicable>`
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 架构说明
|
|
2
|
+
|
|
3
|
+
## 1. 产品定位
|
|
4
|
+
|
|
5
|
+
**cyning-harness** 是可分发的 **Harness 嵌入包**:
|
|
6
|
+
|
|
7
|
+
- **输入**:开发者 clone 本仓,经 `wizard/` 选型
|
|
8
|
+
- **输出**:在用户业务仓中生成或复制 `docs/_tech_graph`、`docs/coding_wiki`、`docs/standards`、`docs/tasks`、`docs/harness` 等约定目录
|
|
9
|
+
- **执行壳**:用户自备 IDE 与 LLM(Cursor、Claude Code 等);本仓 **不调用** LLM API
|
|
10
|
+
|
|
11
|
+
## 2. 五轨模型
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
┌─────────────┐
|
|
15
|
+
│ graph/ │ L0 架构地图模板 · 模块表 · flow 增量
|
|
16
|
+
├─────────────┤
|
|
17
|
+
│ coding_wiki/│ L2 读序 · invoke 互链 · 抑制上下文膨胀
|
|
18
|
+
├─────────────┤
|
|
19
|
+
│ standards/ │ L1/L2 规范模板 · 按语言栈
|
|
20
|
+
├─────────────┤
|
|
21
|
+
│ harness/ │ task · prompts · invoke 过程轨
|
|
22
|
+
├─────────────┤
|
|
23
|
+
│ ci/ │ lint / test / build 样例
|
|
24
|
+
└─────────────┘
|
|
25
|
+
↑
|
|
26
|
+
ide/ 适配层(rules · CLAUDE.md · AGENTS 指针)
|
|
27
|
+
wizard/ 安装向导(勾选生成)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 3. 与用户业务仓的关系
|
|
31
|
+
|
|
32
|
+
| 本仓路径 | 嵌入目标(用户仓,示例) |
|
|
33
|
+
|----------|-------------------------|
|
|
34
|
+
| `graph/templates/*` | `docs/_tech_graph/` |
|
|
35
|
+
| `coding_wiki/templates/*` | `docs/coding_wiki/` |
|
|
36
|
+
| `standards/*` | `docs/standards/` |
|
|
37
|
+
| `harness/templates/*` | `docs/tasks/`、`docs/harness/` |
|
|
38
|
+
| `ci/samples/*` | `.github/workflows/` 等 |
|
|
39
|
+
| `ide/adapters/*` | `.cursor/rules/`、`CLAUDE.md`、`AGENTS.md` |
|
|
40
|
+
|
|
41
|
+
**原则:** 单源模板在本仓;用户仓为 **运行实例**,自行维护增量。
|
|
42
|
+
|
|
43
|
+
## 4. 存量项目闸门(D4-a)
|
|
44
|
+
|
|
45
|
+
改码类 task(30 帽)开工前,用户仓须:
|
|
46
|
+
|
|
47
|
+
1. `docs/_tech_graph/01_struct.md` **模块边界表** 已填
|
|
48
|
+
2. 人工闸 `HG-GRAPH-MODULES` = **approved**
|
|
49
|
+
|
|
50
|
+
**不要求** 首次 onboarding 画完全部 flowchart;flow 随 task **增量** 维护。
|
|
51
|
+
|
|
52
|
+
## 5. 版本演进(同仓扩展)
|
|
53
|
+
|
|
54
|
+
| 版本线 | 能力 |
|
|
55
|
+
|--------|------|
|
|
56
|
+
| **v0.1** | 五轨模板 + wizard + 文档可跟做 |
|
|
57
|
+
| **v0.2+** | `cli/`:`harness ctx` 读序组装(只读) |
|
|
58
|
+
| **v0.3+** | `worker/`:可选执行 Worker(自配 LLM) |
|
|
59
|
+
|
|
60
|
+
CLI/Worker 与模板 **同一仓库** 演进,避免多仓割裂。
|
|
61
|
+
|
|
62
|
+
## 6. 目录真值
|
|
63
|
+
|
|
64
|
+
以仓库根目录实际树为准;各子目录 `README.md` 说明该轨职责与待补模板清单。
|
|
65
|
+
|
|
66
|
+
## 7. 产品设计本体
|
|
67
|
+
|
|
68
|
+
Track / Hat / Sync / SDD 公理与扩展规则见 [`methodology/product/DESIGN_ONTOLOGY_v1_zh.md`](./methodology/product/DESIGN_ONTOLOGY_v1_zh.md)(**v1.2**)。
|
|
69
|
+
**方法论总指引**:[`methodology/README.md`](./methodology/README.md) · 关系图 [`methodology/DOCUMENT_MAP_v1_zh.md`](./methodology/DOCUMENT_MAP_v1_zh.md)
|
|
70
|
+
远期 **过程实例图 + 事件历史** 见 [`methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md`](./methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md)(HGM · v0.5+ 提案)。
|
|
71
|
+
与 **战略本体**(工作区 `docs/harness/guides/STRATEGY_ONTOLOGY_*`)分层:本文件描述 **产品如何实现**,战略文档描述 **对外演进**。
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# POINTER · 产品设计本体
|
|
2
|
+
|
|
3
|
+
| 项 | 内容 |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **真值** | [`methodology/product/DESIGN_ONTOLOGY_v1_zh.md`](./methodology/product/DESIGN_ONTOLOGY_v1_zh.md) |
|
|
6
|
+
| **版本** | v1.2 · draft |
|
|
7
|
+
| **总指引** | [`methodology/README.md`](./methodology/README.md) |
|
|
8
|
+
|
|
9
|
+
**禁止**在本文件复制全文。
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# POINTER · HGM 设计草案
|
|
2
|
+
|
|
3
|
+
| 项 | 内容 |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **真值** | [`methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md`](./methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md) |
|
|
6
|
+
| **对话归档** | [`methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md`](./methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md) |
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# POINTER · HGM 对话归档
|
|
2
|
+
|
|
3
|
+
| 项 | 内容 |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| **真值** | [`methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md`](./methodology/graph/HARNESS_GRAPH_MODEL_dialogue_archive_v1_zh.md) |
|
|
6
|
+
| **设计稿** | [`methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md`](./methodology/graph/HARNESS_GRAPH_MODEL_design_v0_zh.md) |
|
|
7
|
+
|
|
8
|
+
**性质**:参考 · 非真值
|