truthmark 1.3.0 → 1.5.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/README.zh.md CHANGED
@@ -1,294 +1,642 @@
1
1
  # Truthmark
2
2
 
3
- **Truthmark AI 软件开发安装仓库事实工作流。**
3
+ **你的代理会写代码。Truthmark 让它们的上下文在 Git 中可审查。**
4
4
 
5
5
  [English](README.md) | [Deutsch](README.de.md) | 中文 | [Español](README.es.md) | [Русский](README.ru.md)
6
6
 
7
- <img src="docs/assets/truthmark-banner.png" alt="Truthmark 横幅" width="100%" />
7
+ ![Truthmark 横幅](docs/assets/truthmark-banner.png)
8
8
 
9
- AI 编码代理已经能很快写代码了。真正昂贵的是让仓库事实和实际变更保持一致。
9
+ AI 编码代理改变仓库的速度,可能比人类对齐上下文的速度更快。
10
10
 
11
- Truthmark 在这个流程里加入了一个收尾阶段的工作流保护。正常路径很简单:
11
+ Truthmark 修复代码写完后通常会坏掉的那一部分:仓库事实。
12
12
 
13
- - 代理修改功能代码
14
- - 运行相关测试
15
- - 代理结束前,已安装的 Truth Sync 工作流更新已映射的事实文档
16
- - 如果产生了事实文档 diff,就审查它
17
-
18
- 大多数工具要求团队养成一种习惯。Truthmark 把这个习惯变成仓库工作流基础设施。
19
-
20
- Truthmark 把 AI 工作流变成仓库基础设施,而不是个人工具配置。它把一个 Git 原生、按分支生效的事实层安装到仓库里,为代理提供明确的路由和有边界的工作流载体,并让这些事实继续以 Git diff 的形式可审查,而不是散落在提示历史、陈旧文档或私有工具状态里。
21
-
22
- 这之所以重要,是因为工作流跟着分支一起存在。仓库一旦初始化,规则、路由和已安装的工作流载体就会随仓库一起移动,协作和交接也就不再过度依赖某个人的本地配置。
23
-
24
- 对于已经知道代理能生成代码的团队,Truthmark 解决的是下一个问题:当 AI 辅助开发规模化时,怎样让仓库本身继续保持清晰、可审查、可治理。
25
-
26
- ## 可视化概览
27
-
28
- <table>
29
- <tr>
30
- <td align="center" width="50%">
31
- <img src="docs/assets/truthmark-features.png" alt="Truthmark 功能" width="100%" />
32
- <br><strong>功能</strong><br>
33
- Truthmark 安装了什么,以及工作流载体如何拆分。
34
- </td>
35
- <td align="center" width="50%">
36
- <img src="docs/assets/truthmark-position.png" alt="Truthmark 定位" width="100%" />
37
- <br><strong>定位</strong><br>
38
- Truthmark 相对提示词、记忆和规格工作流所处的位置。
39
- </td>
40
- </tr>
41
- <tr>
42
- <td align="center" colspan="2">
43
- <img src="docs/assets/truthmark-syncflow.png" alt="Truthmark 同步流程" width="100%" />
44
- <br><strong>同步流程</strong><br>
45
- Truth Sync 如何在交接前收束普通代码变更。
46
- </td>
47
- </tr>
48
- </table>
13
+ 它安装一个 Git 原生、按分支生效的工作流层,帮助 AI 编码代理更新正确的文档、尊重所有权边界,并把人类可以审查的普通 diff 留下来。
49
14
 
50
- ## 为什么团队会采用它
15
+ 没有托管服务。
51
16
 
52
- Truthmark 不是为了让代理显得更聪明,而是为了让 AI 辅助的仓库变更更值得信任。
17
+ 没有数据库。
53
18
 
54
- - 代码变更后的已安装 Truth Sync 工作流,把文档维护从团队习惯变成工作流保护。
55
- - 按分支生效的事实会跟着代码一起走,所以审查者可以在普通 Git diff 里检查当前事实。
56
- - 仓库原生的工作流载体让推广更轻、交接更稳,不再只依赖个人本地配置。
57
- - `docs/truthmark/areas.md` 和委托的子路由文件里的显式路由,为代理提供更清晰的所有权边界和更安全的写入路径。
58
- - 本地优先的运行方式避免了守护进程、数据库、远程服务或 MCP 依赖。
59
- - 路由模型与语言无关,并为常见的 JavaScript、TypeScript、Go、Python、C# 和 Java 代码表面提供覆盖率诊断。
19
+ 没有隐藏记忆层。
60
20
 
61
- 对技术负责人来说,它的价值是没有额外基础设施负担的治理:测试、代码审查和所有权仍然承担真正的工作;Truthmark 让代理上下文变得持久、可检查,并且限定在当前分支内。
21
+ 没有需要运行的额外服务器。
62
22
 
63
- ## Truthmark 适合放在哪里
23
+ 只有随分支移动的仓库事实。
64
24
 
65
- Truthmark 不是一套通用 AI 生产力套件。它占据的是工具栈里的一个特定层级:随实现保持一致、按分支生效、可审查的仓库事实。
25
+ ## 问题
66
26
 
67
- | 如果你需要 | 最合适的选择 |
68
- | -------------------------------------------- | ------------------------------ |
69
- | 单次编码会话获得更好结果 | 更好的提示词和更清晰的任务边界 |
70
- | 一个代理或操作者跨会话延续便利性 | 记忆类工具 |
71
- | 为新功能做规格优先的规划 | Spec Kit 等规格工具 |
72
- | 随代码一起流转、可审查、按分支生效的仓库事实 | Truthmark |
27
+ AI 编码代理很擅长产出代码。这会制造一种新的失效模式。
73
28
 
74
- 重点不是提示词、记忆或规格没有用。重点是,它们单独都不能把仓库事实变成一个已提交、可检查,并且能经受交接、审查和分支分叉的资产。
29
+ 实现改变了,但仓库叙事开始漂移:
75
30
 
