mcpField
C
code-quality-audit

code-quality-audit

github.com/camoa测试与质量3353 次安装2 天前更新
代码仓库

关于 code-quality-audit

面向 Drupal 和 Next.js 项目的 Claude Code 技能,用于代码质量与安全审计。它结合框架专项检查、覆盖率和 lint 检查、架构审查、TDD 工作流及报告。

主要功能

  1. 01Drupal 与 Next.js 审计
  2. 02覆盖率与 lint 检查
  3. 03SOLID 与重复代码检查
  4. 04框架专项安全扫描
  5. 05评分式代码审查与报告
  6. 06TDD 工作流命令

适用场景

  1. 01发布前审计 Drupal 代码库
  2. 02检查 Next.js 覆盖率与 lint 结果
  3. 03审查架构并查找重复代码
  4. 04执行全代码库安全扫描

安装

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

$npx skills add https://github.com/camoa/claude-skills --skill code-quality-audit

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

包含的文件

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

decision-guides/
quality-audit-checklist.md
test-type-selection.md
references/
check-run-json.md
cloud-routine-sweep.md
code-intelligence.md
composer-scripts.md
config-schema.md
coverage-metrics.md
desktop-sweep-template.md
dry-detection.md
json-schemas.md
post-batch-aggregation.md
premerge-gate-routine.md
review-md-v2.md
scheduled-sweeps.md
scope-targeting.md
setup-hook-pattern.md
solid-detection.md
tdd-workflow.md
tool-comparison.md
troubleshooting.md
references/operations/
dast-tools.md
drupal-audits.md
drupal-security.md
drupal-setup.md
drupal-tdd.md
nextjs-audits.md
nextjs-security.md
nextjs-setup.md
nextjs-tdd.md

详细介绍

代码质量审计

使用统一的工具和报告流程,对 Drupal 和 Next.js 项目进行质量与安全审计。

阅读策略: 审计、评审、安全、SOLID 和 DRY 命令属于 B 类工作(审计 / 评审 / 架构分析)——Agent 必须完整阅读源文件和配置文件。切勿在这些工作流中优先使用 grep。继承的方法、注解和配置关联的类无法通过优先使用 grep 的方式发现。请通过 dev-guides-navigator 查看 https://camoa.github.io/dev-guides/development/reading-strategy/。安装代码智能插件后,LSP 工具可以从语义层面解析这些继承关系和配置关联关系——对于 SOLID/DRY/评审中的关系问题,优先使用该工具;如果无法使用,则回退到完整阅读流程。请参阅 references/code-intelligence.md。

快速命令

直接使用以下命令:

  • /code-quality-tools:setup - 首次设置向导(安装并配置工具)
  • /code-quality-tools:audit - 运行完整审计(全部 22 项操作)
  • /code-quality-tools:coverage - 检查测试覆盖率
  • /code-quality-tools:security - 安全扫描(Drupal 为 10 层,Next.js 为 7 层)
  • /code-quality-tools:lint - 检查代码规范
  • /code-quality-tools:solid - 检查架构和 SOLID 原则
  • /code-quality-tools:dry - 查找代码重复
  • /code-quality-tools:tdd - 开始 TDD 工作流(测试监视器模式)
  • /code-quality-tools:review - 按评分标准评审代码(/50 分制,设有质量门禁)
  • /code-quality-tools:ultrareview - 使用云端多 Agent 进行深度评审,并执行飞行前检查(5–10 分钟,免费额度用完后收费)
  • /code-quality-tools:generate-review-md - 为 Claude Code 的托管代码评审生成 v2 REVIEW.md
  • /code-quality-tools:architecture-debate - 架构辩论(实用主义者 + 纯粹主义者 + 维护者)
  • /code-quality-tools:security-debate - 安全辩论(防御者 + 红队 + 合规专家)

如需使用对话式工作流,请继续阅读……

监视模式 Lint(技能作用域)

此技能在其 frontmatter 中声明了两个技能作用域钩子——仅在技能加载时生效,而非整个插件范围:

