pomaster 0.5.3 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,8 +56,8 @@ corepack pnpm studio:react:dev # React sidecar(antd 对照浏览,端口 600
56
56
 
57
57
  - init 的**技术栈问卷** 14 键逐项必答(前端 9 + 后端 5),答完写回 `baseline/<lane>/stack.yaml`;
58
58
  - 选型落定后自动生成 **PRESET-DRAFT 预置草案**——逐条溯源到主题文档与 overlay,Owner 可改;业务实体/接口/数据模型零预置;
59
- - `pomaster baseline confirm` 以 **sha256 快照烙印**基线;
60
- - closeout 双重阻断:未确认 → `BASELINE_NOT_CONFIRMED`;确认后改动 → `BASELINE_DRIFT`(检出谁改了架构);确认后的修改走 `--change` 治理通路。
59
+ - `pomaster baseline confirm` 以 **sha256 快照烙印**基线——快照分母 = 25 文件确认资产清单(2 stack.yaml + 22 份基线 md + design-tokens.yaml);确认前提是**阻塞集清零**(未销账且未豁免的键才阻塞——Owner 可在 manifest unknowns 台账登记豁免行,登记行不阻塞;doctor/status 呈现阻塞余量);
60
+ - closeout 双重阻断:未确认 → `BASELINE_NOT_CONFIRMED`;确认后改动 → `BASELINE_DRIFT`(检出谁改了架构)。漂移的消解必须显式留痕——重确认三通道:`--change <CHANGE-id>` 治理通路 / `--ack-drifted --note "<理由>"` Owner 手改声明(AI 代跑须持 Owner 指示)/ 裸重确认显式拒绝。
61
61
 
62
62
  ### ④ 证据链:一切结论带收据
63
63
 
@@ -75,7 +75,7 @@ pomaster alerts
75
75
  pomaster doctor
76
76
  pomaster portability bootstrap/check
77
77
  pomaster update --check/--yes
78
- pomaster baseline set/confirm # set = 单键后补销账;confirm = 基线确认 gate(14 unknowns 销账后 digest 快照——closeout 阻断码与 doctor/status 确认态的消费源)
78
+ pomaster baseline set/confirm # set = 单键销账(确认态在座改型须持 --change——写入转 pending-change 批,同 ref confirm 终结);confirm = 基线确认 gate(前提 = 阻塞集清零:未销账且未豁免的键,manifest 豁免登记行不阻塞;快照 = 25 文件确认资产清单 sha256;重确认三通道 --change / --ack-drifted --note / 裸重确认拒绝;doctor/status 呈现确认态与阻塞余量——closeout 阻断码的消费源)
79
79
 
80
80
  # ① DISCOVERY —— 需求拷问/问题闸/决议图(Brainstorm/Question Gate)
81
81
  pomaster brainstorm start/question-gate/status/decide/promote
@@ -113,6 +113,7 @@ pomaster resolve "<need>" [--hints ...]
113
113
  pomaster new-entity check <governed-id> [--need ...]
114
114
  pomaster inspect <governed-id>
115
115
  pomaster graph <governed-id> [--view impact]
116
+ pomaster recon import-graph|migrations|sbom # 宿主代码 recon(三子命令均必持 --execution-id <AGX-n>——execution begin 登记的执行身份锚,观察回执的身份证明):import 图静态扫描 → 17 观察回执 sidecar(unmapped 清单/externalImports/confidence)/ migration 目录五栈词形盘点(prisma/flyway/liquibase/alembic/django_style 纯读盘零工具执行 → ENVREC 回执)/ SBOM 依赖清单采集(cdxgen 腿——工具缺席 NOT_INSTALLED 显式缺席、解析失败 INCONCLUSIVE 兜底,components/dependencies 计数)——产物只落 evidence sidecar 平面零权威写口
116
117
  pomaster research list/inspect/request/handoff
117
118
  pomaster eval --suite behavioral
118
119
  pomaster catalog status/explain/relock
@@ -123,7 +124,7 @@ pomaster run <task>
123
124
  pomaster handoff <task> --to <role>
124
125
  pomaster session attach/refresh/list
125
126
  pomaster lock acquire/heartbeat/release/steal/list
126
- pomaster execution begin/end/list
127
+ pomaster execution begin/end/list/audit # audit = 变更越界审计(--execution-id + --diff-base:git diff 起始锚变更集 → KEYBINDING 解析 → permit scope 判 in/out → OBS 回执 sidecar + 越界明细;越界 exit 1——Detection 半边,纯读零权威写口)
127
128
  pomaster trace show/list
128
129
  # pomaster session(不带子命令)= 治理速览投影(SessionStart 注入源;≤10k 字符,恒 exit 0;尾部带首答确认协议指令段)
129
130
  # pomaster alerts(重入口 UserPromptSubmit 源)= 可行动项过滤器 + workflow 路由段(干净=非空但极简,恒 exit 0)
@@ -146,7 +147,7 @@ cd your-project
146
147
  pomaster init