76
- ## 目录
31
+ - 行为存在于聊天历史里
32
+ - 架构文档落后
33
+ - 产品决策在交接后消失
34
+ - 审查者看到代码 diff,却看不到相关的事实 diff
35
+ - 分支悄悄发展出不同版本的“什么是真的”
36
+ - 每个代理会话都必须从头重新发现上下文
77
37
 
78
- - [为什么团队会采用它](#为什么团队会采用它)
79
- - [Truthmark 解决什么问题](#truthmark-解决什么问题)
80
- - [Truthmark 适合放在哪里](#truthmark-适合放在哪里)
81
- - [快速开始](#快速开始)
82
- - [它如何运行](#它如何运行)
83
- - [它会安装什么](#它会安装什么)
84
- - [命令](#命令)
85
- - [它为什么存在](#它为什么存在)
86
- - [项目状态](#项目状态)
87
- - [文档](#文档)
88
- - [非目标](#非目标)
89
- - [许可证](#许可证)
38
+ Truthmark 把这种脆弱上下文变成已提交的仓库基础设施。
90
39
 
91
- ## Truthmark 解决什么问题
40
+ 它不是依赖每个人和每个代理都记住正确的文档习惯,而是把这个习惯安装进仓库。
92
41
 
93
- Truthmark 把仓库事实变成代理可见的显式工作流载体:
42
+ ## 承诺
94
43
 
95
- - `.truthmark/config.yml` 定义已提交的层级契约。
96
- - `docs/truthmark/areas.md` 和委托的子路由文件把代码区域映射到负责它们的文档。
97
- - Truth Document 在无需修改代码时,为已实现行为生成或修复规范事实文档。
98
- - Truth Sync 在功能性变更发生时,让已映射的事实文档保持同步。
99
- - Truth Realize 为文档优先的变更提供有边界的代码更新路径。
100
- - `truthmark check` 验证最终形成的事实产物。
101
- - 整个模型保持本地优先和 Git 原生。
44
+ 当代理修改功能代码时,工作不应该只以代码 diff 结束。
102
45
 
103
- 核心承诺很简单:代理上下文会成为已提交的仓库状态,而不是私有会话产物。
46
+ Truthmark 的正常路径是:
104
47
 
105
- ## 快速开始
48
+ ```text
49
+ 代理修改功能代码
50
+ 运行相关测试
51
+ Truth Sync 检查已映射的事实文档
52
+ 需要时更新事实文档
53
+ 人类审查代码 diff + 事实 diff
54
+ 提交或交接
55
+ ```
56
+
57
+ 核心价值是:**AI 工作更容易被信任,因为仓库仍然清晰可读。**
106
58
 
107
- 在你想初始化的仓库中安装 Truthmark:
59
+ ## 两个表面,一个事实系统
60
+
61
+ Truthmark 不只是一个 CLI。
62
+
63
+ 它有两个不同表面,这个区别很重要。
64
+
65
+ ### 1. 面向人的 CLI
66
+
67
+ CLI 面向维护者、审查者和自动化。
68
+
69
+ 用它来配置仓库、安装或刷新工作流文件、验证事实产物,并生成可选的审查上下文。
108
70
 
109
71
  ```bash
110
- cd /path/to/your-repo
111
- npm install -g truthmark
112
72
  truthmark config
113
73
  truthmark init
114
74
  truthmark check
115
75
  ```
116
76
 
117
- 如果你想从源码检出中试用尚未发布的变更:
77
+ CLI 会准备并验证仓库环境。
78
+
79
+ 它不是 AI 工作流运行时。
80
+
81
+ ### 2. 面向 AI 的工作流表面
82
+
83
+ 面向 AI 的表面是给编码代理使用的。
84
+
85
+ Truthmark 会安装宿主原生的技能、提示、命令、受管说明块和受支持的子代理表面,让 AI 代理能在正常编码工具中遵循仓库专属的事实工作流。
86
+
87
+ 示例:
88
+
89
+ ```text
90
+ /truthmark-sync
91
+ /truthmark-document
92
+ /truthmark-structure
93
+ /truthmark-realize
94
+ /truthmark-preview
95
+ /truthmark-check
96
+ ```
97
+
98
+ 它们看起来像命令,是因为代理宿主通过 slash commands、prompts、skills 或 project commands 暴露工作流。
99
+
100
+ 它们不是 shell 命令。
101
+
102
+ 它们是面向 AI 的工作流入口。
103
+
104
+ 这种拆分就是产品:
105
+
106
+ ```text
107
+ 人类拥有仓库契约
108
+ Truthmark 把契约安装进 repo
109
+ 代理在契约内工作
110
+ 事实更新以 Git diff 出现
111
+ 人类审查结果
112
+ ```
113
+
114
+ ## 快速开始
115
+
116
+ ### 要求
117
+
118
+ - Node.js `>=20`
119
+ - npm
120
+ - Git 仓库
121
+
122
+ ### 安装 Truthmark
123
+
124
+ 在你想初始化的仓库中运行:
118
125
 
119
126
  ```bash
120
- cd /path/to/truthmark
121
- npm install
122
- npm run build
123
127
  cd /path/to/your-repo
124
- node /path/to/truthmark/dist/main.js config
125
- node /path/to/truthmark/dist/main.js init
126
- node /path/to/truthmark/dist/main.js check
128
+ npm install -g truthmark
127
129
  ```
128
130
 
129
- 在运行 `init` 之前先检查 `.truthmark/config.yml`;它是已提交的层级契约。`init` 之后,检查生成的工作流载体和路由文件,确保路由指向的文档确实是拥有你代码的文档:
131
+ ### 创建仓库事实契约
132
+
133
+ ```bash
134
+ truthmark config
135
+ ```
136
+
137
+ 这会创建:
130
138
 
131
139
  ```text
132
140
  .truthmark/config.yml
133
- docs/truthmark/areas.md
134
- docs/truthmark/areas/repository.md
135
- docs/templates/behavior-doc.md
136
- docs/truth/README.md
137
- docs/truth/repository/README.md
138
- docs/truth/repository/overview.md
139
- AGENTS.md
140
- CLAUDE.md
141
- GEMINI.md
142
141
  ```
143
142
 
144
- 支持的平台是 `codex`、`opencode`、`claude-code`、`github-copilot` 和 `gemini-cli`。默认配置包含全部平台;请先从 `.truthmark/config.yml` 中移除不使用的平台,再重新运行 `truthmark init`。
145
- 默认脚手架把 truth `README.md` 作为索引,并把当前行为事实放在有边界的叶子文档中,例如 `docs/truth/repository/overview.md`。
143
+ 继续之前先审查这个文件。它定义仓库中已提交的层级契约。
144
+
145
+ ### 安装工作流表面
146
+
147
+ ```bash
148
+ truthmark init
149
+ ```
150
+
151
+ 这会安装或刷新:
146
152
 
147
- 现有仓库通常需要在 `init` 之后做一次清理:当生成的 `repository` 路由过宽、所有权跨越多个产品或服务,或路由文件仍指向占位文档时,运行已安装的 Truth Structure 工作流。Truth Structure 会拆分过宽的路由,创建或修复初始的规范事实文档,并在功能代码工作开始前为 Truth Sync 提供精确目标。Codex、Claude Code 和支持的 Copilot IDE 可以用 `/truthmark-structure` 调用它;OpenCode 风格的宿主可以用 `/skill truthmark-structure` 调用它。
153
+ - 路由文件
154
+ - 事实文档脚手架
155
+ - 受管说明块
156
+ - 已配置平台的面向 AI 工作流表面
148
157
 
149
- ## 它如何运行
158
+ ### 验证设置
150
159
 
151
- Truthmark 最强的地方是默认路径,而不是一堆手动命令。由实际执行的代理和宿主环境决定是委托执行,还是内联运行已安装的工作流。
160
+ ```bash
161
+ truthmark check
162
+ ```
163
+
164
+ 然后在提交前审查生成的文件。
165
+
166
+ 具体文件取决于 `.truthmark/config.yml`,但安装形态始终相同:路由、truth scaffolding、紧凑的受管说明,以及为启用平台生成的 host-native 工作流表面。
152
167
 
153
- ### 已实现但无文档的行为
168
+ 确切文件取决于 `.truthmark/config.yml`。
154
169
 
155
- 当实现已经存在,但规范事实文档缺失或较弱时,使用这个流程:
170
+ ## 第一次真实使用
171
+
172
+ 大多数仓库在初始化后需要一次清理。
173
+
174
+ 默认脚手架从一个宽泛的 `repository` 区域开始。真实仓库通常需要更精确的路由。
175
+
176
+ 让你的代理把宽泛路由拆成真实的产品、服务、领域或所有权区域:
156
177
 
157
178
  ```text
158
- 用户识别一个已实现的行为或 API 端点
159
- 用户显式调用 Truth Document
160
- 代理读取实现、测试、路由和现有文档
161
- 代理只写 truth docs 和路由
162
- 审查 truth-doc diff
179
+ /truthmark-structure 将宽泛的 repository 区域拆成 auth、billing 和 notifications
163
180
  ```
164
181
 
165
- Truth Document 是手动、implementation-first 的流程:代码作为证据,事实文档被创建或修复,且不能修改功能代码。Codex、Claude Code 和支持的 Copilot IDE 可以用 `/truthmark-document` 调用它;OpenCode 风格的宿主可以用 `/skill truthmark-document` 调用它。
182
+ 之后就正常使用你的 AI 编码代理。
183
+
184
+ 当代理修改功能代码时,Truth Sync 会作为收尾保护,在交接前检查已映射的事实文档是否需要改变。
185
+
186
+ ## 你会得到什么
187
+
188
+ | 能力 | 作用 |
189
+ | --- | --- |
190
+ | Git 原生事实 | 将仓库事实保存在已提交的 Markdown 和配置中。 |
191
+ | 按分支生效的上下文 | 事实随分支移动,而不是存在于私有会话中。 |
192
+ | 面向人的 CLI | 为维护者提供设置、刷新、验证和检查命令。 |
193
+ | 面向 AI 的工作流 | 为代理提供宿主原生的同步、文档、结构、预览、实现和审计工作流。 |
194
+ | 显式路由 | 将代码区域映射到规范事实文档。 |
195
+ | 可审查交接 | 为代码和事实文档都产生普通 Git diff。 |
196
+ | 本地优先运行 | 不需要托管服务、守护进程、数据库或 MCP 服务器。 |
197
+ | 更安全的写入边界 | 区分 code-first、doc-first、read-only 和 doc-only 工作流。 |
198
+ | 验证 | 报告路由、权限边界、frontmatter、链接、生成表面、分支范围、freshness 和覆盖率问题。 |
199
+
200
+ ## 视觉概览
201
+
202
+ ![Truthmark 功能](docs/assets/truthmark-features.png)
203
+
204
+ **功能:** Truthmark 会安装什么,以及工作流表面如何拆分。
205
+
206
+ ![Truthmark 定位](docs/assets/truthmark-position.png)
207
+
208
+ **定位:** Truthmark 相对提示词、记忆和规格工作流所处的位置。
209
+
210
+ ![Truthmark 同步流程](docs/assets/truthmark-syncflow.png)
211
+
212
+ **同步流程:** Truth Sync 如何在交接前收束普通代码变更。
213
+
214
+ ## 为什么团队会采用它
215
+
216
+ Truthmark 面向已经知道 AI 代理能生成代码的团队。
217
+
218
+ 下一个问题是治理。
219
+
220
+ 不是仪式化治理。治理就是一个简单问题:
221
+
222
+ > 这次 AI 辅助变更之后,仓库还在讲真话吗?
223
+
224
+ Truthmark 通过已提交文件、显式路由和可审查 diff 帮助团队回答这个问题。
225
+
226
+ 当你需要这些东西时,它会很有用:
227
+
228
+ - 更少的文档漂移
229
+ - 更好的交接
230
+ - 按分支生效的产品事实
231
+ - 持久的架构和 API 上下文
232
+ - 文档与代码之间的明确所有权
233
+ - 更安全的代理写入边界
234
+ - 可审查上下文,而不是隐藏记忆
235
+ - 仍然能从已提交 repo 文件运行的 AI 工作流
236
+
237
+ ## Truthmark 适合放在哪里
238
+
239
+ Truthmark 不替代提示词、记忆、规格、测试或代码审查。
240
+
241
+ 它给这些工作流一个可以落在 Git 里的持久位置。
242
+
243
+ | 需求 | 更合适的选择 |
244
+ | --- | --- |
245
+ | 单次代理会话获得更好输出 | 更好的提示词 |
246
+ | 个人或会话级连续性 | 记忆工具 |
247
+ | plan-first 的功能工作 | 规格工作流 |
248
+ | 随代码移动、按分支生效的事实 | Truthmark |
249
+ | 验证行为正确性 | 测试和审查 |
250
+ | 审查 AI 辅助的上下文变更 | Truthmark 加 Git 审查 |
251
+
252
+ Truthmark 的范围故意很窄:
166
253
 
167
254
  ```text
168
- /truthmark-document 在 docs/truth/authentication 下记录已实现的会话超时行为
255
+ 让仓库事实显式化
256
+ 把它路由到代码
257
+ 围绕它安装代理工作流
258
+ 让结果在 Git 中可审查
169
259
  ```
170
260
 
171
- ### 常规代码变更
261
+ ## Truthmark 如何运行
262
+
263
+ Truthmark 在本地针对当前 Git worktree 运行。
264
+
265
+ 面向人的 CLI 读取并写入仓库文件,然后退出。
266
+
267
+ 面向 AI 的工作流表面是已提交文件,代理宿主之后可以加载它们。这意味着代理可以从仓库状态遵循已安装工作流,而不依赖后台 Truthmark 进程。
268
+
269
+ 这些层的关系如下:
270
+
271
+ ```mermaid
272
+ flowchart LR
273
+ Human["Human / CI"] --> CLI["Truthmark CLI"]
274
+ CLI --> Config["配置与路由图"]
275
+ CLI --> Truth["规范 truth 文档"]
276
+ CLI --> Surfaces["生成的 host-native 工作流"]
277
+ Surfaces --> Hosts["Codex / Claude Code / Copilot / OpenCode / Gemini"]
278
+ Hosts --> Worktree["当前 Git worktree"]
279
+ Hosts -->|"helper checks / validate / index"| CLI
280
+ Worktree --> Truth
281
+ ```
282
+
283
+ Agent 不会连接 Truthmark daemon,但工作流需要验证、索引或 helper checks 时,它们可以运行已安装的 Truthmark CLI。
284
+
285
+ Truthmark 拥有它生成的工作流表面,但关键契约是架构层面的:仓库内配置和路由把 agent 指向规范 truth 文档,host-native 工作流则让每个受支持的 agent 用自己的方式运行同一套 Truthmark 流程。
286
+
287
+ 生成的工作流表面包含 Truthmark 版本标记。升级 Truthmark 后,重新运行:
288
+
289
+ ```bash
290
+ truthmark init
291
+ ```
292
+
293
+ 然后审查生成的 diff。
294
+
295
+ ## 支持的代理平台
296
+
297
+ 默认配置包含所有受支持平台。
172
298
 
173
- 多数用户不需要直接调用 Truth Sync。关键在于,只要功能代码发生变化,已安装的代理工作流就会把 Truth Sync 当作收尾保护。正常路径是:
299
+ `.truthmark/config.yml` 中移除你不使用的平台,然后重新运行:
300
+
301
+ ```bash
302
+ truthmark init
303
+ ```
304
+
305
+ | 平台配置名 | 生成表面 | 调用形式 |
306
+ | --- | --- | --- |
307
+ | `codex` | Skill packages 和 verifier agents | `/truthmark-*` 或 `$truthmark-*` |
308
+ | `claude-code` | Project skills、verifier agents 和受管说明 | `/truthmark-*` |
309
+ | `github-copilot` | Agent skills、prompt commands、custom agents 和受管说明 | 支持的 Copilot IDE 中使用 `/truthmark-*`;Copilot CLI 中使用 `@truth-*` custom agents |
310
+ | `opencode` | Skill packages 和 verifier agents | `/skill truthmark-*` |
311
+ | `gemini-cli` | Agent skills、slash commands、subagents 和受管说明 | `/truthmark:*` |
312
+
313
+ 未知平台名是配置错误。
314
+
315
+ 移除一个平台会停止该平台未来的刷新。它不会删除此前生成的文件。
316
+
317
+ ## 面向 AI 的工作流
318
+
319
+ 这些工作流会安装到受支持的 AI 编码宿主中。
320
+
321
+ 代理或代理宿主会在仓库工作期间使用它们。它们不是顶层 shell 命令。
322
+
323
+ | 工作流 | 方向 | 何时使用 | 写入边界 |
324
+ | --- | --- | --- | --- |
325
+ | Truth Structure | topology-first | 默认路由过宽、所有权跨多个区域,或路由文件仍指向占位内容。 | 创建或修复路由和起始事实文档。 |
326
+ | Truth Document | implementation-first | 行为已经存在于代码中,但规范事实文档缺失或薄弱。 | 只写事实文档和路由。不能改变功能代码。 |
327
+ | Truth Sync | code-first | 功能代码已变更,已映射事实文档可能需要在交接前更新。 | 更新事实文档。Truth Sync 不能重写功能代码。 |
328
+ | Truth Preview | read-only | 代理需要在编辑前预览可能的路由。 | 只读。不授权写入。 |
329
+ | Truth Realize | doc-first | 产品或架构事实文档在前,代码应更新以匹配它们。 | 只更新代码。代理不能编辑它正在实现的事实文档。 |
330
+ | Truth Check | audit-first | 审查者或代理需要审计仓库事实健康状况。 | 审计并报告。 |
331
+
332
+ ### 重要区别
333
+
334
+ 不要混淆这两个表面:
335
+
336
+ | 表面 | 使用者 | 示例 | 含义 |
337
+ | --- | --- | --- | --- |
338
+ | 面向人的 CLI | 人类、脚本、类似 CI 的检查 | `truthmark check` | 从终端验证仓库事实产物。 |
339
+ | 面向 AI 的工作流 | 编码代理和代理宿主 | `/truthmark-check` | 请求代理运行已安装的审计工作流。 |
340
+
341
+ 名称有意相关,但表面不同。
342
+
343
+ ## 普通 AI 辅助代码变更
344
+
345
+ 大多数用户不应该每次都手动调用 Truth Sync。
346
+
347
+ Truth Sync 是为功能代码变更安装的收尾保护。
174
348
 
175
349
  ```text
176
350
  代理修改功能代码
177
- 运行相关测试
178
- 已安装的 Truth Sync 工作流在代理结束前运行
179
- 如果生成了 truth-doc diff,就审查它
180
- 提交或交接工作
351
+ 代理运行或请求相关测试
352
+ 已安装工作流检测到功能代码变更
353
+ Truth Sync 检查已映射事实文档
354
+ 代理在需要时更新事实文档
355
+ 人类审查代码 diff + 事实 diff
356
+ ```
357
+
358
+ 直接调用仍然适用于排查问题、强制提前同步,或让交接更明确:
359
+
360
+ ```text
361
+ /truthmark-sync 现在同步仓库事实,然后再交接
181
362
  ```
182
363
 
183
- Truth Sync 是 code-first:代码在前,事实文档跟随,且 Truth Sync 不能重写功能代码。它的主要职责是在功能代码发生变化时,通过已安装的代理工作流充当收尾保护。直接调用主要用于排查问题、交接前提前同步,或有意运行这套工作流。
364
+ ## 已有行为但没有文档
184
365
 
185
- Codex、Claude Code 和支持的 Copilot IDE 可以用 `/truthmark-sync` 调用它。OpenCode 风格的宿主可以用 `/skill truthmark-sync` 调用它。
366
+ 当实现已经存在,但仓库事实不完整时,使用 Truth Document。
186
367
 
187
368
  ```text
188
- /truthmark-sync 现在同步仓库 truth,然后再交接
369
+ /truthmark-document docs/truth/authentication 下记录已实现的会话超时行为
189
370
  ```
190
371
 
191
- ### 文档优先变更
372
+ Truth Document 会把实现、测试、路由文件和现有文档作为证据来检查。
373
+
374
+ 它只写事实文档和路由。
192
375
 
193
- 当产品或架构决策从文档开始时,使用这个流程:
376
+ 它不能改变功能代码。
377
+
378
+ ## Doc-first 变更
379
+
380
+ 当产品或架构决策从文档开始,并且代码应更新以匹配时,使用 Truth Realize。
194
381
 
195
382
  ```text
196
- 用户编辑 truth docs
197
- 用户显式调用 Truth Realize
198
- 代理读取 truth docs 和相关代码
199
- 代理只更新代码
200
- 运行相关测试
201
- 提交或交接工作
383
+ /truthmark-realize 将 docs/truth/authentication/session-timeout.md 实现到代码中
202
384
  ```
203
385
 
204
- Truth Realize 是手动、文档优先的流程:事实文档在前,代码跟随,代理不能编辑它正在实现的事实文档。
386
+ Truth Realize 是 doc-first。
387
+
388
+ 事实文档在前。代码跟随。
205
389
 
206
- Codex、Claude Code 和支持的 Copilot IDE 可以用 `/truthmark-realize` 调用它。OpenCode 风格的宿主可以用 `/skill truthmark-realize` 调用它。
390
+ 代理不能编辑它正在实现的事实文档。
391
+
392
+ ## 只读路由预览
393
+
394
+ 当代理需要在变更前理解可能的路由时,使用 Truth Preview。
207
395
 
208
396
  ```text
209
- /truthmark-realize docs/truth/authentication/session-timeout.md 实现为代码
397
+ /truthmark-preview 预览 billing API 变更的可能事实路由
210
398
  ```
211
399
 
212
- ## 它会安装什么
400
+ Truth Preview 是 read-only。
213
401
 
214
- Truthmark 把持久化的工作流载体保持得很小,而且是仓库原生的。运行 `truthmark init` 之后,仓库本身就携带路由、规则和已安装的工作流载体,因此团队不再只依赖某个人的本地配置。
402
+ 它是选择器和规划辅助,不是写入授权,也不是 Truth Check 的替代品。
215
403
 
216
- - `.truthmark/config.yml`,用于机器可读的已提交层级契约
217
- - `docs/truthmark/areas.md`,用于根路由索引
218
- - `docs/truthmark/areas/**/*.md`,用于委托的子路由文件
219
- - `docs/templates/behavior-doc.md` 以及 `docs/templates/` 下其他按类型划分的模板,用作生成工作流采用的可编辑 truth doc 标准
220
- - 面向已配置平台的受管说明块,例如 `AGENTS.md`、`CLAUDE.md`、Copilot 指令和 `GEMINI.md`
221
- - 面向 Truth Structure、Truth Document、Truth Sync、Truth Realize 和 Truth Check 的宿主原生技能、提示或命令
404
+ ## 仓库事实审计
222
405
 
223
- 安装后的工作流载体就是运行时:
406
+ 当你需要面向代理的审计工作流时,使用 Truth Check。
224
407
 
225
- - Truth Structure 创建或修复区域路由和起始事实文档。
226
- - Truth Document 为已实现行为创建或修复事实文档。
227
- - Truth Sync 在功能性变更发生时,让已映射的事实文档保持同步。
228
- - Truth Realize 更新代码,使其符合事实文档。
229
- - Truth Check 审计仓库事实的健康状况。
408
+ ```text
409
+ /truthmark-check 在审查前审计路由和事实覆盖
410
+ ```
230
411
 
231
- 功能 `README.md` 是索引。Truth Sync 预期读取并更新用于描述当前行为的有边界叶子文档。生成的工作流载体会保留仓库规则的权威性,同时把实现代码和规范事实文档当作当前行为的证据。
412
+ 当你需要终端验证时,使用面向人的 CLI:
232
413
 
233
- 生成的载体由 Truthmark 管理,包含版本标记,并可通过 `truthmark init` 刷新。
414
+ ```bash
415
+ truthmark check
416
+ ```
417
+
418
+ 两者都有用。它们不是同一个表面。
419
+
420
+ ## 面向人的 CLI 命令
421
+
422
+ 大多数维护者从三个命令开始。
423
+
424
+ | 命令 | 用途 |
425
+ | --- | --- |
426
+ | `truthmark config` | 创建 `.truthmark/config.yml`。除非使用 `--stdout`,否则只写这个文件。 |
427
+ | `truthmark init` | 从已审查配置安装或刷新已配置的工作流表面。 |
428
+ | `truthmark check` | 验证配置、权限边界、路由、承载决策的文档、frontmatter、内部链接、分支范围、生成表面、freshness 和覆盖率诊断。 |
429
+
430
+ 可选的仓库情报辅助工具会为当前 checkout 生成派生审查上下文。生成的工作流 skill packages 也可以暴露 helper manifests 和 helper policies,用来调用已安装的 `truthmark validate ... --json` CLI validators;这些 helpers 是加速器,不是打包进仓库的本地脚本,也不是事实来源。独立的 Copilot prompts 和 Gemini commands 在已安装 runner 可用时使用同一 CLI validator contract;不可用时应报告可见的 skipped helper status,并进行 manual validation。
431
+
432
+ 它们不是事实来源。
433
+
434
+ | 命令 | 用途 |
435
+ | --- | --- |
436
+ | `truthmark index` | 为当前 checkout 构建 RepoIndex 和 RouteMap JSON。 |
437
+ | `truthmark impact --base <ref>` | 将变更文件映射到已路由事实文档、所属路由、附近测试和公开符号。 |
438
+ | `truthmark context --workflow <workflow> [--base <ref>]` | 为 Truth Sync、Truth Document 或 Truth Realize 生成有边界的 ContextPack。使用 `--format markdown` 生成可读版本。 |
439
+
440
+ 受支持位置可使用 `--json` 获取结构化输出。
441
+
442
+ ## 配置
443
+
444
+ Truthmark 是 config-first。
445
+
446
+ 主配置文件是:
447
+
448
+ ```text
449
+ .truthmark/config.yml
450
+ ```
451
+
452
+ 新仓库应运行:
453
+
454
+ ```bash
455
+ truthmark config
456
+ ```
457
+
458
+ 然后先审查生成的配置,再运行:
459
+
460
+ ```bash
461
+ truthmark init
462
+ ```
463
+
464
+ 重要配置区域包括:
465
+
466
+ | 配置区域 | 用途 |
467
+ | --- | --- |
468
+ | `version` | 配置契约版本。 |
469
+ | `platforms` | 应接收平台专属生成表面的代理宿主。 |
470
+ | `docs.layout` | 当前文档布局模式。 |
471
+ | `docs.roots` | 命名的规范文档根。 |
472
+ | `docs.routing.root_index` | 根路由索引路径。 |
473
+ | `docs.routing.area_files_root` | 委托子路由文件目录。 |
474
+ | `docs.routing.default_area` | 初始脚手架子路由 basename。 |
475
+ | `docs.routing.max_delegation_depth` | 当前最大路由委托深度。 |
476
+ | `authority` | 用作仓库事实权威的有序规范文档和 glob。 |
477
+ | `instruction_targets` | 接收共享受管说明块的文件,例如 `AGENTS.md`。 |
478
+ | `frontmatter.required` | 缺失时产生错误诊断的元数据字段。 |
479
+ | `frontmatter.recommended` | 缺失时产生审查诊断的元数据字段。 |
480
+ | `ignore` | 从相关检查和路由逻辑中排除的 glob 模式。 |
481
+
482
+ ## 仓库事实路由
483
+
484
+ Truthmark 将代码表面映射到事实文档。
485
+
486
+ 主要路由文件是:
487
+
488
+ ```text
489
+ docs/truthmark/areas.md
490
+ docs/truthmark/areas/**/*.md
491
+ ```
492
+
493
+ 路由告诉代理:
494
+
495
+ - 哪个代码表面属于某个区域
496
+ - 哪些事实文档拥有该区域
497
+ - 何时应该更新事实
498
+ - 涉及哪类事实文档
499
+
500
+ 默认脚手架从宽泛路由开始。现有仓库通常应该把默认路由拆成真实所有权区域。
501
+
502
+ 示例:
503
+
504
+ ```text
505
+ /truthmark-structure 将宽泛的 repository 区域拆成 frontend、backend、billing 和 deployment
506
+ ```
507
+
508
+ 好的路由会给 Truth Sync 精确目标。
509
+
510
+ 坏的路由会让代理猜。
511
+
512
+ ## Truthmark 会安装什么
513
+
514
+ Truthmark 安装一个紧凑、仓库原生的事实层。
515
+
516
+ 它分为四层安装:
517
+
518
+ - 用于所有权边界的配置和路由
519
+ - 规范 truth 文档和起始模板
520
+ - 用于仓库级 agent 上下文的紧凑受管说明块
521
+ - 为配置中启用的平台生成 host-native 工作流包、命令、prompts 和 verifier agents
522
+
523
+ Truthmark 会保留受管说明块之外的手写内容。
524
+
525
+ 生成的工作流表面由 Truthmark 管理,可以通过重新运行来刷新:
526
+
527
+ ```bash
528
+ truthmark init
529
+ ```
530
+
531
+ ## 子代理和有边界证据检查
532
+
533
+ 在宿主支持时,Truthmark 可以安装项目级验证代理和一个带租约的 `truth-doc-writer`。
534
+
535
+ 这些有助于让大型事实任务保持有边界:
536
+
537
+ - route auditors 检查路由所有权
538
+ - claim verifiers 检查文档声明是否有证据支持
539
+ - doc reviewers 检查事实文档质量
540
+ - leased doc writers 处理有边界的事实文档写入分片
541
+
542
+ 父工作流仍然负责最终解释、写入边界、diff 验证和验收。
543
+
544
+ 这一点很重要:子代理帮助完成有边界的证据工作。它们不替代主工作流契约。
545
+
546
+ ## 审查循环
547
+
548
+ Truthmark 为普通 Git 审查而设计。
549
+
550
+ 一次好的 AI 辅助交接应该展示:
551
+
552
+ ```text
553
+ 代码 diff
554
+ 测试证据
555
+ 必要时的事实文档 diff
556
+ 必要时的路由变更
557
+ 代理报告
558
+ ```
559
+
560
+ 审查者应该能够回答:
561
+
562
+ - 什么代码变了?
563
+ - 哪些事实文档拥有这些代码?
564
+ - 这些文档需要更新吗?
565
+ - 如果不需要,为什么?
566
+ - 代理是否留在工作流写入边界内?
567
+ - 是否包含测试或验证证据?
234
568
 
235
- ## 命令
569
+ ## 示例
236
570
 
237
- Truthmark V1 有意保持 CLI 很小,因为持续运行的工作流应该活在已安装的代理载体里,而不是一长串日常手动命令里。在下游仓库中,`truthmark config` 创建已提交的层级契约,`truthmark init` 根据这份已审查的配置安装和刷新工作流载体,`truthmark check` 则为人工审计、CI 或问题排查验证事实产物,而仓库情报命令会在有本地工具时生成派生审查产物。
571
+ ### 初始化仓库
238
572
 
239
573
  ```bash
574
+ npm install -g truthmark
240
575
  truthmark config
241
576
  truthmark init
242
577
  truthmark check
243
- truthmark index
244
- truthmark impact --base main
245
- truthmark context --workflow truth-sync --base main
246
- truthmark config --json
247
- truthmark check --json
248
- truthmark index --json
249
- truthmark impact --base main --json
250
- truthmark context --workflow truth-sync --base main --json
251
578
  ```
252
579
 
253
- `config` 只写入 `.truthmark/config.yml`,除非使用 `--stdout`。
580
+ ### 移除未使用的代理平台
254
581
 
255
- `init` 需要 `.truthmark/config.yml`,然后安装或刷新本地工作流文件。
582
+ 编辑:
256
583
 
257
- `check` 验证配置、权限边界、路由、承载决策的文档、frontmatter、内部链接、分支范围和覆盖率诊断。
584
+ ```text
585
+ .truthmark/config.yml
586
+ ```
258
587
 
259
- `index` 为当前 checkout 构建 RepoIndex 和 RouteMap JSON。
588
+ 然后重新运行:
260
589
 
261
- `impact --base <ref>` 会把变更文件映射到已路由的 truth docs、所属路由、附近测试和 public symbols。
590
+ ```bash
591
+ truthmark init
592
+ truthmark check
593
+ ```
262
594
 
263
- `context --workflow <workflow> [--base <ref>]` 会为 Truth Sync、Truth Document 或 Truth Realize 生成一个受限的 ContextPack。`--format markdown` 会把它渲染成可读文本。
595
+ ### 拆分宽泛路由
264
596
 
265
- Truth Structure、Truth Document、Truth Sync、Truth Realize 和 Truth Check 是已安装的代理工作流,不是日常使用的顶层 CLI 命令。
597
+ ```text
598
+ /truthmark-structure 将宽泛的 repository 区域拆成 auth、billing、notifications 和 deployment
599
+ ```
266
600
 
267
- 它们通过已配置的代理宿主表面运行,例如 Codex/Claude/Copilot 的 `/truthmark-*`、OpenCode 的 `/skill truthmark-*`,或者 Gemini 的 `/truthmark:*`。
601
+ ### 记录已实现行为
268
602
 
269
603
  ```text
270
- /truthmark-checkreview 前审计路由和 truth 覆盖
604
+ /truthmark-documentdocs/truth/authentication 下记录已实现的密码重置流程
271
605
  ```
272
606
 
273
- ## 它为什么存在
607
+ ### 代码变更后同步
274
608
 
275
- 大多数 AI 编码工作流优化的是下一次回答。Truthmark 优化的是下一次交接。
276
- 它假设严肃团队需要:
609
+ ```text
610
+ /truthmark-sync 现在同步仓库事实,然后再交接
611
+ ```
277
612
 
278
- - 按分支生效的产品事实
279
- - 持久的架构和 API 决策
280
- - 文档与代码之间明确的所有权
281
- - 给代理设置安全的写入边界
282
- - 人类可以审查的普通 Git diff
283
- - 团队成员无需特殊工具也能检查的可读 Markdown
284
- - 随分支一起流转、而不是留在隐藏会话状态里的事实
285
- - 即使包没有全局安装也能工作的流程
613
+ ### 实现 doc-first 决策
286
614
 
287
- ## 项目状态
615
+ ```text
616
+ /truthmark-realize 将 docs/truth/billing/invoice-retry-policy.md 实现到代码中
617
+ ```
288
618
 
289
- Truthmark 不是记忆服务器,也不是 MCP 服务器。它是一套仓库实践,被打包成一个小型 CLI 安装器和代理原生的工作流载体,用来把 AI 工作流规则变成仓库基础设施。
619
+ ### 从终端审计事实健康
290
620
 
291
- V1 目前提供:
621
+ ```bash
622
+ truthmark check
623
+ ```
624
+
625
+ ### 生成分支影响上下文
626
+
627
+ ```bash
628
+ truthmark impact --base main
629
+ ```
630
+
631
+ ### 生成工作流上下文
632
+
633
+ ```bash
634
+ truthmark context --workflow truth-sync --base main --format markdown
635
+ ```
636
+
637
+ ## 项目状态
638
+
639
+ Truthmark V1 目前提供:
292
640
 
293
641
  - `truthmark config`
294
642
  - `truthmark init`
@@ -296,15 +644,58 @@ V1 目前提供:
296
644
  - `truthmark index`
297
645
  - `truthmark impact`
298
646
  - `truthmark context`
299
- - 受管的 `AGENTS.md` 工作流说明
300
- - 为已配置代理宿主生成的 Truth Structure、Truth Document、Truth Sync、Truth Realize 和 Truth Check 技能载体
301
647
  - 分支范围元数据
302
- - 配置、权限边界、路由、决策结构、frontmatter、链接和多语言覆盖率诊断
303
- - RepoIndex、RouteMap、ImpactSet ContextPack 派生产物,可在 CLI 可用时加快本地检查
648
+ - 受管说明块
649
+ - 生成的 Truth Structure 工作流表面
650
+ - 生成的 Truth Document 工作流表面
651
+ - 生成的 Truth Sync 工作流表面
652
+ - 生成的 Truth Preview 工作流表面
653
+ - 生成的 Truth Realize 工作流表面
654
+ - 生成的 Truth Check 工作流表面
655
+ - 路由、权限边界、决策结构、frontmatter、链接、freshness、生成表面和覆盖率诊断
656
+ - 派生的 RepoIndex、RouteMap、ImpactSet 和 ContextPack 产物
657
+ - 面向 Codex、Claude Code、GitHub Copilot、OpenCode 和 Gemini CLI 的宿主专属表面
658
+
659
+ ## 开发
660
+
661
+ 安装依赖:
662
+
663
+ ```bash
664
+ npm install
665
+ ```
666
+
667
+ 运行本地开发 CLI:
668
+
669
+ ```bash
670
+ npm run dev -- init
671
+ npm run dev -- check
672
+ ```
673
+
674
+ 运行完整项目检查:
675
+
676
+ ```bash
677
+ npm run check
678
+ ```
679
+
680
+ 常用脚本:
681
+
682
+ | 脚本 | 用途 |
683
+ | --- | --- |
684
+ | `npm run dev` | 用 `tsx` 运行 TypeScript CLI 入口。 |
685
+ | `npm run build` | 构建包。 |
686
+ | `npm run lint` | 运行 ESLint。 |
687
+ | `npm run typecheck` | 运行 TypeScript 检查。 |
688
+ | `npm run test` | 运行测试。 |
689
+ | `npm run check` | 运行 lint、typecheck、测试和 build。 |
690
+ | `npm run release:check` | 运行面向发布的验证。 |
691
+
692
+ 修改 Truthmark 本身时,请参阅 [CONTRIBUTORS.md](CONTRIBUTORS.md)。
304
693
 
305
694
  ## 文档
306
695
 
307
- README 面向评估和试用这个包的人。详细的功能和业务规范位于 `docs/` 下:
696
+ README 是评估和设置的快速路径。
697
+
698
+ 详细的当前行为位于 `docs/` 下:
308
699
 
309
700
  - [文档索引](docs/README.md)
310
701
  - [架构概览](docs/architecture/overview.md)
@@ -314,11 +705,11 @@ V1 目前提供:
314
705
  - [已安装工作流](docs/truth/workflows/overview.md)
315
706
  - [仓库事实维护指南](docs/standards/maintaining-repository-truth.md)
316
707
 
317
- 当前行为应放在上面的规范文档树中。
708
+ ## 设计边界
318
709
 
319
- ## 非目标
710
+ Truthmark 有意保持小而清晰。
320
711
 
321
- Truthmark V1 不是:
712
+ 它不是:
322
713
 
323
714
  - 托管服务
324
715
  - MCP 服务器
@@ -327,8 +718,49 @@ Truthmark V1 不是:
327
718
  - CI 或 PR 强制执行产品
328
719
  - 测试、代码审查或技术领导力的替代品
329
720
  - 自主代码重写引擎
721
+ - 模型训练或微调框架
722
+ - 隐藏记忆层
723
+
724
+ 这些边界是产品的一部分。
725
+
726
+ Truthmark 让工作流保持本地、已提交、按分支生效并可审查。
727
+
728
+ ## 安全和审查纪律
729
+
730
+ Truthmark 帮助仓库保持诚实。它不能证明代码正确。
731
+
732
+ 团队仍然应该:
733
+
734
+ - 运行相关测试
735
+ - 审查功能代码变更
736
+ - 审查事实文档变更
737
+ - 不把 secrets 放进文档
738
+ - 把仓库专属说明保留在受管块之外
739
+ - 升级后审查生成工作流表面的 diff
740
+ - 保留人类对产品和架构决策的所有权
741
+
742
+ Truthmark 让代理上下文可见。它不替代人类判断。
743
+
744
+ ## 路线图方向
745
+
746
+ 当前未来方向强调:
330
747
 
331
- 它是一种轻量方式,让本地 AI 编码代理尊重你的团队保存在 Git 中的事实。
748
+ - 更强的 `truthmark check` 证据报告
749
+ - 更清晰的采用示例
750
+ - 展示真实 Truth Sync 循环的示例仓库
751
+ - 面向已经使用代理说明文件团队的迁移指南
752
+ - 生成宿主表面的符合性测试
753
+ - 感知路由的 stale truth 提示
754
+ - 面向 doc-first 工作的有边界实现清单
755
+
756
+ 重心保持不变:
757
+
758
+ ```text
759
+ 仓库事实
760
+ 代理原生工作流
761
+ Git 审查
762
+ 按分支生效的上下文
763
+ ```
332
764
 
333
765
  ## 许可证
334
766