auto-pilot は何をしますか?
Claude Code プラグイン。長期間の TDD コーディングワークフロー向けに、構造化ステートマシンで状態を永続化し、TDD リズムを強制、各フェーズで必須の人間確認と自動リントチェックによりゲート制御を行います。
概要
IronRookieCoder/auto-pilot は、Claude Code のエージェントが自律的にコードを生成する際、TDD(テスト駆動開発)のリズムを保ちながら、人間の介入が必須のゲートと自動リントチェックを組み合わせることで、長期間にわたるコーディングタスクの品質と制御可能性を高めます。
主な機能
- ステートマシンによる状態管理: 開発の進行状況をステート(例:
DESIGN、IMPLEMENT、TEST、REFACTOR)としてファイルに保存し、中断後も続きから再開可能。 - TDD リズムの強制: 各サイクルで「テストを先に書き、実装し、リファクタリングする」という TDD の基本フローを自動的に促進。
- 人間確認ゲート: 各フェーズの移行時に、エージェントはユーザーに確認を求め、承認を得た場合のみ次のステップに進む。
- 自動リントチェック: コードの静的解析(リント)を自動実行し、エラーや警告がある場合はフェーズ移行をブロック。
- 設定可能な厳格さ: 設定ファイルでチェックの厳格さや初期状態を指定可能。
動作の流れ
auto-pilotが初期化されると、現在のプロジェクトの状態を読み込み、前回の進行状況があればそこから再開します。- 現在のフェーズに応じたアクション(例:テストの設計、コードの実装、テストの実行)をエージェントが提案。
- ユーザーが承認すると、エージェントがコードを生成し、自動リントチェックを実施。
- チェックが通過すると、次のフェーズに遷移し、状態ファイルが更新されます。
- すべてのフェーズが完了するまで、このループを繰り返します。
サポート環境
- プラットフォーム: Claude Code(CLI および IDE 統合)
- 依存関係: Node.js(LTS)、プロジェクト内のリント設定(例:ESLint、Prettier)
インストール方法
# Claude Code のプロジェクト内で実行
claude add IronRookieCoder/auto-pilot
または、プロジェクトの claude.json に直接追加:
{
"plugins": ["IronRookieCoder/auto-pilot"]
}
設定例
プロジェクトルートに auto-pilot.config.json を作成:
{
"initialState": "DESIGN",
"lintCommand": "npm run lint",
"strictMode": true,
"humanConfirmation": true
}
initialState: 起動時の初期ステート(DESIGN,IMPLEMENT,TEST,REFACTORのいずれか)。lintCommand: リントチェックを実行するコマンド。デフォルトは自動検出。strictMode:trueの場合、すべての警告をエラーとして扱う。humanConfirmation:trueの場合、すべてのフェーズ移行でユーザー確認必須。
使用例
# セッション開始
claude "auto-pilot start"
# 現在の状態を確認
claude "auto-pilot status"
# 次のフェーズに進む(ユーザー確認後)
claude "auto-pilot next"
注意点
- このスキルは、Claude Code のエージェントが長時間にわたって自律的にタスクを実行する前提で設計されています。人間による定期的な確認が品質保証に不可欠です。
- 状態ファイル(
.auto-pilot-state.json)は.gitignoreに追加しないことを推奨します(チームで進行状況を共有するため)。 - 自動リントチェックのコマンドがプロジェクトに設定されていない場合、スキルは正しく動作しません。事前にリントツールを導入してください。
トラブルシューティング
- 状態ファイルの競合: 複数の開発者が同時に操作すると状態が矛盾する可能性があります。チーム内で排他制御ルールを設けてください。
- リントエラーによるブロック: リントチェックが厳しすぎる場合は、
strictModeをfalseに設定して一時的に緩和できます。
ライセンス
MIT