关于 audit-full
audit-full 是供开发者使用的全代码库审计技能,可执行安全、架构和依赖分析。代码库适合上下文时进行单上下文跨文件审查,超出预算则采用分片分析与边界综合。
主要功能
- 01安全、架构和依赖审计
- 02跨文件数据流与边界分析
- 03超预算时采用分片审计
- 04高严重度发现的对抗式复核
- 05渐进式输出审计发现
- 06生成结构化审计报告
适用场景
- 01检查整个代码库中的安全漏洞
- 02识别模块依赖方向与循环依赖
- 03审查依赖的 CVE、许可证和版本
- 04对大型代码库执行分片审计
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill audit-full安装后在 Claude Code 中输入/audit-full确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
test-cases.jsonassets/audit-report-template.mdseverity-matrix.mdchecklists/audit-completion.mdreferences/adversarial-refutation.mdarchitecture-review-guide.mdaudit-scope-dialog.mddependency-audit-guide.mdreport-structure.mdsecurity-audit-guide.mdtoken-budget-planning.mdtoken-estimation.mdrules/_sections.mdfinding-severity-classification.mdscope-declaration.mdscripts/estimate-tokens.shworkflows/audit-full-mapreduce.js详细介绍
全代码库审计
利用 Opus 5.5 的扩展上下文窗口,对整个项目进行单次分析。将整个代码库(约 50K LOC)加载到上下文中,以检测跨文件漏洞、审查架构并分析依赖项。
快速开始
audit-full # Full audit (all modes)
audit-full security # Security-focused audit
audit-full architecture # Architecture review
audit-full dependencies # Dependency audit
Opus 5.5:使用
complexity: max,在整个代码库范围内进行扩展思考。Opus 5.5 的 1M 上下文窗口(默认值,也是最大值)支持跨文件推理,这是分块方法无法做到的。请显式设置 effort:Opus 5.5 自身的默认值是medium(比 Opus 5 的high低一级),而 CC 2.1.280+ 会让新发布的模型使用其默认值,而不是之前保存的/effort级别。运行审计时使用high;对于最复杂的代码库,可使用xhigh,额外进行一轮跨文件模式扫描。
**需要 1M 上下文:**如果设置了
CLAUDE_CODE_DISABLE_1M_CONTEXT,audit-full 就无法进行全代码库分析。检查:echo $CLAUDE_CODE_DISABLE_1M_CONTEXT——如果结果非空,请取消设置(unset CLAUDE_CODE_DISABLE_1M_CONTEXT),或改用verify进行分块分析。
Effort(CC 2.1.111+):
xhigh会增加第二轮扫描,重新检查跨模块边界,专门寻找第一轮扫描时被视为常见模式而忽略的问题。请将xhigh留给最复杂的代码库(默认值请参阅上方 Opus 5.5 说明)。在其他模型上会静默回退到high;如果不匹配,doctor会发出警告。
切换到 Opus(CC 2.1.144+):
/model现在只影响当前会话——你可以为本次审计选择 Opus,而不会将其设为默认值。只有当你也希望将其设为新会话的默认模型时,才在选择器中按d。
步骤 0:使用 AskUserQuestion 确认用户意图
创建任务之前,请通过交互式对话框明确审计范围。
加载:Read("references/audit-scope-dialog.md"),查看完整的 AskUserQuestion 对话框,其中包含模式选项(Full/Security/Architecture/Dependencies)和范围选项(Entire codebase/Specific directory/Changed files)。
关键要求:必须进行任务管理
# 1. Create main task IMMEDIATELY
TaskCreate(
subject="Full-codebase audit",
description="Single-pass audit using extended context",
activeForm="Running full-codebase audit"
)
# 2. Create subtasks for each phase
TaskCreate(subject="Estimate token budget and plan loading", activeForm="Estimating token budget") # id=2
TaskCreate(subject="Load codebase into context", activeForm="Loading codebase") # id=3
TaskCreate(subject="Run audit analysis", activeForm="Analyzing codebase") # id=4
TaskCreate(subject="Generate audit report", activeForm="Generating report") # id=5
# 3. Set dependencies for sequential phases
TaskUpdate(taskId="3", addBlockedBy=["2"]) # Loading needs budget estimate
TaskUpdate(taskId="4", addBlockedBy=["3"]) # Analysis needs codebase loaded
TaskUpdate(taskId="5", addBlockedBy=["4"]) # Report needs analysis done
# 4. Update status as you progress
TaskUpdate(taskId="2", status="in_progress") # When starting
TaskUpdate(taskId="2", status="completed") # When done — repeat for each subtask
步骤 1:估算 Token 预算
加载文件之前,请估算代码库是否能装入上下文。
加载:Read("references/token-budget-planning.md"),查看估算规则(按文件类型计算 tokens/line)、预算分配表、自动排除列表,以及代码库超出预算时的回退对话框。
运行估算:bash ${CLAUDE_SKILL_DIR}/scripts/estimate-tokens.sh /path/to/project
两个层级——根据估算结果选择
audit-full 有两个执行层级。根据估算结果决定采用哪一个:
| 估算结果与预算的关系 | 层级 | 路径 |
|---|---|---|
| 符合预算(约 ≤125K LOC / ≤1M tokens) | 单上下文(默认——此技能的优势:在一个窗口中进行全代码库跨文件推理) | 继续执行步骤 2 |
| 超出预算 | Map-reduce(扩展层级——分片 → 逐片审计 → 跨片边界综合 → 反驳) | 调用下方的工作流;步骤 2–3.5 在其中执行 |
超出预算时 → 运行 Map-reduce 工作流(不要搁置,也不要静默截断加载内容):
# Derive shards from STEP 1 (top-level modules/dirs by size: src, apps/api, apps/web, packages/*).
Workflow({
"scriptPath": "${CLAUDE_SKILL_DIR}/workflows/audit-full-mapreduce.js",
"args": { "shards": ["<repo-relative dirs>"], "mode": "<full|security|architecture|dependencies>", "effort": "<high|xhigh>" }
})
它会保留每个分片内的跨文件推理能力,并通过专门的综合阶段找回跨分片关联(跨模块的污点传播/身份验证/依赖方向),随后执行相同的步骤 3.5 对抗式反驳。其返回结果(合并后的发现和反驳记录)将用于步骤 4。只要代码库符合预算,单上下文层级仍是默认选择,因为它成本更低,且不会遗漏边界——只有代码库确实装不下时才使用 Map-reduce。
**扇出规则:**当所选模式要求全面覆盖时,单次扫描绝不能作为超出预算的代码库的回退方案。如果 Map-reduce Workflow 调用没有运行,请以 BLOCKED 状态结束本次运行并说明原因;绝不要审计经过截断的加载内容。用户有意选择缩小加载范围的模式(目录范围限定、优先级加载)属于明确声明的范围缩减,而非截断加载。
步骤 2:将代码库加载到上下文中
加载:Read("references/report-structure.md"),了解加载策略、按语言划分的纳入模式(TS/JS、Python、Config)以及批量读取模式。
步骤 3:审计分析
加载代码库后,执行所选的审计模式。
安全审计
加载:Read("references/security-audit-guide.md"),查看完整清单。
跨文件分析的关键模式:
- 数据流追踪:从入口点 → 处理 → 存储,追踪用户输入
- 身份验证边界核查:确保所有受保护的路由都检查身份验证
- 密钥检测:扫描硬编码的凭据、API 密钥和令牌
- 注入面:跨文件边界检查 SQL、命令和模板注入
- OWASP Top 10 映射:按 OWASP 类别对发现的问题进行分类
架构审查
加载:Read("references/architecture-review-guide.md"),查看完整指南。
关键分析模式:
- 依赖方向:验证导入是否向内流动(整洁架构)
- 循环依赖:检测跨模块的导入循环
- 分层违规:控制器中包含业务逻辑、路由中包含数据库逻辑等
- 模式一致性:检查代码库中是否以不同方式解决相同问题
- 耦合分析:统计跨模块导入,识别紧密耦合
依赖项审计
加载:Read("references/dependency-audit-guide.md"),查看完整指南。
关键分析模式:
- 已知 CVE:根据已知漏洞检查版本
- 许可证合规性:识别专有代码中的著佐权许可证
- 版本时效性:标记明显过时的依赖项
- 传递风险:识别深层依赖链
- 未使用的依赖项:检测已安装但从未导入的软件包
渐进式输出(CC 2.1.76)
每种审计模式完成后,逐步输出发现的问题——不要等到报告生成时再一次性输出:
- 先输出安全问题——立即显示严重/高危漏洞,不要等待架构审查
- 再输出架构问题——发现依赖方向违规、循环依赖时立即显示
- 最后输出依赖项问题——显示 CVE 匹配项和许可证合规问题
对于多模式审计(Full),每种模式的问题会在该模式完成后立即显示。这样,用户可以在架构分析仍在进行时处理严重的安全问题。
步骤 3.5:对抗性反驳(按工作量决定是否执行)
生成报告前,由独立的盲审反驳者核验严重/高危问题,以从结构上解决自我偏好偏差(单上下文流程为自己的发现打分时,会锚定在自身推理上)。low/medium 跳过此步骤;high 使用单个顾问反驳者;xhigh 使用引擎的法定人数(严重问题 3 个,高危问题 2 个)。
加载协议及 audit-full 绑定:Read("references/adversarial-refutation.md")
(该文件会加载共享引擎 ${CLAUDE_PLUGIN_ROOT}/shared/rules/adversarial-refutation.md)。
这些反驳者是 audit-full 唯一会启动的子 Agent(问题发现者使用单上下文),始终通过隔离的 Agent(...) 启动,且不设置 team_name,只向其提供中立的声明(类别 +
file:line)。确定性事实不在反驳范围内——CVE/CVSS 匹配、构建/测试失败、类型错误绝不会被反驳;只有在 CVE 之上的可达性声明才会被反驳。反驳者无法根据其有限的代码片段复现的跨文件问题仍视为成立(引擎 §5)。反驳绝不会悄然删除严重问题——台账(refutation-ledger.json)会记录保留/排除/降级的结果;从报告中移除严重/高危问题需要用户确认。
步骤 4:生成报告
加载报告模板:Read("assets/audit-report-template.md")。
有关报告结构和严重性分类,请加载 Read("references/report-structure.md"),了解问题表格格式、严重性划分(严重/高危/中危/低危及其时间线)和架构图约定。
严重性矩阵:加载 Read("assets/severity-matrix.md"),查看分类标准。
完成检查清单
完成报告前,请通过 Read("checklists/audit-completion.md") 进行验证。
完成时 PushNotification(CC 2.1.110+)
在中型项目中,对整个代码库进行 1M 上下文审计通常需要 15–60 分钟,大型项目则可能耗时更久。写入报告文件并通过完成检查清单后,请调用 PushNotification,这样即使用户已经离开,也能看到发现的问题数量。
PushNotification(
message=f"ork:audit-full complete — {SCOPE}: {critical}C/{high}H/{medium}M/{low}L · {report_path}",
status="proactive"
)
完整规则:Read("${CLAUDE_PLUGIN_ROOT}/skills/chain-patterns/rules/push-notification-on-completion.md")。
不适用场景
| 情况 | 改用 |
|---|---|
| 小范围定向检查(1-5 个文件) | 直接 Read + 分析 |
| CI/CD 自动扫描 | security-scanning skill |
| 多 Agent 分级验证 | verify |
| 探索不熟悉的代码库 | explore |
| 代码库 > 125K LOC(超过 1M) | 继续使用此技能——STEP 1 会路由到 map-reduce 层(workflows/audit-full-mapreduce.js);只有在想要多 Agent 分级 验证而非审计时,才使用 verify |
整个代码库审查注意事项
读取超大文件(CC 2.1.144+): 加载大文件时,如果读取整个文件会超出 token 限制,Read 会返回一个被截断的第一页
[PARTIAL view],而不是直接报错。发现此提示后,请使用明确的offset/limit重新读取,以分页查看其余内容——不完整的读取会悄然遗漏审计不能错过的代码。
上下文已满时(CC 2.1.141+): 使用回溯菜单中的 "Summarize up to here",压缩较早的轮次,同时保留近期发现,而不是重新开始审计。响应式压缩(CC 2.1.142+)会根据实际溢出量确定首次摘要的大小,因此如今在一轮中途浪费时间进行第二次处理的情况已很少见。
使用 /goal 无人值守运行
使用 /goal(CC 2.1.139+)设置完成条件,此技能会在多个轮次中持续运行,直到满足条件。支持交互模式、-p 和 Remote Control。叠加面板会实时显示经过时间 / 轮次 / tokens。
此技能的完成条件示例:
/goal until findings.critical == 0 OR no_new_critical_for_3_turns, or stop after 30 turns
当连续 3 轮检查均无严重问题,或达到结构性反模式预算时停止。兼容 claude.ai Remote Control 运行。
相关技能
security-scanning— 自动扫描器集成(npm audit、Semgrep 等)ork:security-patterns— 安全架构模式和 OWASP 漏洞分类ork:architecture-patterns— 架构模式参考ork:quality-gates— 质量评估标准ork:verify— 多 Agent 验证(适用于超出 1M 上下文的代码库的备用方案)
参考资料
按需使用 Read("references/<file>") 加载:
| 文件 | 内容 |
|---|---|
references/security-audit-guide.md | 跨文件漏洞模式 |
references/architecture-review-guide.md | 模式与耦合分析 |
references/dependency-audit-guide.md | CVE、许可证、时效性检查 |
references/adversarial-refutation.md | 盲审反驳器绑定(STEP 3.5)——加载共享引擎 |
references/token-estimation.md | 文件类型比例与预算规划 |
assets/audit-report-template.md | 结构化输出格式 |
assets/severity-matrix.md | 问题分类标准 |
checklists/audit-completion.md | 报告前验证 |
scripts/estimate-tokens.sh | 自动估算 LOC 对应的 token 数 |
workflows/audit-full-mapreduce.js | 扩展层——针对超出 1M 上下文的代码库进行分片→审计→综合→反驳(通过 Workflow 工具运行) |