flower-trellis 0.6.5 → 0.6.7

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 (44) hide show
  1. package/README.md +12 -4
  2. package/enhancements/0.6/.agents/skills/trellis-check-all/SKILL.md +6 -31
  3. package/enhancements/0.6/.agents/skills/trellis-check-all/references/full-profile.md +10 -49
  4. package/enhancements/0.6/.agents/skills/trellis-check-all/references/light-profile.md +9 -28
  5. package/enhancements/0.6/.agents/skills/trellis-check-all/references/maven-evidence.md +14 -0
  6. package/enhancements/0.6/.agents/skills/trellis-check-all/references/reporting-and-disposition.md +10 -1
  7. package/enhancements/0.6/.agents/skills/trellis-check-all/references/verification.md +29 -0
  8. package/enhancements/0.6/.agents/skills/trellis-flower-update/SKILL.md +8 -5
  9. package/enhancements/0.6/.agents/skills/trellis-route/SKILL.md +1 -1
  10. package/enhancements/0.6/.agents/skills/trellis-worktree/SKILL.md +20 -8
  11. package/enhancements/0.6/.claude/skills/trellis-check-all/SKILL.md +6 -31
  12. package/enhancements/0.6/.claude/skills/trellis-check-all/references/full-profile.md +10 -49
  13. package/enhancements/0.6/.claude/skills/trellis-check-all/references/light-profile.md +9 -28
  14. package/enhancements/0.6/.claude/skills/trellis-check-all/references/maven-evidence.md +14 -0
  15. package/enhancements/0.6/.claude/skills/trellis-check-all/references/reporting-and-disposition.md +10 -1
  16. package/enhancements/0.6/.claude/skills/trellis-check-all/references/verification.md +29 -0
  17. package/enhancements/0.6/.claude/skills/trellis-flower-update/SKILL.md +8 -5
  18. package/enhancements/0.6/.claude/skills/trellis-route/SKILL.md +1 -1
  19. package/enhancements/0.6/.claude/skills/trellis-worktree/SKILL.md +20 -8
  20. package/enhancements/0.6/overrides/conflicts.json +4 -4
  21. package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/content.md +2 -4
  22. package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/planning-contract-content.md +1 -1
  23. package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/readiness-content.md +2 -2
  24. package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/review-content.md +2 -2
  25. package/enhancements/0.6/scripts/worktree_setup.py +119 -17
  26. package/enhancements/MANIFEST.json +2 -2
  27. package/package.json +3 -3
  28. package/src/assets/flower_session_start.py +1 -1
  29. package/src/assets/flower_update_hook.py +135 -14
  30. package/src/builtin-plugins/skill-garden/content-adapter.js +4 -0
  31. package/src/builtin-plugins/skill-garden/project-metadata.js +41 -0
  32. package/src/commands/self-check.js +3 -1
  33. package/src/commands/self-update.js +3 -1
  34. package/src/commands/update-check.js +3 -3
  35. package/src/commands/worktree.js +36 -5
  36. package/src/lib/apply-enhancements.js +1 -1
  37. package/src/lib/manifest.js +46 -43
  38. package/src/lib/self-check.js +8 -4
  39. package/src/lib/worktree-flower-state.js +347 -0
  40. package/src/plugin/application-service.js +1 -44
  41. package/src/plugin/install/state-validation.js +47 -0
  42. package/src/plugin/install/transaction-writer.js +23 -2
  43. package/src/plugin/state/ignore-rules.js +40 -0
  44. package/src/plugin/state/project-store.js +3 -25
package/README.md CHANGED
@@ -184,9 +184,13 @@ flower-trellis plugin
184
184
  |------|------|
185
185
  | `.flower/plugins.json` | 可提交;只记录用户直接声明的 Plugin |
186
186
  | `.flower/plugin-lock.json` | 可提交;记录固定版本、完整依赖图、来源与完整性摘要 |
187
+ | `.flower/.gitignore` | 可提交;保护本机数据并放开共享记录 |
187
188
  | `.flower/state.json` | 本机;记录实际平台、生成路径、ownership 与 Patch provenance |
189
+ | `.flower/settings.json` | 本机;保存个人更新偏好 |
188
190
  | `.flower/cache/`、`.flower/transactions/` | 本机;可清理缓存与事务恢复证据 |
189
191
 
192
+ 安装或升级内置 Skill-Garden 时,已有根 `.gitignore` 会幂等维护 Flower 共享规则,允许正常提交上述声明、锁和局部忽略文件;重复升级不会重复添加。状态、个人设置和缓存仍被忽略,不会自动暂存或提交。根 `.gitignore` 不存在时不额外创建它。
193
+
190
194
  `rd-guide` 是随包预注册、默认启用但惰性访问的 GitLab Marketplace。它的 GitLab 地址、项目和 ref 随 Flower 包升级,用户配置只保存启用或停用偏好,避免旧的用户级完整副本静默遮蔽包内修复;需要其它地址或分支时应新增独立 source ID。打开管理器后,`发现` 页会在已有凭据时读取远程目录;未登录时只展示授权入口,不会尝试读取仓库内容。普通交互默认使用 Device Flow,PKCE 浏览器登录保留为来源详情中的高级选项。OAuth 只申请 `read_api read_repository`,Application Secret 和 token 都不会写入项目文件。
191
195
 
192
196
  GitHub 首版只支持 `github.com` 公共仓库和匿名 REST,不保存 PAT 或其它凭据。来源会固定确认后的格式入口;安装 lock 固定完整 commit 与 canonical digest,通过 Marketplace 发现时还会固定索引仓库和索引 commit。匿名 API 可能受每小时 60 次/IP 的主要限额影响,限流会显示为 GitHub 诊断,不会转成登录提示。
@@ -218,7 +222,7 @@ flower-trellis plugin validate .flower-plugin --subject plugin --json
218
222
  flower-trellis plugin add flower/flower-plugin-author --platform codex --json
219
223
  ```
220
224
 
221
- 旧 `.trellis/.flower-manifest.json` 只作为迁移证据读取。下一次完整 init/update 会把期望、锁定和本机状态迁移到 `.flower/`,保留旧文件供核对;普通 `flower-trellis update` 重放已锁定版本,只有显式 `plugin update` 才解析外部 Plugin 新版本。
225
+ 旧 `.trellis/.flower-manifest.json` 在下一次增强安装或升级时完成一次迁移:保留必要的更新策略和缓存,写入现代记录后事务性删除旧文件,失败恢复。现代配置优先;显式 `--no-enhance` 不提前删除未经迁移的旧记录。普通 `flower-trellis update` 重放已锁定版本,只有显式 `plugin update` 才解析外部 Plugin 新版本。
222
226
 
223
227
  ### 升级备份保留
224
228
 
@@ -251,12 +255,16 @@ flower-trellis plugin add flower/flower-plugin-author --platform codex --json
251
255
  - Codex:向 `.codex/hooks.json` 的 `SessionStart` 追加 `.trellis/scripts/flower_update_hook.py`。
252
256
  - Claude Code:只向 `.claude/settings.json` 的 `SessionStart` `startup` matcher 追加该 hook,不挂 `clear` / `compact`。
253
257
 
254
- 启动 hook 不会直接安装 npm 包,也不会直接改项目文件。它只调用:
258
+ 启动 hook 不会直接安装 npm 包,也不会直接改项目文件。它先检查本机 CLI;CLI 可用时继续调用:
255
259
 
256
260
  ```bash
