Files
cs-note/claude-code-best/docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md

12 KiB
Raw Permalink Blame History

tags, create time
tags create time
testing
斜杠命令
测试清单
验收
2026-06-09 22:30

斜杠命令完整测试清单

概述

本测试清单覆盖所有恢复/新建命令(PR-1 ~ PR-4 + audit-fix + H2 refactor)的完整验收测试。按功能分组,从纯本地到需要外部依赖的命令。

[!info] 日期:2026-05-06 适用范围:本 session 累积所有恢复/新建命令 起点 commit:origin/main (4f1649e2) 最新 commit:fe99cf0e(35+ commits ahead)

正文

测试前准备

cd E:/Source_code/Claude-code-bast-autofix-pr

# 1. 确保最新 dist 含全部 commits
bun run build

# 2. 验证 dist 不是 stale
stat -c '%Y %n' dist/cli.js
git log -1 --format=%ct\ %h
# dist mtime 必须 >= HEAD commit time

# 3. 完全退出当前 dev REPL(按 Ctrl+D 或 /quit)后重启
bun run dev

Warning

关键提醒:Bun 不会动态重载 dist,任何 source 改动都必须 bun run build + 重启 REPL。

A 组 — 纯本地(无网络/无 key,立即可测)

前置:无

# 命令 输入 期望输出 通过
A1 /version 直接跑 显示版本号(如 1.10.10) ☐
A2 /env 直接跑 runtime 信息 + env vars 白名单 + secrets masked ☐
A3 /context 直接跑 fork 原生命令:colored grid + token 数与 API 看到的一致 ☐
A4 /context 在压缩边界附近 直接跑 显示 compact boundary 后的 messages,不重复计 token ☐
A6 /debug-tool-call 默认 N=5 列最近 5 个 tool_use+tool_result 配对 ☐
A7 /debug-tool-call 10 数字参数 列最近 10 个 ☐
A8 /perf-issue 直接跑 写 ~/.claude/perf-reports/perf-<stamp>.md ☐
A9 /perf-issue --format=json flag 写 .json 格式 ☐
A10 /perf-issue --limit 1000 flag 仅读 log 最后 1000 行 ☐
A11 /break-cache 默认 once 写 ~/.claude/.next-request-no-cache marker ☐
A12 /break-cache status 子命令 显示 marker 状态 + 累计 break 次数 ☐
A13 /break-cache always 子命令 写 always flag 文件 ☐
A14 /break-cache off 子命令 删 once + always ☐
A15 /tui toggle 切换 marker ~/.claude/.tui-mode ☐
A16 /tui status 子命令 显示当前 marker + env var 状态 ☐
A17 /tui on /tui off 子命令 marker write/unlink ☐
A18 /onboarding status 子命令 显示 hasCompletedOnboarding / theme / lastVersion ☐
A19 /onboarding theme 子命令 进入 ThemePicker ☐
A20 /onboarding trust 子命令 清 trust dialog flag ☐
A21 /onboarding reset 子命令 清 hasCompletedOnboarding,下次启动重跑 ☐
A22 /recap 直接跑 一行 <=40 字 session recap ☐
A23 /away /catchup aliases of recap 同 A22 ☐
A24 /usage 直接跑 合并 cost + stats ☐
A25 /cost /stats aliases of usage 同 A24 ☐
A26 /summary 直接跑 调 manuallyExtractSessionMemory + 显示 summary.md ☐

A 组失败诊断:

  • 命令找不到 -> 检查 dist staleness + 重启 REPL
  • feature() unsupported -> bun run build 时 feature flag 没注入

B 组 — GitHub CLI(需 gh auth login)

前置:gh auth status 显示 logged-in;fork 仓库要有 issues enabled