事件触发时机作用
FileChangedLinter 配置发生变化——常见变体的确切文件名:composer.json、package.json、phpstan.neon*(3 个变体)、phpcs.xml*(3 个变体)、psalm.xml*(2 个变体)、eslint.config.{js,mjs,cjs}、.eslintrc.{js,json,yml,yaml}、tsconfig.json运行 hooks/lint-changed.sh——配置变更时重新运行 Lint;当 watchPaths 包含源文件时,源文件变更则只对该文件运行 Lint
PermissionDenied自动模式下,Read、Grep、Glob 被拒绝返回 {retry: true}——在审核期间重试非破坏性的分类器拒绝

遵守作用域限制:这些钩子会在调用技能时注册,并在本次会话剩余时间内持续运行——技能停用时它们不会关闭。技能作用域提供的是调用门控,而非关闭开关:插件作用域的 FileChanged 处理程序从会话开始起,就会在启用了该插件的每次对话中保持运行,并在文件变更时触发,即使用户从未要求审核也是如此。在此处声明后,只有在有人实际调用技能时才会触发。要在会话中停止监视模式,请使用下方的 CLAUDE_CODE_QUALITY_WATCH=0;如果希望 Claude Code 在钩子处理程序首次成功运行后将其移除,可使用 once: true——once 仅在技能 frontmatter 中生效,而且不适合用于需要反复触发的监视模式 Lint。

FileChanged 匹配器是字面匹配,而非 glob。根据 Hooks Reference,FileChanged 匹配器的值会按 | 拆分,并注册为字面文件名,而非 glob。若要监视任意源文件(*.php、*.tsx),请通过 CwdChanged 钩子动态填充 watchPaths,或将具体绝对路径添加到项目的 .claude/settings.json 中。此处的默认监视列表涵盖 Linter 配置变更;如果希望在源文件编辑时逐文件监视,请在设置中扩大范围。

在会话中强制禁用:

export CLAUDE_CODE_QUALITY_WATCH=0

取消设置该变量(或将其设为除 0 以外的任何值)即可重新启用。

**为什么不放在 hooks/hooks.json 中:**插件作用域的钩子无需调用——插件启用后,它会在每次会话中启动。只有 PreCompact 应放在那里,因为无论是否有人运行审核,它都应该生效。对于从未提出过此要求的用户,不应触发监视模式 Lint;在此处声明即可避免这种情况。

已知限制
  • 恶意克隆仓库中的 npx。 如果你在攻击者控制的 package.json 仓库中加载此技能,然后编辑配置文件,监视模式分发器会在该目录树中运行 npx --no-install eslint。被植入木马的 node_modules/.bin/eslint 就会执行。缓解措施:lint-changed.sh 中的隔离防护会拒绝 cwd 以外的路径,但无法沙箱化 linter 本身。不要在不受信任的检出目录中加载此技能。
  • PermissionDenied 重试会对 Read|Grep|Glob 无条件触发。 匹配器是现有机制中限制最严格的;没有更细粒度的筛选器来限定“仅在调用审计工具期间”。加载此技能时,其他只读操作被拒绝所产生的噪声是可接受的。
  • --json 输出由模型生成。 架构文档说明了必需的格式和 JSON 转义(references/json-schemas.md 中的 invariant 4),但是否遵守约定取决于模型。使用者应先运行 jq .,再信任该文档。
  • FileChanged 匹配器使用字面文件名。 未列出的变体(例如 phpstan.local.neon、自定义名称)不会触发;如果需要监视更广泛的源文件,可通过 CwdChanged 钩子动态填充 watchPaths。

注意 — Claude Code 内置的 /simplify: Claude Code 内置了 /simplify 技能,可快速进行单轮代码审查。/code-quality-tools:review 则不同:它会运行自动化工具(PHPStan/ESLint),按照 10 个评分标准类别进行打分(满分 /50),执行质量门槛(PASS 35+/FAIL),并写入持久化报告。需要快速临时反馈时使用 /simplify;需要结构化、评分并留有文档记录的评估时,使用 /code-quality-tools:review。

