gate について
チェックを実行し、エラーを読んで修正したうえで再実行する、開発者向けのコード検証スキルです。成功の根拠としてコマンド出力を求め、検証できない場合は合格とせずブロックとして報告します。
主な機能
- 01スタック検出とチェックコマンドの特定
- 02lint・型チェック・ビルド・テストの実行
- 03エラーの確認と回数制限付きの修正反復
- 04個別チェックと一括検証への対応
- 05実行不能なチェックのブロック報告
活用シーン
- 01コード提出前の品質チェック
- 02ビルドやテストの失敗修正
- 03選択した種類のチェックだけを実行
- 04未解決の検証項目の報告
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iankiku/ forwward-teams --skill gateインストール後、Claude Code で/gateを入力して読み込まれたか確認します。
詳細
Gate — 自己修復型検証
チェックを実行し、エラーを読み、修正して、繰り返します。コードを実行して、正常に動作することを証明します。
近道を禁止するルール
- ソースを読むだけで PASS と判定してはいけません。 実行して、出力を確認してください。
- コマンドの出力なしで PASS と判定してはいけません。 「動くはず」は証拠になりません。
- チェックを実行できない場合は、BLOCKED と報告してください。 PASS を偽装してはいけません。
ステップ 0:スタックを検出してコマンドを確認する
.claude/project.local.json(ローカルの gitignore 対象のオーバーライド)があればそれを、なければ .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 から呼び出す場合の監査範囲:このブランチで変更されたファイルのみ(git diff main...HEAD)。コードベース全体の監査は別途呼び出してください。
ループ
最大 4 回繰り返します。
- 実行:lint → typecheck → build → test
- すべて成功した場合 → GATE PASSED — 停止します。
- 失敗がある場合 → エラー全文を読み、修正して、再度実行します。
修正ルール
| エラーの種類 | 修正 | 禁止事項 |
|---|---|---|
| 型エラー | 型を修正し、インポートを追加する | @ts-ignore を使用する |
| ビルドエラー | インポート、エクスポート、モジュールを修正する | チェックを省略する |
| Lint エラー | 根本的な問題を修正する | 一律に disable する |
| テスト失敗 | コードまたはテストを修正する | テストを削除する |
gate の実行中にビジネスロジックを変更してはいけません。 型、インポート、Lint のみを修正します。
サーキットブレーカー
4 回繰り返してもすべて成功しない場合:
- 最後のエラー出力とともに、まだ失敗しているチェックを報告します
- PASS を偽装してはいけません
- ユーザーまたはチームリードに知らせます
CLI リファレンス
| フラグ | 内容 |
|---|---|
-l | Lint のみ |
-c | 型チェックのみ |
-b | ビルドのみ |
-t | テストのみ |
-a | アプリの起動(開発サーバー+ヘルスチェック) |
-u | UI テスト(Playwright/Cypress) |
-g | 完全な gate:lint + typecheck + build + test |
--all | アプリと UI を含むすべて |