env-doctor について
env-doctorは、プロジェクトの実行環境を確認し、安全な範囲で修復するスキルです。`.agents/environment.md`を仕様とし、システム全体の変更や本番シークレットへの接触を避け、準備状態や阻害要因を報告します。
主な機能
- 01マニフェストに基づく環境確認
- 02ランタイムとサービスのプローブ
- 03プロジェクト内に限定した修復
- 04合成テストシークレットの使用
- 05人間とランナー向けの報告形式
活用シーン
- 01作業前に指定ツールとサービスを確認
- 02プロジェクトサービスの起動と依存関係の同期
- 03テストデータストア設定の検証
- 04環境の阻害要因を安全に報告
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ venhdev/ skills --skill env-doctorインストール後、Claude Code で/env-doctorを入力して読み込まれたか確認します。
詳細
env-doctor — 実行環境の診断と修復
運用上の不変条件
- 冪等なローカル境界:修復はプロジェクトのスコープ内の操作(宣言済み依存関係の同期、ローカルサービスの起動、テスト用データストアのマイグレーション、合成テスト用シークレット)に厳密に限定します。システム全体の変更(
sudo、brew)、ホストの PATH の改変、リモートからのシークレット取得は禁止します。ポートの競合、デーモンの不足、破壊的な操作がある場合はUNRESOLVEDで停止します。 - シークレットを一切露出しない:本番のシークレットファイル(
.env.exampleを除く.env*)を調査またはコピーしません。.env.testまたは環境スタブに決定論的なモックを注入します。 - マニフェストを唯一の信頼できる情報源とする:権威ある仕様として
.agents/environment.mdを読みます。省略可能なセクション(純粋なライブラリ向けのサービス、外部データストア)は、記載がない場合にPASSとします。 - 呼び出し元に応じた出力:人間に呼び出された場合は、正規出力契約の全体を出力します。自律型ランナーに呼び出された場合は、1行のマイクロサマリートークン(
READYまたはUNRESOLVED: <blocker>)のみを出力します。
ドメイン評価基準
1. 寸法監査とプロービングの規律
宣言されたマニフェストと、ホストのランタイムおよび実行ラッパー(pnpm、cargo、uv)を相互確認します。宣言されたサービスのレディネスプローブ(ソケット、HTTP /healthz、データベースへの ping)を指数バックオフ(最大 15s)で実行します。プロセスの状態(Up)をレディネスとみなすことは禁止します。テスト用データストアのマイグレーション、フィクスチャ、合成 .env.test スタブを検証します。
正規出力契約
# Environment Health Report: <Scope> · <READY | STAGED | UNRESOLVED>
Basis: .agents/environment.md
| Dimension | Declared / Target | Active / Detected | State |
| :--- | :--- | :--- | :--- |
| **Toolchain** | <Target runtime version> | <Active version / wrapper> | <PASS | FAIL> |
| **Services** | <Declared services or N/A> | <Probe outcome or Standalone>| <PASS | FAIL> |
| **Datastore** | <Target test datastore> | <Migration & seed status> | <PASS | FAIL> |
| **Test Stubs** | <Test env / secrets> | <Stubs presence (.env.test)> | <PASS | FAIL> |
*(omit if clean)* ## Applied Remediation
- **[<Auto | Staged>] <Action>**: <Command and outcome or pending approval>
*(omit if READY)* Gap: <Root cause blocker and required human action.>
自律型マイクロトークン契約:
READY | runtime: <version> | services: <healthy|standalone> | fixtures: verified
(失敗時は UNRESOLVED: <single-sentence blocker> を出力します)。
ルーティング
- 環境が READY の場合、タスクの分解に進みます →(/split-tasks 経由)。
- 環境が READY の場合、コードの実装に進みます →(/forge 経由)。
- 環境が READY の場合、根本原因の診断に進みます →(/diagnose 経由)。
- サービスアーキテクチャが未定義で設計上の判断が必要な場合 →(/architect-decision 経由)。
実行プロトコル
.agents/environment.mdを読み、宣言されたホストツール、ランタイム、サービス、フィクスチャをプローブします。すべて合格した場合は、そこで処理を打ち切ってREADYとします。- 安全な自動修復(宣言済みサービスの起動、依存関係の同期、テスト用データストアのマイグレーション/フィクスチャの実行)を行います。ヘルスを再度プローブし、ブロッカーがなければ
READYを報告し、ブロッカーがあればそのターンをUNRESOLVEDで終了します。
コメント
Markdown 対応