pomaster 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +393 -396
  2. package/TRADEMARKS.md +2 -2
  3. package/catalog/archetypes/archetype.api.error.json +55 -0
  4. package/catalog/archetypes/archetype.api.pagination.json +68 -0
  5. package/catalog/archetypes/archetype.api.resource.json +45 -0
  6. package/catalog/archetypes/archetype.backend.approval_workflow.json +63 -0
  7. package/catalog/archetypes/archetype.backend.audit.json +44 -0
  8. package/catalog/archetypes/archetype.backend.crud_resource.json +56 -0
  9. package/catalog/archetypes/archetype.backend.export.json +40 -0
  10. package/catalog/archetypes/archetype.backend.external_integration.json +89 -0
  11. package/catalog/archetypes/archetype.backend.idempotent_command.json +65 -0
  12. package/catalog/archetypes/archetype.backend.import.json +47 -0
  13. package/catalog/archetypes/archetype.backend.master_data.json +45 -0
  14. package/catalog/archetypes/archetype.backend.outbox_event.json +80 -0
  15. package/catalog/archetypes/archetype.backend.query_resource.json +40 -0
  16. package/catalog/archetypes/archetype.backend.scheduled_job.json +69 -0
  17. package/catalog/archetypes/archetype.backend.transactional_write.json +79 -0
  18. package/catalog/archetypes/archetype.component.button.json +53 -0
  19. package/catalog/archetypes/archetype.component.data_grid.json +78 -0
  20. package/catalog/archetypes/archetype.component.dialog.json +52 -0
  21. package/catalog/archetypes/archetype.component.search_input.json +34 -0
  22. package/catalog/archetypes/archetype.component.search_select.json +77 -0
  23. package/catalog/archetypes/archetype.data.hierarchy.json +71 -0
  24. package/catalog/archetypes/archetype.data.ledger.json +40 -0
  25. package/catalog/archetypes/archetype.data.master_data.json +43 -0
  26. package/catalog/archetypes/archetype.data.transaction.json +42 -0
  27. package/catalog/archetypes/archetype.data.versioned.json +43 -0
  28. package/catalog/archetypes/archetype.frontend.error_taxonomy.json +99 -0
  29. package/catalog/archetypes/archetype.frontend.feature_oriented.json +59 -0
  30. package/catalog/archetypes/archetype.frontend.modular.json +37 -0
  31. package/catalog/archetypes/archetype.frontend.spa_layered.json +48 -0
  32. package/catalog/archetypes/archetype.page.analysis.json +39 -0
  33. package/catalog/archetypes/archetype.page.master_data.json +63 -0
  34. package/catalog/archetypes/archetype.runtime.environment_parity.json +178 -0
  35. package/catalog/archetypes/archetype.runtime.observability_binding.json +93 -0
  36. package/catalog/archetypes/archetype.state.async_command.json +63 -0
  37. package/catalog/archetypes/archetype.state.background_refresh.json +45 -0
  38. package/catalog/archetypes/archetype.state.form_edit.json +45 -0
  39. package/catalog/archetypes/archetype.state.optimistic_mutation.json +48 -0
  40. package/catalog/archetypes/archetype.state.selection.json +35 -0
  41. package/catalog/archetypes/archetype.state.server_query.json +60 -0
  42. package/catalog/archetypes/archetype.state.url_filter.json +47 -0
  43. package/catalog/archetypes/archetype.state.wizard.json +46 -0
  44. package/catalog/catalog-lock.draft.json +349 -5
  45. package/catalog/gates/gate.new-entity.checks.json +106 -0
  46. package/catalog/knowledge/knowledge.web.browser.mcp_eyes.json +99 -0
  47. package/catalog/sensors/sensor.browser.deterministic.json +17 -6
  48. package/catalog/sensors/sensor.browser.interactive.json +16 -6
  49. package/catalog/tools/materialize_v06_relock.py +218 -0
  50. package/catalog/tools/seed_v06_archetypes.py +283 -0
  51. package/catalog/tools/seed_v06_batch2_materials.py +504 -0
  52. package/catalog/tools/seed_v06_batch3_materials.py +756 -0
  53. package/catalog/tools/seed_v06_batch4_materials.py +353 -0
  54. package/dist/bin.js +2920 -331
  55. package/package.json +1 -1
