diff --git a/claude-code-best/Index.md b/claude-code-best/Index.md new file mode 100644 index 0000000..0a72d4f --- /dev/null +++ b/claude-code-best/Index.md @@ -0,0 +1,184 @@ +# Claude Code Best - Documentation Index + +> 本索引汇总 `claude-code-best` 项目下所有技术文档,按类别组织,方便快速导航。 + +--- + +## Introduction (入门) + +| 文档 | 说明 | +|------|------| +| [README.md](README.md) | 项目总览:功能特性、安装方式、Feature Flags、调试指南、致谢与许可证 | +| [docs/introduction/what-is-claude-code.md](docs/introduction/what-is-claude-code.md) | 什么是 Claude Code — Terminal-native agentic coding system 的技术定位、核心能力对比 | +| [docs/introduction/architecture-overview.md](docs/introduction/architecture-overview.md) | 五层架构全景图:交互层 -> 编排层 -> 核心循环层 -> 工具层 -> 通信层,附源码路径追踪 | +| [docs/introduction/why-this-whitepaper.md](docs/introduction/why-this-whitepaper.md) | 为什么需要这份白皮书 | + +## Architecture (架构设计) + +| 文档 | 说明 | +|------|------| +| [docs/diagrams/agent-loop.md](docs/diagrams/agent-loop.md) | Agent Loop 完整流程图 | +| [docs/diagrams/agent-loop-simple.md](docs/diagrams/agent-loop-simple.md) | Agent Loop 简化版示意图 | + +## Core Architecture (核心架构) + +### Conversation (对话系统) + +| 文档 | 说明 | +|------|------| +| [docs/conversation/the-loop.md](docs/conversation/the-loop.md) | Agentic Loop 详细实现 — 单次迭代的完整生命周期 | +| [docs/conversation/multi-turn.md](docs/conversation/multi-turn.md) | 多轮对话管理 — 会话状态、消息累积、权限上下文 | +| [docs/conversation/streaming.md](docs/conversation/streaming.md) | 流式通信机制 — Streaming API、StreamingToolExecutor | + +### Context Management (上下文管理) + +| 文档 | 说明 | +|------|------| +| [docs/context/system-prompt.md](docs/context/system-prompt.md) | System Prompt 动态组装 — CLAUDE.md、git 状态、MCP 服务器列表 | +| [docs/context/compaction.md](docs/context/compaction.md) | 上下文压缩策略 — microcompact、snipCompact、autocompact | +| [docs/context/token-budget.md](docs/context/token-budget.md) | Token 预算管理 — 预算跟踪、预算耗尽处理 | +| [docs/context/project-memory.md](docs/context/project-memory.md) | 项目记忆系统 — 自动记忆提取、持久化、检索 | + +### Tools (工具系统) + +| 文档 | 说明 | +|------|------| +| [docs/tools/what-are-tools.md](docs/tools/what-are-tools.md) | 工具系统概述 — Tool 接口、工具注册、MCP 集成 | +| [docs/tools/file-operations.md](docs/tools/file-operations.md) | 文件操作工具 — Read、Edit、Write、FileEdit | +| [docs/tools/shell-execution.md](docs/tools/shell-execution.md) | Shell 执行工具 — BashTool、权限模型、安全边界 | +| [docs/tools/search-and-navigation.md](docs/tools/search-and-navigation.md) | 搜索与导航工具 — Grep、Glob、FindFiles | +| [docs/tools/task-management.md](docs/tools/task-management.md) | 任务管理工具 — TaskCreate、TaskUpdate、TaskList | + +### Agent (Agent 系统) + +| 文档 | 说明 | +|------|------| +| [docs/agent/sub-agents.md](docs/agent/sub-agents.md) | 子 Agent 机制 — Fork、继承、独立执行 | +| [docs/agent/coordinator-and-swarm.md](docs/agent/coordinator-and-swarm.md) | Coordinator 模式与 Swarm 多 Worker 协调 | +| [docs/agent/worktree-isolation.md](docs/agent/worktree-isolation.md) | Worktree 隔离 — 并发安全的分支开发环境 | +| [docs/agent/sur-skill-overflow-bugs.md](docs/agent/sur-skill-overflow-bugs.md) | Skill Overflow Bug 分析与修复记录 | +| [docs/agent/sur-loop-scheduled-oom.md](docs/agent/sur-loop-scheduled-oom.md) | Loop 定时任务 OOM 问题排查 | + +## Features (功能特性) + +| 文档 | 说明 | +|------|------| +| [docs/features/all-features-guide.md](docs/features/all-features-guide.md) | 全功能使用指南 — 18 大功能类别的完整说明和示例 | +| [docs/features/acp-zed.md](docs/features/acp-zed.md) | ACP 协议支持 — 接入 Zed/Cursor IDE | +| [docs/features/acp-link.md](docs/features/acp-link.md) | ACP 深度链接集成 | +| [docs/features/remote-control-self-hosting.md](docs/features/remote-control-self-hosting.md) | Remote Control 私有部署 — Docker 自托管远程界面 | +| [docs/features/computer-use.md](docs/features/computer-use.md) | Computer Use — 屏幕截图、键鼠控制 | +| [docs/features/computer-use-architecture-v2.md](docs/features/computer-use-architecture-v2.md) | Computer Use v2 架构 — 跨平台 Executor | +| [docs/features/computer-use-windows-enhancement.md](docs/features/computer-use-windows-enhancement.md) | Windows 平台增强适配 | +| [docs/features/computer-use-mcp-test-report.md](docs/features/computer-use-mcp-test报告.md) | Computer Use MCP 测试报告 | +| [docs/features/computer-use-tools-reference.md](docs/features/computer-use-tools-reference.md) | Computer Use 工具参考手册 | +| [docs/features/chrome-use-mcp.md](docs/features/chrome-use-mcp.md) | Chrome 浏览器自动化(自托管 MCP) | +| [docs/features/claude-in-chrome-mcp.md](docs/features/claude-in-chrome-mcp.md) | Claude in Chrome MCP(原生版) | +| [docs/features/voice-mode.md](docs/features/voice-mode.md) | Voice Mode — Push-to-Talk 语音输入 | +| [docs/features/web-browser-tool.md](docs/features/web-browser-tool.md) | Web Browser Tool — 终端内网页交互 | +| [docs/features/web-search-tool.md](docs/features/web-search-tool.md) | Web Search Tool — Bing/Brave 搜索引擎 | +| [docs/features/channels.md](docs/features/channels.md) | Channels 频道通知 — MCP 推送外部消息到会话 | +| [docs/features/buddy.md](docs/features/buddy.md) | Buddy 伴侣系统 — 后台异步 AI 建议 | +| [docs/features/bridge-mode.md](docs/features/bridge-mode.md) | Bridge Mode — 远程控制协议 | +| [docs/features/daemon.md](docs/features/daemon.md) | Daemon 后台守护进程 | +| [docs/features/daemon-restructure-design.md](docs/features/daemon-restructure-design.md) | Daemon 重构设计方案 | +| [docs/features/status-line.md](docs/features/status-line.md) | Status Line — 运行时状态指示器 | +| [docs/features/debug-mode.md](docs/features/debug-mode.md) | Debug Mode — 调试模式配置 | +| [docs/features/proactive.md](docs/features/proactive.md) | Proactive 自主模式 — AI 主动发起操作 | +| [docs/features/kairos.md](docs/features/kairos.md) | Kairos 调度系统 | +| [docs/features/ultraplan.md](docs/features/ultraplan.md) | /ultraplan 高级规划 — 多阶段任务分解 | +| [docs/features/fork-subagent.md](docs/features/fork-subagent.md) | Fork 子 Agent 详细设计 | +| [docs/features/auto-dream.md](docs/features/auto-dream.md) | /dream 记忆整理 — 自动优化记忆文件 | +| [docs/features/growthbook-enablement-plan.md](docs/features/growthbook-enablement-plan.md) | GrowthBook 功能启用计划 | +| [docs/features/ssh-remote.md](docs/features/ssh-remote.md) | SSH 远程连接 | +| [docs/features/tree-sitter-bash.md](docs/features/tree-sitter-bash.md) | Tree-sitter Bash 解析 | +| [docs/features/langfuse-monitoring.md](docs/features/langfuse-monitoring.md) | Langfuse 企业级监控 | +| [docs/features/uds-inbox.md](docs/features/uds-inbox.md) | UDS Inbox — Pipe IPC 多实例协作 | +| [docs/features/lan-pipes.md](docs/features/lan-pipes.md) | LAN Pipes — 局域网跨机器零配置发现 | +| [docs/features/lan-pipes-implementation.md](docs/features/lan-pipes-implementation.md) | LAN Pipes 实现细节 | +| [docs/features/pipes-and-lan.md](docs/features/pipes-and-lan.md) | Pipes 与 LAN 综合指南 | +| [docs/features/background-agent-selector.md](docs/features/background-agent-selector.md) | 后台 Agent 选择器 | +| [docs/features/bash-classifier.md](docs/features/bash-classifier.md) | Bash Classifier — 命令分类器 | +| [docs/features/context-collapse.md](docs/features/context-collapse.md) | Context Collapse — 上下文折叠 | +| [docs/features/coordinator-mode.md](docs/features/coordinator-mode.md) | Coordinator Mode 详细说明 | +| [docs/features/experimental-skill-search.md](docs/features/experimental-skill-search.md) | 实验性 Skill 搜索 | +| [docs/features/mcp-skills.md](docs/features/mcp-skills.md) | MCP Skills 集成 | +| [docs/features/stub-recovery-design-1-4.md](docs/features/stub-recovery-design-1-4.md) | Stub Recovery 设计方案 | +| [docs/features/tier3-stubs.md](docs/features/tier3-stubs.md) | Tier 3 Stubs — 三层门控机制 | +| [docs/features/token-budget.md](docs/features/token-budget.md) | Token Budget 功能实现 | +| [docs/features/teammem.md](docs/features/teammem.md) | TeamMem — 团队协作记忆 | +| [docs/features/workflow-scripts.md](docs/features/workflow-scripts.md) | Workflow Scripts — 工作流脚本 | +| [docs/features/autofix-pr.md](docs/features/autofix-pr.md) | AutoFix PR — 自动修复 Pull Request | + +## Extensibility (扩展性) + +| 文档 | 说明 | +|------|------| +| [docs/extensibility/custom-agents.md](docs/extensibility/custom-agents.md) | 自定义 Agent — 编写你自己的 Agent 插件 | +| [docs/extensibility/hooks.md](docs/extensibility/hooks.md) | Hooks 系统 — 生命周期钩子注入 | +| [docs/extensibility/skills.md](docs/extensibility/skills.md) | Skills — 技能定义、注册与调用 | +| [docs/extensibility/mcp-configuration.md](docs/extensibility/mcp-configuration.md) | MCP 配置 — 服务器声明、参数传递 | +| [docs/extensibility/mcp-protocol.md](docs/extensibility/mcp-protocol.md) | MCP 协议 — JSON-RPC 规范详解 | + +## Internals (内部实现) + +| 文档 | 说明 | +|------|------| +| [docs/internals/feature-flags.md](docs/internals/feature-flags.md) | Feature Flags 机制 — 开关管理、默认值、环境变量覆盖 | +| [docs/internals/growthbook-ab-testing.md](docs/internals/growthbook-ab-testing.md) | GrowthBook A/B 测试集成 | +| [docs/internals/growthbook-adapter.md](docs/internals/growthbook-adapter.md) | GrowthBook Adapter — 本地 gate defaults | +| [docs/internals/three-tier-gating.md](docs/internals/three-tier-gating.md) | 三层门控机制 — 功能分级发布 | +| [docs/internals/sentry-setup.md](docs/internals/sentry-setup.md) | Sentry 错误追踪配置 | +| [docs/internals/hidden-features.md](docs/internals/hidden-features.md) | Hidden Features — 未公开功能的发现与说明 | +| [docs/internals/agent-comm-fix-jira-tasks.md](docs/internals/agent-comm-fix-jira-tasks.md) | Agent 通信修复 — JIRA 任务跟踪 | +| [docs/internals/agent-comm-fix-questions.md](docs/internals/agent-comm-fix-questions.md) | Agent 通信修复 — 问题排查记录 | +| [docs/internals/ant-only-world.md](docs/internals/ant-only-world.md) | Ant-Only World — 纯 Anthropic 生态方案 | +| [docs/internals/autonomy-jira.md](docs/internals/autonomy-jira.md) | Autonomy 自主性 — JIRA 任务跟踪 | + +## Safety & Permissions (安全与权限) + +| 文档 | 说明 | +|------|------| +| [docs/safety/why-safety-matters.md](docs/safety/why-safety-matters.md) | 为什么安全很重要 — 设计理念与风险意识 | +| [docs/safety/permission-model.md](docs/safety/permission-model.md) | 权限模型 — 规则来源、匹配方式、作用域 | +| [docs/safety/auto-mode.md](docs/safety/auto-mode.md) | Auto Mode — 自动批准与安全边界 | +| [docs/safety/plan-mode.md](docs/safety/plan-mode.md) | Plan Mode — 只读规划模式 | +| [docs/safety/sandbox.md](docs/safety/sandbox.md) | Sandbox 沙箱机制 | + +## Tasks (任务追踪) + +| 文档 | 说明 | +|------|------| +| [docs/task/task-001-daemon-status-stop.md](docs/task/task-001-daemon-status-stop.md) | Daemon 状态与停止逻辑 | +| [docs/task/task-002-bg-sessions-ps-logs-kill.md](docs/task/task-002-bg-sessions-ps-logs-kill.md) | 后台会话:进程查看、日志、终止 | +| [docs/task/task-003-templates-job-mvp.md](docs/task/task-003-templates-job-mvp.md) | Templates Job MVP | +| [docs/task/task-004-assistant-session-attach.md](docs/task/task-004-assistant-session-attach.md) | Assistant Session Attach | +| [docs/task/task-013-bg-engine-abstraction.md](docs/task/task-013-bg-engine-abstraction.md) | 后台引擎抽象 | +| [docs/task/task-014-daemon-command-hierarchy.md](docs/task/task-014-daemon-command-hierarchy.md) | Daemon 命令层级 | +| [docs/task/task-015-job-command-hierarchy.md](docs/task/task-015-job-command-hierarchy.md) | Job 命令层级 | +| [docs/task/task-016-backward-compat-tests.md](docs/task/task-016-backward-compat-tests.md) | 向后兼容测试 | + +## Testing (测试) + +| 文档 | 说明 | +|------|------| +| [docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md](docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md) | 斜杠命令测试清单 | +| [docs/test-plans/openclaw-autonomy-baseline.md](docs/test-plans/openclaw-autonomy-baseline.md) | OpenClaw 自主性基线测试计划 | + +## Performance (性能) + +| 文档 | 说明 | +|------|------| +| [docs/performance-reporter.md](docs/performance-reporter.md) | 性能报告 — 基准测试结果 | +| [docs/memory-leak-audit.md](docs/memory-leak-audit.md) | 内存泄漏审计 | +| [docs/memory-peak-analysis.md](docs/memory-peak-analysis.md) | 内存峰值分析 | + +## Other (其他) + +| 文档 | 说明 | +|------|------| +| [docs/external-dependencies.md](docs/external-dependencies.md) | 外部依赖关系 | +| [docs/auto-updater.md](docs/auto-updater.md) | 自动更新机制 | +| [docs/lsp-integration.md](docs/lsp-integration.md) | LSP 集成 | +| [docs/design/tool-search-design-guide.md](docs/design/tool-search-design-guide.md) | 工具搜索设计指南 | +| [docs/telemetry-remote-config-audit.md](docs/telemetry-remote-config-audit.md) | 遥测远程配置审计 | diff --git a/claude-code-best/docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md b/claude-code-best/docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md index bbf28b5..0d8231b 100644 --- a/claude-code-best/docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md +++ b/claude-code-best/docs/testing/SLASH-COMMANDS-TEST-CHECKLIST.md @@ -1,262 +1,262 @@ -# 斜杠命令完整测试清单 - -**日期**:2026-05-06 -**适用范围**:本 session 累积所有恢复/新建命令(PR-1 ~ PR-4 + audit-fix + H2 refactor) -**起点 commit**:`origin/main` (4f1649e2) -**最新 commit**:`fe99cf0e`(35+ commits ahead) - ---- - -## 测试前准备 - -```bash -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 -``` - -**关键提醒**:Bun 不会动态重载 dist,任何 source 改动都必须 `bun run build` + 重启 REPL。 - ---- - -## A 组 — 纯本地(无网络/无 key,立即可测) - -**前置**:无 - -| # | 命令 | 输入 | 期望输出 | 通过 | -|---|---|---|---|---| -| A1 | `/version` | 直接跑 | 显示版本号(如 `1.10.10`) | ☐ | -| A2 | `/env` | 直接跑 | runtime 信息 + env vars 白名单(CLAUDE_/FEATURE_/ANTHROPIC_/BUN_/NODE_/...)+ secrets masked | ☐ | -| A3 | `/context` | 直接跑 | fork 原生命令:colored grid(走 `analyzeContextUsage()` 真实 API view,含 compact boundary + projectView 转换)+ token 数与 API 看到的一致 | ☐ | -| A4 | `/context` 在压缩边界附近 | 直接跑 | 显示 compact boundary 后的 messages,不重复计 token | ☐ | -| A5 | _(删 ctx_viz;`/context` 是唯一 context 可视化命令)_ | — | — | — | -| A6 | `/debug-tool-call` | 默认 N=5 | 列最近 5 个 tool_use+tool_result 配对 | ☐ | -| A7 | `/debug-tool-call 10` | 数字参数 | 列最近 10 个 | ☐ | -| A8 | `/perf-issue` | 直接跑 | 写 `~/.claude/perf-reports/perf-.md`(mem+cpu+token+per-tool) | ☐ | -| 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(Settings/Usage 或 Stats panel) | ☐ | -| 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 ` | 多 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(PR-4 新增) | ☐ | -| 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,返回 `data:[]` 或 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(v1 已有) | ☐ | - -**C 组失败诊断**: -- 401 → 重 `/login` -- `/v1/agents` 类 401 → 这些是 workspace endpoint,**预期会失败**,移到 F 组 -- `/schedule` 401 → 检查 dist 含 `ccr-triggers-2026-01-30` beta header - ---- - -## D 组 — _(已删除 2026-05-06)_ - -`/providers` 命令在 2026-05-06 移除。理由:与 fork 原生 `/login` 的 "Anthropic Compatible Setup" form 功能重叠(同样配 OpenAI-compat Base URL + API Key),保留单一入口避免双 UI 混淆。 - -**第三方 provider 配置请用** `/login` 内的 form:选 provider 后填 Base URL + API Key + Haiku/Sonnet/Opus 类别按钮。 - -`src/services/providerRegistry/*` utility 模块 **保留**(4 内置 cerebras/groq/qwen/deepseek 元数据 + DeepSeek 三模式 compatMatrix),可被未来 fork form 的 "Quick Select" enhancement 复用。 - ---- - - -## 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` + 警告 "secret revealed in terminal" | ☐ | -| E6 | `/local-vault set bad-key C:hack` | path traversal | 拒绝(CRITICAL E1 修复) | ☐ | -| E7 | `/local-vault set ../traverse foo` | path traversal | 拒绝 | ☐ | -| E8 | `/local-vault delete test-key` | 删 | OK | ☐ | -| E9 | `/lv list` | alias | 同 E1 | ☐ | - -**安全验证**: -```bash -# 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` 出现(之前 isHidden:true) | ☐ | -| 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]`,stdout grep 不到 `sk-secret` | ☐ | -| F7 | `/memory-stores list` | 无参 | `/v1/memory_stores` GET,beta `managed-agents-2026-04-01` | ☐ | -| 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`(手动 `/help` 找不到,但直接输入命令名) | — | 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(订阅环境完整) -- [ ] D 组 8/8 pass -- [ ] E 组 17/17 pass(path traversal 必须拒绝) -- [ ] F 组 ≥10/13 pass(取决于 workspace key 是否配) - -任何 fail 立即报告:命令 + 实际输出 + 期望输出。我针对 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(用户手动用) | -| `/providers use <id>` | 输出 shell export 命令,**不**自动 mutate runtime(重启生效) | - ---- - -## 测试报告模板 - -```markdown -## 测试报告 - 2026-05-XX - -### 环境 -- OS: Windows 11 -- Bun: <version> -- dist mtime: <date> -- HEAD: <commit-hash> -- ANTHROPIC_API_KEY: 配/未配 -- gh CLI: 装/未装 - -### 结果 -- A: 26/26 ✅ -- B: 8/10(B5/B8 fail) -- C: 12/17(C5/C13/C14/C15/C16 fail) -- D: 8/8 ✅ -- E: 17/17 ✅ -- F: 12/13(F12 边界) - -### 失败详情 -B5: <command> → 实际 <output>,期望 <expected> -... -``` +# 斜杠命令完整测试清单 + +**日期**:2026-05-06 +**适用范围**:本 session 累积所有恢复/新建命令(PR-1 ~ PR-4 + audit-fix + H2 refactor) +**起点 commit**:`origin/main` (4f1649e2) +**最新 commit**:`fe99cf0e`(35+ commits ahead) + +--- + +## 测试前准备 + +```bash +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 +``` + +**关键提醒**:Bun 不会动态重载 dist,任何 source 改动都必须 `bun run build` + 重启 REPL。 + +--- + +## A 组 — 纯本地(无网络/无 key,立即可测) + +**前置**:无 + +| # | 命令 | 输入 | 期望输出 | 通过 | +|---|---|---|---|---| +| A1 | `/version` | 直接跑 | 显示版本号(如 `1.10.10`) | ☐ | +| A2 | `/env` | 直接跑 | runtime 信息 + env vars 白名单(CLAUDE_/FEATURE_/ANTHROPIC_/BUN_/NODE_/...)+ secrets masked | ☐ | +| A3 | `/context` | 直接跑 | fork 原生命令:colored grid(走 `analyzeContextUsage()` 真实 API view,含 compact boundary + projectView 转换)+ token 数与 API 看到的一致 | ☐ | +| A4 | `/context` 在压缩边界附近 | 直接跑 | 显示 compact boundary 后的 messages,不重复计 token | ☐ | +| A5 | _(删 ctx_viz;`/context` 是唯一 context 可视化命令)_ | — | — | — | +| 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`(mem+cpu+token+per-tool) | ☐ | +| 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(Settings/Usage 或 Stats panel) | ☐ | +| 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(PR-4 新增) | ☐ | +| 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,返回 `data:[]` 或 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(v1 已有) | ☐ | + +**C 组失败诊断**: +- 401 → 重 `/login` +- `/v1/agents` 类 401 → 这些是 workspace endpoint,**预期会失败**,移到 F 组 +- `/schedule` 401 → 检查 dist 含 `ccr-triggers-2026-01-30` beta header + +--- + +## D 组 — _(已删除 2026-05-06)_ + +`/providers` 命令在 2026-05-06 移除。理由:与 fork 原生 `/login` 的 "Anthropic Compatible Setup" form 功能重叠(同样配 OpenAI-compat Base URL + API Key),保留单一入口避免双 UI 混淆。 + +**第三方 provider 配置请用** `/login` 内的 form:选 provider 后填 Base URL + API Key + Haiku/Sonnet/Opus 类别按钮。 + +`src/services/providerRegistry/*` utility 模块 **保留**(4 内置 cerebras/groq/qwen/deepseek 元数据 + DeepSeek 三模式 compatMatrix),可被未来 fork form 的 "Quick Select" enhancement 复用。 + +--- + + +## 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` + 警告 "secret revealed in terminal" | ☐ | +| E6 | `/local-vault set bad-key C:hack` | path traversal | 拒绝(CRITICAL E1 修复) | ☐ | +| E7 | `/local-vault set ../traverse foo` | path traversal | 拒绝 | ☐ | +| E8 | `/local-vault delete test-key` | 删 | OK | ☐ | +| E9 | `/lv list` | alias | 同 E1 | ☐ | + +**安全验证**: +```bash +# 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` 出现(之前 isHidden:true) | ☐ | +| 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]`,stdout grep 不到 `sk-secret` | ☐ | +| F7 | `/memory-stores list` | 无参 | `/v1/memory_stores` GET,beta `managed-agents-2026-04-01` | ☐ | +| 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`(手动 `/help` 找不到,但直接输入命令名) | — | 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(订阅环境完整) +- [ ] D 组 8/8 pass +- [ ] E 组 17/17 pass(path traversal 必须拒绝) +- [ ] F 组 ≥10/13 pass(取决于 workspace key 是否配) + +任何 fail 立即报告:命令 + 实际输出 + 期望输出。我针对 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(用户手动用) | +| `/providers use <id>` | 输出 shell export 命令,**不**自动 mutate runtime(重启生效) | + +--- + +## 测试报告模板 + +```markdown +## 测试报告 - 2026-05-XX + +### 环境 +- OS: Windows 11 +- Bun: <version> +- dist mtime: <date> +- HEAD: <commit-hash> +- ANTHROPIC_API_KEY: 配/未配 +- gh CLI: 装/未装 + +### 结果 +- A: 26/26 ✅ +- B: 8/10(B5/B8 fail) +- C: 12/17(C5/C13/C14/C15/C16 fail) +- D: 8/8 ✅ +- E: 17/17 ✅ +- F: 12/13(F12 边界) + +### 失败详情 +B5: <command> → 实际 <output>,期望 <expected> +... +```