注意 — security-guidance 插件与原生 /security-review: 此技能的安全流程(/code-quality-tools:security、各项辩论)属于整个代码库 / CI SAST层,会针对整个代码树运行了解框架的多工具扫描。在 Claude Code 的纵深防御模型中,它们位于两个原生层之下:官方的 security-guidance 插件会在 Claude 编写代码时审查它自己的修改(每次编辑 / 每轮结束 / 提交时触发——自动执行,无需命令;由 /code-quality-tools:setup 提供),原生 /security-review 会按需运行一次通用的、范围限定为差异的检查,而 Claude Security 插件会对整个仓库进行多 Agent 深度扫描(也可按要求扫描差异),生成 SARIF 并提出补丁,但绝不会自动应用——其自身文档将现有扫描器保留为单独的 CI 阶段,而不是用它们取而代之;其扫描结果在不同运行之间也并非确定。上述层会减少进入整棵代码树扫描的内容,但不能取代整树扫描——/security-review 无法执行覆盖整个仓库的 Drupal/Next.js SAST、污点分析、依赖项 CVE 检查或多 Agent OWASP 辩论。要获得原生审查无法提供的框架专项、全代码库覆盖,请运行此技能的安全审计。

适用场景

Drupal 项目:

  • “设置质量工具” / “安装 PHPStan”
  • “运行代码审计” / “检查代码质量”
  • “检查覆盖率” / “我的覆盖率是多少?”
  • “查找 SOLID 违规” / “检查复杂度”
  • “检查重复代码” / “DRY 检查”
  • “检查代码风格” / “检查编码标准”
  • “修复弃用项” / “运行 rector”
  • “开始 TDD” / “RED-GREEN-REFACTOR”
  • “检查安全性” / “查找漏洞” / “OWASP 审计”

Next.js 项目:

  • “设置质量工具” / “安装 ESLint”
  • “运行代码审计” / “检查代码质量”
  • “检查覆盖率” / “运行 Jest 覆盖率”
  • “查找 SOLID 违规” / “检查复杂度” / “检查循环依赖”
  • “检查代码风格” / “运行 ESLint”
  • “检查重复代码” / “DRY 检查”
  • “开始 TDD” / “Jest 监视模式”
  • “检查安全性” / “查找漏洞” / “OWASP 审计”

快速参考

下方及整个 references/ 中的脚本路径,指向此插件内部的文件,而不是运行审计的目录。调用方式如下:

bash "${CLAUDE_PLUGIN_ROOT}/skills/code-quality-audit/<path from the table>"

同时保持工作目录位于正在审计的项目中——每个脚本都会扫描自身的当前工作目录(cwd),因此切换到插件目录就会审计插件。${CLAUDE_PLUGIN_ROOT} 是 Claude Code 替换后的插件安装目录;在会话之外,请替换为此插件的检出目录。

Drupal 脚本
任务脚本详情
设置工具scripts/core/install-tools.sh参见 Drupal 设置
完整审计scripts/core/full-audit.sh参见 完整审计
覆盖率scripts/drupal/coverage-report.sh参见 覆盖率检查
SOLID 检查scripts/drupal/solid-check.sh参见 SOLID 检查
DRY 检查scripts/drupal/dry-check.sh参见 DRY 检查
Lint 检查scripts/drupal/lint-check.sh参见 Lint 检查
修复弃用项scripts/drupal/rector-fix.sh参见 Rector 修复
TDD 循环scripts/drupal/tdd-workflow.sh参见 TDD 工作流
安全审计scripts/drupal/security-check.sh参见 安全审计(10 个层级)
Next.js 脚本
任务脚本详情
设置工具scripts/core/install-tools.sh参见 Next.js 设置
完整审计scripts/core/full-audit.sh参见 完整审计
覆盖率scripts/nextjs/coverage-report.sh参见 覆盖率检查
SOLID 检查scripts/nextjs/solid-check.sh参见 SOLID 检查
Lint 检查scripts/nextjs/lint-check.sh参见 Lint 检查
DRY 检查scripts/nextjs/dry-check.sh参见 DRY 检查
TDD 循环scripts/nextjs/tdd-workflow.sh参见 TDD 工作流
安全审计scripts/nextjs/security-check.sh参见 安全审计(7 个层级)