# 命令 输入 期望输出 通过
B1 /share 默认 secret gist 调 gh gist create,输出 gist URL ☐
B2 /share --public flag public gist ☐
B3 /share --mask-secrets flag redact sk-ant-* Bearer * ghp_* 等模式 ☐
B4 /share --summary-only flag 仅前 200 字/turn ☐
B5 /share --allow-public-fallback flag gh 失败 -> 0x0.st fallback ☐
B6 /issue Fix login bug title 参数 调 gh issue create,rich body 含最近 5 turns + errors ☐
B7 /issue --label bug --assignee me <title> 多 flag label + assignee 生效 ☐
B8 /issue (仓库 issues disabled) — 自动降级到 GitHub Discussions ☐
B9 /commit 直接跑(有 staged) 生成 commit message 草稿 ☐
B10 /commit-push-pr 直接跑 commit + push + 创建 PR ☐

B 组失败诊断:

  • gh: command not found -> 装 https://cli.github.com/
  • gh auth status 未登录 -> gh auth login
  • issues disabled -> 看是否降级到 discussion

C 组 — Subscription OAuth(已 /login claude.ai)

前置:/login 完成 claude.ai OAuth;/login 显示 ☑ Subscription

# 命令 输入 期望输出 通过
C1 /login 无参 3 plane summary:☑ Subscription、☐/☑ Workspace API key、4 third-party providers ☐
C2 /teleport 无参 列最近 sessions(list-style picker) ☐
C3 /teleport <session-uuid> 参数 resume from claude.ai ☐
C4 /tp <session-uuid> alias 同 C3 ☐
C5 /teleport <session-uuid> --print flag print mode 直接输出 session URL ☐
C6 /autofix-pr 386 PR# CCR 派发,输出 sessionUrl ☐
C7 /autofix-pr stop 子命令 停止 active monitor ☐
C8 /autofix-pr anthropics/claude-code#999 cwd 不匹配 拒绝 repo_mismatch ☐
C9 /schedule list 子命令 /v1/code/triggers GET,返回 trigger 列表 ☐
C10 /schedule create <cron> <prompt> 子命令 POST,cron expr UTC 验证 ☐
C11 /schedule run <id> 子命令 POST /run 立即触发 ☐
C12 /schedule update <id> <field> <value> 子命令 POST(不是 PATCH) ☐
C13 /cron list /triggers list aliases 同 C9 ☐
C14 /init-verifiers 无参 创建项目 verifier skills ☐
C15 /bridge-kick 无参 bridge 故障注入测试 ☐
C16 /subscribe-pr 无参 列本地 ~/.claude/pr-subscriptions.json ☐
C17 /ultrareview <PR#> 参数 preflight gate ☐

C 组失败诊断:

  • 401 -> 重 /login
  • /v1/agents 类 401 -> 这些是 workspace endpoint,预期会失败,移到 F 组
  • /schedule 401 -> 检查 dist 含 ccr-triggers-2026-01-30 beta header

E 组 — 本地兜底(PR-3 新增,订阅用户无 key 也能用)

前置:无

E.1 /local-vault(OS keychain + AES fallback)

# 命令 输入 期望输出 通过
E1 /local-vault list 无参 空列表(首次) ☐
E2 /local-vault set test-key foo-secret-value 写 secret onDone 显示 [REDACTED],不显示原值 ☐
E3 /local-vault list 再跑 显示 test-key(不含 value) ☐
E4 /local-vault get test-key 默认 mask foo-...e (16 chars) 类似格式 ☐
E5 /local-vault get test-key --reveal 明文 + 警告 foo-secret-value + 警告 ☐
E6 /local-vault set bad-key C:hack path traversal 拒绝 ☐
E7 /local-vault set ../traverse foo path traversal 拒绝 ☐
E8 /local-vault delete test-key 删 OK ☐
E9 /lv list alias 同 E1 ☐

安全验证:

# E1 加密文件存在 + value 不明文
ls ~/.claude/local-vault.enc.json
cat ~/.claude/local-vault.enc.json | grep -c "foo-secret-value"  # 必须是 0
# salt 16 字节存在
cat ~/.claude/local-vault.enc.json | grep "_salt"

E.2 /local-memory(多 store 持久化)

