flower-trellis 0.6.12-beta.0 → 0.6.12-beta.2
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 +20 -0
- package/enhancements/0.6/.agents/skills/trellis-check-all/SKILL.md +20 -89
- package/enhancements/0.6/.agents/skills/trellis-check-all/references/auto-loop-return.md +18 -0
- package/enhancements/0.6/.agents/skills/trellis-check-all/references/fallback-findings.md +1 -1
- package/enhancements/0.6/.agents/skills/trellis-check-all/references/findings-and-reporting.md +191 -0
- package/enhancements/0.6/.agents/skills/trellis-check-all/references/repair-and-recheck.md +15 -0
- package/enhancements/0.6/.agents/skills/trellis-check-all/references/reporting-and-disposition.md +19 -203
- package/enhancements/0.6/.agents/skills/trellis-flower-update/SKILL.md +1 -1
- package/enhancements/0.6/.agents/skills/trellis-push/SKILL.md +28 -138
- package/enhancements/0.6/.agents/skills/trellis-push/references/auto-loop-commit.md +17 -0
- package/enhancements/0.6/.agents/skills/trellis-push/references/git-special-cases.md +56 -0
- package/enhancements/0.6/.agents/skills/trellis-push/references/task-progress.md +58 -0
- package/enhancements/0.6/.agents/skills/trellis-route/SKILL.md +24 -30
- package/enhancements/0.6/.agents/skills/trellis-route/references/interaction.md +2 -2
- package/enhancements/0.6/.agents/skills/trellis-route/references/recovery-and-errors.md +6 -6
- package/enhancements/0.6/.agents/skills/trellis-route/scripts/route_state.py +24 -4
- package/enhancements/0.6/.agents/skills/trellis-worktree/SKILL.md +51 -55
- package/enhancements/0.6/.claude/skills/trellis-check-all/SKILL.md +20 -89
- package/enhancements/0.6/.claude/skills/trellis-check-all/references/auto-loop-return.md +18 -0
- package/enhancements/0.6/.claude/skills/trellis-check-all/references/fallback-findings.md +1 -1
- package/enhancements/0.6/.claude/skills/trellis-check-all/references/findings-and-reporting.md +191 -0
- package/enhancements/0.6/.claude/skills/trellis-check-all/references/repair-and-recheck.md +15 -0
- package/enhancements/0.6/.claude/skills/trellis-check-all/references/reporting-and-disposition.md +19 -203
- package/enhancements/0.6/.claude/skills/trellis-flower-update/SKILL.md +1 -1
- package/enhancements/0.6/.claude/skills/trellis-push/SKILL.md +28 -138
- package/enhancements/0.6/.claude/skills/trellis-push/references/auto-loop-commit.md +17 -0
- package/enhancements/0.6/.claude/skills/trellis-push/references/git-special-cases.md +56 -0
- package/enhancements/0.6/.claude/skills/trellis-push/references/task-progress.md +58 -0
- package/enhancements/0.6/.claude/skills/trellis-route/SKILL.md +24 -30
- package/enhancements/0.6/.claude/skills/trellis-route/scripts/route_state.py +24 -4
- package/enhancements/0.6/.claude/skills/trellis-worktree/SKILL.md +51 -55
- package/enhancements/0.6/overrides/conflicts.json +44 -6
- package/enhancements/0.6/overrides/patches/skills/trellis-start/no-task-routing/active-task-content.md +1 -1
- package/enhancements/0.6/overrides/patches/skills/trellis-start/no-task-routing/content.md +1 -1
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/content.md +2 -2
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/patch.json +80 -1
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/prune-learning-guidance-selector.md +99 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/prune-philosophy-selector.md +8 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/prune-writing-examples-selector.md +104 -0
- package/enhancements/0.6/overrides/patches/workflow/intent-routing/request-triage/content.md +4 -3
- package/enhancements/0.6/overrides/patches/workflow/phase-ownership/phase-2-check-content.md +1 -1
- package/enhancements/0.6/overrides/patches/workflow/state-no-task/content.md +2 -2
- package/enhancements/0.6/overrides/patches/workflow/state-untracked/content.md +1 -1
- package/enhancements/0.6/overrides/patches/workflow/states-in-progress/common-content.md +1 -1
- package/enhancements/0.6/overrides/patches/workflow/states-planning/common-content.md +1 -1
- package/enhancements/0.6/scripts/worktree_setup.py +223 -164
- package/enhancements/MANIFEST.json +5 -2
- package/package.json +3 -3
- package/src/commands/worktree.js +32 -10
- package/src/lib/worktree-flower-state.js +98 -3
- package/src/plugin/application-service.js +3 -26
- package/src/plugin/install/state-validation.js +57 -22
package/README.md
CHANGED
|
@@ -104,6 +104,7 @@ flower-trellis -v
|
|
|
104
104
|
| `update-check` | 管理 `.flower/settings.json` 内的启动更新策略和提示节流 |
|
|
105
105
|
| `telemetry` | 查询、启用或停用用户级匿名安装遥测 |
|
|
106
106
|
| `plugin` | 管理 Flower Plugin、Marketplace 来源、GitLab 授权和作者校验 |
|
|
107
|
+
| `worktree` | 创建独立 Git 工作区,准备目标本地工具 |
|
|
107
108
|
| `uninstall` | 移除 Trellis 本体并清理强化包残留(支持 `-y` / `--dry-run`) |
|
|
108
109
|
| `<其它命令>` | 原样透传给 Trellis,覆盖其现有及未来子命令 |
|
|
109
110
|
| `-v` / `-h` | 打印版本 / 帮助 |
|
|
@@ -123,6 +124,25 @@ flower-trellis -v
|
|
|
123
124
|
|
|
124
125
|
未指定平台时,交互模式会弹出多选菜单(默认勾选 Claude Code + Codex);也可直接传 `--claude` / `--codex` / `--cursor` / `--devin` / `--zcode` / `--trae` / `--omp` / `--grok` / `--kimi` / `--snow` 等指定,或用 `-y` 跳过菜单。`--windsurf` 仍作为 Devin 的旧别名透传给 Trellis。其余未识别的 flag(如 `-u`、`-f`、`--template`、`--with-statusline`)一律透传给 Trellis。
|
|
125
126
|
|
|
127
|
+
## 并行工作区
|
|
128
|
+
|
|
129
|
+
先查看创建计划,再使用返回的指纹确认。任务参数可选,省略时只创建和准备工作区:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
flower-trellis worktree create --target ../my-feature --branch feature/my-feature --base main --json
|
|
133
|
+
flower-trellis worktree create --target ../my-feature --branch feature/my-feature --base main --yes --plan-fingerprint <返回的指纹>
|
|
134
|
+
|
|
135
|
+
# 查看准备情况,或在同一目录补齐本地工具
|
|
136
|
+
flower-trellis worktree status --target ../my-feature --json
|
|
137
|
+
flower-trellis worktree prepare --target ../my-feature
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
prepare 只处理本地工具,不创建或恢复任务。需要种子任务时,在创建参数中成对加入 `--task-title <标题> --task-slug <标识>`。工具按目标分支支持的接口创建 planning 任务,业务规划和实现继续在新目录的新 AI 会话中进行。
|
|
141
|
+
|
|
142
|
+
源窗口的未提交修改、过期安装摘要或不同的 Flower 版本不会要求先清理或升级主分支。目标可以按精确固定包补齐本地安装记录、生成缺失且被忽略的受管配置;旧包不可用、配置冲突或任务准备失败时,Git 目录和分支会保留,并返回 `created-needs-prepare` 和具体待办。本地工具可用 prepare 重试,任务异常按返回的目标命令补齐;默认不读取来源安装记录。
|
|
143
|
+
|
|
144
|
+
脚本应检查 `setup.status`,不能只凭退出码 `0` 判断工具全部就绪。根仓和子仓各自使用明确的基线;创建根工作区不会自动为所有子仓创建业务分支。
|
|
145
|
+
|
|
126
146
|
## 项目级关闭与恢复
|
|
127
147
|
|
|
128
148
|
`flower-trellis disable` 是整个项目的真正关闭,不是只跳过一次 Hook。它会在一次事务中移除全部已配置平台可发现的 Trellis Skills、Agents、Commands、Workflows、Hooks、Extensions、平台配置入口,以及 `AGENTS.md` 中的 Trellis 管理块。开关始终作用于整个项目,不提供平台级参数,也不会留下不同平台一开一关的混合状态。
|
|
@@ -1,102 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: trellis-check-all
|
|
3
|
-
description: "统一 Check-All
|
|
3
|
+
description: "统一 Check-All:按行为影响选择 light/full,审查规划、实现假设与完整性;区分 CHK、FBK、DOC,按需加载报告和自修规则。触发:检查、轻量/全面/提交前检查、check-all。"
|
|
4
4
|
---
|
|
5
5
|
# Check All 统一入口
|
|
6
6
|
|
|
7
|
-
本 skill 是
|
|
7
|
+
本 skill 是 **薄入口**:做对了 → 假设成立 → 做全了且写得规范。不要提前读取未命中的 profile 或低频细则。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 默认流程
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
1. 读 [depth-routing.md](references/depth-routing.md),确认实际 diff、事项、规范和运行上下文,生成 `check_profile`;它拥有 requested/effective depth 与 light/full 路由。
|
|
12
|
+
2. `effective_depth=light` 读 [light-profile.md](references/light-profile.md),full 读 [full-profile.md](references/full-profile.md)。两个 profile 共用 [verification.md](references/verification.md),复用当前有效验证证据;范围无法闭合时单向升级 full。
|
|
13
|
+
3. 按 profile 审查三个维度:task 的 PRD/可选 design/implement(untracked 为 N/A)、实现假设、完整性与项目规范。同一追踪与验证复用,保留独立验收判断。
|
|
14
|
+
4. 发生下表场景时先读对应细则;完成检查与允许的 DOC 处理后,读 [reporting-and-disposition.md](references/reporting-and-disposition.md) 输出并分流。
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
## 按条件加载
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
6. 输出报告或 runner 结果前读 `references/reporting-and-disposition.md`。
|
|
18
|
+
| 场景 | 先读取 |
|
|
19
|
+
| --- | --- |
|
|
20
|
+
| 有问题候选需要分类或确定严重度 | [fallback-findings.md](references/fallback-findings.md);完整模型与处置见 [findings-and-reporting.md](references/findings-and-reporting.md) |
|
|
21
|
+
| 发现低风险事实漂移候选,或准备写入 DOC | [document-drift-auto-remediation.md](references/document-drift-auto-remediation.md);仅源码注释候选再读其专项 |
|
|
22
|
+
| 当前 action 已验证来自 auto-loop | [auto-loop-return.md](references/auto-loop-return.md) |
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
---
|
|
24
|
+
引用缺失时报告阻塞,不凭记忆重建。未命中 DOC 候选不读取自修细则;任何自修之前必须读取并满足白名单。full、findings、风险接受和修复报告由 reporting 的条件入口所有。
|
|
27
25
|
|
|
28
26
|
## 核心边界
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
中途停止时也要使用统一问题模型,报告已完成范围和阻塞原因;只询问解除阻塞所需的业务或安全决策。
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 执行模式
|
|
42
|
-
|
|
43
|
-
- `inline check-all`:主会话直接执行本 skill;允许在最终报告前按 `DOC-*` 通道修复低风险事实漂移。
|
|
44
|
-
- `subagent check-all`:subagent 只读返回 `CHK-*`、`FBK-*`、`DOC-*` 候选、`check_profile` 和证据;主会话处理 DOC、报告和后续修复。
|
|
45
|
-
- subagent 不得编辑、写文件、补测试或代替用户选择普通修复范围。
|
|
46
|
-
- 路由由 `trellis-route(target=check)` 决定;本 skill 不自行切换 inline/subagent。
|
|
47
|
-
- 所有普通、最终、显式 light/full 和 auto-loop 检查都进入本 skill;`trellis-route` 只决定执行位置,不决定检查深度。
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 三个检查维度
|
|
52
|
-
|
|
53
|
-
| 顺序 | 维度 | 检查内容 | 对照物 |
|
|
54
|
-
| --- | --- | --- | --- |
|
|
55
|
-
| 1 | 三件套实现 | 规划是否正确落地 | task 的 `prd.md` + 可选 `design.md` / `implement.md`;untracked 为 `N/A` |
|
|
56
|
-
| 2 | 实现假设 | API、组件、历史数据、数据流和测试假设是否成立 | 源码、真实契约、可用验证证据 |
|
|
57
|
-
| 3 | 完整性与规范 | 影响面是否同步、代码是否符合 spec、验证是否通过 | 实际变更范围 + 项目 spec |
|
|
58
|
-
|
|
59
|
-
维度状态统一使用:`通过`、`未通过`、`部分验证`、`阻塞`、`N/A`。
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 顶层流程
|
|
64
|
-
|
|
65
|
-
untracked helper 只存游标:findings 或新编辑回 `implement`;通过且 disposition 继续时才 `advance --stage spec`。
|
|
66
|
-
|
|
67
|
-
### Step 0:范围、上下文与深度画像
|
|
68
|
-
|
|
69
|
-
执行 `references/depth-routing.md` 的完整 Step 0,按其格式生成 `check_profile`。
|
|
70
|
-
|
|
71
|
-
### Step 1:读取对应 profile
|
|
72
|
-
|
|
73
|
-
- `effective_depth=light`:只执行可完整穷举的受影响条目、直接引用点和定向回归路径。发现影响面无法闭合时立即升级 full。
|
|
74
|
-
- `effective_depth=full`:执行完整三件套映射、全部适用假设维度和完整规范验证。
|
|
75
|
-
|
|
76
|
-
### Step 2:执行检查并收集结果
|
|
77
|
-
|
|
78
|
-
按 profile 检查三个维度,并执行 `references/fallback-findings.md` 的分类顺序。主路径问题进入 `CHK-*`,满足硬准入的兜底问题进入 `FBK-*`,低风险事实漂移候选进入 `DOC-*`。同一根因合并,不因数量多而静默省略。
|
|
79
|
-
|
|
80
|
-
### Step 3:处理事实漂移自修
|
|
81
|
-
|
|
82
|
-
按 `references/document-drift-auto-remediation.md` 的白名单和证据规则,由主会话处理允许的 DOC 并定向验证;subagent 仅返回候选。完成后再报告或交给 reporting reference 的 auto-loop 分流。
|
|
83
|
-
|
|
84
|
-
不满足自动修复条件的文档问题根据根因转为 `CHK-*`、`FBK-*` 或剩余风险,按普通修复范围处理。
|
|
85
|
-
|
|
86
|
-
### Step 4:统一报告与分流
|
|
87
|
-
|
|
88
|
-
读取 `references/reporting-and-disposition.md`,按其首次报告、接受后增量展示与分流规则输出;默认不新建报告文件,落盘例外由该 reference 定义。
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 反模式
|
|
93
|
-
|
|
94
|
-
- 入口默认加载 full profile,导致 `auto` 被 full 语气带偏。
|
|
95
|
-
- 把 `trellis-check` 的自动修复指令带入普通 `CHK-*`。
|
|
96
|
-
- 先按严重度决定 `CHK-*` / `FBK-*` 通道,混淆根因性质与影响等级。
|
|
97
|
-
- 把纯偏好、无具体场景或无法验证收益的“更健壮”建议记录为 `FBK-*`。
|
|
98
|
-
- 因兜底行为已写入契约就把保护路径根因改列为 `CHK-*`。
|
|
99
|
-
- 把需求变更、验收标准、产品语义或设计取舍伪装成文档漂移自动修复。
|
|
100
|
-
- light 未命中完整穷举条件仍继续 light。
|
|
101
|
-
- 无环境证据却把维度标记为通过。
|
|
102
|
-
- 报告后直接生成提交计划、commit message 或拟提交文件。
|
|
28
|
+
- 默认 **audit-only collect-all**:读取、搜索、运行无业务写入的验证;不直接修复普通代码、配置、测试或任务规格语义。低风险事实漂移进入 `DOC-*` 通道,是唯一自修例外,须符合专项证据与写入边界;用户明确绝对只读时也不写 DOC。
|
|
29
|
+
- 分类先于严重度:主路径与非兜底契约问题为 `CHK-*`;失败、异常、防御保护路径问题为 `FBK-*`;可唯一证明的事实漂移候选为 `DOC-*`。两类代码问题都按实际影响评 P0/P1/P2;具体准入交给 fallback reference,不报告泛化“更健壮”偏好。
|
|
30
|
+
- 同根因合并并列全独立问题;统一报告后只确认一次修复范围或风险接受,`修复全部` 覆盖 CHK/FBK。接受不能从摘要、dirty 状态或无关历史推断。
|
|
31
|
+
- 只在业务决策、前提失效或必需验证涉及未授权生产/外部/破坏性副作用时中途暂停;报告已完成范围和必要缺口。`[上线后验证]` 保留且不阻断,不代执行。
|
|
32
|
+
- 所有检查都从本入口进入;`trellis-route` 只决定 inline/subagent。inline 主会话可处理合规 DOC;subagent 只读返回 `CHK-*` / `FBK-*` / `DOC-*` 候选、画像和证据,不编辑、不补测试、不选择修复范围、不使用 workspace-write `trellis-check`。
|
|
33
|
+
- untracked helper 只存游标:未处置 findings 或新编辑回 `implement`;通过且 disposition 继续才 `advance --stage spec`,明确停止保持 check。它不证明检查或风险接受已完成。
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Auto-Loop Return
|
|
2
|
+
|
|
3
|
+
仅在 depth-routing 已验证当前 runner action 时读取;不使用交互式报告和下一步。
|
|
4
|
+
|
|
5
|
+
## Auto-Loop Return Gate
|
|
6
|
+
|
|
7
|
+
validated auto-loop 复用相同的画像、profile、`DOC-*` 通道和问题模型,但不展示普通模式的修复选择:
|
|
8
|
+
|
|
9
|
+
- 有 `DOC-*` 且可自动修复:主会话先应用并验证;只有当前任务 `implement.md` / `brief.md` 的实际变化追加精确 `--doc-remediation-file`,源码注释等其它 DOC 改动不得传该参数;随后重算 diff、范围和画像,再决定最终 `ok|failed|blocked`。
|
|
10
|
+
- 有剩余 `CHK-*` 或 `FBK-*`:向 runner `record --result failed --effective-check-depth <light|full> --check-depth-reason <summary>`,摘要包含最高严重度、两类问题 ID、根因、受影响文件和已自动修复的 `DOC-*`。validated auto-loop 不创建也不复用 interactive 风险接受。
|
|
11
|
+
- 产品决策、越权、提交前生产副作用授权或破坏性决策:`record --result blocked`。
|
|
12
|
+
- 无 `CHK-*` / `FBK-*` 和阻断型部分验证:`record --result ok --effective-check-depth <light|full> --check-depth-reason <summary>`;摘要包含自动修复和全部 `[上线后验证]`,后者不阻断且不得代执行。
|
|
13
|
+
- record 成功后立即 `next`;若返回 `status=retryable reason=artifact-drift`,不得 `next`,先按 runner 指令在同一 outstanding action 内自纠并重录。validated auto-loop 不渲染交互式下一步段、不提示用户回复“继续”、不等待普通修复范围选择。
|
|
14
|
+
- `artifact-recovery-required` 交由 `trellis-auto-loop`;不叠加 Check 重录预算,不改 fix/recheck、commit-only、队列。
|
|
15
|
+
|
|
16
|
+
subagent 只返回结构化 `CHK-*`、`FBK-*`、`DOC-*` 候选、报告和 `check_profile`;主会话收到后必须完成允许的 `DOC-*` 处理,再完成匹配 action 的 `record + next`。
|
|
17
|
+
|
|
18
|
+
---
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
- `CHK-*` 与 `FBK-*` 独立编号,修复/重检循环保留原 ID;两类都按实际影响分配 P0/P1/P2。
|
|
70
70
|
- `修复全部` 覆盖两类问题;精确修复可混合 ID,例如 `修复 CHK-001,FBK-002`。
|
|
71
71
|
- 用户可以明确接受当前报告中任一 `CHK-*` 或 `FBK-*` 的风险而不修复;问题仍保留原通道、严重度和证据。
|
|
72
|
-
- 接受当前报告全部风险覆盖全部 `CHK-*` / `FBK-*`,包括 P0,无固定句式;部分接受须唯一定位。报告或范围不清才追问;接受有效性与增量展示统一按 `
|
|
72
|
+
- 接受当前报告全部风险覆盖全部 `CHK-*` / `FBK-*`,包括 P0,无固定句式;部分接受须唯一定位。报告或范围不清才追问;接受有效性与增量展示统一按 `findings-and-reporting.md`,不因无关 diff 变化失效。
|
|
73
73
|
- `strict pass` 仍要求剩余 `CHK-*` 与 `FBK-*` 均为 0;全部剩余问题被有效接受且无阻塞、部分验证或其它实质风险时,使用“已接受风险通过”。
|
|
74
74
|
- 未处置 `CHK-*` / `FBK-*`、阻断型部分验证或阻塞会阻断;`[上线后验证]` 不阻断。auto-loop 不得接受风险,须两类问题为 0 且无阻断型部分验证才能 `record ok`。
|
|
75
75
|
- `仅保留报告` 只停止修复,不构成风险接受或通过。
|
package/enhancements/0.6/.agents/skills/trellis-check-all/references/findings-and-reporting.md
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Findings And Reporting
|
|
2
|
+
|
|
3
|
+
仅在 full 报告、发现问题、风险接受或修复重检时读取;完成后返回 `references/reporting-and-disposition.md` 的继续/停止 Gate。
|
|
4
|
+
|
|
5
|
+
## 统一问题模型
|
|
6
|
+
|
|
7
|
+
先按 `references/fallback-findings.md` 判定 `CHK-*` / `FBK-*`,再为两类问题分配 P0/P1/P2。分类表达根因性质,严重度描述当前实际影响;两者都不决定问题必须修复还是可以由用户接受风险。
|
|
8
|
+
|
|
9
|
+
### `CHK-*` 主路径问题
|
|
10
|
+
|
|
11
|
+
每个独立根因使用固定字段。`ID`、`严重度`、`来源`、`处置`、`标题` 内联在条目的四级标题行,其余字段以加粗标签的列表项逐行展开:
|
|
12
|
+
|
|
13
|
+
| 字段 | 呈现 | 规则 |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| ID | 标题行 | 首次记录时依次分配 `CHK-001`、`CHK-002`;当前修复/重检循环中不重新编号 |
|
|
16
|
+
| 严重度 | 标题行 | `P0` 数据破坏/安全事故/无法安全继续;`P1` 功能错误/需求违背/发布阻塞;`P2` 测试/规范/维护性/非阻塞风险 |
|
|
17
|
+
| 来源 | 标题行 | prd/design/implement/spec/assumption/verification |
|
|
18
|
+
| 处置 | 标题行 | 仅 `已接受风险` 时在标题行末尾追加 `` `[已接受风险]` `` 标签;待处理是默认状态,不加标签也不占行 |
|
|
19
|
+
| 标题 | 标题行 | 描述根因,不用症状堆叠 |
|
|
20
|
+
| 证据 | 加粗字段 | 同一根因的全部受影响 `file:line`,以及实际契约或命令结果;受影响位置与问题证明合并在本字段,不再单列「位置」 |
|
|
21
|
+
| 影响 | 加粗字段 | 用户、数据或工程影响 |
|
|
22
|
+
| 建议 | 加粗字段 | 推荐修复方式,不在检查阶段执行 |
|
|
23
|
+
| 验证 | 加粗字段 | 修复后的命令或手动验证步骤 |
|
|
24
|
+
|
|
25
|
+
### `FBK-*` 兜底问题
|
|
26
|
+
|
|
27
|
+
满足硬准入的兜底根因沿用上方标题行字段与呈现规则;ID 独立从 `FBK-001` 递增,其余字段如下:
|
|
28
|
+
|
|
29
|
+
| 字段 | 呈现 | 规则 |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| 证据 | 加粗字段 | 保护缺失、错误或可绕过的全部受影响 `file:line`,以及实际契约或命令结果;承载硬准入的「具体位置」与「问题证据」,不再单列「位置」 |
|
|
32
|
+
| 兜底场景 | 加粗字段 | 可达的异常、失败、越权、数据损害或诊断盲区场景;承载硬准入的「可达场景」 |
|
|
33
|
+
| 影响 | 加粗字段 | 当前缺口的用户、数据、安全或工程影响 |
|
|
34
|
+
| 保护收益 | 加粗字段 | 修复后恢复或新增的明确保护结果;属于报告完整度,不得省略或并入建议 |
|
|
35
|
+
| 建议 | 加粗字段 | 推荐修复方式,不在检查阶段执行 |
|
|
36
|
+
| 验证 | 加粗字段 | 修复后的测试、故障注入、命令或手动验证步骤;受环境限制时按验证阶段标记阻断型 `部分验证` 或 `[上线后验证]` |
|
|
37
|
+
|
|
38
|
+
`FBK-*` 分类和环境不足处理沿用 fallback reference;保护收益与验证方式仍为报告字段。
|
|
39
|
+
|
|
40
|
+
`CHK-*` 与 `FBK-*` 分开编号,同根因位置合并。严重度排序只在各自通道内部生效,每个通道内部按 `P0 -> P1 -> P2` 展示且不重排 ID。跨通道报告顺序固定为完整 `CHK-*` 区块在前、完整 `FBK-*` 区块在后;禁止因 FBK 严重度更高、分类时先判断 FBK、发现先后或 ID 分配时机而 FBK-first 或交错。新根因递增编号。处置不改变 ID、通道或严重度。
|
|
41
|
+
|
|
42
|
+
## 风险接受
|
|
43
|
+
|
|
44
|
+
风险接受由用户显式处置,不改变问题严重度:
|
|
45
|
+
|
|
46
|
+
1. 只有用户可以接受风险;主会话、subagent 和 validated auto-loop 都不得代替用户推断或授权。
|
|
47
|
+
2. 按当前报告和语义解析:“接受当前报告全部风险”“全部接受”“这些风险都接受”等覆盖全部 `CHK-*` / `FBK-*`,包括 P0,无固定句式或逐项 ID。部分接受须唯一定位子集;报告版本或范围不清时才追问。
|
|
48
|
+
3. 接受绑定该问题的证据与相关 diff。代码、契约或验证变化后,先核对是否实质改变该问题的证据、触发条件、影响或严重度;改变时仅该问题的原接受失效,恢复为待处理并说明变化。无关文件改动、行号移动或不改变问题语义的报告整理不使接受失效。无法确认关联证据仍有效时明确缺口,不推断继续有效。
|
|
49
|
+
4. 原报告与接受记录保留完整问题、原通道、严重度和证据;不得删除条目、改列 `DOC-*` 或伪报已修复。对话展示按下方“接受后的增量展示”执行;需要展开已接受条目时,标题行末尾追加 `` `[已接受风险]` `` 标签。
|
|
50
|
+
5. `strict pass` 只用于剩余 `CHK-*` / `FBK-*` 均为 0。所有剩余问题均已被有效接受,且无 blocked、无阻断型部分验证、无未接受的实质剩余风险时,结论为 `通过·已接受风险`。
|
|
51
|
+
6. blocked、阻断型部分验证和无法唯一对应当前报告范围的实质剩余风险不是 `CHK-*` / `FBK-*` 处置状态,不能借风险接受绕过;`[上线后验证]` 不属于风险接受对象。
|
|
52
|
+
7. `仅保留报告` 表示停止处置并等待,不等于接受风险,也不授权写文件;只有带明确接受语义的用户回复才改变问题处置状态。
|
|
53
|
+
|
|
54
|
+
### 接受后的增量展示
|
|
55
|
+
|
|
56
|
+
- 首次报告完整展示全部问题。若只改变处置状态,简短确认本次接受的 ID、更新后的结论和必要的下一步;不重贴报告、维度表、问题字段或原风险说明,也不因此重跑检查。部分接受时补充剩余待处置 ID,不误报通过。
|
|
57
|
+
- 后续重检完整展示新增、实质变化、接受失效及仍待处置的问题;未变化且接受仍有效的问题只汇总数量,计入报告总数与接受数,不重复字段。无须展开的通道省略问题区块。
|
|
58
|
+
- 恢复会话、验证进展和 Update-Spec 内部沿用有效接受记录,不主动复述;Push 按其输出 reference 汇总。用户要求详情时再展开指定问题的原报告与当前处置。
|
|
59
|
+
- 原报告或接受依据无法恢复时,说明缺口并针对受影响项目补核,不凭摘要伪报通过或要求全部重接受。复用现有对话或任务记录,不新增展示次数、状态文件或报告附件。
|
|
60
|
+
- 接受后按 `reporting-and-disposition.md` 的 Gate 推进;明确“仅接受、不继续”时只更新处置。仍有未处置问题或阻塞时说明剩余项并停止。接受风险不替代 Push 的精确计划确认。
|
|
61
|
+
|
|
62
|
+
## 输出:统一检查报告
|
|
63
|
+
|
|
64
|
+
按“接受后的增量展示”在对话中报告。不得为缩短回复、留存结论或同步任务状态新建 `check-report.md` 等附件或用链接代替应展示内容。
|
|
65
|
+
|
|
66
|
+
仅用户明确导出或已确认交付约定要求时由主会话保存。Maven、auto-loop 沿用机器证据契约,不额外生成 Markdown;已有报告不自动删除或复制。
|
|
67
|
+
|
|
68
|
+
interactive 完成检查与允许的 DOC 修复后,先自然说明实际改动、行为影响和结论,再展示证据与问题:
|
|
69
|
+
|
|
70
|
+
- 依据当前审查范围的最终 diff 和已读实现,覆盖 staged、unstaged、未跟踪文件及必要的子仓;复用检查时收集的材料,不额外启动 Diff Brief 流程或重复扫描。
|
|
71
|
+
- 按行为说明改前后的差异,只有证据支持时才描述旧行为;无行为变化时说明文档、测试或生成物调整,不罗列文件。
|
|
72
|
+
- 区分已实现、已验证和仍未解决的内容;计划中的功能不得写成已经交付,未归属本次范围的 dirty 不得混入。阻塞或重大问题在开头说明,不能被改动介绍掩盖。
|
|
73
|
+
- 自然段不另设固定字段或空项,按复杂度展开。重检只解释本轮修复及其影响。随后按增量展示规则保留应展开的问题、风险和下一步。
|
|
74
|
+
|
|
75
|
+
```markdown
|
|
76
|
+
## Trellis Check-All 结果
|
|
77
|
+
|
|
78
|
+
<用自然语言说明实际改动、行为影响和检查结论;不逐文件罗列,不复述规划>
|
|
79
|
+
|
|
80
|
+
[<通过/通过·已接受风险/未通过/阻塞>] <N> 个维度 · CHK <N>(接受 <N>)· FBK <N>(接受 <N>)· 自动修复 DOC <N> · P0 <N> / P1 <N> / P2 <N> · 验证 <通过>/<总数>
|
|
81
|
+
|
|
82
|
+
- **工作**:<任务名称 | Untracked work: work-id | 无活动工作>
|
|
83
|
+
- **范围**:<文件数与层级摘要;包含自动修复产生的 DOC diff>
|
|
84
|
+
- **画像**:requested=<auto/light/full> · effective=<light/full> · confidence=<high/fallback-full/escalated> · <原因摘要>
|
|
85
|
+
- **结论**:<一句话结论>
|
|
86
|
+
|
|
87
|
+
### 维度结果
|
|
88
|
+
|
|
89
|
+
| 维度 | 状态 | CHK | FBK | 验证 |
|
|
90
|
+
| --- | --- | ---: | ---: | --- |
|
|
91
|
+
| 三件套实现 | <通过/未通过/部分验证/阻塞/N/A> | <N> | <N> | <摘要> |
|
|
92
|
+
| 实现假设 | <通过/未通过/部分验证/阻塞/N/A> | <N> | <N> | <摘要> |
|
|
93
|
+
| 完整性与规范 | <通过/未通过/部分验证/阻塞/N/A> | <N> | <N> | <摘要> |
|
|
94
|
+
|
|
95
|
+
### 自动修复
|
|
96
|
+
|
|
97
|
+
| 文档 | 修复 | 验证 |
|
|
98
|
+
| --- | --- | --- |
|
|
99
|
+
| DOC-001 | <文件与修复内容> | <通过/失败/未执行> |
|
|
100
|
+
|
|
101
|
+
### 主路径问题
|
|
102
|
+
|
|
103
|
+
#### `CHK-001` `P1` `<来源>` <标题>
|
|
104
|
+
|
|
105
|
+
- **证据**
|
|
106
|
+
- `<file:line>` — <契约、实际值或命令结果>
|
|
107
|
+
- `<file:line>` — <契约、实际值或命令结果>
|
|
108
|
+
- **影响**:<影响>
|
|
109
|
+
- **建议**:<修复建议>
|
|
110
|
+
- **验证**:<验证命令或步骤>
|
|
111
|
+
|
|
112
|
+
### 兜底问题
|
|
113
|
+
|
|
114
|
+
#### `FBK-001` `P1` `<来源>` <标题>
|
|
115
|
+
|
|
116
|
+
- **证据**
|
|
117
|
+
- `<file:line>` — <保护缺失、错误或可绕过的证明>
|
|
118
|
+
- **兜底场景**:<可达异常或失败场景>
|
|
119
|
+
- **影响**:<影响>
|
|
120
|
+
- **保护收益**:<修复后的明确保护结果>
|
|
121
|
+
- **建议**:<修复建议>
|
|
122
|
+
- **验证**:<验证命令或步骤>
|
|
123
|
+
|
|
124
|
+
### 未覆盖与风险
|
|
125
|
+
|
|
126
|
+
- [<部分验证/上线后验证/阻塞/N/A>] <说明;上线后验证写动作、责任边界和预期结果>
|
|
127
|
+
|
|
128
|
+
### 修复批次
|
|
129
|
+
|
|
130
|
+
- **批次 1**:<CHK/FBK 问题 ID> · <修复目标>
|
|
131
|
+
- **修复后**:定向验证 -> Check-All 重检
|
|
132
|
+
|
|
133
|
+
### 下一步
|
|
134
|
+
|
|
135
|
+
<按`reporting-and-disposition.md` 的 `Interactive Post-Check Stop Gate` 输出一个明确、可执行的主动作>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
展示规则:
|
|
139
|
+
|
|
140
|
+
- 普通 light strict pass 使用 reporting-and-disposition 的简短通过格式;其它报告可紧凑表述,保留模板顺序、画像、维度、实际验证、DOC(如有)、风险和下一步,省略空区块;不得缩减实际检查范围。应展开的问题完整展示字段与处置;仅更新接受状态时使用简短确认,不套用本模板。
|
|
141
|
+
- 报告头部“工作/范围/画像/结论”和“修复批次”必须使用 `- ` 列表项,不得改为裸行或依赖行尾空格。
|
|
142
|
+
- 展开项使用 `` #### `<ID>` `<严重度>` `<来源>` <标题> ``;仅已接受项追加 `` `[已接受风险]` ``,来源与处置不另占行。
|
|
143
|
+
- 禁止用 `- [ ]` / `- [x]` 承载问题:终端会压平松散列表,四级标题能稳定分隔。修复状态用“修复结果”表格表达。
|
|
144
|
+
- 字段使用 `- **<字段>**:<值>` 加粗列表标签,避免折行后难以定位。
|
|
145
|
+
- 位置并入 `证据`:`- **证据**` 后接子列表,全部受影响 `file:line` 逐项列出,不用 `;` 堆叠或仅写概述。
|
|
146
|
+
- 没有 `DOC-*` 自动修复时省略“自动修复”区。
|
|
147
|
+
- 本轮无须展开的通道省略问题区。
|
|
148
|
+
- 展开顺序遵循上方通道规则,不得按全局严重度排序反转或交错两个区块。
|
|
149
|
+
- 存在未处置 `CHK-*` 或 `FBK-*` 时,“修复批次”只说明分组与验证安排,处置选择统一在报告末尾“下一步”中提供一次,不再逐项提问。
|
|
150
|
+
- `修复全部` 始终覆盖全部 `CHK-*` 与 `FBK-*`;精确修复可以混合两类 ID。
|
|
151
|
+
- interactive 标准报告必须以“下一步”段结束;停止等待不等于省略引导。
|
|
152
|
+
- 独立 `CHK-*` 或 `FBK-*` 不得因数量多而静默省略;合并同根因后列全应展开项,已接受项按增量规则汇总。
|
|
153
|
+
- 报告不得包含 commit message、拟提交/暂存文件、commit-only 决策或提交确认。
|
|
154
|
+
- light 通过正式满足 Phase 2.2 检查门禁;未执行维度必须标记 `N/A`,不得伪装为已验证。
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 修复与重检
|
|
159
|
+
|
|
160
|
+
用户选择 `修复全部`、混合精确问题 ID 或其它明确修复范围后,必须先读取 `references/repair-and-recheck.md` 执行修复续行;未选择时不加载。
|
|
161
|
+
|
|
162
|
+
修复完成后输出:
|
|
163
|
+
|
|
164
|
+
```markdown
|
|
165
|
+
## Trellis Check-All 修复结果
|
|
166
|
+
|
|
167
|
+
<用自然语言说明本轮实际修复、修复后的行为和重检结论>
|
|
168
|
+
|
|
169
|
+
[<完成/部分完成/失败>] CHK 修复 <完成>/<计划> · FBK 修复 <完成>/<计划> · DOC 自动修复 <N> · 验证 <通过>/<总数> · 剩余 CHK <N> · 剩余 FBK <N>
|
|
170
|
+
|
|
171
|
+
| 问题 | 修复 | 验证 |
|
|
172
|
+
| --- | --- | --- |
|
|
173
|
+
| CHK-001 | <已修复/未修复/阻塞> | <通过/失败/未执行> |
|
|
174
|
+
| FBK-001 | <已修复/未修复/阻塞> | <通过/失败/未执行> |
|
|
175
|
+
| DOC-001 | <已自动修复/未修复/阻塞> | <通过/失败/未执行> |
|
|
176
|
+
|
|
177
|
+
### 未修复与风险
|
|
178
|
+
|
|
179
|
+
- <待处置、新增或变化的问题及风险;未变化的有效已接受问题只汇总数量;没有时写“无”>
|
|
180
|
+
|
|
181
|
+
结论:<重检结论>
|
|
182
|
+
|
|
183
|
+
### 下一步
|
|
184
|
+
|
|
185
|
+
<按`reporting-and-disposition.md` 的 `Interactive Post-Check Stop Gate` 输出一个明确、可执行的主动作>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
重检后按`reporting-and-disposition.md` 的 `Interactive Post-Check Stop Gate` 分流;仍有未处置 `CHK-*` 或 `FBK-*` 时停留在处置/重检循环。
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
---
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Repair And Recheck
|
|
2
|
+
|
|
3
|
+
仅在用户选定当前报告的修复范围后读取;未选择时保持检查只读边界。
|
|
4
|
+
|
|
5
|
+
用户选择 `修复全部`、混合精确问题 ID 或其它明确修复范围后:
|
|
6
|
+
|
|
7
|
+
本修复续行优先于新需求分类和 Active Task Scope Guard:归属依据是受检事项、报告证据和用户选定范围。问题跨模块、属于既有缺陷或未写入任务标题/Brief,不单独构成新需求;不得因此新建或纳管任务,也不得重走首次 Brief 确认。必要材料同步沿用 `trellis-task-brief` 的增量规则。
|
|
8
|
+
|
|
9
|
+
1. 指针缺失时先按既有恢复规则找回受检事项,不以新建任务代替恢复;无法唯一确定归属时只补核该信息。主会话复用当前 task 已有的合法 implement route;untracked 则重新直接读取个人 pref。不存在合法 route 时进入 `trellis-route(target=implement)`,由其统一解析选择或内置缺省。
|
|
10
|
+
2. 修复过程中不对每个问题重复确认。
|
|
11
|
+
3. 新增业务歧义、破坏性风险、超出所选修复范围,或跨越已批准的候选、费用或生产操作边界时才暂停;一次说明变化及受影响问题,只确认尚未决定的增量,不重复审批已选修复。
|
|
12
|
+
4. 完成定向验证后复用当前 check route 重新执行 Check-All。
|
|
13
|
+
5. 原 ID 沿用,新根因递增。后续按当前 diff 选深度:原 finding、修复路径、引用/回归和定向证据均闭合时可 light;范围扩大、契约/基线变化、未知 dirty 或证据失效时 full。
|
|
14
|
+
|
|
15
|
+
完成后返回 `references/reporting-and-disposition.md`,加载 `references/findings-and-reporting.md` 的修复结果模板,再按既有 Gate 分流。
|