执行任何操作前

Drupal:

  1. 定位 Drupal 根目录:检查 web/core/lib/Drupal.php 或 docroot/core/lib/Drupal.php
  2. 验证 DDEV:ddev describe

Next.js:

  1. 验证 npm:npm --version
报告目录——不要创建

切勿运行 mkdir -p .reports,也切勿将 .reports/ 添加到被审计仓库的 .gitignore 中。 报告会引用被审计源代码中的行,并列出秘密扫描器匹配到的文件,因此不应出现在会被推送的分支上。仓库内的 .reports 已不再是报告存放位置。

/ 下的每个脚本都会通过引用 scripts/core/report-dir.sh 来解析自己的报告目录,创建该目录,并在启动时打印 Report directory: <path>。请读取这一行,而不要假设路径。解析顺序:显式设置的 REPORT_DIR;否则,使用为当前工作目录登记的 ai-dev-assistant 项目文件夹,存放在 <project>/audits/<date>/ 下;否则,在仓库之外使用 ${XDG_STATE_HOME:-$HOME/.local/state}/code-quality-tools/<project>/<timestamp>/。只有通过 REPORT_DIR_IN_REPO=1 请求时才会使用 .reports/,且创建时会将其加入 gitignore。 当你需要获取路径本身——例如读取报告,或告诉用户去哪里查看时,请向同一个文件询问,而不要记下目录名:

bash "${CLAUDE_PLUGIN_ROOT}/skills/code-quality-audit/scripts/core/report-dir.sh" --print    # where the next run writes; creates nothing
bash "${CLAUDE_PLUGIN_ROOT}/skills/code-quality-audit/scripts/core/report-dir.sh" --ensure   # same path, created with mode 0700; use before writing
bash "${CLAUDE_PLUGIN_ROOT}/skills/code-quality-audit/scripts/core/report-dir.sh" --latest   # where the last run wrote; exits 1 if none yet

--latest 的值非零表示此处尚未运行审计,并不表示审计结果正常。请说明这一点,并提出运行审计。

沙盒用户:如果已启用内置的沙盒化 Bash 工具(/sandbox),调用代码检查工具(PHPStan、ESLint、Semgrep、Trivy、Gitleaks)的 Bash 脚本需要将其二进制文件路径列入白名单。将这些工具的二进制文件添加到 allowedPaths(例如 vendor/bin/phpstan、/usr/local/bin/semgrep)。通过 DDEV 代理运行的命令在容器内执行,不受影响。

在沙盒中安装 git 钩子会失败,而且报错含糊。 操作系统会对每条 Bash 命令及其子进程强制执行沙盒限制,并且 .git 内的 hooks 和 config 都是受保护路径。没有任何设置能解除这一限制:allowWrite 条目或涵盖该路径的 Edit 允许规则都无效,只有 sandbox.filesystem.disabled 才能关闭限制——而且会一次性对所有受保护路径关闭,不能单独设置。因此,在沙盒会话中,/code-quality-tools:setup 的 git 钩子步骤(Drupal 上的 GrumPHP vendor/bin/grumphp git:init,Next.js 上的 Husky)无法写入 .git/hooks/,因为这些安装程序会自行以子进程的形式写入该路径。在 Linux 和 WSL2 上,预期会看到 unable to unlink old ... Read-only file system,而不是明确提及 hooks 的错误。请在沙盒外安装钩子,或跳过安装。

在审计不可信目录树之前,先保护凭据。 sandbox.credentials 适用于沙盒化的 Bash 命令,而本技能的审计关卡会在这些命令中运行 composer audit、npm audit 和 semgrep。deny 会阻止访问凭据文件,或直接移除环境变量;mask(变量需 v2.1.199+,文件需 v2.1.221+)会替换为每个会话独有的标记值,并允许沙盒代理为获准的主机换回真实值,因此身份验证仍然有效,命令及其日志也不会接触机密。这对于应对上文“已知限制”中提到的恶意克隆风险至关重要。