257
261
  flower-trellis self-check --json --target .
258
262
  ```
259
263
 
264
+ 团队成员克隆已提交升级文件的项目后,即使没装 Flower CLI,同一 Python hook 也会读取项目锁并注入 `<flower-cli-bootstrap>`。助手先展示锁定版本和 `npm install -g flower-trellis@<版本>`,成员确认后才安装,验证 CLI 后继续原请求。全局安装沿用现有的本机 Trellis 命令同步,不隐式升级项目内容。版本未知、缺少 Node/npm 或安装失败时会说明原因,不猜 latest、不自动提权、不循环安装。
265
+
266
+ 自动入口需要 Python 可用且 Codex/Claude 启用 hooks;其他平台可通过 `trellis-flower-update` 调用同一检测脚本的 `--bootstrap-only` 模式。成员拒绝安装后,本次对话不重复追问。
267
+
260
268
  发现可更新或项目已铺版本不一致时,向 AI 注入 `<flower-update>` 上下文。无更新、离线、关闭检查、npx 临时运行时默认不打扰;同一更新提示会按本机提示节流状态降噪。
261
269
 
262
270
  检查分两层:
@@ -296,7 +304,7 @@ tmp 中保存本地运行缓存:
296
304
  }
297
305
  ```
298
306
 
299
- 旧项目如果已经在 manifest 的 `updateCheck` 里带有缓存字段,新版本会先读取兼容,并在下一次写入时清理这些旧字段。
307
+ 旧项目 manifest 的 `updateCheck` 在升级前仍可兼容读取;增强迁移成功后必要配置转入现代位置,旧 manifest 文件删除。
300
308
 
301
309
  `policy` 可选:
302
310
 