package/README.md CHANGED
@@ -1,396 +1,393 @@
1
- # POMaster
2
-
3
- > **AI 软件工程的 Governed Software State Control Plane。**
4
- > 管理系统当前可信状态、为每个 Agent 投影最小充分上下文、控制允许发生的变化、并要求一切变化被证据证明。
5
-
6
- [![CI](https://github.com/River-Singer/POMaster_VNext/actions/workflows/ci.yml/badge.svg)](https://github.com/River-Singer/POMaster_VNext/actions/workflows/ci.yml)
7
- [![License: PolyForm NC 1.0.0](https://img.shields.io/badge/License-PolyForm--NC--1.0.0-blue)](./LICENSE)
8
-
9
- ```text
10
- POMaster = State + Context + Transition + Evidence,在 Authority 与 Adaptive Governance 下运行
11
- ```
12
-
13
- ## 快速上手
14
-
15
- POMaster 的全部能力收敛在一条 CLI(`pomaster`)——八拍 Change Loop 的每一拍都有对应命令面。先给一张**命令全景**(机器钉版,与 `pomaster --help` 零漂移;`#` 分节注释仅人读)。第一次使用?直接看下面 [install → init → 第一个 Change](#1-安装) 的全流程。
16
-
17
- ```text
18
- # 0 BOOTSTRAP —— 建基线 / 速览 / 装眼睛 / 可移植性
19
- pomaster init
20
- pomaster status
21
- pomaster doctor
22
- pomaster portability bootstrap/check
23
-
24
- # ① TRIAGE —— 秒级判档(MINIMAL/LIGHT/STANDARD;NO-OP 合法)
25
- pomaster triage "<request>"
26
-
27
- # ② FRAMEWORK —— 许可签发/判卷/显式接管/台账
28
- pomaster permit issue/check/steal/list
29
-
30
- # ③ PROJECTION —— 最小充分上下文投影
31
- pomaster context compile/explain
32
-
33
- # ④ EXECUTE —— 写路径机器执行点 / 受控变更
34
- pomaster exec-guard --attempt <file|->
35
- pomaster maintain <change-or-task> --ops <tx>
36
-
37
- # ⑤ VERIFY —— FAST gate / gate recipes 派发 / 证据入账
38
- pomaster check --fast/--gates
39
- pomaster record gate-run/claim
40
-
41
- # ⑥ RECONCILE —— delta 三方对账 / 投影视图 / 审计 / 例外台账
42
- pomaster reconcile --permit <PERMIT.*>
43
- pomaster view blueprint/task
44
- pomaster audit blueprint/task
45
- pomaster ledger record/list
46
-
47
- # ⑦ COMPACT —— 折叠入账 / 知识生命周期 / 记忆收割
48
- pomaster compact
49
- pomaster knowledge search/inspect/record/review-candidates/promote/demote
50
- pomaster memory capture/inspect/harvest/review/promote/audit
51
-
52
- # ⑧ CARRY —— DoD 判卷收口
53
- pomaster closeout <task-id>
54
-
55
- # 横切 —— 对象检视 / Discovery / Research / Eval / Catalog / 迁移 / 生产反馈 / 多 Agent / 执行身份
56
- pomaster inspect <governed-id>
57
- pomaster brainstorm start/status/promote
58
- pomaster research list/inspect
59
- pomaster eval --suite behavioral
60
- pomaster catalog status/explain
61
- pomaster migrate trellis-spec --analyze --spec-root <dir>
62
- pomaster production band/evaluate/challenge/diagnose/metrics/self-improvement
63
- pomaster agents status
64
- pomaster run <task>
65
- pomaster handoff <task> --to <role>
66
- pomaster session attach/refresh/list
67
- pomaster lock acquire/heartbeat/release/steal/list
68
- pomaster execution begin/end/list
69
- pomaster trace show/list
70
- ```
71
-
72
- ### 1. 安装
73
-
74
- ```bash
75
- # Node ≥ 22
76
- npm install -g pomaster # 全局安装(推荐)
77
- # 或项目内:
78
- npm install --save-dev pomaster
79
- npx pomaster --help
80
- ```
81
-
82
- ### 2. 初始化治理基线:`pomaster init`
83
-
84
- 在项目根执行(幂等——重复执行第二次起 NO_CHANGE,零字节写入;已存在的人类文件一律不覆盖):
85
-
86
- ```bash
87
- cd your-project
88
- pomaster init
89
- ```
90
-
91
- 它做四件事:
92
-
93
- | 产物 | 作用 | 会被覆盖吗 |
94
- |---|---|---|
95
- | `.pomaster/state/truth-index.json` | Canonical State 唯一事实源(空账本起点) | 否(存在即跳过;损坏显式报错,绝不静默重建) |
96
- | `.pomaster/state/authority.json` | Authority Map 骨架(默认登记 `BOOTSTRAP_OWNER`) | 否(人类加注的 owner 一律不动) |
97
- | `.pomaster/config.yaml` | 治理配置(人类可编辑) | 否(只在缺失时创建) |
98
- | `AGENTS.md` / `CLAUDE.md` | Agent 轻入口(profile + 状态速览 + 常用命令) | 仅带生成标记的(`CLAUDE.md` 通过 `@AGENTS.md` 导入共享) |
99
-
100
- ### 3. init 之后该配置什么(config.yaml)
101
-
102
- ```yaml
103
- version: 1
104
- profile: LIGHT # 治理档位:MINIMAL | LIGHT | STANDARD
105
- triage:
106
- ttl_hours: 168 # triage 结果有效期,过期必须 re-triage
107
- ```
108
-
109
- **profile 三档怎么选**:
110
-
111
- | 档位 | 适合 | 体感 |
112
- |---|---|---|
113
- | `MINIMAL` | 脚手架/原型/个人实验 | 几乎感觉不到 POMaster(文案改动→一行 gate) |
114
- | `LIGHT`(默认) | 正常业务迭代 | 秒级判档 + FAST gate 内循环 + delta 审查 |
115
- | `STANDARD` | 核心链路/多角色协作 | 全 gate 矩阵 + 浏览器双通道证据 + 抽样复核 |
116
-
117
- **Authority(谁说了算)**:`.pomaster/state/authority.json` 默认单人形态(一切 authority 位置由项目 Owner 应答);多人协作出现信号后再演化细粒度 owner——`owner_registry` 数组逐个登记即可,kernel 零配置变更。
118
-
119
- ### 4. 第一个 Change:走一遍八拍
120
-
121
- ```bash
122
- pomaster triage "给用户列表页加一个导出按钮" # ① 秒级判档
123
- pomaster maintain <task> --phase pre-dev … # ②③ permit 签发 + 上下文投影
124
- # ……在你的 Agent harness(Claude Code 等)里实现代码……
125
- pomaster check --fast # ⑤ FAST gate(BUILD 腿)
126
- pomaster closeout <task-id> # ⑧ DoD 判卷收口
127
- ```
128
-
129
- ### 5. 装齐眼睛(可选,按需)
130
-
131
- ```bash
132
- pomaster doctor # 工具/MCP 探测:缺什么提示装什么
133
- ```
134
-
135
- doctor 探针覆盖:内核 / BUILD(tsc·eslint)/ CONTRACT(oasdiff·schemathesis)/ ARCHITECTURE(depcruise·import-linter)/ COVERAGE(c8·pytest-cov)/ MUTATION(mutmut·StrykerJS)/ SECURITY(gitleaks·pip-audit·semgrep)/ BROWSER(playwright·chrome-devtools MCP)/ PERFORMANCE(lighthouse·web-vitals)/ portability。**工具缺席=显式 NOT_RUN(非绿非红),绝不假绿**。
136
-
137
- ---
138
-
139
- ## 为什么存在(三行读完的来历)
140
-
141
- 1. **旧模式治理的是文档**:把几百份 Markdown 规范播进项目、靠 Agent 自觉遵守——结果错误事实被继承放大(上个会话说"27 页开发完了",实际半数是脚手架)、技术基线静默漂移、规范越堆越多直到没人看。
142
- 2. **血泪换来的第一定律**:*报绿的治理工具比没有工具更危险——它把「未知」转换成「已验证干净」。* 所以本项目的核心不是"更多门禁",而是**可信的证据**。
143
- 3. **vNext 换掉治理对象**:不再治理文档,改为治理**状态本身**。文档只是状态的投影;事实必须带 Authority、Evidence 与完整生命周期。
144
-
145
- ## 运行机制:State Control Plane
146
-
147
- POMaster 不是又一层 prompt 工程或 skill 包,而是一个**状态控制平面**——它把「软件项目当前可信的状态」作为一等公民管理起来:
148
-
149
- ```mermaid
150
- flowchart TB
151
- subgraph PLANE["POMaster State Control Plane(.pomaster/ store)"]
152
- STATE["Canonical State<br/>truth-index + objects<br/>四轴状态"]:::core
153
- PERMIT["Permit / Transition<br/>谁有权改什么"]:::core
154
- EVI["Evidence 平面<br/>GRN / blobs / claims"]:::core
155
- PROJ["Context Projection<br/>MUST/ADVISORY/KNOWLEDGE/<br/>CATALOG/LAZY TOOLS"]:::core
156
- end
157
- subgraph CAT["Engineering Catalog(随包分发)"]
158
- POL["policies 79"]:::cat
159
- KN["knowledge 10"]:::cat
160
- GT["gates 5"]:::cat
161
- SEN["sensors 6"]:::cat
162
- end
163
- AGENT["Agent Harness<br/>(Claude Code / Codex / …)"]:::ext
164
- HUMAN["Human Authority<br/>(Owner)"]:::ext
165
-
166
- HUMAN -- Authority 决议 --> PLANE
167
- PLANE -- compile --> AGENT
168
- AGENT -- maintain/record --> PLANE
169
- CAT -- applicability 筛选 --> PROJ
170
- EVI -- gate 判卷 --> STATE
171
- classDef core fill:#e8f0fe,stroke:#1a73e8
172
- classDef cat fill:#fef7e0,stroke:#f9ab00
173
- classDef ext fill:#e6f4ea,stroke:#188038
174
- ```
175
-
176
- 三个关键设计:
177
-
178
- - **Canonical State 是唯一事实源**:一切对象(PAGE/CAPABILITY/CHANGE/TASK…)带四轴状态(lifecycle/confidence/evidence/change)+ Authority + 完整生命周期。Markdown 文档只是它的投影。
179
- - **Agent 不直接写状态**:一切写经 `maintain <id> --ops <tx>` 显式事务 → kernel `applyTransaction` 判卷(写路径机器执行点 `exec-guard` 判卷器非写入器)。
180
- - **证据先于结论**:gate 运行结果走 `record gate-run` 产 GRN 收据入 evidence 平面;claim 必须显式绑定 GRN 分母——「证据缺失伪装完成」会被 closeout 硬阻断。
181
-
182
- ## SOP 编排:项目生命周期五段式
183
-
184
- ```text
185
- 0 BOOTSTRAP ──── init 扫描 / Authority Map / catalog-lock / 轻入口生成
186
- (有原型→活体走查提五件套;存量项目→纳管已有 registry/spec/记忆)
187
- 1 主循环 ─────── N 次 Change,每次跑下面的八拍 Loop(项目的日常形态)
188
- 2 周期事件 ────── 全量对账 / 紧缩 / 经验入库 / catalog 升级 diff / 自托管基准
189
- 3 架构演化 ────── Challenge → ACR → 受控迁移 → Deviation 到期清算
190
- 4 生产反馈 ────── SLO 击穿 → State Challenge → 新 Change(闭环)
191
- 5 退役归档 ────── deprecation → retirement → history
192
- ```
193
-
194
- ### THE LOOP:每一次 Change 的八拍
195
-
196
- > **Agent 的 loop 在上下文窗口内收敛,POMaster 的 loop 在 git 仓库里收敛。**
197
- > 前者每圈归零,后者每圈复利。
198
-
199
- ```text
200
- ① TRIAGE Router 判档(MINIMAL/LIGHT/STANDARD…)秒级分流;NO-OP 是合法成功
201
- ② FRAMEWORK ← 人唯一主场:只锁五件套(身份/Capability/契约引用/Permit范围/验收形状)
202
- 条件接受即可开工,逐行签核制度已废除
203
- ③ PROJECTION 最小充分上下文投影;经验按触发条件注入 ADVISORY 区
204
- ④ EXECUTE Permit 内实现免检;FAST gate 内循环自检;偏差走显式 Challenge
205
- ⑤ VERIFY 确定性 Gate 判卷:四态判定+盲区计数+not-applicable 清点;
206
- 浏览器双通道证据(Playwright 断言 ∥ chrome-devtools 实时对账)
207
- ⑥ RECONCILE 所见即所得:人只审 delta(框架偏离)/例外清单/抽样点
208
- ⑦ COMPACT Current Truth 更新或 NO_CHANGE;经验入账;任务归档
209
- ⑧ → 下一轮 携带更准的 Truth 重进①——开局一次比一次便宜
210
- ```
211
-
212
- ### 八拍时序图(Agent 交互序列)
213
-
214
- ```mermaid
215
- sequenceDiagram
216
- autonumber
217
- actor Owner
218
- participant Agent as Agent (harness)
219
- participant CLI as pomaster CLI
220
- participant Kernel as kernel (store)
221
- participant Gate as gauntlet legs
222
- participant Ev as evidence 平面
223
-
224
- Owner->>Agent: 描述意图 / task delta
225
- Agent->>CLI: triage "<request>"
226
- CLI->>Kernel: Router 判档(词表闭包)
227
- Kernel-->>Agent: triage envelope(profile + TTL)
228
- Agent->>CLI: maintain --phase pre-dev
229
- CLI->>Kernel: permit issue + context compile
230
- Kernel-->>Agent: PERMIT.* + 五分区 markdown(MUST/ADVISORY/…)
231
- Note over Agent: Permit 范围内实现(免检)+ FAST gate 内循环
232
- Agent->>CLI: check --fast / check --gates
233
- CLI->>Gate: 派发 gate recipes
234
- Gate->>Ev: GRN 收据逐条入账(四态判定)
235
- Gate-->>Agent: verdict(passed/failed/not_run + 盲区计数)
236
- Agent->>CLI: maintain --ops <tx> / compact
237
- CLI->>Kernel: applyTransaction(判卷权威)
238
- Agent->>CLI: closeout <task-id>
239
- CLI->>Ev: DoD 判卷(claims×GRN 硬绑)
240
- CLI-->>Owner: delta 审查面(人只看差异)
241
- ```
242
-
243
- ### 证据入账时序(防假绿的核心通路)
244
-
245
- ```mermaid
246
- sequenceDiagram
247
- autonumber
248
- participant Runner as gate runner
249
- participant Adapter as 腿 adapter
250
- participant Store as kernel store
251
- participant Blob as evidence blobs
252
- Runner->>Adapter: gate recipe 派发
253
- Adapter-->>Runner: 原始报告(官方词形)
254
- Adapter->>Blob: persistEvidenceArtifact(内容寻址 sha256)
255
- Blob-->>Adapter: artifact_ref
256
- Adapter->>Store: record gate-run(GRN + artifact_refs)
257
- Store->>Store: journal TX_APPLIED(ran_at_seq 锚)
258
- Note over Store,Blob: 读侧 verifyEvidenceBinding:<br/>判卷字节 == 落盘字节 == GRN 引用字节<br/>失配 = EVIDENCE_BINDING_INCOMPLETE 判红
259
- ```
260
-
261
- ### 生产反馈时序(SLO 击穿闭环)
262
-
263
- ```mermaid
264
- sequenceDiagram
265
- autonumber
266
- participant Prod as 生产监控
267
- participant P as pomaster production
268
- participant K as kernel store
269
- Prod->>P: ControlBand 定义(谓词机校验,自由文本不存在)
270
- P->>P: evaluate(三态:OK/BREACHED/NOT_EVALUABLE)
271
- alt BREACHED
272
- P->>K: evidence(detected_by=tool_signal)
273
- P->>K: challenge → change 轴 CHALLENGED
274
- P->>P: diagnose(三分类,必须引用 breach evidence)
275
- P-->>Prod: 新 Change 进入主循环(闭环)
276
- end
277
- ```
278
-
279
- ### Memory Harvest 时序(COMPATIBILITY 路线)
280
-
281
- ```mermaid
282
- sequenceDiagram
283
- autonumber
284
- participant H as harness 自动记忆
285
- participant M as pomaster memory
286
- participant Inbox as inbox(PENDING)
287
- participant Owner2 as Owner(batch review)
288
- H->>M: harvest claude --harness-dir <dir>
289
- M->>Inbox: 四桶初筛(TRUTH/KNOWLEDGE/EPISODE/PREFERENCE)
290
- Owner2->>M: review --decide <id> --promote|--reject --note <必填>
291
- M->>M: 分桶路由(KNOWLEDGE→恒 CANDIDATE+ADVISORY;TRUTH/DECISION/EVIDENCE→OWNER_ESCALATION)
292
- M->>M: audit(MEMORY_DRIFT 探测 fail-closed)
293
- ```
294
-
295
- ## 类 Agent 架构
296
-
297
- POMaster 不内置 daemon,也不托管 Agent——它给「在 harness 里跑的主 Agent」提供状态平面 + 执行身份 + 观测器:
298
-
299
- ```mermaid
300
- flowchart LR
301
- subgraph HARNESS["Agent Harness(Claude Code / Codex / …)"]
302
- MAIN["Main Agent<br/>(solo 直连形态)"]:::agent
303
- SUB["Sub-agent / Role"]:::agent
304
- end
305
- subgraph POM["POMaster kernel"]
306
- SESS["sessions(liveness 侧车)"]:::k
307
- LOCK["locks(change/task/unit 三粒度互斥)"]:::k
308
- AGX["Execution Identity(AGX-n)"]:::k
309
- RT["AgentRuntime 契约<br/>(§58 四方法三探针)"]:::k
310
- end
311
- subgraph OBS["观测器(fail-closed 信号)"]
312
- GK["DEF-GATEKEEPER<br/>分身漂移检测"]:::obs
313
- SUP["DEF-SUP<br/>SOP 链触发观测"]:::obs
314
- end
315
- MAIN -- "begin/end execution" --> AGX
316
- MAIN -- "attach/refresh" --> SESS
317
- MAIN -- "acquire/heartbeat/steal" --> LOCK
318
- SUB -- run/handoff(DEF-SUP 触发制,deferred) --> RT
319
- AGX --> GK
320
- SESS --> SUP
321
- classDef agent fill:#e8f0fe,stroke:#1a73e8
322
- classDef k fill:#fce8e6,stroke:#d93025
323
- classDef obs fill:#fef7e0,stroke:#f9ab00
324
- ```
325
-
326
- 要点:
327
-
328
- - **Execution Identity ≠ Execution Trace ≠ Evidence**:AGX-n 是短小稳定的执行身份(runtime/model/permit 快照);Trace 是行为侧车(writes/tool_receipts/evidence_refs,retention 四档);Evidence 是可验证证明。三者分离(A19 美学)。
329
- - **Gatekeeper 防分身**:同一 execution 既提 proposal 又 ALLOW → drift 观测器亮灯——「系统永不自我批准」的机器面。
330
- - **托管编排受 DEF-SUP 触发制门槛**:solo 直连是默认形态;run/handoff 等 SOP 编排在触发条件(重复链/第二贡献者/headless-CI)出现前显式 deferred——治理开销与风险成比例(Minimum Sufficient Governance)。
331
-
332
- ## 五原语:一切能力的唯一来源
333
-
334
- | 原语 | 回答的问题 |
335
- |---|---|
336
- | **Governed Object** | 系统里有什么值得长期识别的东西 |
337
- | **State**(四轴:lifecycle/confidence/evidence/change) | 它现在处于什么状态、可信到什么程度 |
338
- | **Context Projection** | 这个角色此刻应该看见什么 |
339
- | **Transition / Permit** | 谁有权、凭什么条件允许它变化 |
340
- | **Evidence** | 变化的证明由谁产出、如何防止假绿 |
341
-
342
- Spec、Task、Gate、Knowledge、Brainstorm……全部是这五个原语的派生视图。
343
- 三个新一等公民对象族(从旧体系教训中诞生):**分母 DENOMINATOR**(覆盖率的账本不许悄悄消失)、**键绑定 KEYBINDING**(治理 ID ↔ 代码路径的机器映射)、**producer 活性**(声明对象必须有人生产它)。
344
-
345
- ## 哲学宪法(违者即是 bug)
346
-
347
- - Small Constitution:硬约束极少而精——不伪造事实、不越权、不静默冲突、不无证据宣称完成
348
- - No-op is elegant:没有必要的治理动作,零变化就是成功
349
- - Framework as Review Surface:框架约束好了的人,不需要读 AI 写的每一行代码——但前提是判卷器诚实,所以我们用对抗性用例持续攻击自己的 gate
350
- - Minimum Sufficient Governance:治理开销必须与变更风险成比例;小改动的体验是"几乎感觉不到 POMaster"
351
- - Memory Sovereignty:删掉本机缓存 + fresh clone + bootstrap ≈ 项目认知完全恢复
352
-
353
- ## 命令面
354
-
355
- 完整命令全景见上文 [快速上手](#快速上手)——那是机器钉版(与 `pomaster --help` 零漂移,CI golden 强制),此处不再重复抄写以避免漂移。每条命令的逐字说明用 `pomaster <组> --help` 查看;全部命令支持 `--json` 机读信封(§45),禁止彩色自然语言当机读接口。
356
-
357
- ## 仓库蓝图(逻辑结构,物理上按需物化)
358
-
359
- ```text
360
- packages/ kernel · cli · gauntlet-lite · schemas
361
- catalog/ policies(79) · knowledge(10) · gates(5) · sensors(6)
362
- tests/ unit · integration · golden · adversarial · behavioral · benchmarks
363
- benchmarks/ mutation-kill · constitutional · run-all(自托管三档基准)
364
- legal/ THIRD_PARTY_NOTICES · PROVENANCE · verify_notices
365
- ```
366
-
367
- 技术栈:TypeScript · Node ≥22 · pnpm monorepo · Canonical State 为 JSON · Git 为版本与回滚底座 · 外部测试工具一律走 Adapter(绝不进核心)。
368
-
369
- ## 文档地图
370
-
371
- | 想了解 | 去哪里 |
372
- |---|---|
373
- | 产品需求全文(v0.4) | `doc/POMaster vNext/POMaster-vNext-PRD-v0.4.md` |
374
- | 增量 PRD v0.5.2(Agent Perception) | `doc/POMaster-vNext-PRD-v0.5.2-agent-perception.md` |
375
- | 增量 PRD v0.5.3(Grounded Brainstorm) | `doc/POMaster-vNext-PRD-v0.5.3-grounded-brainstorm-research.md` |
376
- | Kernel 公共 API 契约 | `docs/kernel-api.md`(本地) |
377
- | 设计研究资产 | `.trellis/tasks/*/research/`(本地) |
378
-
379
- ## 质量承诺
380
-
381
- - 全量套件 3038 用例(六类齐全:单元/集成/Golden/对抗/行为/自托管基准),数量下限进 CI 棘轮强制执行(只升不降)
382
- - 任何已修缺陷类别必须先存在对应回归用例,才允许标注"结构性消灭"
383
- - CI 四腿(ubuntu/windows/macos/bootstrap-clean)+ mutation kill score 100%(changed-code scope)+ 三机器验证器(mutation --verify / notices / constitutional)
384
-
385
- ## License
386
-
387
- POMaster 采用**双许可**发布(Owner 决议 2026-09-01):
388
-
389
- - **PolyForm Noncommercial 1.0.0**(默认公共许可,仅授权非商业使用):全文见 [`LICENSE`](./LICENSE),官方标准文本逐字落盘;
390
- - **Commercial**(独立商业授权):任何商业使用(含企业内部商用、小企业商用)均不在公共许可范围内、不豁免,需另行签署书面商业授权——说明见 [`COMMERCIAL_LICENSE.md`](./COMMERCIAL_LICENSE.md)。
391
-
392
- 该组合为 source-available 双许可,不应宣传为 OSI Open Source。商标与项目标识归属见 [`TRADEMARKS.md`](./TRADEMARKS.md);贡献授权条款见 [`CONTRIBUTING.md`](./CONTRIBUTING.md);安全漏洞报告渠道见 [`SECURITY.md`](./SECURITY.md);第三方依赖许可与 notice 义务见 [`legal/THIRD_PARTY_NOTICES.md`](./legal/THIRD_PARTY_NOTICES.md)。
393
-
394
- 商业授权联系:TODO(Owner): 填联系邮箱/渠道
395
-
396
- > 正式公开发布前需完成法律专业人士复核。Trellis 仅作机制研究对照,零代码继承。
1
+ # POMaster
2
+
3
+ > **AI 软件工程的 Governed Software State Control Plane。**
4
+ > 管理系统当前可信状态、为每个 Agent 投影最小充分上下文、控制允许发生的变化、并要求一切变化被证据证明。
5
+
6
+ [![CI](https://github.com/River-Singer/POMaster_VNext/actions/workflows/ci.yml/badge.svg)](https://github.com/River-Singer/POMaster_VNext/actions/workflows/ci.yml)
7
+ [![License: PolyForm NC 1.0.0](https://img.shields.io/badge/License-PolyForm--NC--1.0.0-blue)](./LICENSE)
8
+
9
+ ```text
10
+ POMaster = State + Context + Transition + Evidence,在 Authority 与 Adaptive Governance 下运行
11
+ ```
12
+
13
+ ## 快速上手
14
+
15
+ POMaster 的全部能力收敛在一条 CLI(`pomaster`)——八拍 Change Loop 的每一拍都有对应命令面。先给一张**命令全景**(机器钉版,与 `pomaster --help` 零漂移;`#` 分节注释仅人读)。第一次使用?直接看下面 [install → init → 第一个 Change](#1-安装) 的全流程。
16
+
17
+ ```text
18
+ # 0 BOOTSTRAP —— 建基线 / 速览 / 装眼睛 / 可移植性 / 自更新
19
+ pomaster init
20
+ pomaster status
21
+ pomaster doctor
22
+ pomaster portability bootstrap/check
23
+ pomaster update --check/--yes
24
+
25
+ # ① TRIAGE —— 秒级判档(MINIMAL/LIGHT/STANDARD;NO-OP 合法)
26
+ pomaster triage "<request>"
27
+
28
+ # ② FRAMEWORK —— 许可签发/判卷/显式接管/台账
29
+ pomaster permit issue/check/steal/list
30
+
31
+ # ③ PROJECTION —— 最小充分上下文投影
32
+ pomaster context compile/explain
33
+
34
+ # ④ EXECUTE —— 写路径机器执行点 / 受控变更
35
+ pomaster exec-guard --attempt <file|->
36
+ pomaster maintain <change-or-task> --ops <tx>
37
+
38
+ # ⑤ VERIFY —— FAST gate / gate recipes 派发 / 证据入账
39
+ pomaster check --fast/--gates
40
+ pomaster record gate-run/claim
41
+
42
+ # ⑥ RECONCILE —— delta 三方对账 / 投影视图 / 审计 / 例外台账
43
+ pomaster reconcile --permit <PERMIT.*>
44
+ pomaster view blueprint/task
45
+ pomaster audit blueprint/task
46
+ pomaster ledger record/list
47
+
48
+ # ⑦ COMPACT —— 折叠入账 / 知识生命周期 / 记忆收割
49
+ pomaster compact
50
+ pomaster knowledge search/inspect/record/review-candidates/promote/demote
51
+ pomaster memory capture/inspect/harvest/review/promote/audit
52
+
53
+ # ⑧ CARRY —— DoD 判卷收口
54
+ pomaster closeout <task-id>
55
+
56
+ # 横切 —— 对象检视 / 图视图 / Discovery / Research / Eval / Catalog / 迁移 / 生产反馈 / 多 Agent / 执行身份
57
+ pomaster resolve "<need>" [--hints ...]
58
+ pomaster inspect <governed-id>
59
+ pomaster graph <governed-id> [--view impact]
60
+ pomaster brainstorm start/status/promote
61
+ pomaster research list/inspect
62
+ pomaster eval --suite behavioral
63
+ pomaster catalog status/explain/relock
64
+ pomaster migrate trellis-spec --analyze --spec-root <dir>
65
+ pomaster production band/evaluate/challenge/diagnose/metrics/self-improvement
66
+ pomaster agents status
67
+ pomaster run <task>
68
+ pomaster handoff <task> --to <role>
69
+ pomaster session attach/refresh/list
70
+ pomaster lock acquire/heartbeat/release/steal/list
71
+ pomaster execution begin/end/list
72
+ pomaster trace show/list
73
+ ```
74
+
75
+ ### 1. 安装
76
+
77
+ ```bash
78
+ # Node ≥ 22
79
+ npm install -g pomaster # 全局安装(推荐)
80
+ # 或项目内:
81
+ npm install --save-dev pomaster
82
+ npx pomaster --help
83
+ ```
84
+
85
+ ### 2. 初始化治理基线:`pomaster init`
86
+
87
+ 在项目根执行(幂等——重复执行第二次起 NO_CHANGE,零字节写入;已存在的人类文件一律不覆盖):
88
+
89
+ ```bash
90
+ cd your-project
91
+ pomaster init
92
+ ```
93
+
94
+ 它做四件事:
95
+
96
+ | 产物 | 作用 | 会被覆盖吗 |
97
+ |---|---|---|
98
+ | `.pomaster/state/truth-index.json` | Canonical State 唯一事实源(空账本起点) | 否(存在即跳过;损坏显式报错,绝不静默重建) |
99
+ | `.pomaster/state/authority.json` | Authority Map 骨架(默认登记 `BOOTSTRAP_OWNER`) | 否(人类加注的 owner 一律不动) |
100
+ | `.pomaster/config.yaml` | 治理配置(人类可编辑) | 否(只在缺失时创建) |
101
+ | `AGENTS.md` / `CLAUDE.md` | Agent 轻入口(profile + 状态速览 + 常用命令) | 仅带生成标记的(`CLAUDE.md` 通过 `@AGENTS.md` 导入共享) |
102
+
103
+ **多平台适配器**:`AGENTS.md` 恒为唯一事实源;`--platforms claude,codex,cursor,qoder` 追加各平台的细指针适配器(`CLAUDE.md` / 根 `AGENTS.md` 即 codex 原生入口 / `.cursor/rules/pomaster.mdc` / `.qoder/rules/pomaster.md`,已存在一律不覆盖);`--platforms none` 只建 AGENTS.md + 状态骨架。TTY 交互终端直接 `pomaster init` 会出复选清单(◉/◯ 空格勾选 / ↑↓ 移动 / 回车确认;raw 模式不可用时降级为编号输入);`--json` 恒走确定性缺省(claude)。
104
+
105
+ ### 3. init 之后该配置什么(config.yaml)
106
+
107
+ ```yaml
108
+ version: 1
109
+ profile: LIGHT # 治理档位:MINIMAL | LIGHT | STANDARD
110
+ triage:
111
+ ttl_hours: 168 # triage 结果有效期,过期必须 re-triage
112
+ ```
113
+
114
+ **profile 三档怎么选**:
115
+
116
+ | 档位 | 适合 | 体感 |
117
+ |---|---|---|
118
+ | `MINIMAL` | 脚手架/原型/个人实验 | 几乎感觉不到 POMaster(文案改动→一行 gate) |
119
+ | `LIGHT`(默认) | 正常业务迭代 | 秒级判档 + FAST gate 内循环 + delta 审查 |
120
+ | `STANDARD` | 核心链路/多角色协作 | 全 gate 矩阵 + 浏览器双通道证据 + 抽样复核 |
121
+
122
+ **Authority(谁说了算)**:`.pomaster/state/authority.json` 默认单人形态(一切 authority 位置由项目 Owner 应答);多人协作出现信号后再演化细粒度 owner——`owner_registry` 数组逐个登记即可,kernel 零配置变更。
123
+
124
+ ### 4. 第一个 Change:走一遍八拍
125
+
126
+ ```bash
127
+ pomaster triage "给用户列表页加一个导出按钮" # ① 秒级判档
128
+ pomaster maintain <task> --phase pre-dev … # ②③ permit 签发 + 上下文投影
129
+ # ……在你的 Agent harness(Claude Code 等)里实现代码……
130
+ pomaster check --fast # ⑤ FAST gate(BUILD 腿)
131
+ pomaster closeout <task-id> # ⑧ DoD 判卷收口
132
+ ```
133
+
134
+ ### 5. 装齐眼睛(可选,按需)
135
+
136
+ ```bash
137
+ pomaster doctor # 工具/MCP 探测:缺什么提示装什么
138
+ ```
139
+
140
+ doctor 探针覆盖:内核 / BUILD(tsc·eslint)/ CONTRACT(oasdiff·schemathesis)/ ARCHITECTURE(depcruise·import-linter)/ COVERAGE(c8·pytest-cov)/ MUTATION(mutmut·StrykerJS)/ SECURITY(gitleaks·pip-audit·semgrep)/ BROWSER(playwright·chrome-devtools MCP)/ PERFORMANCE(lighthouse·web-vitals)/ portability。**工具缺席=显式 NOT_RUN(非绿非红),绝不假绿**。
141
+
142
+ **浏览器双眼(Browser Eyes)**:`chrome-devtools` MCP 是观测诊断面——页面慢/报错/卡住时直接读真实浏览器(性能 trace / 网络瀑布 / console),禁只看代码推断;`playwright` MCP 是确定性 E2E smoke 与交互验证面。两边产物都是证据链输入(perception receipt / BROWSER gate GRN)。`pomaster doctor` 对两个 MCP 各自出四态探针(未配置 → MISSING_CONFIGURATION + 一键安装路标);`init` 生成的 AGENTS.md 已内置该分工引导。
143
+
144
+ ---
145
+
146
+ ## 为什么存在(三行读完的来历)
147
+
148
+ 1. **旧模式治理的是文档**:把几百份 Markdown 规范播进项目、靠 Agent 自觉遵守——结果错误事实被继承放大(上个会话说"27 页开发完了",实际半数是脚手架)、技术基线静默漂移、规范越堆越多直到没人看。
149
+ 2. **血泪换来的第一定律**:*报绿的治理工具比没有工具更危险——它把「未知」转换成「已验证干净」。* 所以本项目的核心不是"更多门禁",而是**可信的证据**。
150
+ 3. **vNext 换掉治理对象**:不再治理文档,改为治理**状态本身**。文档只是状态的投影;事实必须带 Authority、Evidence 与完整生命周期。
151
+
152
+ ## 运行机制:State Control Plane
153
+
154
+ POMaster 不是又一层 prompt 工程或 skill 包,而是一个**状态控制平面**——它把「软件项目当前可信的状态」作为一等公民管理起来:
155
+
156
+ ```mermaid
157
+ flowchart TB
158
+ subgraph PLANE["POMaster State Control Plane(.pomaster/ store)"]
159
+ STATE["Canonical State<br/>truth-index + objects<br/>四轴状态"]:::core
160
+ PERMIT["Permit / Transition<br/>谁有权改什么"]:::core
161
+ EVI["Evidence 平面<br/>GRN / blobs / claims"]:::core
162
+ PROJ["Context Projection<br/>MUST/ADVISORY/KNOWLEDGE/<br/>CATALOG/LAZY TOOLS"]:::core
163
+ end
164
+ subgraph CAT["Engineering Catalog(随包分发)"]
165
+ POL["policies 79"]:::cat
166
+ KN["knowledge 11"]:::cat
167
+ GT["gates 6"]:::cat
168
+ SEN["sensors 6"]:::cat
169
+ ARC["archetypes 41"]:::cat
170
+ TOO["tools 8"]:::cat
171
+ end
172
+ AGENT["Agent Harness<br/>(Claude Code / Codex / …)"]:::ext
173
+ HUMAN["Human Authority<br/>(Owner)"]:::ext
174
+
175
+ HUMAN -- Authority 决议 --> PLANE
176
+ PLANE -- compile --> AGENT
177
+ AGENT -- maintain/record --> PLANE
178
+ CAT -- applicability 筛选 --> PROJ
179
+ EVI -- gate 判卷 --> STATE
180
+ classDef core fill:#e8f0fe,stroke:#1a73e8
181
+ classDef cat fill:#fef7e0,stroke:#f9ab00
182
+ classDef ext fill:#e6f4ea,stroke:#188038
183
+ ```
184
+
185
+ 三个关键设计:
186
+
187
+ - **Canonical State 是唯一事实源**:一切对象(PAGE/CAPABILITY/CHANGE/TASK…)带四轴状态(lifecycle/confidence/evidence/change)+ Authority + 完整生命周期。Markdown 文档只是它的投影。
188
+ - **Agent 不直接写状态**:一切写经 `maintain <id> --ops <tx>` 显式事务 → kernel `applyTransaction` 判卷(写路径机器执行点 `exec-guard` 判卷器非写入器)。
189
+ - **证据先于结论**:gate 运行结果走 `record gate-run` 产 GRN 收据入 evidence 平面;claim 必须显式绑定 GRN 分母——「证据缺失伪装完成」会被 closeout 硬阻断。
190
+ - **先画靶子,再射箭(v0.6)**:随包分发 41 份 archetype 标准件(页面/组件/后端/数据/运行时,语义全部锚定官方文档实抓)——`pomaster resolve` 先在标准件与已有对象里选/配/组(EXACT/CONFIGURABLE/COMPOSABLE/EXTENSIBLE 确定性分类),真没有才设计新的,且新建必过 New Entity Gate 五否机判;`pomaster graph` 把对象图(采纳边/依赖/影响闭包)变成人看得见的投影。
191
+
192
+ ## SOP 编排:项目生命周期五段式
193
+
194
+ ```text
195
+ 0 BOOTSTRAP ──── init 扫描 / Authority Map / catalog-lock / 轻入口生成
196
+ (有原型→活体走查提五件套;存量项目→纳管已有 registry/spec/记忆)
197
+ 1 主循环 ─────── N 次 Change,每次跑下面的八拍 Loop(项目的日常形态)
198
+ 2 周期事件 ────── 全量对账 / 紧缩 / 经验入库 / catalog 升级 diff / 自托管基准
199
+ 3 架构演化 ────── Challenge → ACR → 受控迁移 → Deviation 到期清算
200
+ 4 生产反馈 ────── SLO 击穿 → State Challenge → 新 Change(闭环)
201
+ 5 退役归档 ────── deprecation → retirement → history
202
+ ```
203
+
204
+ ### THE LOOP:每一次 Change 的八拍
205
+
206
+ > **Agent 的 loop 在上下文窗口内收敛,POMaster 的 loop 在 git 仓库里收敛。**
207
+ > 前者每圈归零,后者每圈复利。
208
+
209
+ ```text
210
+ ① TRIAGE Router 判档(MINIMAL/LIGHT/STANDARD…)秒级分流;NO-OP 是合法成功
211
+ ② FRAMEWORK ← 人唯一主场:只锁五件套(身份/Capability/契约引用/Permit范围/验收形状)
212
+ 条件接受即可开工,逐行签核制度已废除
213
+ ③ PROJECTION 最小充分上下文投影;经验按触发条件注入 ADVISORY 区
214
+ ④ EXECUTE Permit 内实现免检;FAST gate 内循环自检;偏差走显式 Challenge
215
+ ⑤ VERIFY 确定性 Gate 判卷:四态判定+盲区计数+not-applicable 清点;
216
+ 浏览器双通道证据(Playwright 断言 ∥ chrome-devtools 实时对账)
217
+ ⑥ RECONCILE 所见即所得:人只审 delta(框架偏离)/例外清单/抽样点
218
+ ⑦ COMPACT Current Truth 更新或 NO_CHANGE;经验入账;任务归档
219
+ ⑧ → 下一轮 携带更准的 Truth 重进①——开局一次比一次便宜
220
+ ```
221
+
222
+ ### 八拍时序图(Agent 交互序列)
223
+
224
+ ```mermaid
225
+ sequenceDiagram
226
+ autonumber
227
+ actor Owner
228
+ participant Agent as Agent (harness)
229
+ participant CLI as pomaster CLI
230
+ participant Kernel as kernel (store)
231
+ participant Gate as gauntlet legs
232
+ participant Ev as evidence 平面
233
+
234
+ Owner->>Agent: 描述意图 / task delta
235
+ Agent->>CLI: triage "<request>"
236
+ CLI->>Kernel: Router 判档(词表闭包)
237
+ Kernel-->>Agent: triage envelope(profile + TTL)
238
+ Agent->>CLI: maintain --phase pre-dev
239
+ CLI->>Kernel: permit issue + context compile
240
+ Kernel-->>Agent: PERMIT.* + 五分区 markdown(MUST/ADVISORY/…)
241
+ Note over Agent: Permit 范围内实现(免检)+ FAST gate 内循环
242
+ Agent->>CLI: check --fast / check --gates
243
+ CLI->>Gate: 派发 gate recipes
244
+ Gate->>Ev: GRN 收据逐条入账(四态判定)
245
+ Gate-->>Agent: verdict(passed/failed/not_run + 盲区计数)
246
+ Agent->>CLI: maintain --ops <tx> / compact
247
+ CLI->>Kernel: applyTransaction(判卷权威)
248
+ Agent->>CLI: closeout <task-id>
249
+ CLI->>Ev: DoD 判卷(claims×GRN 硬绑)
250
+ CLI-->>Owner: delta 审查面(人只看差异)
251
+ ```
252
+
253
+ ### 证据入账时序(防假绿的核心通路)
254
+
255
+ ```mermaid
256
+ sequenceDiagram
257
+ autonumber
258
+ participant Runner as gate runner
259
+ participant Adapter as 腿 adapter
260
+ participant Store as kernel store
261
+ participant Blob as evidence blobs
262
+ Runner->>Adapter: gate recipe 派发
263
+ Adapter-->>Runner: 原始报告(官方词形)
264
+ Adapter->>Blob: persistEvidenceArtifact(内容寻址 sha256)
265
+ Blob-->>Adapter: artifact_ref
266
+ Adapter->>Store: record gate-run(GRN + artifact_refs)
267
+ Store->>Store: journal TX_APPLIED(ran_at_seq 锚)
268
+ Note over Store,Blob: 读侧 verifyEvidenceBinding:<br/>判卷字节 == 落盘字节 == GRN 引用字节<br/>失配 = EVIDENCE_BINDING_INCOMPLETE 判红
269
+ ```
270
+
271
+ ### 生产反馈时序(SLO 击穿闭环)
272
+
273
+ ```mermaid
274
+ sequenceDiagram
275
+ autonumber
276
+ participant Prod as 生产监控
277
+ participant P as pomaster production
278
+ participant K as kernel store
279
+ Prod->>P: ControlBand 定义(谓词机校验,自由文本不存在)
280
+ P->>P: evaluate(三态:OK/BREACHED/NOT_EVALUABLE)
281
+ alt BREACHED
282
+ P->>K: evidence(detected_by=tool_signal)
283
+ P->>K: challenge → change 轴 CHALLENGED
284
+ P->>P: diagnose(三分类,必须引用 breach evidence)
285
+ P-->>Prod: 新 Change 进入主循环(闭环)
286
+ end
287
+ ```
288
+
289
+ ### Memory Harvest 时序(COMPATIBILITY 路线)
290
+
291
+ ```mermaid
292
+ sequenceDiagram
293
+ autonumber
294
+ participant H as harness 自动记忆
295
+ participant M as pomaster memory
296
+ participant Inbox as inbox(PENDING)
297
+ participant Owner2 as Owner(batch review)
298
+ H->>M: harvest claude --harness-dir <dir>
299
+ M->>Inbox: 四桶初筛(TRUTH/KNOWLEDGE/EPISODE/PREFERENCE)
300
+ Owner2->>M: review --decide <id> --promote|--reject --note <必填>
301
+ M->>M: 分桶路由(KNOWLEDGE→恒 CANDIDATE+ADVISORY;TRUTH/DECISION/EVIDENCE→OWNER_ESCALATION)
302
+ M->>M: audit(MEMORY_DRIFT 探测 fail-closed)
303
+ ```
304
+
305
+ ## 类 Agent 架构
306
+
307
+ POMaster 不内置 daemon,也不托管 Agent——它给「在 harness 里跑的主 Agent」提供状态平面 + 执行身份 + 观测器:
308
+
309
+ ```mermaid
310
+ flowchart LR
311
+ subgraph HARNESS["Agent Harness(Claude Code / Codex / …)"]
312
+ MAIN["Main Agent<br/>(solo 直连形态)"]:::agent
313
+ SUB["Sub-agent / Role"]:::agent
314
+ end
315
+ subgraph POM["POMaster kernel"]
316
+ SESS["sessions(liveness 侧车)"]:::k
317
+ LOCK["locks(change/task/unit 三粒度互斥)"]:::k
318
+ AGX["Execution Identity(AGX-n)"]:::k
319
+ RT["AgentRuntime 契约<br/>(§58 四方法三探针)"]:::k
320
+ end
321
+ subgraph OBS["观测器(fail-closed 信号)"]
322
+ GK["DEF-GATEKEEPER<br/>分身漂移检测"]:::obs
323
+ SUP["DEF-SUP<br/>SOP 链触发观测"]:::obs
324
+ end
325
+ MAIN -- "begin/end execution" --> AGX
326
+ MAIN -- "attach/refresh" --> SESS
327
+ MAIN -- "acquire/heartbeat/steal" --> LOCK
328
+ SUB -- run/handoff(DEF-SUP 触发制,deferred) --> RT
329
+ AGX --> GK
330
+ SESS --> SUP
331
+ classDef agent fill:#e8f0fe,stroke:#1a73e8
332
+ classDef k fill:#fce8e6,stroke:#d93025
333
+ classDef obs fill:#fef7e0,stroke:#f9ab00
334
+ ```
335
+
336
+ 要点:
337
+
338
+ - **Execution Identity ≠ Execution Trace ≠ Evidence**:AGX-n 是短小稳定的执行身份(runtime/model/permit 快照);Trace 是行为侧车(writes/tool_receipts/evidence_refs,retention 四档);Evidence 是可验证证明。三者分离(A19 美学)。
339
+ - **Gatekeeper 防分身**:同一 execution 既提 proposal 又 ALLOW → drift 观测器亮灯——「系统永不自我批准」的机器面。
340
+ - **托管编排受 DEF-SUP 触发制门槛**:solo 直连是默认形态;run/handoff 等 SOP 编排在触发条件(重复链/第二贡献者/headless-CI)出现前显式 deferred——治理开销与风险成比例(Minimum Sufficient Governance)。
341
+
342
+ ## 五原语:一切能力的唯一来源
343
+
344
+ | 原语 | 回答的问题 |
345
+ |---|---|
346
+ | **Governed Object** | 系统里有什么值得长期识别的东西 |
347
+ | **State**(四轴:lifecycle/confidence/evidence/change) | 它现在处于什么状态、可信到什么程度 |
348
+ | **Context Projection** | 这个角色此刻应该看见什么 |
349
+ | **Transition / Permit** | 谁有权、凭什么条件允许它变化 |
350
+ | **Evidence** | 变化的证明由谁产出、如何防止假绿 |
351
+
352
+ Spec、Task、Gate、Knowledge、Brainstorm……全部是这五个原语的派生视图。
353
+ 三个新一等公民对象族(从旧体系教训中诞生):**分母 DENOMINATOR**(覆盖率的账本不许悄悄消失)、**键绑定 KEYBINDING**(治理 ID ↔ 代码路径的机器映射)、**producer 活性**(声明对象必须有人生产它)。
354
+
355
+ ## 哲学宪法(违者即是 bug)
356
+
357
+ - Small Constitution:硬约束极少而精——不伪造事实、不越权、不静默冲突、不无证据宣称完成
358
+ - No-op is elegant:没有必要的治理动作,零变化就是成功
359
+ - Framework as Review Surface:框架约束好了的人,不需要读 AI 写的每一行代码——但前提是判卷器诚实,所以我们用对抗性用例持续攻击自己的 gate
360
+ - Minimum Sufficient Governance:治理开销必须与变更风险成比例;小改动的体验是"几乎感觉不到 POMaster"
361
+ - Memory Sovereignty:删掉本机缓存 + fresh clone + bootstrap ≈ 项目认知完全恢复
362
+
363
+ ## 项目结构
364
+
365
+ ```text
366
+ packages/ kernel(状态与判卷权威)· cli(命令面)· gauntlet-lite(确定性 gate 腿)· schemas(FROZEN 词表 schema)
367
+ catalog/ policies · knowledge · gates · sensors · archetypes · tools——随包分发的工程策展物料(catalog-lock 逐字节对账;手补物料后 `pomaster catalog relock` 一键重锁)
368
+ references/ concept-ledger(治理概念账本)· external-sites-index(外部参照站点索引)
369
+ tests/ 单元 / 集成 / Golden / 对抗 / 行为 / 自托管基准(数量下限进 CI 棘轮,只升不降)
370
+ benchmarks/ mutation-kill · constitutional · run-all
371
+ legal/ THIRD_PARTY_NOTICES · PROVENANCE
372
+ ```
373
+
374
+ 技术栈:TypeScript · Node ≥ 22 · pnpm monorepo · Canonical State 为 JSON · Git 为版本与回滚底座 · 外部测试工具一律走 Adapter(绝不进核心)。
375
+
376
+ ## License
377
+
378
+ POMaster 采用**双许可**发布(Owner 决议 2026-09-01):
379
+
380
+ - **PolyForm Noncommercial 1.0.0**(默认公共许可,仅授权非商业使用):全文见 [`LICENSE`](./LICENSE),官方标准文本逐字落盘;
381
+ - **Commercial**(独立商业授权):任何商业使用(含企业内部商用、小企业商用)均不在公共许可范围内、不豁免,需另行签署书面商业授权——说明见 [`COMMERCIAL_LICENSE.md`](./COMMERCIAL_LICENSE.md)。
382
+
383
+ 该组合为 source-available 双许可,不应宣传为 OSI Open Source。商标与项目标识归属见 [`TRADEMARKS.md`](./TRADEMARKS.md);贡献授权条款见 [`CONTRIBUTING.md`](./CONTRIBUTING.md);安全漏洞报告渠道见 [`SECURITY.md`](./SECURITY.md);第三方依赖许可与 notice 义务见 [`legal/THIRD_PARTY_NOTICES.md`](./legal/THIRD_PARTY_NOTICES.md)。
384
+
385
+ 商业授权联系:**allenxujianyang@outlook.com**
386
+
387
+ > 正式公开发布前需完成法律专业人士复核。Trellis 仅作机制研究对照,零代码继承。
388
+
389
+ ## 联系方式
390
+
391
+ - **商业授权 / 合作**:[allenxujianyang@outlook.com](mailto:allenxujianyang@outlook.com)
392
+ - **问题反馈**:[GitHub Issues](https://github.com/River-Singer/POMaster_VNext/issues)
393
+ - **安全漏洞**:见 [`SECURITY.md`](./SECURITY.md)(不走公开 issue)