关于 gate
面向开发者的代码验证技能,通过执行检查、读取错误并修复后重跑,验证代码状态。它要求以实际命令输出作为通过依据,并在多轮修复后仍有失败时报告阻塞。
主要功能
- 01检测技术栈并确定检查命令
- 02依次运行 lint、类型检查、构建和测试
- 03读取错误并进行有限轮次修复
- 04支持单项检查与完整验证模式
- 05无法执行时标记为阻塞
适用场景
- 01提交代码前运行质量检查
- 02修复构建或测试失败
- 03仅运行指定类型的检查
- 04汇报未能通过的验证项
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ iankiku/ forwward-teams --skill gate安装后在 Claude Code 中输入/gate确认已加载。
详细介绍
Gate — 自愈式验证
运行检查,阅读错误,修复问题,然后重复。通过执行代码,证明代码确实可用。
防走捷径规则
- 绝不能只看源代码就宣告通过。 必须执行并观察输出。
- 没有命令输出就绝不能宣告通过。 “应该没问题”不算证据。
- 如果检查无法执行,请报告为受阻——绝不能伪造通过结果。
步骤 0:检测技术栈并获取命令
如果 .claude/project.local.json(本地、已加入 git 忽略规则的覆盖配置)存在,则读取它;否则读取 .claude/project.json,获取构建命令。如果没有这些配置,则检测技术栈并推断合适的命令:
| 技术栈标记 | Lint | 类型检查 | 构建 | 测试 |
|---|---|---|---|---|
package.json | npm run lint | npm run typecheck / tsc --noEmit | npm run build | npm test |
go.mod | golangci-lint run | (在构建时检查类型) | go build ./... | go test ./... |
pyproject.toml / requirements.txt | ruff check . / flake8 | mypy . | (无编译步骤) | pytest |
Gemfile | rubocop | (如果存在 Sorbet) | bundle exec rake assets:precompile | bundle exec rspec |
pom.xml | mvn checkstyle:check | (已编译) | mvn package | mvn test |
Cargo.toml | cargo clippy | (已编译) | cargo build | cargo 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 轮:
- 执行:lint → 类型检查 → 构建 → 测试
- 全部通过?→ GATE PASSED — 停止。
- 有任何失败?→ 阅读完整错误信息,修复问题,然后重新运行。
修复规则
| 错误类型 | 修复方法 | 不要这样做 |
|---|---|---|
| 类型错误 | 修正类型,添加导入 | 使用 @ts-ignore |
| 构建错误 | 修正导入、导出和模块 | 跳过检查 |
| Lint 错误 | 修正实际问题 | 一概使用 disable |
| 测试失败 | 修正代码或测试 | 删除测试 |
gate 期间绝不能更改业务逻辑。 只能修复类型、导入和 lint 问题。
熔断机制
4 轮后仍未全部通过:
- 报告仍然失败的检查及其最近一次错误输出
- 不要伪造通过结果
- 通知用户或团队负责人
CLI 参考
| 标志 | 用途 |
|---|---|
-l | 仅运行 Lint |
-c | 仅运行类型检查 |
-b | 仅运行构建 |
-t | 仅运行测试 |
-a | 应用启动(开发服务端 + 健康检查) |
-u | UI 测试(Playwright/Cypress) |
-g | 完整 gate:lint + 类型检查 + 构建 + 测试 |
--all | 所有检查,包括应用和 UI |
评论
支持 Markdown