无人值守的会话会在不询问的情况下运行此插件的钩子。 Claude Code 只会在交互式会话中显示文件夹信任对话框——claude -p 运行或 SDK 会话都不会显示该对话框,而且无论如何都会使用设置文件中的钩子。此插件包含一个插件作用域的 PreCompact 钩子,以及技能作用域的 FileChanged 和 PermissionDenied 钩子,因此在这种模式下,三个钩子都会针对陌生克隆运行,且不会征求任何人的意见。

Bash 沙盒只限制 Bash——内置文件工具、MCP 服务和钩子在主机上不受限制地运行。这一点在此处尤为重要,因为监视模式分发器作为 FileChanged 钩子(lint-changed.sh)运行,所以在上文“已知限制”中记录的 npx 木马风险不在 Bash 沙盒的隔离边界内。若要在不使用 Docker 的情况下,在同一个操作系统隔离边界内限制钩子(以及文件工具和 MCP),请在沙盒运行时(@anthropic-ai/sandbox-runtime,一项 Beta 研究预览版)下运行整个 Claude Code 进程:配置 ~/.srt-settings.json(默认拒绝所有写入和网络访问),允许访问你的项目目录、~/.claude/~/.claude.json 和 api.anthropic.com,然后通过 npx @anthropic-ai/sandbox-runtime claude 启动。建议:在沙盒运行时下审计不可信的检出内容(或者,为实现内核级隔离,使用专用 VM / Claude Code on the web)。请参阅沙盒环境指南(/en/sandbox-environments),比较各种隔离方式。

何时运行哪些检查

详细指南请参阅 decision-guides/quality-audit-checklist.md。

场景运行内容耗时
提交前仅运行 quality:cs~5 秒
推送前PHPStan + 单元/内核测试~2 分钟
合并前完整审计~10 分钟
每周完整审计 + HTML 报告~15 分钟

自适应审计深度(${CLAUDE_EFFORT})

此技能执行审计时,会根据会话的 effort level 调整审计深度。${CLAUDE_EFFORT} 替换为当前级别:

${CLAUDE_EFFORT}审计深度
low仅快速 lint——检查编码标准;跳过安全性、SOLID、DRY 和覆盖率
mediumlint + 覆盖率 + SOLID + DRY;跳过深度安全检查
high完整审计——全部 22 项操作(实际默认值)
xhigh / max完整审计,然后提供 /code-quality-tools:security-debate,由 3 个 Agent 审查安全性发现

如果值未设置或无法识别,则按 high(完整审计)处理——绝不因无法读取级别而悄悄跳过覆盖率或安全检查。

这是一个试点(v3.5.0):自适应深度目前仅接入审计流程。FileChanged 监视模式分发器和各命令的 effort gate 暂未适配 effort level——待观察试点在实际使用中的表现后再重新评估。

指定审计范围

若要审计特定模块或组件,而不是整个项目:

参见指定审计范围,了解以下 3 种方法:

  1. 更改目录(推荐)- cd web/modules/custom/my_module
  2. 环境变量 - DRUPAL_MODULES_PATH=path/to/module
  3. 完整扫描(默认)- 从项目根目录运行

智能检测:Claude 会检测当前目录和用户意图。

Secret scan 范围(CQT_SECRET_SCAN)

“运行 gitleaks”是范围的选择,而不是一项操作,安全门禁会明确这一点。默认范围是工作树,运行时会打印一行 [SCOPE] 说明这一点;security-report.json 中也包含相同的值,因此读者可以从报告产物判断扫描的是工作树还是完整历史记录。树扫描后显示 Gitleaks: 0 findings,意味着当前检出内容没有发现问题,而非仓库没有问题。

