mcpField
A
audit-full

audit-full

github.com/yonatangross安全299200 次安装今天更新
代码仓库

关于 audit-full

audit-full 是供开发者使用的全代码库审计技能,可执行安全、架构和依赖分析。代码库适合上下文时进行单上下文跨文件审查,超出预算则采用分片分析与边界综合。

主要功能

  1. 01安全、架构和依赖审计
  2. 02跨文件数据流与边界分析
  3. 03超预算时采用分片审计
  4. 04高严重度发现的对抗式复核
  5. 05渐进式输出审计发现
  6. 06生成结构化审计报告

适用场景

  1. 01检查整个代码库中的安全漏洞
  2. 02识别模块依赖方向与循环依赖
  3. 03审查依赖的 CVE、许可证和版本
  4. 04对大型代码库执行分片审计

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yonatangross/orchestkit --skill audit-full

安装后在 Claude Code 中输入/audit-full确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

test-cases.json
assets/
audit-report-template.md
severity-matrix.md
checklists/
audit-completion.md
references/
adversarial-refutation.md
architecture-review-guide.md
audit-scope-dialog.md
dependency-audit-guide.md
report-structure.md
security-audit-guide.md
token-budget-planning.md
token-estimation.md
rules/
_sections.md
finding-severity-classification.md
scope-declaration.md
scripts/
estimate-tokens.sh
workflows/
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"),查看完整清单。

跨文件分析的关键模式:

  1. 数据流追踪:从入口点 → 处理 → 存储,追踪用户输入
  2. 身份验证边界核查:确保所有受保护的路由都检查身份验证
  3. 密钥检测:扫描硬编码的凭据、API 密钥和令牌
  4. 注入面:跨文件边界检查 SQL、命令和模板注入
  5. OWASP Top 10 映射:按 OWASP 类别对发现的问题进行分类
架构审查

加载:Read("references/architecture-review-guide.md"),查看完整指南。

关键分析模式:

  1. 依赖方向:验证导入是否向内流动(整洁架构)
  2. 循环依赖:检测跨模块的导入循环
  3. 分层违规:控制器中包含业务逻辑、路由中包含数据库逻辑等
  4. 模式一致性:检查代码库中是否以不同方式解决相同问题
  5. 耦合分析:统计跨模块导入,识别紧密耦合
依赖项审计

加载:Read("references/dependency-audit-guide.md"),查看完整指南。

关键分析模式:

  1. 已知 CVE:根据已知漏洞检查版本
  2. 许可证合规性:识别专有代码中的著佐权许可证
  3. 版本时效性:标记明显过时的依赖项
  4. 传递风险:识别深层依赖链
  5. 未使用的依赖项:检测已安装但从未导入的软件包
渐进式输出(CC 2.1.76)

每种审计模式完成后,逐步输出发现的问题——不要等到报告生成时再一次性输出:

  1. 先输出安全问题——立即显示严重/高危漏洞,不要等待架构审查
  2. 再输出架构问题——发现依赖方向违规、循环依赖时立即显示
  3. 最后输出依赖项问题——显示 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.mdCVE、许可证、时效性检查
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 工具运行)

评论

支持 Markdown