# 命令 输入 期望输出 通过
E10 /local-memory list 无参 空 ☐
E11 /local-memory create my-store 创建 ~/.claude/local-memory/my-store/ 建好 ☐
E12 /local-memory store my-store key1 value1 写 entry OK ☐
E13 /local-memory fetch my-store key1 读 value1 ☐
E14 /local-memory entries my-store 列 [key1] ☐
E15 /local-memory store my-store ../escape foo path traversal 拒绝 ☐
E16 /local-memory archive my-store 改名 dir 改为 my-store.archived ☐
E17 /lm list alias 同 E10 ☐

E 组失败诊断:

  • AES 错 passphrase -> 提示重新 setSecret
  • keychain 不可用 -> 自动 fallback 文件(warn 一次)
  • path traversal 接受 -> audit-fix-all-40 修复未生效,重新 build

F 组 — Workspace API key(需配 ANTHROPIC_API_KEY=sk-ant-api03-*)

前置:

  1. 从 https://console.anthropic.com/settings/keys 创建 API key(sk-ant-api03-*)
  2. Windows: setx ANTHROPIC_API_KEY "sk-ant-api03-..." 持久化
  3. 完全退出 dev REPL(Ctrl+D / /quit) + 启动新 shell(让 setx 生效)+ bun run dev
  4. 验证:/login 应显示 ☑ Workspace API key ANTHROPIC_API_KEY set
# 命令 输入 期望输出 通过
F1 /help(配 key 后) — 4 命令 /agents-platform /vault /memory-stores /skill-store 出现 ☐
F2 /help(不配 key) — 4 命令不出现(动态 isHidden) ☐
F3 /agents-platform list 无参 /v1/agents GET 200,返回 agents 数组 ☐
F4 /vault list 无参 /v1/vaults GET 200 ☐
F5 /vault create test-vault 子命令 创建 vault ☐
F6 /vault add-credential <vault_id> api-key sk-secret 子命令 onDone 显示 [REDACTED] ☐
F7 /memory-stores list 无参 /v1/memory_stores GET ☐
F8 /memory-stores create test-store 子命令 POST ☐
F9 /memory-stores update-memory <id> <mid> "new" 子命令 PATCH(不是 POST) ☐
F10 /skill-store list 无参 /v1/skills?beta=true GET ☐
F11 /skill-store install <id> 子命令 写 ~/.claude/skills/<name>/SKILL.md ☐
F12 错配(API key 不是 sk-ant-api03-* 前缀) 配错 key 友好错(不 401) ☐
F13 不配 key 时调 /vault list — 501 + 文案 "ANTHROPIC_API_KEY required" ☐

F 组失败诊断:

  • 401 with workspace key -> key 没生效(重启 REPL + 检查 echo $ANTHROPIC_API_KEY)
  • 命令仍 isHidden -> dist staleness(rebuild + 重启)
  • credential value 出现在 stdout -> audit fix 未生效

全过验收标准

  • A 组 26/26 pass
  • B 组 >=8/10 pass(有 gh + 仓库权限的)
  • C 组 >=10/17 pass(订阅环境完整)
  • E 组 17/17 pass(path traversal 必须拒绝)
  • F 组 >=10/13 pass(取决于 workspace key 是否配)

Warning

任何 fail 立即报告:命令 + 实际输出 + 期望输出。

已知限制

命令 限制
/teleport 无参 picker 用 list-style 不是 Ink <SelectInput>(LocalJSXCommandCall 不能 mid-call suspend)
/autofix-pr cross-repo 仅元数据,git source 仍来自 cwd(repo_mismatch 显式拒绝跨 cwd)
/skill-store install 写到 ~/.claude/skills/,fork 主流程不自动 load 该目录的 markdown skills(用户手动用)

测试报告模板

## 测试报告 - 2026-05-XX

### 环境
- OS: Windows 11
- Bun: <version>
- dist mtime: <date>
- HEAD: <commit-hash>
- ANTHROPIC_API_KEY: 配/未配
- gh CLI: 装/未装

### 结果
- A: 26/26 pass
- B: 8/10(B5/B8 fail)
- C: 12/17(C5/C13/C14/C15/C16 fail)
- E: 17/17 pass
- F: 12/13(F12 边界)

### 失败详情
B5: <command> -> 实际 <output>,期望 <expected>
...

关联笔记