问题修复
构建基础设施模块后验证接线:从入口到执行路径确认没有死代码
新增或重构基础设施组件(模块、脚本、hook、路由)后,用于确认它们确实被入口调用并能端到端执行,避免死代码和虚假完成感。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
构建基础设施模块后验证接线:从入口到执行通用
解决思路
- 标记基础设施为“完成”前,执行四步接线检查:1) 入口点存在:追问用户动作如何触发这段代码。
- 四步接线检查第 2 步:追踪调用图:确认能从入口一步一步跟到实际执行。
- 四步接线检查第 3 步:集成测试:确认端到端测试覆盖这条调用路径。
- 四步接线检查第 4 步:无死代码:确认每个已构建组件都实际可达。
- 验证入口点:用 grep -r "orchestration" .claude/settings.json 检查 hook 是否注册。
- 验证入口点:用 grep -r "skill-name" .claude/skill-rules.json 检查 skill 是否激活。
- 验证入口点:用 ls -la scripts/orchestrate.py 检查脚本是否存在且可执行。
- 验证入口点:用 grep -r "from orchestration_layer import" . 检查模块是否被导入。
- 追踪调用图时,记录完整链路:.claude/hooks/pre-tool-use.sh → npx tsx pre-tool-use.ts → spawn('scripts/orchestrate.py') → from orchestration_layer import dispatch → dispatch(agent_type, task)。
- 不要只做模块单元测试:pytest tests/unit/orchestration_layer_test.py 不够。
- 测试端到端调用路径:执行 echo '{"tool": "Task"}' | .claude/hooks/pre-tool-use.sh 并确认能工作。
- 记录 Wiring 文档:写出 Entry Point、Registration、Call Path、Test。
- Wiring 文档模板:Entry Point 为 PreToolUse hook on Task tool。
- Wiring 文档模板:Registration 为 `.claude/settings.json` line 45。
- Wiring 文档模板:Call Path 为 hook → pre-tool-use.ts → scripts/orchestrate.py → orchestration_layer.py。
- Wiring 文档模板:Test 为 `tests/integration/task_orchestration_test.py`。
- 不要在没有接线的情况下构建:避免创建 500 行 orchestration_layer.py 但没有任何东西导入或调用它。
- 从最小接线开始再扩展:先创建 hook(10 行)。
- 从最小接线开始再扩展:测试 hook 触发。
- 从最小接线开始再扩展:添加 script(20 行)。
- 从最小接线开始再扩展:测试 script 执行。
- 从最小接线开始再扩展:添加模块逻辑并迭代。
- 不要创建并行路由:避免 Agent router、skill-rules.json、hooks 各自都放路由/选择/过滤逻辑。
- 路由使用单一事实来源:skill-rules.json 激活 skill → skill 调用 router → router 分发。
- 不要假设导入可用:检查 from orchestration_layer import dispatch 对应路径是否存在。
- 在集成测试时验证导入:运行 uv run python -c "from orchestration_layer import dispatch; print('OK')"。
- 不要跳过集成测试:只跑 pytest tests/unit/ 可能在单元测试全过时端到端仍不可用。
- 跑集成测试验证接线:pytest tests/integration/ 覆盖完整调用路径。
- 常见缺口:Hook Not Registered。检查 .claude/settings.json 的 hooks 区域;如果 "PreToolUse": [] 为空,hook 永不触发。
- 修复 Hook Not Registered:在 .claude/settings.json 的 hooks.PreToolUse 添加注册,matcher 为 ["Task"],hooks 为 [{ "type": "command", "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/orchestration.sh" }]。
- 常见缺口:Script Not Executable。脚本存在但权限为 -rw-r--r-- scripts/orchestrate.py 时不能执行。
- 修复 Script Not Executable:运行 chmod +x scripts/orchestrate.py。
- 常见缺口:Module Not Importable。脚本导入 from orchestration_layer import dispatch 时报 ModuleNotFoundError。
- 修复 Module Not Importable:加入 Python path 或使用正确包结构,例如 sys.path.insert(0, str(Path(__file__).parent.parent))。
- 常见缺口:Router Has No Dispatch Path。不要定义 AGENT_MAP 映射但 route 返回硬编码 "general-purpose",否则 map 是死代码。
- 修复 Router Has No Dispatch Path:让 route 实际使用 map,例如 agent_type = classify(task); return AGENT_MAP[agent_type]。
- 完成前检查:入口点已识别并测试(hook/skill/CLI)。
- 完成前检查:调用图已记录(入口 → 模块执行)。
- 完成前检查:集成测试覆盖完整路径。
- 完成前检查:无孤儿模块(一切都被导入/调用)。
- 完成前检查:注册完整(settings.json/skill-rules.json)。
- 完成前检查:权限正确(脚本可执行)。
- 完成前检查:导入路径已验证(手动导入测试通过)。
- 真实案例 DAG Orchestration 修复:为 Task tool 创建 PreToolUse hook。
- 真实案例 DAG Orchestration 修复:hook 调用 scripts/orchestrate.py。
- 真实案例 DAG Orchestration 修复:script 导入并调用 orchestration_layer.dispatch()。
- 真实案例 DAG Orchestration 修复:dispatch 使用 AGENT_MAP 路由到实际 agents。
- 真实案例 DAG Orchestration 修复:集成测试提交 Task → 验证使用正确 agent type。
- 真实案例 Artifact Index 修复:在 Write tool 上创建 PostToolUse hook。
- 真实案例 Artifact Index 修复:hook 立即调用 indexing script。
- 真实案例 Artifact Index 修复:集成测试写文件 → 验证已索引。
- 检测孤儿模块:用 find . -name "*.py" -type f 查找所有 Python 模块。
- 检测孤儿模块:对每个文件运行 for file in $(find . -name "*.py"); do module=$(basename $file .py); grep -r "from.*$module import\|import.*$module" . || echo "ORPHAN: $file"; done,输出 ORPHAN 的即未导入。
- 检查 Hook 注册:用 ls .claude/hooks/*.sh 列出所有 hook。
- 检查 Hook 注册:对每个 hook 运行 for hook in $(ls .claude/hooks/*.sh); do basename_hook=$(basename $hook); grep -q "$basename_hook" .claude/settings.json || echo "UNREGISTERED: $hook"; done,输出 UNREGISTERED 的即未注册。
- 验证脚本执行:用 find scripts/ -name "*.py" 查找所有 Python 脚本。
- 验证脚本执行:对每个脚本运行 for script in $(find scripts/ -name "*.py"); do uv run python -c "import sys; sys.path.insert(0, 'scripts'); import $(basename $script .py)" 2>/dev/null || echo "IMPORT FAIL: $script"; done,输出 IMPORT FAIL 的即不可导入。
适用边界 · 注意事项
- 不适用于已明确废弃、仅用于一次性实验且不会合入执行路径的临时代码;这种情况应删除或明确标记未接线,而不是做完整注册。
- 不适用于模块仅作为独立库由外部调用方按公开 API 使用、本仓库没有内部入口的场景;但仍需验证导入和提供示例/集成调用。
- 不要为了通过检查而虚构 hook、注册或调用路径;如果没有真实用户入口,应视为未接线。