# Clavue v8.10.15 — Release Notes

**发布日期**：2026-05-15
**npm**：`clavue@8.10.15`
**GitHub**：https://github.com/mycode699/clavue/releases/tag/v8.10.15
**升级命令**：

```bash
npm install -g clavue@8.10.15
# 或一次性：
npx -y clavue@8.10.15
```

---

## TL;DR

8.10.15 把三个高摩擦命令一次性升级到产品级标杆：

1. **`/permissions` → Codex 风格 3 选项**（Default / Auto-review / Full Access）。选 Full Access 后，类似 `git push` / `mao delivery gate` 之类的弹窗 `Permission rule Bash(...) requires confirmation` 不会再打断你。旧的 7 选项移到二级 "More options" 菜单，旧 alias (`autonomous` / `trusted-ops` / `setup`) 全部兼容。
2. **`/review` → 本地 codex-review 6 段 closeout**（不再依赖远端 Anthropic CCR 服务）。自定义 provider 用户现在也能用 `/review`，模板锁死 4 种 target（uncommitted / branch vs main / single commit / PR#），明确禁止"换模型 chase 更好的 review 文案"，并要求干净退出时打印 `review clean: no accepted/actionable findings reported` 这个 grep-friendly 字面量。
3. **`/retro` → 新增 round 5 rollup**：明示 `PRODUCT.md` / `ARCHITECTURE.md` 是 Karpathy `autoresearch` 里 `program.md` 的等价物，round 5 产出**提议的 PRODUCT.md / ARCHITECTURE.md / clavue.md 编辑**但不自动应用（保留"人改 program.md、agent 改 train.py"的分离）。

测试：1301 / 1298 pass / 3 skipped / 0 fail（`npm run check`, ~59s）。新增 2 个契约测试锁住 review 6 段与 retro round 5。

---

## 1. `/permissions` 简化为 Codex 风格 3 选项

### 问题

之前 `/permissions` picker 默认列 7 个选项（3 个安装 + 3 个 status + 1 个 rules 管理器），用户每次升级前都要在脑海里映射 `autonomous` / `trusted-ops` / `zero-config` 三个内部 preset 名。直接结果：在发布 v8.10.14 时遇到 `Permission rule Bash(mao delivery gate) requires confirmation for this command. Do you want to proceed?` 这种弹窗 — 用户已经在按 release-publish skill 走，但 picker 没有一档"我现在就是要把所有询问关掉发版"的明确档位。

### 修复

参照 Codex CLI 的 `/permissions` 三档命名：

- **Default** → 内部 `zero-config` preset（`acceptEdits` + 安全的 allow 规则集）。
- **Auto-review** → 内部 `autonomous` preset（`bypassPermissions` + 显式 ask boundaries 包住 push / publish / rm）。
- **Full Access** → 内部 `trusted-operator` preset（`trustedOps` 模式 + SSH / scp / npm publish / git push / gh release 全部 allow）。

选 Full Access 弹**二次确认屏**列出不可逆动作清单（"会允许 Clavue 在不再询问的情况下：修改工作区之外的文件 / 访问外网 / 运行 SSH, scp, rsync / 执行 git push / git tag / 运行 npm publish / gh release"），确认后才安装。

旧的 4 个二级动作（autonomous-status / trusted-ops-status / zero-config-status / rules）搬到 "More options…" 子菜单，从主路径上让出位置。

### 兼容性

所有旧 CLI 别名保留：`/permissions autonomous`、`/permissions trusted-ops`、`/permissions setup`、`/permissions zero-config`、`/permissions ccjk`、`/permissions zc` 等全部继续命中各自的 preset。新增的快捷别名：`/permissions default`、`/permissions auto-review`、`/permissions full-access`。

CLI flag 形式（`/permissions full-access`）跳过二次确认 — 命令行已经是显式授权，再问一次是噪声。

### 改动文件

- `src/commands/permissions/permissions.tsx` — 重构 picker，新增 `MoreOptionsScreen` / `FullAccessConfirmScreen`
- `src/commands/permissions/index.ts` — 新 argumentHint + subcommand 树
- `src/utils/uiLocaleMessages.ts` — 新增 17 个 Codex 风格文案 key（中英双套）

### 契约测试

`tests/legacy-ccjk-command-discovery.test.mjs` 和 `tests/product-truth-surfaces.test.mjs` 更新：picker 必须包含 `defaultModeChoiceLabel` / `autoReviewChoiceLabel` / `fullAccessChoiceLabel` / `moreOptionsLabel` / `fullAccessConfirmTitle` / `confirm-full-access` 锚点，subcommand 必须支持 `default` / `auto-review` / `full-access` 新别名，同时保留 `setup` / `autonomous` / `trusted-ops` 旧别名。