@@ -353,7 +361,7 @@ flower banner → 平台多选菜单 → Trellis 原生交互(模板 / monorepo
353
361
 
354
362
  - **统一品牌头部**:Trellis 子进程在伪终端(`node-pty`)中运行,其原生的模板 / monorepo / 冲突等交互完整保留,但重复打印的启动 banner 被过滤,全程只呈现一个 flower banner。
355
363
  - **按平台铺设技能**:Claude 铺到 `.claude/skills`,Codex / Gemini 等铺到 `.agents/skills`;并做平台后处理:Codex 兼容清理旧 `config.toml` 的 `[features.multi_agent_v2]`,在保留上游 hooks 的基础上补全 `SessionStart`;Claude Code 只在 `startup` SessionStart 挂载启动更新检查。
356
- - **幂等执行**:0.6 Patch 使用受管 marker 原位升级,完整预检通过后只写 changed 文件,首次修改前备份到 `.trellis/.backup-flower/`;技能资产覆盖式铺设,并通过 `.trellis/.flower-manifest.json` 精确清理已淘汰路径。0.5/old 继续使用兼容注入路径。
364
+ - **幂等执行**:0.6 Patch 使用受管 marker 原位升级,完整预检通过后只写 changed 文件;技能资产和现代 `.flower/state.json` 记录进入同一插件事务,通过路径 ownership 与摘要精确清理淘汰内容。0.5/old 继续使用兼容注入路径,旧 manifest 只用于迁移识别。
357
365
  - **结构化 Patch**:Trellis 0.6 的 workflow、skill、hook 与平台配置统一通过 `insert / replace / remove` 预检后应用;selector/baseline 或已知最终协议冲突时在写入前停止。
358
366
  - **上线事项账本**:强化包通过 Finish-Work Patch 在归档前智能识别 SQL、配置、批处理 / 部署脚本 / 数据修复、外部系统 / 依赖平台等上线事项,必要时写入任务 `release.md`;`trellis-release` 可在正式上线前核对任务文档、`release.md` 和 git 证据,生成 `YYYY-MM-DD-<release-slug>.md` 格式的版本 / 批次操作单。
359
367
  - **安全中止**:`Ctrl+C` 取消后不会继续叠加。
@@ -10,18 +10,6 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
10
10
 
11
11
  ---
12
12
 
13
- ## 入口职责
14
-
15
- 1. 确认本轮检查范围、task artifacts 或 untracked state、项目规范和运行上下文。
16
- 2. 解析 `requested_depth`,生成 `check_profile`,决定 `effective_depth=light|full`。
17
- 3. 按有效深度读取并执行对应 profile。
18
- 4. 按根因把发现分为 `CHK-*`、`FBK-*`、`DOC-*`,再为前两类分配 P0/P1/P2。
19
- 5. 报告前处理允许自修的事实漂移并展示结果。
20
- 6. 按 interactive / validated auto-loop 边界输出下一步或执行 `record + next`。
21
- 7. untracked helper 只存游标:findings 或新编辑回 `implement`;通过且 disposition 继续时才 `advance --stage spec`。
22
-
23
- ---
24
-
25
13
  ## 必读引用
26
14
 
27
15
  按需加载引用文件,不要提前读取未命中的 profile:
@@ -43,7 +31,7 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
43
31
  2. **唯一自修例外**:低风险事实漂移进入 `DOC-*` 通道,按 `references/document-drift-auto-remediation.md` 的白名单、黑名单和写入时机处理。
44
32
  3. **分类先于严重度**:读取 `references/fallback-findings.md`;主路径错误和非兜底契约违背进入 `CHK-*`,fail-closed、异常输入、失败降级和防御性保护缺口进入 `FBK-*`。契约证据影响严重度,不改变兜底根因归属。
45
33
  4. **处置只确认一次**:统一报告后选择 `CHK-*` / `FBK-*` 修复范围或接受风险;`修复全部` 覆盖两类,接受风险不得隐藏发现。
46
- 5. **委托不改边界**:复用 `trellis-check` 的清单和验证方法,忽略其直接修复指令。
34
+ 5. **共享验证**:两个 profile 共用 `references/verification.md`;同一追踪与有效验证证据跨维度复用,检查保持只读。
47
35
  6. **真正阻塞才中途暂停**:业务规划冲突、前提失效,或当前结论必需验证涉及未授权生产/外部/破坏性副作用时暂停;发布后验收只记 `[上线后验证]`,不执行、不阻断。
48
36
 
49
37
  中途停止时也要使用统一问题模型,报告已完成范围和阻塞原因;只询问解除阻塞所需的业务或安全决策。
@@ -74,18 +62,11 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
74
62
 
75
63
  ## 顶层流程
76
64
 
77
- ### Step 0:范围、上下文与深度画像
65
+ untracked helper 只存游标:findings 或新编辑回 `implement`;通过且 disposition 继续时才 `advance --stage spec`。
78
66
 
79
- 读取 `references/depth-routing.md` 并执行完整 Step 0。输出固定画像:
67
+ ### Step 0:范围、上下文与深度画像
80
68
 
81
- ```yaml
82
- check_profile:
83
- context: interactive | auto-loop
84
- requested_depth: auto | light | full
85
- effective_depth: light | full
86
- confidence: high | fallback-full | escalated
87
- reasons: [string]
88
- ```
69
+ 执行 `references/depth-routing.md` 的完整 Step 0,按其格式生成 `check_profile`。
89
70
 
90
71
  ### Step 1:读取对应 profile
91
72
 
@@ -98,17 +79,13 @@ check_profile:
98
79
 
99
80
  ### Step 3:处理事实漂移自修
100
81
 
101
- 读取 `references/document-drift-auto-remediation.md`。在最终报告前:
102
-
103
- - inline:主会话应用允许的 `DOC-*` 修复并做定向验证。
104
- - subagent:主会话审阅 subagent 返回的 `DOC-*` 候选,只应用满足白名单且无歧义的修复。
105
- - auto-loop:主会话应用允许的 `DOC-*` 修复后再 `record`;若只存在已修复事实漂移且无剩余 `CHK-*` / `FBK-*`,结果可为 `ok`,摘要必须包含自动修复说明。
82
+ 按 `references/document-drift-auto-remediation.md` 的白名单和证据规则,由主会话处理允许的 DOC 并定向验证;subagent 仅返回候选。完成后再报告或交给 reporting reference 的 auto-loop 分流。
106
83
 
107
84
  不满足自动修复条件的文档问题根据根因转为 `CHK-*`、`FBK-*` 或剩余风险,按普通修复范围处理。
108
85
 
109
86
  ### Step 4:统一报告与分流
110
87
 
111
- 读取 `references/reporting-and-disposition.md`。报告必须展示:
88
+ 读取 `references/reporting-and-disposition.md`。报告先自然说明实际改动及行为影响,再展示:
112
89
 
113
90
  - `check_profile`;
114
91
  - 三个维度状态;
@@ -123,12 +100,10 @@ check_profile:
123
100
  ## 反模式
124
101
 
125
102
  - 入口默认加载 full profile,导致 `auto` 被 full 语气带偏。
126
- - 发现一个普通问题就暂停询问一次。
127
103
  - 把 `trellis-check` 的自动修复指令带入普通 `CHK-*`。
128
104
  - 先按严重度决定 `CHK-*` / `FBK-*` 通道,混淆根因性质与影响等级。
129
105
  - 把纯偏好、无具体场景或无法验证收益的“更健壮”建议记录为 `FBK-*`。
130
106
  - 因兜底行为已写入契约就把保护路径根因改列为 `CHK-*`。
131
- - subagent 直接修改工作区。
132
107
  - 把需求变更、验收标准、产品语义或设计取舍伪装成文档漂移自动修复。
133
108
  - light 未命中完整穷举条件仍继续 light。
134
109
  - 无环境证据却把维度标记为通过。
@@ -1,6 +1,6 @@
1
1
  # Full Profile
2
2
 
3
- Full 是完整验收映射和全影响面审查。只有 `check_profile.effective_depth=full` 时读取本文件。
3
+ Full 是完整验收映射和全影响面审查。只有 `check_profile.effective_depth=full` 时读取本文件;共享验证规则见 `references/verification.md`。
4
4
 
5
5
  ---
6
6
 
@@ -12,9 +12,9 @@ untracked 上下文没有 task artifacts,本 Step 标记 `N/A`;不得把 sum
12
12
 
13
13
  - PRD Requirement / Acceptance Criteria:行为基线。
14
14
  - Design API、数据模型、数据流、关键决策和 rollback:技术基线。
15
- - Implement 有序步骤、review gate 和 rollback point:落地基线。
15
+ - Implement 中未被前两者覆盖的产物、review gate 和 rollback point:补充基线。
16
16
 
17
- full 提取所有适用条目。每条记录来源位置,实际阅读对应代码后再判断。
17
+ full 提取所有适用条目。同一行为在多份文档中重复出现时合并验收,保留全部来源位置;不同约束、边界场景或相互冲突的要求不得合并丢失。实际阅读对应代码后再判断。
18
18
 
19
19
  ### 1.2 必查类型
20
20
 
@@ -22,7 +22,7 @@ full 提取所有适用条目。每条记录来源位置,实际阅读对应代
22
22
  | --- | --- |
23
23
  | `prd.md` | AC、需求、业务规则、UI 文案、边界和异常场景 |
24
24
  | `design.md` | API 路径/方法/字段、数据模型、数据流、关键 tradeoff、rollout/rollback |
25
- | `implement.md` | 有序步骤是否落地、review gate 是否满足、rollback point 是否可用 |
25
+ | `implement.md` | 补充产物是否落地、review gate 是否满足、rollback point 是否可用;不重复核对已覆盖的实现步骤 |
26
26
 
27
27
  `implement.md` 中的 validation command 在本步骤只做静态前提核对;真实运行归 Step 3。
28
28
 
@@ -41,6 +41,8 @@ full 提取所有适用条目。每条记录来源位置,实际阅读对应代
41
41
 
42
42
  文案要求逐字一致时,对照最终有效文案来源;不要强制要求文案必须直接写在组件字面量中。
43
43
 
44
+ 同一条调用链只追踪一次,记录实现位置和关键边界证据,供 Step 2 与 Step 3 复用。后续只补尚未覆盖的约束、调用方、异常分支或失效证据;不得因复用而跳过独立的验收判断。
45
+
44
46
  ### 1.4 记录结果
45
47
 
46
48
  发现偏差、缺失、部分实现或文案不一致时,写入统一问题集合并继续。不要在此步骤询问“先修还是继续检查”。
@@ -49,14 +51,14 @@ full 提取所有适用条目。每条记录来源位置,实际阅读对应代
49
51
 
50
52
  ## Step 2:实现假设验证
51
53
 
52
- 根据实际变更选择适用 Dimension。每个适用 Dimension 都要确认源码或真实契约证据,不能凭记忆通过。
54
+ 根据实际变更选择适用 Dimension。每个适用 Dimension 都要确认源码或真实契约证据,不能凭记忆通过。先复用 Step 1 的追踪结果,再核对本维度新增的约束;验证命令需求统一交给 Step 3,不在各 Dimension 分别运行。
53
55
 
54
56
  ### Dimension A:API Contract
55
57
 
56
58
  **Trigger**:新增或修改已有 API 调用、请求参数或响应解析。
57
59
 
58
60
  - 读取 Controller/Handler 和 DTO/Schema,确认实际请求、响应结构。
59
- - 找到项目内同 API 或同模式调用作为参考。
61
+ - 契约仍有歧义时,补查项目内同 API 或同模式调用。
60
62
  - 确认参数名、类型、默认值、分页字段和起始页码。
61
63
  - 覆盖正常、空值、零值和错误响应。
62
64
 
@@ -67,7 +69,7 @@ full 提取所有适用条目。每条记录来源位置,实际阅读对应代
67
69
  - 确认容器关闭或切换时是否销毁子组件。
68
70
  - 确认受控值、初始化值和外部状态绑定。
69
71
  - 确认状态保持/重置行为符合规划。
70
- - 对照项目内相同容器的既有用法。
72
+ - 状态约定仍不明确时,补查项目内相同容器的既有用法。
71
73
 
72
74
  ### Dimension C:Data History
73
75
 
@@ -87,54 +89,13 @@ full 提取所有适用条目。每条记录来源位置,实际阅读对应代
87
89
  - 覆盖缺省、空值、零值、特殊字符和错误传播。
88
90
  - 分层代码分别正确不等于整条链路正确,必须连起来核对。
89
91
 
90
- ### Dimension E:Verification Tests
91
-
92
- **Trigger**:Dimension A-D 任一适用。
93
-
94
- - 自动化测试优先;可重复的手动步骤、静态检查或定向命令也可作为验证证据。
95
- - 优先覆盖最脆弱的参数名、嵌套结构、历史数据和空值路径。
96
- - 测试存在时实际运行;未运行不能报告通过。
97
- - 仅缺少自动化测试文件不得生成 `CHK-*`;项目 spec、风险等级或回归概率明确要求自动化覆盖时,缺失测试仍记录问题。
98
- - 缺少完成当前结论所必需的充分证据时记录 `CHK-*`,等待用户确认修复范围后再补充验证或测试。
99
-
100
92
  发现假设错误时写入统一问题集合并继续其它可执行检查。只有该错误让后续检查前提失效时,才按“真正阻塞”规则暂停。
101
93
 
102
94
  ---
103
95
 
104
96
  ## Step 3:完整性、规范与项目验证
105
97
 
106
- 读取 `.agents/skills/trellis-check/SKILL.md`(Claude-only 项目读取对应 `.claude` 副本),复用以下内容:
107
-
108
- - 适用 spec 的读取方法;
109
- - lint、typecheck、测试等项目验证命令;
110
- - 测试覆盖、跨层数据流、复用、依赖和同层一致性检查;
111
- - debug logging、warning suppression 和类型安全绕过检查。
112
-
113
- ### Audit-Only 覆盖规则
114
-
115
- 在 Check-All 内执行时,下列 `trellis-check` 指令一律失效:
116
-
117
- - “Fix any failures before proceeding”;
118
- - “fix them directly”;
119
- - “Report and Fix”;
120
- - 任何要求检查 agent 直接编辑、补测试或反复修到通过的语句。
121
-
122
- 验证失败时记录命令、退出状态和关键错误到统一问题集合,继续其它独立验证。可能写业务数据或外部系统的验证不直接运行:当前结论所必需且提交前原则上可完成时标记阻断型 `部分验证` 或 `阻塞`;本质依赖部署后、生产环境或真实外部状态时登记 `[上线后验证]`,不得自动执行。
123
-
124
- ### Maven Evidence 复用
125
-
126
- 实际变更位于 Maven reactor 时,按 `maven_verify.py` 的 evidence schema 只读执行:
127
-
128
- ```bash
129
- python3 ./.trellis/scripts/maven_verify.py check --latest --require-plan <final-plan.json>
130
- ```
131
-
132
- - `reusable`:核对 lifecycle、模块、消费者、测试、附属制品和 skip 项后纳入验证证据。
133
- - `partial`:记录未覆盖的 module/consumer/test/artifact 或更高 lifecycle 要求。
134
- - `stale`:记录源码、测试、POM、外部父 POM、Git 或工具链失效原因。
135
- - `failed` / `blocked`:保留命令退出或证据损坏事实,不把未执行验证写成通过。
136
-
137
- Check-All 与 dedicated subagent 都是 audit-only:不得调用 `maven_verify.py plan/run`,不得运行任何会写 `target/`、本地仓库或缓存的 Maven goal。缺少可复用 evidence 时,输出由主会话或 implement 路径执行的精确重跑计划需求;不得默认 `clean package/install`、`-amd` 或全 reactor。
98
+ 执行 `references/verification.md` 的共享清单,汇总 Step 1/2 和项目 spec 的验证需求,复用有效证据并只执行未覆盖的必要命令。数据流沿用前两步证据,不重新完整追踪。
138
99
 
139
100
  所有发现候选按 `references/fallback-findings.md` 先判定 `CHK-*` / `FBK-*`,再分配严重度。严重度不得反向决定通道;不满足三项硬准入的泛化建议不报告,保护收益或验证环境不完整则保留 FBK 并标记报告缺口。
140
101
 
@@ -1,18 +1,14 @@
1
1
  # Light Profile
2
2
 
3
- Light 是局部且可穷举的检查,不是“少看一点”的检查。只在 `check_profile.effective_depth=light` 时读取本文件。
3
+ Light 是局部且可穷举的检查,不是“少看一点”的检查。只在 `check_profile.effective_depth=light` 时读取本文件;共享验证规则见 `references/verification.md`。
4
4
 
5
5
  ---
6
6
 
7
7
  ## 适用边界
8
8
 
9
- 只有同时满足以下条件才继续 light:
9
+ 沿用 depth-routing 的 light 准入:闭合的语义范围、可穷举的规划与引用/状态/回归路径、无行为性 hard-full;载体名称不得单独触发升级。有定向验证,或变更确定不改变行为。
10
10
 
11
- - 变更属于闭合的语义范围;同一真实源的多个机械投影可归入该范围;
12
- - 受影响规划条目、直接引用点、状态传播和回归路径能完整列出;
13
- - 没有行为性 hard-full 信号,载体名称不得单独触发升级;
14
- - 有定向验证,或变更确定不改变行为;
15
- - 承接既有 full 报告的局部修复时,原 finding、修复路径、直接引用点和回归路径均可闭合,且定向验证足以覆盖后续 diff。
11
+ 承接既有 full 报告的局部修复时,原 finding、修复路径和回归范围须闭合,定向证据须覆盖后续 diff。
16
12
 
17
13
  执行中发现任一边界不成立,记录升级原因,切换到 `references/full-profile.md`。
18
14
 
@@ -22,15 +18,17 @@ Light 是局部且可穷举的检查,不是“少看一点”的检查。只
22
18
 
23
19
  untracked 上下文没有 task artifacts,本维度标记 `N/A`,不得根据事项摘要伪造验收条目;直接进入实现假设和完整性/规范检查。
24
20
 
25
- 只提取受影响的 PRD / design / implement 条目。每条必须记录来源位置,并阅读对应实现后判断:
21
+ 只提取受影响的 PRD / design / implement 条目。同一行为合并验收并保留全部来源位置;不同约束、边界场景或冲突要求不得合并丢失。阅读对应实现后判断:
26
22
 
27
23
  - 需求、AC、业务规则是否被本次局部变更影响;
28
24
  - design 中相关 API、字段、数据流、rollback 是否仍成立;
29
- - implement 中与本次 diff 直接相关的步骤是否落地;
25
+ - implement 中与本次 diff 直接相关、且前两者未覆盖的产物、review gate 和 rollback point 是否落地;
30
26
  - UI 文案要求逐字一致时,对照最终有效文案来源。
31
27
 
32
28
  未被本次变更触达且无直接依赖的规划条目标记 `N/A`,不得伪装为 full 已验证。
33
29
 
30
+ 同一条调用链只追踪一次,后续维度复用实现位置和边界证据,只补未覆盖项或失效证据;复用不省略独立的验收判断。
31
+
34
32
  ---
35
33
 
36
34
  ## 维度 2:实现假设
@@ -43,31 +41,14 @@ untracked 上下文没有 task artifacts,本维度标记 `N/A`,不得根据
43
41
  | Component Context | Modal、Drawer、Tab 或条件渲染容器内修改有状态组件 | 确认销毁/保留、受控值、初始化值和重置行为 |
44
42
  | Data History | 新增、修改或重新解释持久化字段 | 确认 null/零值/历史记录降级;按验证阶段区分阻断型 `部分验证` 与 `[上线后验证]` |
45
43
  | Data Flow Trace | 变更跨越 UI/API/Service/Storage 中两个或更多边界 | 连起来核对参数名、类型、嵌套层级和错误传播 |
46
- | Verification Tests | A-D 任一适用 | 自动化测试优先;也可使用可重复的手动步骤、静态检查或定向命令覆盖关键假设 |
47
-
48
- 未触发的 Dimension 标记 `N/A`。
49
44
 
50
- 仅缺少自动化测试文件不得生成 `CHK-*`。已有测试时应实际运行;项目 spec、风险等级或回归概率明确要求自动化覆盖时,缺失测试仍记录问题。否则只有缺少完成当前结论所必需的充分证据时才记录 `CHK-*`,模糊的“手动看过”不构成证据。
45
+ 未触发的 Dimension 标记 `N/A`。触发维度先复用已有追踪结果,再补其新增约束;验证命令需求统一交给维度 3,不在各 Dimension 分别运行。
51
46
 
52
47
  ---
53
48
 
54
49
  ## 维度 3:完整性、规范与项目验证
55
50
 
56
- 读取 `.agents/skills/trellis-check/SKILL.md`(Claude-only 项目读取对应 `.claude` 副本),只复用与本次局部变更相关的:
57
-
58
- - 适用 spec 的读取方法;
59
- - 定向 lint、typecheck、测试或格式检查命令;
60
- - 复用、依赖、同层一致性、debug logging、warning suppression 和类型安全绕过检查。
61
-
62
- 在 Check-All 内执行时,`trellis-check` 中任何直接修复、补测试、反复修到通过的指令一律失效。验证失败记录为 `CHK-*` 并继续其它独立验证。
63
-
64
- 实际变更位于 Maven reactor 时,按 `maven_verify.py` 的 evidence schema 只调用:
65
-
66
- ```bash
67
- python3 ./.trellis/scripts/maven_verify.py check --latest --require-plan <final-plan.json>
68
- ```
69
-
70
- `reusable` 计入定向验证;`partial` / `stale` / `failed` / `blocked` 记录精确验证缺口、原因和所需计划。Check-All 是 audit-only,不得调用 `plan` / `run` 或任何 Maven goal;Maven model/goal 可能写 `target/`、本地仓库或缓存。没有 Maven evidence 时不得无条件全仓构建,报告由主会话或 implement 路径执行的精确重跑需求。
51
+ 执行 `references/verification.md` 中本次局部变更触发的检查,统一复用有效证据并执行未覆盖的定向验证。数据流沿用前两维证据,不重新完整追踪。
71
52
 
72
53
  所有发现候选按 `references/fallback-findings.md` 先判定 `CHK-*` / `FBK-*`,再分配严重度。不得因场景极端、修复困难或影响较低改变根因通道;不满足三项硬准入的泛化建议不报告,保护收益或验证环境不完整则保留 FBK 并标记报告缺口。
73
54
 
@@ -0,0 +1,14 @@
1
+ # Maven Evidence
2
+
3
+ 仅 Maven 变更加载本文件,按既有 evidence schema 只读核对 final evidence:
4
+
5
+ ```bash
6
+ python3 ./.trellis/scripts/maven_verify.py check --latest --require-plan <final-plan.json>
7
+ ```
8
+
9
+ - `reusable`:核对 lifecycle、模块、消费者、测试、附属制品和 skip 项后计入证据。
10
+ - `partial`:记录未覆盖的 module/consumer/test/artifact 或更高 lifecycle 要求。
11
+ - `stale`:记录源码、测试、POM、外部父 POM、Git 或工具链失效原因。
12
+ - `failed` / `blocked`:保留失败或证据损坏事实,不把未执行验证写成通过。
13
+
14
+ 主会话和 dedicated subagent 都不得调用 `plan` / `run` 或任何 Maven goal,也不得运行会写 `target/`、本地仓库或缓存的构建。缺少可复用证据时报告由 implement 路径执行的精确重跑需求,不默认 `clean package/install`、`-amd` 或全 reactor。
@@ -68,11 +68,18 @@
68
68
 
69
69
  ## 输出:统一检查报告
70
70
 
71
- interactive 模式完成所有可继续检查和允许的 `DOC-*` 自动修复后,严格按以下顺序输出:
71
+ interactive 完成检查与允许的 DOC 修复后,先自然说明实际改动、行为影响和结论,再展示证据与问题:
72
+
73
+ - 依据当前审查范围的最终 diff 和已读实现,覆盖 staged、unstaged、未跟踪文件及必要的子仓;复用检查时收集的材料,不额外启动 Diff Brief 流程或重复扫描。
74
+ - 按行为说明改前后的差异,只有证据支持时才描述旧行为;无行为变化时说明文档、测试或生成物调整,不罗列文件。
75
+ - 区分已实现、已验证和仍未解决的内容;计划中的功能不得写成已经交付,未归属本次范围的 dirty 不得混入。阻塞或重大问题在开头说明,不能被改动介绍掩盖。
76
+ - 自然段不另设固定字段或空项,按复杂度展开。重检只解释本轮修复及其影响。随后保留完整问题、风险和下一步。
72
77
 
73
78
  ```markdown
74
79
  ## Trellis Check-All 结果
75
80
 
81
+ <用自然语言说明实际改动、行为影响和检查结论;不逐文件罗列,不复述规划>
82
+
76
83
  [<通过/通过·已接受风险/未通过/阻塞>] <N> 个维度 · CHK <N>(接受 <N>)· FBK <N>(接受 <N>)· 自动修复 DOC <N> · P0 <N> / P1 <N> / P2 <N> · 验证 <通过>/<总数>
77
84
 
78
85
  - **工作**:<任务名称 | Untracked work: work-id | 无活动工作>
@@ -177,6 +184,8 @@ interactive 模式完成所有可继续检查和允许的 `DOC-*` 自动修复
177
184
  ```markdown
178
185
  ## Trellis Check-All 修复结果
179
186
 
187
+ <用自然语言说明本轮实际修复、修复后的行为和重检结论>
188
+
180
189
  [<完成/部分完成/失败>] CHK 修复 <完成>/<计划> · FBK 修复 <完成>/<计划> · DOC 自动修复 <N> · 验证 <通过>/<总数> · 剩余 CHK <N> · 剩余 FBK <N>
181
190
 
182
191
  | 问题 | 修复 | 验证 |
@@ -0,0 +1,29 @@
1
+ # Verification
2
+
3
+ Light / Full 共用本清单,检查范围由当前 profile 决定。复用 Step 0 已读规范和前两维的源码证据,不再加载 `trellis-check` 或继承其自修复流程。
4
+
5
+ ## 完整性与规范
6
+
7
+ - 按受影响包的 spec Quality Check 核对本次变更;已读且未变化的规范直接复用。
8
+ - 核对漏改的调用方、批量修改遗漏、生成或分发产物、导入路径、循环依赖和同概念的行为一致性;数据流复用前两维追踪,仅补未覆盖边界。
9
+ - 检查遗留 debug logging、warning suppression、类型安全绕过及项目明确禁止的模式。
10
+ - 格式、语法和静态类型由已覆盖当前范围的工具结果证明;人工只补工具未覆盖的语义风险。
11
+ - 不因新增函数就要求一份对应单测,也不因两处值相同就要求抽公共常量。只有真实的回归或一致性风险、错误抽象、遗漏同步或项目明确约定才构成检查依据;不得要求与本次任务无关的重构。
12
+
13
+ ## 统一验证与证据复用
14
+
15
+ 1. 汇总验收、假设维度和项目 spec 的验证需求。自动化测试优先;可重复的手动步骤、静态检查或定向命令也可作为证据,覆盖关键参数、历史数据、空值和错误路径。
16
+ 2. 优先核对已有实际命令输出,包括实现阶段和先前检查的结果:命令、工作目录、覆盖范围、退出状态明确,且相关源码、测试、配置和工具链未变化才可复用。只写“测试通过”的摘要、测试文件存在或无法确认适用范围均不足以复用。
17
+ 3. 相同工作目录、命令参数、环境与被测内容的验证只执行一次;覆盖关系明确时复用较完整的结果,多个维度引用同一证据。不同条件不得去重,测试过滤范围、跳过项和未执行项不能算作已覆盖。
18
+ 4. 缺失、失败或失效的证据按当前范围补跑必要命令;未变化且已覆盖的检查不重复运行。失败保留退出状态和关键错误,继续其它独立验证;无法完成必需验证时如实标记 `部分验证` 或 `阻塞`。
19
+ 5. 仅缺少自动化测试文件不得生成 `CHK-*`;项目 spec、风险等级或回归概率明确要求自动化覆盖时,缺失测试仍记录问题。缺少完成当前结论所必需的充分证据时记录 `CHK-*`;不得用证据复用跳过必需回归或伪报已运行。
20
+
21
+ 同一证据可以支持多个维度,报告中的验证次数按实际独立验证统计,不按引用次数累加。新编辑或 DOC 修复后重新判断受影响证据,仅复查变化及其依赖;影响面不闭合时按 depth-routing 升级。
22
+
23
+ ## 只读边界
24
+
25
+ Check-All 不直接修复代码、配置或测试。只执行无业务写入副作用的验证;可能写业务数据或外部系统的命令不运行,按 reporting reference 区分阻断型部分验证与 `[上线后验证]`。专用 subagent 还必须遵守其宿主的只读工具限制。
26
+
27
+ ### Maven Evidence
28
+
29
+ 实际变更位于 Maven reactor 时才读取 `references/maven-evidence.md`。主会话和 dedicated subagent 都不得调用 `plan` / `run` 或任何 Maven goal,只读核对现有 final evidence。
@@ -12,26 +12,29 @@ description: "手动检查和执行已安装 Flower/Trellis 强化包升级。
12
12
  ## Workflow
13
13
 
14
14
  1. 确认目标项目。用户给出路径时使用该路径,否则使用当前工作目录。
15
- 2. 运行人工检查,默认强制刷新远端版本证据:
15
+ 2. 检查 `flower-trellis` 是否可执行。缺失或入口异常且目标项目存在 `.trellis/scripts/flower_update_hook.py` 时,先运行目标项目的检测脚本:`python3 <target>/.trellis/scripts/flower_update_hook.py --bootstrap-only --target <target>`(路径按当前 shell 引用,Python 命令沿用项目配置)。遵循返回的 `<flower-cli-bootstrap>`:先征得当前成员确认,再安装锁定版本并验证;当前对话已授权这次安装时不重复确认。脚本不存在时说明项目缺少安装引导入口,不猜版本安装。未安装成功则停止依赖 CLI 的步骤,不循环追问或安装。
16
+ 3. CLI 可用后运行人工检查,默认强制刷新远端版本证据:
16
17
 
17
18
  ```bash
18
19
  flower-trellis self-check --json --manual --force-remote --target <target>
19
20
  ```
20
21
 
21
- 3. 解析 JSON:
22
+ 4. 解析 JSON:
22
23
  - `update_available`:展示当前版本、推荐版本、release notes 摘要和 `commands.recommended`。
23
24
  - `project_out_of_sync`:展示当前 Flower/Trellis 与项目记录的差异,并展示 `commands.recommended`。
24
- - `up_to_date`:说明当前安装和项目记录已一致。
25
+ - `up_to_date`:说明 CLI 与项目版本记录一致;版本记录不等于受管内容完整性验证。
26
+ - `project_unknown`:说明 CLI 未发现新版,但项目 Flower 版本无法确认。linked worktree 进入 `trellis-worktree` 的 Flower Preparation,通过 `prepare --inherit-flower --source <source>` 补齐可验证记录后重新检查;来源缺失或冲突时如实报告,不推定需要重装。
25
27
  - `disabled` / `offline` / `skipped`:说明原因;不要靠重置缓存伪造可执行状态。
26
- 4. 写入前遵守确认和安全门槛:
28
+ 5. 写入前遵守确认和安全门槛:
27
29
  - 用户当前消息已经明确要求执行升级时,可以执行 `commands.recommended`。
28
30
  - 用户只是询问、查看或比较版本时,只展示结果并等待确认。
29
31
  - `safety.reasons` 非空时,先说明风险,再等待用户明确确认。
30
- 5. 执行推荐命令后读取 `<flower-update-result>`。如果结果要求 `run_trellis_push_confirmation`,进入 `trellis-push`,展示文件和 commit message 后等待确认。
32
+ 6. 执行推荐命令后读取 `<flower-update-result>`。如果结果要求 `run_trellis_push_confirmation`,进入 `trellis-push`,展示文件和 commit message 后等待确认。
31
33
 
32
34
  ## Rules
33
35
 
34
36
  - 不直接读写 `.flower/update-check.tmp`。
37
+ - 无论远端查询结果如何,都单独说明 `project.flowerVersionStatus=unknown`;不得用本机 CLI 版本替代项目安装证据。
35
38
  - 不使用 `update-check reset`、`snooze` 或 `skip` 作为升级绕过手段。
36
39
  - 不运行 `npm run release`、不打 tag、不 publish,也不修改 `package.json` 版本号。
37
40
  - 不把 `self-check --manual` 用在 SessionStart 自动 hook;自动路径必须继续尊重提示节流。
@@ -227,7 +227,7 @@ Active task: <task path from task.py current>
227
227
  1. 读取 <task>/check.jsonl 及其列出的文件,再读取 prd.md、design.md(若存在)、implement.md(若存在)。
228
228
  2. 读取并遵循本地 trellis-check-all/SKILL.md;完成三件套实现、实现假设、完整性与规范三个维度。
229
229
  3. 先按本地 fallback findings 规则判定 `CHK-*` / `FBK-*`,再为两类问题分配 P0/P1/P2;已声明的兜底契约只影响证据和严重度,不改变 `FBK-*` 归属。具备具体位置、可达场景和问题证据时返回 `FBK-*`,不要求异常已实际发生;保护收益和验证方式属于报告完整度。提交前应完成但证据不足时标记阻断型部分验证;本质依赖部署后、生产环境或外部系统的验收返回 `[上线后验证]`,不得执行且不得误标为阻断。泛化建议不报告。低风险事实漂移使用 `DOC-*` 候选单独返回。
230
- 4. 只读审查;禁止编辑、写文件、补测试或自修复。Step 3 只复用 trellis-check 的检查清单,忽略其自动修复指令;`DOC-*` 也只能返回候选,由主会话按 Check-All 规则决定是否写入。
230
+ 4. 只读审查;禁止编辑、写文件、补测试或自修复。按 Check-All profile 的共享验证清单复用源码和验证证据;`DOC-*` 也只能返回候选,由主会话按 Check-All 规则决定是否写入。
231
231
  5. 真正阻塞条件返回主会话,不替用户选择业务行为或修复范围。
232
232
 
233
233
  返回:统一 Check-All 结果、全部 `CHK-*`、`FBK-*`、`DOC-*` 候选、已执行验证和剩余风险。不要输出 commit/push 计划。
@@ -7,7 +7,7 @@ description: "Prepare and diagnose branch-local Trellis usage inside linked Git
7
7
 
8
8
  Use this skill before normal Trellis routing when the current request is about linked worktrees or parallel branch development.
9
9
 
10
- Each worktree owns the Trellis and platform files checked out by its branch. Never load `.trellis`, `.agents`, `.codex`, `.claude`, or `.flower` from another worktree, and never create whole-directory symlinks between worktrees.
10
+ Each worktree owns the Trellis and platform files checked out by its branch. Load workflow and platform content only from the target branch. Flower installation records may be inherited through the verified CLI preparation below; never create whole-directory symlinks between worktrees.
11
11
 
12
12
  ## Workflow
13
13
 
@@ -19,8 +19,8 @@ flower-trellis worktree status --target <target-worktree> --json
19
19
  ```
20
20
 
21
21
  3. Route by status:
22
- - `ready-local`: continue with the user's original Trellis intent in this worktree.
23
- - `needs-prepare`: run `flower-trellis worktree prepare --target <target-worktree>` with an explicit developer identity when requested. Add `--inherit-route-prefs` only when the user wants the same developer's normalized personal route defaults from the current controlling worktree.
22
+ - `ready-local`: inspect `flower.installation` before continuing. If it is `incomplete`, follow Flower Preparation below; Trellis readiness does not prove Flower installation completeness.
23
+ - `needs-prepare`: run `flower-trellis worktree prepare --target <target-worktree>` with an explicit developer identity when requested. Include the Flower Preparation options when records are incomplete. Add `--inherit-route-prefs` only when the user wants the same developer's normalized personal route defaults.
24
24
  - `needs-init`: initialize Trellis in that branch; do not copy another worktree's version.
25
25
  - `needs-migration`: run `flower-trellis worktree migrate --target <target-worktree> --dry-run` before the real migration.
26
26
  - `blocked` or `error`: stop and report the stable reason and conflict paths.
@@ -38,7 +38,7 @@ flower-trellis worktree create --target <path> --branch <branch> [--base <ref>]
38
38
  --task-title <title> --task-slug <slug>
39
39
  ```
40
40
 
41
- 6. Present one compact confirmation view containing the selected root repository/branch/HEAD, requested and resolved base, target branch/path/task, root dirty warning, selected-commit submodules, independent Git packages, developer initialization, normalized route preference action, and excluded local state. State explicitly that only the selected root gets the new branch; submodules and independent Git packages are inventory-only.
41
+ 6. Present one compact confirmation view containing the selected root repository/branch/HEAD, requested and resolved base, target branch/path/task, root dirty warning, selected-commit submodules, independent Git packages, developer initialization, normalized route preference action, Flower transfer source/action/paths and pending target validation, and excluded local state. Flower records are included in the same plan fingerprint; content mismatch after checkout rolls back creation. State explicitly that only the selected root gets the new branch; submodules and independent Git packages are inventory-only.
42
42
  7. Ask for exactly one choice: confirm the displayed plan, change its inputs, or cancel. On confirmation, execute the exact plan fingerprint returned by preflight:
43
43
 
44
44
  ```bash
@@ -50,17 +50,29 @@ flower-trellis worktree create --target <path> --branch <branch> [--base <ref>]
50
50
  8. If the engine returns `create-plan-changed`, show the latest returned plan and require a new confirmation. Never reuse the old fingerprint.
51
51
  9. Continue task planning in a new AI session whose cwd/workspace root is the returned handoff directory. Do not continue the source session inside the new worktree.
52
52
 
53
+ ## Flower Preparation
54
+
55
+ Use the initiating worktree as the source. In a new session already inside the target, use `git worktree list --porcelain` to locate the same repository's main worktree. If it is the target itself or no suitable source is known, report unavailable evidence; do not combine records from arbitrary branches.
56
+
57
+ ```bash
58
+ flower-trellis worktree prepare --target <target> --inherit-flower --source <source> [--developer <name>] --json
59
+ ```
60
+
61
+ The CLI fills missing `plugins.json`, `plugin-lock.json`, and `state.json` only after matching the source installation and target managed content. It may inherit normalized `settings.json` policy for the same developer. Existing target records take precedence; files remain independent after preparation. Create includes this transfer automatically.
62
+
63
+ Read `localStateTransfer.flower`: `inherited` or `preserved` completes preparation; `unavailable` means installation evidence is still missing, not that the project is up to date. Pure Trellis remains usable. Invalid records, incompatible target versions, disabled/recovery state, or content drift require reporting the reason and paths; do not overwrite records, copy plugin content, or install updates to bypass the conflict. Re-run status after repair.
64
+
53
65
  ## Safety Rules
54
66
 
55
67
  - `status` is read-only.
56
68
  - A `create` call without `--yes` is also read-only and must return `confirmation-required` plus a fingerprint.
57
- - `prepare` only creates target-local gitignored state and registry metadata. By default it reads no other worktree. Explicit route inheritance requires the same canonical Git common dir and developer, and preserves an existing target preference file.
69
+ - `prepare` initializes target-local state and registry metadata. By default it reads no other worktree. Explicit Flower inheritance requires the same canonical Git common dir and verified installation content. Personal route/settings inheritance additionally requires the same developer and preserves existing target preferences.
58
70
  - `migrate` may replace only schema v1 manifest-managed symlinks, and only with content reconstructed from the target branch itself.
59
71
  - Do not read the legacy `sourceRoot` as migration content.
60
72
  - `create` does not attach or move an existing task.
61
- - Root tracked, staged, untracked, and conflict state is a warning only and is never included in the selected base commit, copied, stashed, or treated as an implicit blocker.
62
- - The only personal preference eligible for inheritance is `.trellis/.route-prefs.tmp`. Read only a regular file, keep only legal `implement` and `check` values, and write normalized fixed-order content. Never copy its original bytes.
63
- - Do not inherit session/current-task state, pre-check/untracked/auto-loop/Ralph state, agent temporary state, `.flower/state.json`, `.claude/settings.local.json`, caches, transactions, or backups.
73
+ - Root tracked, staged, untracked, and conflict state is not included in the selected base commit or stashed. Only the explicitly planned Flower record whitelist may be inherited separately; source plugin content is never copied to make its records match the target.
74
+ - Personal inheritance is limited to normalized `.trellis/.route-prefs.tmp` and Flower update policy. Route preferences accept only legal `implement` and `check` values in fixed order; never copy raw preference bytes or update-check caches.
75
+ - Do not inherit session/current-task state, pre-check/untracked/auto-loop/Ralph state, agent temporary state, Flower control/detached state, `.claude/settings.local.json`, caches, transactions, or backups.
64
76
  - Selected-commit submodules are inventory facts. Report initialized source branch/HEAD without fetching, checking out, or copying submodule working trees.
65
77
  - `remove` requires a clean worktree with no active task, session, or lock; it preserves the branch.
66
78
  - Do not use force, copy directories between worktrees, or treat setup as approval to start, check, commit, merge, or push.
@@ -10,18 +10,6 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
10
10
 
11
11
  ---
12
12
 
13
- ## 入口职责
14
-
15
- 1. 确认本轮检查范围、task artifacts 或 untracked state、项目规范和运行上下文。
16
- 2. 解析 `requested_depth`,生成 `check_profile`,决定 `effective_depth=light|full`。
17
- 3. 按有效深度读取并执行对应 profile。
18
- 4. 按根因把发现分为 `CHK-*`、`FBK-*`、`DOC-*`,再为前两类分配 P0/P1/P2。
19
- 5. 报告前处理允许自修的事实漂移并展示结果。
20
- 6. 按 interactive / validated auto-loop 边界输出下一步或执行 `record + next`。
21
- 7. untracked helper 只存游标:findings 或新编辑回 `implement`;通过且 disposition 继续时才 `advance --stage spec`。
22
-
23
- ---
24
-
25
13
  ## 必读引用
26
14
 
27
15
  按需加载引用文件,不要提前读取未命中的 profile:
@@ -43,7 +31,7 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
43
31
  2. **唯一自修例外**:低风险事实漂移进入 `DOC-*` 通道,按 `references/document-drift-auto-remediation.md` 的白名单、黑名单和写入时机处理。
44
32
  3. **分类先于严重度**:读取 `references/fallback-findings.md`;主路径错误和非兜底契约违背进入 `CHK-*`,fail-closed、异常输入、失败降级和防御性保护缺口进入 `FBK-*`。契约证据影响严重度,不改变兜底根因归属。
45
33
  4. **处置只确认一次**:统一报告后选择 `CHK-*` / `FBK-*` 修复范围或接受风险;`修复全部` 覆盖两类,接受风险不得隐藏发现。
46
- 5. **委托不改边界**:复用 `trellis-check` 的清单和验证方法,忽略其直接修复指令。
34
+ 5. **共享验证**:两个 profile 共用 `references/verification.md`;同一追踪与有效验证证据跨维度复用,检查保持只读。
47
35
  6. **真正阻塞才中途暂停**:业务规划冲突、前提失效,或当前结论必需验证涉及未授权生产/外部/破坏性副作用时暂停;发布后验收只记 `[上线后验证]`,不执行、不阻断。
48
36
 
49
37
  中途停止时也要使用统一问题模型,报告已完成范围和阻塞原因;只询问解除阻塞所需的业务或安全决策。
@@ -74,18 +62,11 @@ description: "统一 Check-All:按 requested/effective depth 路由 light/full
74
62
 
75
63
  ## 顶层流程
76
64
 
77
- ### Step 0:范围、上下文与深度画像
65
+ untracked helper 只存游标:findings 或新编辑回 `implement`;通过且 disposition 继续时才 `advance --stage spec`。
78
66
 
79
- 读取 `references/depth-routing.md` 并执行完整 Step 0。输出固定画像:
67
+ ### Step 0:范围、上下文与深度画像
80
68
 
81
- ```yaml
82
- check_profile:
83
- context: interactive | auto-loop
84
- requested_depth: auto | light | full
85
- effective_depth: light | full
86
- confidence: high | fallback-full | escalated
87
- reasons: [string]
88
- ```
69
+ 执行 `references/depth-routing.md` 的完整 Step 0,按其格式生成 `check_profile`。
89
70
 
90
71
  ### Step 1:读取对应 profile
91
72
 
@@ -98,17 +79,13 @@ check_profile:
98
79
 
99
80
  ### Step 3:处理事实漂移自修
100
81
 
101
- 读取 `references/document-drift-auto-remediation.md`。在最终报告前:
102
-
103
- - inline:主会话应用允许的 `DOC-*` 修复并做定向验证。
104
- - subagent:主会话审阅 subagent 返回的 `DOC-*` 候选,只应用满足白名单且无歧义的修复。
105
- - auto-loop:主会话应用允许的 `DOC-*` 修复后再 `record`;若只存在已修复事实漂移且无剩余 `CHK-*` / `FBK-*`,结果可为 `ok`,摘要必须包含自动修复说明。
82
+ 按 `references/document-drift-auto-remediation.md` 的白名单和证据规则,由主会话处理允许的 DOC 并定向验证;subagent 仅返回候选。完成后再报告或交给 reporting reference 的 auto-loop 分流。
106
83
 
107
84
  不满足自动修复条件的文档问题根据根因转为 `CHK-*`、`FBK-*` 或剩余风险,按普通修复范围处理。
108
85
 
109
86
  ### Step 4:统一报告与分流
110
87
 
111
- 读取 `references/reporting-and-disposition.md`。报告必须展示:
88
+ 读取 `references/reporting-and-disposition.md`。报告先自然说明实际改动及行为影响,再展示:
112
89
 
113
90
  - `check_profile`;
114
91
  - 三个维度状态;
@@ -123,12 +100,10 @@ check_profile:
123
100
  ## 反模式
124
101
 
125
102
  - 入口默认加载 full profile,导致 `auto` 被 full 语气带偏。
126
- - 发现一个普通问题就暂停询问一次。
127
103
  - 把 `trellis-check` 的自动修复指令带入普通 `CHK-*`。
128
104
  - 先按严重度决定 `CHK-*` / `FBK-*` 通道,混淆根因性质与影响等级。
129
105
  - 把纯偏好、无具体场景或无法验证收益的“更健壮”建议记录为 `FBK-*`。
130
106
  - 因兜底行为已写入契约就把保护路径根因改列为 `CHK-*`。
131
- - subagent 直接修改工作区。
132
107
  - 把需求变更、验收标准、产品语义或设计取舍伪装成文档漂移自动修复。
133
108
  - light 未命中完整穷举条件仍继续 light。
134
109
  - 无环境证据却把维度标记为通过。