147
148
  ```
148
149
 
149
- 一条命令,幂等(重复执行 NO_CHANGE,人类文件一律不覆盖):铺出 `.pomaster/` 治理目录树、登记 19 份 SPEC 预植对象、生成 `AGENTS.md` 重入口(15 份 skills 命令卡 + hooks 注入——Agent 开会话即自动看到治理状态)。init 还会**自动观察宿主 `package.json`**:框架/router/状态/Grid/UI 库/测试栈等可观察事实直接回填 stack.yaml(标注 `[Observed: package.json]`),问卷只问规范性决策(如 CSS 方案)——TTY 下技术栈问卷只问机器观察不出的键(中断 = 零写入;后补用 `pomaster baseline set`)。
150
+ 一条命令,幂等(重复执行 NO_CHANGE,人类文件一律不覆盖):铺出 `.pomaster/` 治理目录树、登记 19 份 SPEC 预植对象、生成 `AGENTS.md` 重入口(14 份 skills 命令卡 + hooks 注入——Agent 开会话即自动看到治理状态)。init 还会**自动观察宿主 `package.json`**:框架/router/状态/Grid/UI 库/测试栈等可观察事实登记为**观察候选**(问卷题面标注 `[Observed: package.json]`)——候选只是题面参考注记,权威 stack.yaml 保持 UNKNOWN,直到 Owner 经问卷或 `pomaster baseline set` 逐键采纳;TTY 下技术栈问卷 14 键逐项必答(中断 = 零写入)。
150
151
 
151
152
  **组件画廊**:[river-singer.github.io/POMaster_VNext](https://river-singer.github.io/POMaster_VNext/)(在线版)· POMaster 仓库内 `corepack pnpm studio:dev`(Vue 主实例)/ `corepack pnpm studio:react:dev`(React sidecar 对照)——baseline 确认后按栈选择性参考(如 baseline.ui=ant-design-vue → antdv 组件真渲染对照);未确认前仅作了解,不作为动手前置。
152
153
 
@@ -187,7 +188,7 @@ pomaster brainstorm promote idea-export-btn --to TASK --basis msd_reached --appl
187
188
  # —— 八拍推进:next-action 会逐拍给唯一建议命令 ——
188
189
  pomaster status # R_PERMIT_MISSING(--subject 为 affected_objects 派生建议)
189
190
  pomaster permit issue --subject PAGE.USER_LIST --actor human:owner --change-ref TASK.IDEA_EXPORT_BTN
190
- pomaster baseline confirm # R_BASELINE_NOT_READY(unknowns 全销账后的一次性收口账)
191
+ pomaster baseline confirm # R_BASELINE_NOT_READY(阻塞集清零后的一次性收口账)
191
192
  pomaster context compile --role frontend --change TASK.IDEA_EXPORT_BTN # ③ 投影
192
193
  pomaster execution begin --role implementer --runtime script --identity-kind script --task-id TASK.IDEA_EXPORT_BTN # ④ 执行身份
193
194
  # ……在你的 Agent harness(Claude Code 等)里实现代码……
@@ -304,6 +305,19 @@ Spec、Task、Gate、Knowledge、Brainstorm……全部是这五个原语的派
304
305
  - Minimum Sufficient Governance:治理开销必须与变更风险成比例;小改动的体验是"几乎感觉不到 POMaster"
305
306
  - Memory Sovereignty:删掉本机缓存 + fresh clone + bootstrap ≈ 项目认知完全恢复
306
307
 
308
+ ## 自举(Self-Hosting):本仓被自家治理
309
+
310
+ POMaster 的开发仓自己吃自己的治理:仓库根本机台账 `.pomaster/`(入 `.gitignore`,治理态不入库)由 `createStore` 骨架语义重建——`loadStoreReadOnly` 与 doctor 五探针全绿(2026-09-11 自举审计 F1「vocab 指纹过期空骨架」由此根治:重建后 `vocab_lock.prefixes` 恒等于当前词表镜像)。本工作区(仓库上层宿主目录)的 Claude Code 已注册 **PreToolUse 写前拦截 hook**:`Edit|Write|NotebookEdit|Bash` 工具调用先经 `hooks/exec-guard-hook.py`(判卷逻辑单一源,git 跟踪;运行时面 `.claude/hooks/` 内为同名词形转发 shim)解析目标路径 → KEYBINDING 映射 governed id → 调 `pomaster exec-guard` 对照活跃 execution 的 permit scope 判卷:
311
+
312
+ | 判定 | 行为 | 条件 |
313
+ |---|---|---|
314
+ | (a) 透传放行 | exit 0 + stderr 一行注记 | store 未初始化 / 无活跃 execution / 目标无 KEYBINDING 绑定(unmapped)/ Bash 命令无路径词形——条件激活语义,非治理态日常操作不堵 |
315
+ | ALLOW | exit 0 + stderr 注记 | 活跃 execution 的任一 permit scope.subject_ids 覆盖映射 id(多 permit 并集,`kernel checkPermit` 唯一判卷权威) |
316
+ | (b) DENY | exit 2 阻断 + stderr 指路正确 permit 面 | 映射 id ∉ scope(PERMIT_SCOPE_DENIED)/ execution 显式无 permit / permit 引用不存在(PERMIT_UNKNOWN) |
317
+ | (c) fail-open | exit 0 + stderr 显式声明 | 判卷器自身故障(CLI 入口缺席 / 进程故障 / 台账损坏)——防 hook 卡死开发流,审计线索由 Detection 半边 `pomaster execution audit`(①号切片)兜底复查 |
318
+
319
+ 如实边界:Bash matcher 只做路径词形粗筛不做 shell 语义分析(op 恒按写语义 `upsert_object` 判卷,读命令提及 mapped 路径会误报 DENY);「不 begin execution 就没有判卷」是条件激活语义的既定开口(未审计会话由 execution audit 呈报);permit 仍走 Owner 既有通路,hook 不签发。三态各有确定性测试(`packages/cli/tests/exec-guard-hook.spec.ts`,端到端真跑 `exec-guard`)。
320
+
307
321
  ## 深入阅读
308
322
 
309
323
  - [`docs/init-reference.md`](docs/init-reference.md) — `pomaster init` 全机制:产物表 / 目录宪法全树 / 播种语义 / 重入口三件套 / 技术栈问卷 / 基线确认 gate / 预置草案 / doctor 探针矩阵