Use this skill for large project maintenance with layered CLAUDE.md index system...
自动生成和维护大型项目的层次化 CLAUDE.md 索引系统。
project-index 和 pi-cli 功能已统一。推荐使用 pi CLI 作为统一入口:
# 等效命令对照
node scripts/module-analyzer.js --stale → pi module analyze --llm --stale
node scripts/test-fix.js → pi test fix --llm
node scripts/dashboard.js --open → pi ui
2026-01-22 事故记录:执行
git checkout HEAD -- tests/和git checkout HEAD -- js/,导致用户一整天的手动工作(100+ 文件)永久丢失,无法恢复。
以下操作必须先询问用户确认,否则绝对禁止执行:
git checkout HEAD -- / git checkout -- <path> — 会永久丢弃未提交修改git reset --hard — 会永久丢弃所有未提交修改git clean -fd — 会永久删除未跟踪文件git stash drop / git stash clear — 会永久删除 stashrm -rf, find -delete 等)批量任务进度保护:每完成一批任务后,必须提交或提醒用户提交。
| 功能 | 脚本 | 说明 |
|---|---|---|
| 文档生成 | generate.js |
生成/更新 CLAUDE.md |
| 代码审计 | code-audit.js |
生成 AUDIT.md,检测安全问题 |
| 过期检测 | check-stale.js |
检测文档/审计/测试是否过期 |
| 依赖图构建 | dependency-graph.js |
构建文件级依赖图,检测循环依赖 |
| 影响分析 | impact-analyzer.js |
分析变更文件的下游影响范围 |
| stale 传播 | stale-propagate.js |
依赖传播 stale 状态 + 测试重跑列表 |
| 测试优先级 | test-prioritize.js |
智能排序:root cause 优先 + 并行批次 |
| 智能测试 | test-affected.js |
只运行受变更影响的测试 |
| 测试映射 | test-mapper.js |
源码↔测试映射,生成 .test-map.json |
| 测试生成 | test-generator.js |
批量生成缺失测试 |
| 测试修复 | test-fix.js |
并发修复测试错误 |
| 审计修复 | audit-fix.js |
并发修复审计问题 |
| 验收门禁 | acceptance-gate.js |
DAG 分组验证 git 变更,仅提交通过文件 |
| Dashboard | dashboard.js |
Web UI (http://localhost:3008) |
完成批量任务后,应主动询问用户:
任务完成。是否打开 Dashboard 查看详细状态?
→ 运行: node scripts/dashboard.js --open
→ 访问: http://localhost:3008
执行文档/测试任务前,先检查状态:
node scripts/check-stale.js --stale-only --json
根据输出决定处理范围。
| 依赖 | 类型 | 用途 |
|---|---|---|
| codeagent-wrapper | 必需 | LLM 调用 |
| kanban | 可选 | 审计任务自动创建 |
project/CLAUDE.md # Layer 1: 概览 + 模块索引
↓
src/modules/auth/CLAUDE.md # Layer 2: 模块详情 + 子模块索引
↓
src/modules/auth/jwt/CLAUDE.md # Layer 3: 实现细节
不是每个目录都需要独立 CLAUDE.md:
批量生成时按目录深度从深到浅处理:
js/agents/core/sandbox/system → 先生成
js/agents/core/sandbox → 后生成
js/agents/core → 再后
js/agents → 最后
确保父目录生成时可引用子目录的 CLAUDE.md。
代码审计 (code-audit.js) 采用相同策略:
# 1. 扫描项目
node scripts/scan.js
# 2. 生成 CLAUDE.md
node scripts/generate.js --auto
# 3. 安装 hooks
node scripts/hook.js init
# 4. 启动 Dashboard
node scripts/dashboard.js --open
快速参考:
node scripts/module-analyzer.js # 日常维护
node scripts/module-analyzer.js --all # 全量处理
node scripts/check-stale.js --stale-only # 过期检测
node scripts/test-fix.js # 修复测试错误
node scripts/dashboard.js --open # Web UI
hook.js init - 安装 hooks + 创建配置scan.js - 分析结构generate.js --auto - 生成文档scan.js - 理解结构hook.js init - 安装配置generate.js --auto - 生成文档module-analyzer.js - 初始审计修改模块代码后,必须检查并更新对应的 CLAUDE.md 和 AUDIT.md:
检查 CLAUDE.md
touch CLAUDE.md 更新时间戳检查 AUDIT.md
audit-archive.js 归档touch AUDIT.md 更新时间戳验证状态
node scripts/check-stale.js <module-path> --stale-only
node scripts/audit-status.js <module-path>
重要:即使没有实质性改动,也必须 touch 文件以更新时间戳,否则 stale 检测会持续报告该模块过期。
| 文档 | 内容 |
|---|---|
| docs/commands.md | 常用命令详解 |
| docs/coverage.md | 智能覆盖率策略、批量任务发现 |
| docs/dashboard.md | Web UI 仪表盘详解 |
| docs/scripts.md | 所有脚本参考 |
| docs/config.md | 配置文件说明 |
| docs/testing.md | 测试工具链详解 |
| docs/anti-patterns.md | ⚠️ 禁止的错误模式 |
| docs/dag-scheduling.md | DAG 依赖调度(目录层级处理) |
| docs/batch-best-practices.md | 批量任务最佳实践 |
执行以下功能前,必须先读取对应的最佳实践文档:
| 功能 | 必读文档 | 说明 |
|---|---|---|
| test-fix, test-generator | docs/testing.md, docs/anti-patterns.md | 测试修复和生成的最佳实践与禁止模式 |
| audit-fix, code-audit | docs/audit-best-practices.md | 审计修复流程、问题分类、归档规范 |
| module-analyzer --llm | docs/batch-best-practices.md | 批量 LLM 任务的并发设置、checkpoint、rate limit 处理 |
| dependency-graph, impact-analyzer, stale-propagate, test-prioritize | docs/dependency-best-practices.md | 依赖分析、影响范围、stale 传播、测试优先级排序 |
约束级别:
AI 执行检查清单:
创建 .stale-config.json:
{
"include": ["js/agents/**"],
"ignore": ["tests/**", "docs/**"],
"features": { "doc": true, "audit": true, "kanban": true, "testAnalysis": true },
"concurrency": 6
}
测试状态与 CLAUDE.md/AUDIT.md 统一追踪:
# 检查测试覆盖状态
node scripts/check-stale.js --type=test --stale-only
# 检查所有类型(doc + audit + test)
node scripts/check-stale.js --type=all --stale-only
# 刷新测试映射
node scripts/test-mapper.js
# 查看模块测试详情
node scripts/test-view.js js/agents/core
测试状态类型:
更新父目录时注入小子目录上下文:
context=$(node generate.js --prompt-context --module js/agents/ingest)
codex-wrapper - <<EOF
更新 js/agents/ingest/CLAUDE.md
$context
EOF
审计任务自动创建到 Kanban:
export KANBAN_URL=http://127.0.0.1:3007/api/v1
未运行 Kanban 服务时静默跳过。
构建文件级依赖图,支持影响分析和 stale 传播。
# 扫描 js/agents 构建依赖图
node scripts/dependency-graph.js --module js/agents
# 查询单文件依赖
node scripts/dependency-graph.js --check shared/index.js
# JSON 输出
node scripts/dependency-graph.js --json
输出文件:.dep-graph.json
分析变更文件的下游影响范围:
# 分析指定文件
node scripts/impact-analyzer.js shared/utils/logger.js core/event-bus.js
# 分析 git 变更
node scripts/impact-analyzer.js --since HEAD~5
node scripts/impact-analyzer.js --staged
# JSON 输出
node scripts/impact-analyzer.js --since HEAD~3 --json
将 stale 状态沿依赖图向下游传播:
# 自动检测 + 传播
node scripts/stale-propagate.js
# 指定变更文件
node scripts/stale-propagate.js --changed core/event-bus.js
# 包含测试重跑列表
node scripts/stale-propagate.js --changed core/event-bus.js --tests
# 调整传播深度(默认 2)
node scripts/stale-propagate.js --depth 3
输出示例:
Direct stale: 2 files
Propagated stale: 45 files (L1: 12, L2: 33)
Tests to re-run: 40 files
# 1. 构建/更新依赖图
node scripts/dependency-graph.js --module js/agents
# 2. 代码修改后,分析影响
node scripts/impact-analyzer.js --staged
# 3. 检查 stale 传播
node scripts/stale-propagate.js --tests
# 4. 运行受影响的测试
node scripts/test-affected.js --staged
当有大量测试失败时,智能排序修复顺序:
# 分析失败测试的优先级
node scripts/test-prioritize.js --from-file test-results.json
# 输出:
# Phase 1 - Root causes: shared/utils/logger.js (261 依赖)
# Phase 2 - Independent: 可并行修复的批次
# Phase 3 - Leaf nodes: 最后修复
修复策略:
# 按优先级运行测试
node scripts/test-affected.js --staged --prioritized
提交前验证 git 变更,确保代码质量。
# 预览变更文件分组
node scripts/acceptance-gate.js --dry-run
# 运行验证
node scripts/acceptance-gate.js
# 验证并自动提交通过的文件
node scripts/acceptance-gate.js --commit
# 跳过部分检查
node scripts/acceptance-gate.js --skip-lint --skip-security
# 调整并发
node scripts/acceptance-gate.js --concurrency=8
git checkout、git reset 等危险操作测试修复和代码生成时必须避免的反模式。