---

## 2. `/review` 改为本地 codex-review 6 段 closeout

### 问题

之前 `/review` 的 prompt 是 32 行的 generic PR-审查模板（"You are an expert code reviewer. Follow these steps..."）。对自定义 provider 用户来说唯一的 review 入口是 `/ultrareview` — 但 ultrareview teleport 到 Anthropic CCR 服务，custom-API 用户无法使用，所以实际上没有可用的 review 命令。

模板太薄还导致两个具体问题：

- 不区分 target（uncommitted vs 已提交分支 vs 单个 commit vs PR#），模型经常对着 working tree 复述。
- 没说"不要换模型 chase 更好的 review 文案"，长 review 循环里模型容易主动切换 model。

### 修复

参照 [steipete/agent-scripts/skills/codex-review/SKILL.md](https://github.com/steipete/agent-scripts/blob/main/skills/codex-review/SKILL.md) 的 6 段 closeout 结构，把 `/review` 的 prompt 重写为：

1. **Contract** — review 输出是 advisory，必须 verify；拒绝 speculative；不要换模型 chase 文案；权限不够走 `/permissions full-access` 而不是换模型；干净就停，不为了文案 polish 再跑一轮；不要为了 review 而 push。
2. **Pick Target** — 4 种 target 模式，工作树干净时**不要**强制 dirty 模式；分支已有 commit 时**不要**只 review 工作树 delta。
3. **Parallel Closeout** — 先 format（避免 review 评论指错行），再并行跑 focused tests（`test:route-policy` / `test:workflow-continuity` / `verify:provider:smoke`，不一上来跑全套 check）。
4. **Context Efficiency** — Accepted / Rejected 分组，Rejected 给一行原因（`tested at <path>:<line>` / `covered by <test>` / `out of scope for this diff`）。
5. **Helper Rules** — 干净退出时打印 `review clean: no accepted/actionable findings reported` 这个 grep-friendly 字面量。
6. **Final Report** — 固定字段 block。

模板抽到独立模块 `src/commands/review/reviewPrompt.ts`，方便契约测试不用 bundle 整个 commands.ts 图。

### 改动文件

- `src/commands/review.ts` — 删 LOCAL_REVIEW_PROMPT，改为引用 reviewPrompt 模块
- `src/commands/review/reviewPrompt.ts` — 新增 6 段 prompt 模板
- `tests/review-command-local-prompt.test.mjs` — 新增契约测试（6 段锚点、4 种 target、never switch model、`/permissions full-access` 引用、clean 退出字面量）

### `/ultrareview` 不受影响

`/ultrareview` 仍然是远端 bughunter 唯一入口；本次只动 `/review` 本地路径。两条命令现在职责清晰：local 用 `/review`、有 Anthropic 订阅且需要 ~10-20 分钟深度 bug hunt 用 `/ultrareview`。

---

## 3. `/retro` 新增 round 5 rollup + PRODUCT/ARCHITECTURE 提议

### 问题

`/retro` 之前是 autoresearch 风格的 4 round 循环（reality scan / ranking / upgrade / evaluation），并写 `.clavue/retro/results.tsv` 账本。但没有"把多轮发现 roll up 回 PRODUCT.md / ARCHITECTURE.md"的步骤，导致每次 retro 的 learning 停留在 plan 文件里，不会真的更新人类拥有的 steering 文档。

### 修复

参照 [karpathy/autoresearch](https://github.com/karpathy/autoresearch) 的分工原则（人改 `program.md`，agent 改 `train.py`），retro prompt 现在明示：

> 对这个 repo 而言，`PRODUCT.md` 和 `ARCHITECTURE.md` 就是 `program.md` 的等价物 — 人类拥有的 steering 文档，agent 读它、对照它验证、向它提议修改（但不静默重写）。

新增 **Round 5: Rollup and PRODUCT/ARCHITECTURE update proposal**。在至少 3 轮 patrol 行已经落盘后，agent 产出 `.clavue/retro/plans/<run_tag>-round-5-rollup.md`，内容包括：

1. 1 段 keep/discard rollup（引用 `.clavue/retro/results.tsv` 的具体行）。
2. 还未做但最高 leverage 的下一个 slice。
3. **提议的 PRODUCT.md 编辑** — 具体 diff 或 before/after block，或明示 "no change needed"。
4. **提议的 ARCHITECTURE.md 编辑** — 同上。
5. **提议的 clavue.md 编辑** — 仅在惯例被本轮显式 promote 或 retire 时。
6. ≤ 3 个 open question 留给人类决策。

关键约束：**round 5 不自动应用 PRODUCT.md / ARCHITECTURE.md 的提议**。loop 产出证据 + 提议，doc-level 变更由人确认。

### 改动文件

- `src/commands/retro/retroPrompt.ts` — Mission 段加 program.md 等价物说明，Minimum patrol 段提到 round-5-rollup，新增 Round 5 完整章节
- `tests/retro-command.test.mjs` — 断言新增 round-5-rollup.md / "Proposed PRODUCT.md edits" / "Proposed ARCHITECTURE.md edits" / "program.md equivalents"
- `scripts/verify-dist.mjs` — dist 校验更新到新句式

---

## 4. 升级路径

```bash
npm install -g clavue@8.10.15
# 或：
npx -y clavue@8.10.15
```

无破坏性变更：

- 所有旧 `/permissions` 别名继续工作（`autonomous` / `trusted-ops` / `setup` / `zero-config` / `ccjk` / `zc` / `autonomy` / `dev-autonomy` / `operator` / `deploy` / `release` / `init`）。
- `/review` 仍然是同名命令，prompt 变厚但调用形态不变（`/review` / `/review <PR#>` / `/review <focus>`）。
- `/retro` 仍然是同名命令，CLI 形态不变（`/retro` / `/retro <focus>`），只是 prompt 模板增加了 round 5。
- 直接从 8.10.14 升上来即可。

行为差异：

- Picker 默认列 3 个选项而非 7 个；旧 4 个 status/rules 选项移到 More options 二级菜单。
- 选 Full Access 现在会弹二次确认屏；命令行 `/permissions full-access` 跳过这层确认。
- `/review` 不再依赖远端 CCR，自定义 provider 用户可以直接用。

---

## 5. Tests / Verify

```
npm run check
# tests 1301
# pass 1298
# skipped 3
# fail 0
# duration_ms ~59s
```

新增测试文件：

- `tests/review-command-local-prompt.test.mjs`（6 段 + 4 target + never switch model + clean literal 双契约）

更新测试文件：

- `tests/retro-command.test.mjs`（新增 round 5 / program.md 等价物断言）
- `tests/legacy-ccjk-command-discovery.test.mjs`（picker 文案锚点 + Codex 别名）
- `tests/product-truth-surfaces.test.mjs`（permissionsUiSource 文案锚点）

dist 校验：

- `scripts/verify-dist.mjs` 的 `/retro` 三轮契约更新到新句式（"plus the round-5 rollup"）。

---

## 6. 改动文件清单

| 文件 | 性质 |
|---|---|
| `src/commands/permissions/permissions.tsx` | 重构 picker 为 Codex 3 选项 + More options + Full Access 二次确认 |
| `src/commands/permissions/index.ts` | 新 argumentHint + Codex 风格 subcommand 树 |
| `src/utils/uiLocaleMessages.ts` | 新增 Codex 风格文案 key（中英双套） |
| `src/commands/review.ts` | 引用独立 reviewPrompt 模块 |
| `src/commands/review/reviewPrompt.ts` | 新增 6 段 closeout 模板 |
| `src/commands/retro/retroPrompt.ts` | 加 program.md 等价物说明 + Round 5 rollup |
| `src/constants/branding.ts` | APP_VERSION_FALLBACK → 8.10.15 |
| `package.json` | 8.10.14 → 8.10.15 |
| `README.md` | 版本号同步 |
| `content-artifacts/llms.txt` | 同步到 8.10.15 |
| `content-artifacts/llms-full.txt` | 同步到 8.10.15 |
| `tests/review-command-local-prompt.test.mjs` | 新增 |
| `tests/retro-command.test.mjs` | 新增 round-5 锚点断言 |
| `tests/legacy-ccjk-command-discovery.test.mjs` | picker 文案锚点更新 |
| `tests/product-truth-surfaces.test.mjs` | picker 文案锚点更新 |
| `scripts/verify-dist.mjs` | retro 三轮 dist 契约句式更新 |

---

## 7. 后续提示

`/permissions` 现在的 3 档结构和 Codex 完全对齐，未来若 Codex 加新档位（如 "Restricted"），按同样套路加进 picker 即可。`/review` 模板是纯本地、self-contained，后续要换 6 段细节直接改 `reviewPrompt.ts` 不影响命令本身。`/retro` round 5 显式不自动应用 PRODUCT.md/ARCHITECTURE.md 的提议 — 若用户期望"自动应用"，应该是另一个独立命令（如 `/retro --apply`），不应该改 round 5 的契约。
