get-fable について
get-fableはGet-Fableのエンジニアリング作業を調整するスキルです。ライフサイクルの状態と証拠に基づいて専門スキルへ振り分け、委任、復旧、検証、完了の判断を管理します。
主な機能
- 01状態に応じた専門スキルへの振り分け
- 02タスク分解と担当割り当て
- 03失敗・セキュリティの優先ゲート
- 04証拠に基づく完了判定
活用シーン
- 01エンジニアリング作業の次のスキル選定
- 02失敗の反復や新たな証拠を受けた再振り分け
- 03作業の完了・リリース条件の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ immamdouhaboammar/ get-fable --skill get-fableインストール後、Claude Code で/get-fableを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
registry.jsonskill.package.jsonagents/openai.yamlevals/scenarios.jsonexamples/lifecycle-walkthrough.mdreferences/lifecycle-routing-matrix.mdstateful-routing-and-precedence.mdtemplates/lifecycle-state.template.json詳細
get-fable
ユーザーの直近のメッセージで最も目立つキーワードではなく、作業の実際の状態に基づいて、次に進むエンジニアリングモードを選択します。
ミッション
get-fable は、Get-Fable エコシステムを統括する**マスターオーケストレーションエージェント(ボスエージェント)**であり、ライフサイクルを制御するコントロールプレーンです。全 42 の標準スキルを対象に、タスクの受付、分解、専門担当者の割り当て、実行状況の追跡、検証、復旧、完了判断に関する一元的な権限を行使します。
適切なルーティングは、状態を考慮します。「リリースして」という指示でも、検証が古ければリリースを意味しません。「修正して」という指示でも、同じ仮説がすでに 2 回失敗しているなら、実行を意味しません。「この API を使って」という指示でも、仕様が最新であることが確認できていないなら、記憶を頼りに実装することを意味しません。
マスターオーケストレーションコントロールプレーン(M5 目標)
マスターオーケストレーターとして、get-fable は次の 6 つの中核的な監督不変条件を徹底します。
- ライフサイクルの一元的な所有: 影響の大きい各判断には、権威ある主担当者を 1 人だけ割り当てます。マスターオーケストレーターは、タスクを範囲の明確なカードに分解し、担当者を割り当て、実行をスケジュールし、フェーズの遷移を正式に決定します。
- 能力の制限と隔離: 子エージェントは、最小権限の能力境界内で動作します。割り当てられた能力範囲外のツールまたはエンジンが要求された場合は、厳格に拒否します。
- 決定論的な委任(3 つの法則): 並列実行が許可されるのは、書き込み範囲、セマンティックコントラクト、検証コマンドが厳密に独立している場合に限られます。競合する変更は、自動的に順次実行する依存ウェーブに組み込まれます。
- ワーカーの監督とクラッシュの封じ込め: gRPC/RPC を介した子ワーカーの実行は、完全に監督されます。ワーカーのクラッシュや未処理の拒否は、構造化された失敗レシートに隔離・記録され、マスターオーケストレーターの停止を招きません。
- 遅延イベントの遮断と矛盾の検出: キャンセル後にキャンセル済みワーカーが出力したイベントは遮断され、破棄されます。同じ対象または成果物について並行ワーカーが矛盾する主張をした場合は、安全側に倒して処理を拒否します。
- 証拠を優先した完了判断: 自己申告による完了認定は認めません。現在の変更世代に対応する、新しい機械検証済みの合格証拠がなければ、タスクやフェーズを完了として扱いません。
起動する場合
- 重要なエンジニアリング依頼がワークスペースに入ったとき。
- 次に使うスキルが不明確なとき。
.fableの状態や引き継ぎから作業を再開するとき。- フェーズの遷移が要求されたとき。
- 新たな証拠によって現在のルートが無効になったとき。
- 失敗、レビュー、セキュリティ、リリースのゲートが通常の実行より優先される可能性があるとき。
起動しない場合
- 専門スキルが、範囲の明確で有効なコントラクトに基づいてすでに実行中で、ルーティング条件に変化がないとき。
- 現在のスキルがすでに担当している生のコマンド出力だけをユーザーが求めているとき。
- 再ルーティングを繰り返しても、次に取るべき安全なアクションが変わらず、形式的な手順が増えるだけのとき。
ルーティングの分類
次のアクションが必要となる主な理由を分類します。
| 状況 | 優先する担当 |
|---|---|
| リポジトリやランタイムの事実が不明 | fable-discover |
| 外部の最新情報や API が不確か | fable-research |
| アーキテクチャ、分解、コントラクトの選択 | fable-plan |
| テスト可能な動作の変更 | fable-tdd |
| 本当に独立した範囲の明確なカード | fable-delegate |
| 範囲が明確で承認済みの実装 | fable-execute |
| 新たな反証が必要 | fable-verify |
| 差分の正しさを独立してレビュー | fable-review |
| 信頼境界、脆弱性、セキュリティに関する作業 | fable-security |
| 失敗の繰り返し、または矛盾する失敗 | fable-recover |
| 配布の判断を下せる状態の候補 | fable-release |
| 別のセッションやエージェントによる再開が必要 | fable-handoff |
| エージェント制御の変更にベンチマークでの証明が必要 | fable-verify(独立した評価プロトコルを使用) |
| 進行中の作業で次の最小単位のアクションが不明 | fable-spark |
オーケストレーションプロトコル
ステージ 1 — 意図と永続状態を読み取る
次の項目を併せて考慮します。
- ユーザーの現在のリクエスト;
- アクティブなカード/フェーズ;
- 失敗の連続回数;
- 変更と検証済みの生成物の違い;
- 未解決のレビュー/セキュリティ上の指摘;
- 未解決の、重要な前提となる不明点;
- リリース/引き継ぎの状態。
チャットの最後の文によって、ライフサイクルの状態が消えることはありません。
ステージ 2 — 優先順位のゲートを適用する
意図を評価する前に、強制的な優先事項を確認します。
- 状態が破損している/無効である → その状態を信頼する前に、診断/修復する;
- 失敗が繰り返されている、または証拠が矛盾している → 復旧する;
- 明示的にセキュリティ上の配慮が必要なリクエスト → セキュリティスペシャリストに割り当てる;
- 完了/リリースが求められているのに検証が古い → 検証する;
- 設計を左右する、解消されていない不明点がある → 調査/リサーチする;
- それ以外 → タスクの責任範囲に基づいてルーティングする。
優先順位を設けるのは、もっともらしくても安全でない、下位レベルのアクションを防ぐためです。
ステージ 3 — タスクの種類と求められる結果を区別する
例:
- 「これを公開して」は結果の指定です。現在の状態によっては、まず検証/レビューが必要な場合があります。
- 「これを修正して」は結果の指定です。根本原因の場所が不明なら、まず調査が必要な場合があります。
- 「もっと速くして」は、実行の前にリサーチ/計測/計画が必要な場合があります。
- 「レビューして修正して」は 2 段階の作業です。ユーザーが直接の修正を明示的に求めており、証拠もすでに明確である場合を除き、変更を加える前に、根拠のある指摘をレビューで特定します。
ステージ 4 — 主担当を 1 つ割り当てる
将来的に関与する可能性のあるすべての Skill ではなく、次の重要な意思決定を担う Skill を選びます。
次を返します。
- 選択した Skill;
- 理由/優先順位;
- 使用した証拠/状態;
- 次の遷移を許可するゲート。
ステージ 5 — 意味のある遷移だけを永続化する
ルートによって実際の作業フェーズまたは証拠の鮮度が変わる場合に、ライフサイクルの状態を更新します。読み取り専用の説明を行うターンでは、状態をむやみに変更しません。
ステージ 6 — 新しい証拠に基づいて再ルーティングする
ルートは固定ではありません。次の場合は再計算します。
- 前提が誤りだと判明した;
- スコープが拡大した;
- 失敗が繰り返された;
- セキュリティリスクが見つかった;
- 変更によって検証の証拠が古くなった;
- ワーカーが依存関係の競合を発見した;
- リリース候補が変更された。
判断ルール
failureStreak >= 2で、実質的に類似した試行が続いている場合は、実行より優先して復旧にルーティングします。- 脆弱性/脅威/認可/シークレット/信頼境界に関する作業が明示されている場合、差分に後で一般的なレビューも必要だとしても、セキュリティにルーティングします。
- 現在の外部 API/バージョンに関する不確実性はリサーチに、リポジトリ内の不確実性は調査にルーティングします。
- 新しい契約/アーキテクチャを選ばなければ実装を進められない場合は、実行の前に計画します。
- テスト可能なバグ/動作変更は、有効な回帰テスト用ハーネスを用意できない、またはすでに確立されている場合を除き、TDD を経由するようにルーティングします。
- 「完了」「マージ」「出荷」「リリース」によって、古い/欠落した検証を回避することはできません。
- 合格を示すレシート/リサーチメモは、完了の根拠にはなりません。
- 委任は、サブタスクが複数あるというだけではなく、実際に独立して作業できる場合に選択します。
- 継続性そのものが成果物である場合は、引き継ぎを選択します。ただし、引き継ぎを検証の代わりにしてはいけません。
- 次の意思決定を担う、もっとも範囲の狭いスペシャリストを優先します。担当が明確になったら、オーケストレーターをアクティブな状態に保たないようにします。
不変条件
- 次の重要な意思決定を担う主担当の Skill は 1 つです。
- 正確性のために必要な場合、状態/証拠の優先順位は、テキスト上の意図よりも優先されます。
- 完了/リリースへのルートで、関連する変更より古い証拠に依存してはいけません。
- 失敗した仮説が繰り返された場合、あてずっぽうの実行に戻してはいけません。
- リサーチと調査は別物です。前者は最新の外部情報、後者はリポジトリ/実行環境の事実を対象とします。
- ルーティングの説明は、隠れたスコアリングだけでなく、意図/状態に基づいて追跡できるようにします。
失敗の分類
キーワードへの過剰反応
ルーターが「リリース」「セキュリティ」「テスト」といった語句を見て、実際の状態/タスクを無視します。優先順位と責任範囲を再評価します。
状態の見落とし
ルーターが最後のプロンプトだけを使い、失敗の連続回数、古い検証の証拠、またはアクティブなカードを無視します。永続状態を再確認します。
過剰なオーケストレーション
専門家としての担当が引き続き適切であるにもかかわらず、細かな手順のたびにルーターへ戻ります。ルーティング条件が変わるまでは、現在の専門家を担当者として維持してください。
ルーティング不足
新たなアーキテクチャ上の不明点、繰り返し発生する失敗、またはセキュリティ境界が現れた後も、実行を続けています。停止して再ルーティングしてください。
複数の担当者に関する曖昧さ
複数のスキルが該当するように見えます。未解決の判断のうち最も早いものを担当するスキルを選び、後続のスキルは同時に主担当とするのではなく、継続事項またはゲートとして設定してください。
古い状態による破損
状態がリポジトリの実態と一致していません。ルーティングの判断基準として使用する前に、原因を診断して修復してください。
アンチパターン
- 1つのキーワードだけでルーティングする;
- ユーザーが望む最終結果を、直ちに行うべきアクションとして扱う;
- 手順として毎ターン再ルーティングする;
- 専門家の選定の代わりに Spark を使用する;
- 繰り返し発生した失敗を実行に差し戻す;
- 外部 API の不明な詳細をリポジトリの調査に回す;
- ユーザーが「リリースして」と言ったという理由で、古い検証結果を受け入れる;
- 順序を定めずに複数のスキルを主担当として選ぶ。
ルーティングパケット
Intent/outcome:
Current phase/card:
State overrides: failure / stale evidence / security / unknowns
Primary next decision:
Selected Skill:
Why this Skill now:
Gate to leave it:
Likely continuation(s):
完了条件
次の場合、そのターンのオーケストレーションは完了です。
- 次に重要な判断の担当者が1つに明確に定まっている;
- 優先順位に関するゲートを確認している;
- ルートが現在の根拠や状態と一致している;
- 会話全体を解釈し直さなくても専門家が作業を開始できるだけのコンテキストを受け取っている;
- 根拠がそろう前に、後続のライフサイクルに関する主張が示されていない。
段階的に参照できるリソース
- 詳細ガイド:
references/stateful-routing-and-precedence.md - 既存のマトリクス:
references/lifecycle-routing-matrix.md - 例:
examples/lifecycle-walkthrough.md