mcpField
G
gate

gate

github.com/iankiku测试与质量1841 次安装13 周前更新
代码仓库

关于 gate

面向开发者的代码验证技能,通过执行检查、读取错误并修复后重跑,验证代码状态。它要求以实际命令输出作为通过依据,并在多轮修复后仍有失败时报告阻塞。

主要功能

  1. 01检测技术栈并确定检查命令
  2. 02依次运行 lint、类型检查、构建和测试
  3. 03读取错误并进行有限轮次修复
  4. 04支持单项检查与完整验证模式
  5. 05无法执行时标记为阻塞

适用场景

  1. 01提交代码前运行质量检查
  2. 02修复构建或测试失败
  3. 03仅运行指定类型的检查
  4. 04汇报未能通过的验证项

安装

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

$npx skills add https://github.com/iankiku/forwward-teams --skill gate

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

详细介绍

Gate — 自愈式验证

运行检查,阅读错误,修复问题,然后重复。通过执行代码,证明代码确实可用。

防走捷径规则

  1. 绝不能只看源代码就宣告通过。 必须执行并观察输出。
  2. 没有命令输出就绝不能宣告通过。 “应该没问题”不算证据。
  3. 如果检查无法执行,请报告为受阻——绝不能伪造通过结果。

步骤 0:检测技术栈并获取命令

如果 .claude/project.local.json(本地、已加入 git 忽略规则的覆盖配置)存在,则读取它;否则读取 .claude/project.json,获取构建命令。如果没有这些配置,则检测技术栈并推断合适的命令:

技术栈标记Lint类型检查构建测试
package.jsonnpm run lintnpm run typecheck / tsc --noEmitnpm run buildnpm test
go.modgolangci-lint run(在构建时检查类型)go build ./...go test ./...
pyproject.toml / requirements.txtruff check . / flake8mypy .(无编译步骤)pytest
Gemfilerubocop(如果存在 Sorbet)bundle exec rake assets:precompilebundle exec rspec
pom.xmlmvn checkstyle:check(已编译)mvn packagemvn test
Cargo.tomlcargo clippy(已编译)cargo buildcargo test

同时检查 Makefile——许多项目会在其中集中定义所有命令(make lint、make test、make build)。

如果有插件 CLI,也可以通过它进行初始化:

${CLAUDE_PLUGIN_ROOT}/scripts/cli init

可选:审计阶段

运行循环之前,gate 可以调用 /audit,先清理分支:

/audit          # de-slop + DRY + dead code on changed files only

以下情况运行审计:用户说“发布前先清理”、差异内容庞大且杂乱,或者这是发布前的 gate。热修复和小型补丁可跳过审计——运行循环即可。

从 gate 调用审计时的范围:仅限此分支上更改的文件(git diff main...HEAD)。完整代码库审计需单独调用。

循环

最多运行 4 轮:

  1. 执行:lint → 类型检查 → 构建 → 测试
  2. 全部通过?→ GATE PASSED — 停止。
  3. 有任何失败?→ 阅读完整错误信息,修复问题,然后重新运行。

修复规则

错误类型修复方法不要这样做
类型错误修正类型,添加导入使用 @ts-ignore
构建错误修正导入、导出和模块跳过检查
Lint 错误修正实际问题一概使用 disable
测试失败修正代码或测试删除测试

gate 期间绝不能更改业务逻辑。 只能修复类型、导入和 lint 问题。

熔断机制

4 轮后仍未全部通过:

  1. 报告仍然失败的检查及其最近一次错误输出
  2. 不要伪造通过结果
  3. 通知用户或团队负责人

CLI 参考

标志用途
-l仅运行 Lint
-c仅运行类型检查
-b仅运行构建
-t仅运行测试
-a应用启动(开发服务端 + 健康检查)
-uUI 测试(Playwright/Cypress)
-g完整 gate:lint + 类型检查 + 构建 + 测试
--all所有检查,包括应用和 UI

评论

支持 Markdown