完整历史记录扫描是可选项,因为开销很大;耗时是实测得出的,而非假设的:在本说明所述的仓库中(2,368 次提交、253,505 个打包对象、224.84 MiB 的历史记录;Composer 迁移前 core/vendor/contrib 均已提交),完整历史扫描运行了数分钟,CPU 占用达到数百个百分点,并在 10 分钟时被终止。请谨慎启用,并为其设定时间预算。

变量值开销和效果
CQT_SECRET_SCANtree(默认)、diff、historytree = gitleaks dir,扫描工作树,耗时数秒。diff = 有界提交范围,是 CI 使用的选项,耗时与范围成正比。history = 扫描所有引用可达的每个提交,是唯一能发现已提交后又被移除的密钥的扫描,也是唯一真正开销很大的扫描。
CQT_SECRET_SCAN_BASEgit 引用diff 的起点。未设置时,会从第一个可解析的上游引用推导。如果没有可解析的引用,则拒绝扫描并记录为跳过,而不会悄悄扩大到所有内容。
CQT_SECRET_SCAN_LOG_OPTS字符串在 history 或 diff 扫描中传递给 gitleaks --log-opts。不能包含引号字符: gitleaks 会在将此值传给 git log 之前按空格拆分,因此引号会丢失;带引号的路径规范会扫描 0 字节、找不到任何内容并以状态码 0 退出。包含引号的值会被拒绝。范围和不带引号的路径规范均可使用。
CQT_SECRET_SCAN_ALLOWLISTvendored应用 templates/gitleaks-vendored-allowlist.toml。它会抑制发现项,因此需要选择启用,运行时会打印一行 [FILTER],指出当前使用的配置。它能让报告更易读,但不会缩短历史记录扫描的耗时,因为仍会读取每个 blob。
CQT_SECRET_SCAN_ALLOWLIST_FILE路径使用此 gitleaks 配置文件替代随附的配置文件。
CQT_SECRET_SCAN_TIMEOUT秒(默认 300)任意一次扫描的时间预算,由 timeout(1) 强制执行,而非使用 gitleaks 自带的 --timeout:若为 gitleaks 设置自身的超时时间,它会写入格式正确的空报告并以状态码 1 退出,调用方无法据此区分干净的工作树。timeout(1) 会以状态码 124 退出且不写入任何内容。在没有 timeout(1) 的机器上,不会设置时间预算,范围说明行会指出这一点,而不会显示一个实际上无人执行的限制。
# What a PR build should run: only what this branch added.
CQT_SECRET_SCAN=diff CQT_SECRET_SCAN_BASE=origin/main bash scripts/drupal/security-check.sh

# The pass that finds a credential that was committed and later gitignored.
CQT_SECRET_SCAN=history CQT_SECRET_SCAN_TIMEOUT=1800 \
  CQT_SECRET_SCAN_ALLOWLIST=vendored bash scripts/drupal/security-check.sh

完整表格以及实测的 --log-opts 失败模式:Drupal / Next.js。


运维

为便于整理,所有详细的运维说明均已移至参考文件。

Drupal 运维

设置和配置
质量审计
开发工作流
安全
  • 操作 20: 安全审计 — 10 层安全防护
    • Drush pm:security、Composer audit
    • yousha/php-security-linter、Psalm 污点分析
    • 自定义 Drupal 模式、Security Review 模块
    • Semgrep SAST、Trivy 扫描器、Gitleaks
    • Roave Security Advisories

Next.js 操作

设置与配置
  • 操作 13: 设置工具 - 安装 ESLint、Jest、安全工具
质量审计
开发工作流
  • 操作 18: TDD 工作流 - 使用 Jest 进行 RED-GREEN-REFACTOR
安全
  • 操作 21: 安全审计 — 7 层安全防护
    • npm audit、ESLint 安全插件
    • Semgrep SAST、Trivy 扫描器、Gitleaks
    • 自定义 React/Next.js 模式(XSS、eval、导航)
    • Socket CLI

可选:DAST(动态测试)

面向预发布环境的安全测试

  • 操作 22: DAST 工具 — 动态安全测试
    • OWASP ZAP(完整 DAST 扫描器)
    • Nuclei(基于模板的 CVE 扫描)
    • 需要运行中的应用程序
    • 在发布前于 staging/预发布环境中使用

