mcpField
M
medic

medic

github.com/rheinmirテスト・品質10219 回インストール2 週間前に更新
リポジトリ

medic について

medic は、コミット前や環境変更後に overstack フレームワークの状態を確認する診断スキルです。読み取り専用のプローブで問題箇所と修正コマンドを示し、自ら変更は行いません。

主な機能

  1. 01ルール、カバレッジ、ドキュメント、コード、評価の検査
  2. 02名前やタグによるプローブ選択
  3. 03CI モードで失敗を終了コードに反映
  4. 04クラッシュしたプローブをスキップ
  5. 05結果と修正コマンドの提示

活用シーン

  1. 01コミットや PR 前のフレームワーク検査
  2. 02更新やマシン変更後の状態確認
  3. 03ルールが問題を阻止できるかの調査
  4. 04既存の防御チェック項目の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rheinmir/setup --skill medic

インストール後、Claude Code で/medicを入力して読み込まれたか確認します。

詳細

スキル:medic

万能キー:1つのコマンドで最後の防衛線を確認します。何も修正せず、システムが健全であることを証明します。健全でない場合は、問題箇所と修正コマンドを1行だけ表示します。

WHAT

目的とコンテキスト
  • 目的: 1つのコマンドで、overstack フレームワークが健全であること(ルールが機能している、ドリフトがない、ドキュメントとディスク上の内容が一致している、コードがコンパイルできる、評価でリグレッションがない、Git のバックストップが機能している)を証明します。問題があれば、問題箇所と修正コマンドを表示します。
  • トリガー(使用するタイミング):
    • コミット前/PR 作成前 — 最終確認をします。赤ならプッシュしません。
    • 新しいバージョンを取得した後/マシンを変更した後 — overstack がそのまま保たれているか確認します。
    • ルールが「もうブロックしていないようだ」と疑われる場合 — ルール層だけを確認します。
    • スキル/ルール/ジェネレーターを追加した直後 — ガードレールを忘れていれば、medic が自動で報告します(カバレッジの自動拡張)。
    • 現在の防御構造だけを確認したい場合 — medic --list。
  • 対象外: 何も修正しません。大きな負債の修正もしません(proposal 030726-medic の担当です)。/fdk-uat(リモートのインストール経路)を置き換えるものでもありません。
メンタルモデル

範囲(ユーザーの説明)→ probe(rules · coverage · docs · code · eval · backstop)→ ✓/⚠/✗ + 詳細 + ↳ 修正 → 判定。Probe は検査単位です。medic.py が唯一のハブであり、検査を追加するときは probe を追加します。個別のツールを増やしてはいけません。

入力と出力の契約
フィールド必須?意味
入力範囲いいえ(デフォルト = all)probe の名前/タグに一致するキーワード。複数の範囲はスペースで区切ります
入力--ciいいえ判定を確定するために終了コードが必要な場合に指定します(pre-commit/CI)
出力レポートはい各 probe の ✓/⚠/✗ + 詳細 + ↳ 修正、判定、要約、ディレクトリ構造 — そのままユーザーに渡します
出力終了コード--ci 指定時FAIL → 終了コード 1、FAIL なし → 0
ルールと機能
  • RULE-01(MUST):確認中に何も修正しない — medic は診断のみを行います。修正は、意図的に行う別のステップです。
  • RULE-02(MUST):fail-open を尊重する:probe のエラーは SKIP とし、「システムが壊れている」と結論づけません。
  • RULE-03(MUST):範囲を説明し、コマンドを増やさない — 必要な確認がまだなければ、medic.py に probe を追加します(追加箇所は1つ)。個別の新しいツールは作りません。
  • RULE-04(MUST):自己完結型にします。medic.py は標準ライブラリのみを使います。既存のツールを組み合わせ、外部依存を追加しません。
  • RULE-05(MUST):ドリフト/古い状態は再生成/同期のみで対応し、ロジックは修正しません。validator を同期する前に方向を確認します。現在「機能している」側が正しいものです(030726 の教訓:同期の方向を誤ると、rail が機能しなくなります)。
  • 機能:フレームワークリポジトリの読み取りとローカル probe の実行(読み取り専用)。書き込みはせず、ネットワークも必須ではありません。
失敗の境界
  • ✗ がある → 判定は FAIL(--ci 指定時は終了コード 1)。適切な ↳ 修正 を1行だけ提案し、自動実行はしません。
  • ⚠ のみ → 既知の負債としてユーザーに報告し、大規模な修正は自動で行いません。
  • probe がクラッシュ → SKIP(fail-open)とし、FAIL には数えません。
  • 範囲に一致する probe がない → probe の一覧(medic --list)を表示し、推測しません。

HOW

メインワークフロー
ステップ種類入力アクション出力/終了失敗時/次の処理
W01判断ユーザーの説明ユーザーの説明に基づいて範囲を選択します(サブコマンドを覚えている必要はありません):すべて → 引数なし。一部 → probe の名前/タグに一致するキーワード(rules、coverage、docs、code、eval、backstop)範囲の一覧曖昧な場合 → all
W02決定論的範囲python3 fdk/tools/medic.py [範囲] を実行します(または、~/.local/bin/medic にシンボリックリンクがある場合は medic [範囲])。終了コードが必要な場合は --ci を追加しますレポート + rc→ W03
W03決定論的レポート出力をそのままユーザーに渡します — medic がすでに簡潔に表示しているので、この部分を省略しないでくださいユーザーが全内容を確認できます✗ がある → B01、⚠ のみ → B02、問題なし → 完了
分岐
ID種類条件動作スキップ/失敗再合流
B01リカバリー✗ がある(失敗)medic が提案する ↳ 修正 を1行だけ実行するよう提案します。ドリフト/古い状態の場合は再生成/同期のみです(RULE-05)ユーザーが拒否 → 停止し、判定は FAIL のまま修正後に W02 を再実行
B02条件付き必須⚠ がある(警告)、例:coverage 5/17、pre-commit 未インストール既知の負債であることをユーザーに報告します。大規模な修正は勝手に行いません — これは proposal 030726-medic の担当です—終了
検証と停止

判定は medic.py が決定論的に行い、モデル自身は判断しません。1回の呼び出しにつき B01 → W02 の繰り返しは最大1回までです。まだ赤であれば停止して報告します。

Examples
  • Positive: "chạy medic trước khi commit" → python3 fdk/tools/medic.py --ci → mọi probe ✓ → exit 0, báo "hệ khoẻ, commit được".
  • Boundary/failure: "medic docs" khi CAPABILITIES lệch đĩa → probe docs ✗ kèm ↳ sửa regen → đề nghị đúng lệnh đó, không tự sửa; --ci trả exit 1.

コメント