保存报告

所有报告必须遵循 schemas/audit-report.schema.json:

{
  "meta": {
    "project_type": "drupal|nextjs|monorepo",
    "timestamp": "2025-12-19T12:00:00Z",
    "thresholds": { "coverage_minimum": 70, "duplication_max": 5 }
  },
  "summary": {
    "overall_score": "pass|warning|fail|unknown",
    "coverage_score": "pass|warning|fail",
    "solid_score": "pass|warning|fail",
    "dry_score": "pass|warning|fail",
    "security_score": "pass|warning|fail|skipped"
  },
  "coverage": { "line_coverage": 75.5, "files_analyzed": 45 },
  "solid": { "violations": [] },
  "dry": { "duplication_percentage": 3.2, "clones": [] },
  "security": { "critical": 0, "high": 0, "medium": 3, "low": 5, "issues": [] },
  "recommendations": []
}

参考资料

核心指南
  • references/tdd-workflow.md - RED-GREEN-REFACTOR 模式、测试命名、循环目标
  • references/coverage-metrics.md - 按代码类型划分的覆盖率目标、PCOV 与 Xdebug
  • references/dry-detection.md - 三次法则、何时允许重复
  • references/solid-detection.md - SOLID 检测模式与修复方法
  • references/composer-scripts.md - 可直接使用的 composer 脚本
  • references/scope-targeting.md - 针对特定模块/组件
  • references/post-batch-aggregation.md - 可选的 PostToolBatch 聚合模式(Claude Code 2.1.118+);默认不附带
  • references/code-intelligence.md - 可选的 LSP 工具代码智能,用于更深入的 SOLID/DRY/审查分析(建议使用,但非必需)
  • references/setup-hook-pattern.md - 可选的 Setup 钩子模式,用于在 claude --init -p 时一次性引导 CI 工具;默认不附带
运维
  • references/operations/drupal-setup.md - Drupal 设置运维
  • references/operations/drupal-audits.md - Drupal 质量审计运维
  • references/operations/drupal-security.md - Drupal 安全性(10 层,v2.0.0)
  • references/operations/drupal-tdd.md - Drupal TDD 工作流
  • references/operations/nextjs-setup.md - Next.js 设置运维
  • references/operations/nextjs-audits.md - Next.js 质量审计运维
  • references/operations/nextjs-security.md - Next.js 安全性(7 层,v2.0.0)
  • references/operations/nextjs-tdd.md - Next.js TDD 工作流
在线开发指南(Drupal 领域)

如需了解超出工具命令范围的 Drupal 专属模式,请获取指南索引:

索引: https://camoa.github.io/dev-guides/llms.txt

可能相关的主题:solid-principles、dry-principles、security、testing、tdd、js-development、github-actions

用法:使用 WebFetch 获取索引以查找可用主题,然后在说明违规问题、建议修复方案或提供架构背景时,获取具体主题页面。

决策指南

  • decision-guides/test-type-selection.md - Unit、Kernel 与 Functional 的决策树
  • decision-guides/quality-audit-checklist.md - 何时运行哪些检查(提交前与合并前)

模板

Drupal
  • templates/drupal/phpstan.neon - PHPStan 2.x 配置(扩展自动加载)
  • templates/drupal/phpmd.xml - Drupal 的 PHPMD 规则集
  • templates/drupal/phpunit.xml - 带测试套件的 PHPUnit 配置
  • templates/ci/github-drupal.yml - 配备安全工具的 GitHub Actions 工作流
Next.js
  • templates/nextjs/eslint.config.js - 配备 TypeScript 和安全功能的 ESLint v9 扁平配置
  • templates/nextjs/jest.config.js - 带覆盖率阈值的 Jest 配置
  • templates/nextjs/jest.setup.js - 配备 Testing Library 的 Jest 设置
  • templates/nextjs/.prettierrc - 配备 Tailwind 插件的 Prettier 配置

版本历史请参阅 CHANGELOG.md。

评论

支持 Markdown