craft-goal について
AgentOps RPI の上位に置く自律目標の契約を作成・点検するスキルです。検証可能な成果、実験の上限、権限範囲を定めるためのテキストを作成しますが、目標の作成・実行や bead の変更は行いません。
主な機能
- 01目標プロンプトの作成と点検
- 02最終証拠と目標適格性の評価
- 03実験範囲と予算の設定
- 04HOLD・エスカレーション・停止条件の定義
活用シーン
- 01関連する実験をレビュー可能な目標に整理
- 02完了条件が検証可能か確認
- 03実験予算や権限範囲の不足を特定
- 04作業停止時のオペレーター介入を指定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ boshu2/ agentops --skill craft-goalインストール後、Claude Code で/craft-goalを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/goal-prompt.mdscripts/validate.sh詳細
Craft Goal
AgentOps RPI の上位にある自律性契約を作成または lint します。Goal は、ビーズ状の実験グラフを統括する永続的なコントローラー(Goal/Mayor の役割)です。各 RPI は 1 つの科学的試行であり、Goal は次に役立つ試行を選び、学んだことを保持し、より大きな成果に向けて段階的に進めます。
Goal / Mayor: observe graph → choose bounded wave → consume results → ratchet
└─ Bead: durable experiment intent, context, scratch, evidence, and links
└─ RPI: plan → implement → checks → one fresh validate where a mistake is costly → report
└─ Implementation: one RED → GREEN → refactor experiment
RPI の数を事前に把握しておく必要はありません。成功を判定でき、各実験に範囲の上限があり、証拠の来歴が保持され、承認の範囲が暗黙に更新されない場合、Goal は安全です。信念は見直し可能です。新しい証拠によって、以前の主張を撤回できる必要があります。保存された知識が増えることは、進歩でも、その知識が正しいことの証明でもありません。
権限の境界。 生成されるプロンプトと安全性レポートは、呼び出し元が所有する不活性なテキストです。作成によって Goal が作られたり、ランタイムが起動したり、ビーズが変更されたり、継続的な承認が付与されたりすることはありません。呼び出し元が自らの権限のもとで、設定した更新されない範囲内において、生成したプロンプトを自分の Goal ランタイムに貼り付けた場合にのみ、そのプロンプトは RPI のディスパッチを実行します。Craft Goal は、トラッカーが存在する場合はその状態を読み取りますが、プロンプトの生成にトラッカーのインストールは必要ありません。
Modes
| 呼び出し元の表現 | モード | 結果 |
|---|---|---|
| 「Goal を作成して」、「これを Goal にして」 | craft | 判定後、安全な場合は、入力済みの Goal プロンプトと設定を提示します。 |
| 「この Goal を lint/レビューして」、「これは安全ですか」 | lint | 判定と指摘事項に加え、提示された事実から可能な場合は書き換えを提示します。 |
Admission: decide first
曖昧な経路選択は許容されますが、曖昧な成功条件は許容されません。 Goal を作成する前に、呼び出し元は成果、成果を証明する証拠、非目標、権限を把握している必要があります。正確な実験グラフは未確定でもかまいません。各終端条件は、観測可能な結果を伴う Given/When/Then 形式で記述し、各ドメイン用語には最初に一度だけ名前を付けます。呼び出し元は、まず Interview でこれらを確定できます。
USE_RPI:判定結果に応じた後続作業がない、範囲を定めた 1 つの実験。SAFE_TO_CREATE:複数の関連実験が必要になる可能性がある終端成果であり、その判断と以下の予算が提示されていること。ビーズがない状態で範囲を定めた Goal は、ルートビーズと初期実験ビーズを作成する、範囲を限定した 1 回の発見ウェーブから開始できます。UNSAFE_GOAL:反証可能な最初の問い、または終端の証拠を特定できない場合(その意図はアイデアや計画の作業に回します)、あるいは依頼が無期限の監視やイベントへの反応である場合。これは終端 Goal ではなく、自動化です。
Goal の規模はさまざまです。ウェーブと厳格な上限は、唯一の共通予算ではなく成果に応じて設定してください。受け入れ条件、権限、グラフの意味、キャンペーンの規模を作り出してはいけません。決定が不足している場合は、不足している判断事項を示して UNSAFE_GOAL を返してください。改訂と Goal の作成は、呼び出し元が行います。
安全なゴールが備えるもの
- 結果は固定し、経路は適応させます。 最終的な受け入れ条件を固定します。新しい事実によって仮説や依存関係は変わることがありますが、成功の範囲がひそかに広がることはありません。
- 記憶としてのビードグラフ。 トラッカーは永続的な記憶であり、別個のゴール台帳ではありません。ルートエピックは外側の意図を、子ビードは1つの実験と1つのRPIを表すため、圧縮されても記録は失われません。プロンプトが各ウェーブに適用する進行方法、すなわちグラフの契約、エッジ、ラチェットと見なすもの、発見の分類、チェックポイントは、Navigateが担います。
- RPIの境界。 1つの候補には、範囲を限定したRPIを1つだけ割り当てます。そのチェックとCIが通常のビードの結果になります。呼び出し元が求めた場合、変更が反映された後では誤りを安価に元に戻せない場合、または変更された振る舞いを網羅する決定的なチェックがない場合に限り、ビードに対して著者とは別の新たな検証を1回行います。修正によって別のRPIが始まることはありません。ゴールは永続的な判定証拠を求めることはできますが、その内容を書き換えることはありません。オーケストレーションが自らの証拠を作成することはできず、ビードごとのレビューはグラフ全体のコストを増大させます。
- 無駄な反復ではなく、前進するラチェット。 結果が重複しない、意思決定に関係する知識を加えるか、受け入れ条件の達成を進め、次の実験が固定された受け入れ条件、権限、残りの予算の範囲に収まる間のみ続行します。
- 2段階の上限。 すべてのRPIとすべてのウェーブに上限を設け、ゴール全体には単調な厳格上限を設定します。範囲を限定したウェーブでフィードバックループを短く保ち、更新されないキャンペーン予算によって、新たなウェーブが新しいキャンペーンを生み出すことを防ぎます。
- 根拠に基づくアンドン。 通常の有益な不合格は、固定された受け入れ条件の範囲内で経路を変えることがあります。情報のない失敗が繰り返される場合、リグレッション、再発、振動、またはスコープ拡大の圧力が生じた場合は、HOLDに移行します。
- オペレーターにとっての明瞭さ。 各ウェーブの境界で、受け入れマトリクス、グラフのフロンティア、判定、ラチェット、無駄な反復、残りの予算、次の仮説を報告します。
- 外部からの自己修復。 不安定なファクトリーは通常のシェルまたはワークツリーから修復し、ファクトリーは宣言された範囲限定のカナリアにのみ使用します。
これにより、2つの失敗モードを防ぎます。発見が次々と要件になり、新しい情報がないまま作業が続く完了の無限ループと、仮説が1つ反証されただけで、実現可能なキャンペーンが終わる最初の不合格での放棄です。
予算と HOLD
作業を選択する前に、ヘルパーと検証のコストも含め、両方の枠に数値を設定します。
- Wave: RPI、同時実行数、実時間またはトークン数、実行中の試行回数、および終了時のチェックポイント。
- Goal: キャンペーン全体の合計 RPI、実時間またはトークン数、実行中の試行回数、コンパクション回数、およびパッチまたはサーフェスの上限。
各ハードリミットを適用するネイティブ制御と、残りの許容量を確認する方法を明記します。目的の文章は指示であり、強制力はありません。測定していない集計値を残高として報告してはならず、文章だけを根拠に goal が一時停止されていると主張してはなりません。ヘルパー、再試行、新しい対象、コンパクション、wave によって goal の許容量が更新されることはありません。
宣言したトリガーが発生したら HOLD に入ります。対象となるトリガーは、ブロッカーの繰り返し、設定した数の RPI にわたってラチェットがないこと、以前のアプローチ間の振動、回帰の発生、新たな不具合の原因が不明であること、再発、受け入れ条件の変更要求、またはオペレーター判断に留保された事項です。HOLD 中は実装を停止し、原因を調査します。残りの許容量が認める場合に限り、HOLD の各事案につき、新しいコンテキストを使う範囲限定ヘルパーを正確に 1 つ利用し、受け入れ条件、観測結果、失敗したアプローチ、正確な証拠、残りの許容量を提示します。ブロッカーの言い換えや自動継続は、新たな事案ではありません。
UNSTUCKでは、実質的に異なる実験、その違いを判別するチェック、そして変更されていない受け入れ条件、権限、残りの上限に適合する理由を明記します。再開できるのは選択された外側の goal のみであり、消費済みの RPI 上限が復活することはありません。ESCALATE、役に立たないヘルパー、または許容される実験がない場合は、NEEDS_OPERATORを出力します。それ以降、実装もヘルパーの呼び出しも行いません。- キャンセルされた場合は、直ちに停止します。明示的な拒否または判断が必要なレーン、あるいは実時間、コスト、クォータのハード上限を実際に使い切った場合は、ヘルパーを使わず、拒否の内容または正確な未達項目を添えた
NOT_ACHIEVEDを報告します。再試行のしきい値に達しただけでは、ハード予算を使い切った証拠にはなりません。
オペレーターの対応が必要な場合は、事実に即して報告し、作業を停止したままにします。コントローラーが blocked を記録するしきい値はステータス管理上のものであり、実験やヘルパーを追加する許可ではありません。
Lint の評価基準
| 評価項目 | 合格条件 |
|---|---|
| outcome | 呼び出し元から見える、より大きな成果を 1 つ明示している。 |
| evidence | 各終端条件を Given/When/Then 形式で示し、権威ある証拠を添えている。 |
| admission | goal に適合している。すなわち、関連する実験が複数あり、最初の問いが反証可能で、終端となる完了条件がある。 |
| bead graph | ルートエピック、またはその範囲を限定したブートストラップ規則を明記し、各実験を未達の条件または明示されたブロッキング要因に結び付けている。 |
| RPI boundary | 1 つの bead を 1 RPI とし、通常の bead の成果としてチェックと CI を扱い、コストの高いケースに限って新たな検証を行い、判定結果を変更せずに適用する。 |
| ratchet | 未達の条件またはブロッキング要因に結び付いた証拠だけを進捗として数え、活動、件数、ダイジェストは数えない。 |
| discovery | 3 つの分類(今すぐ必要、関連する後続事項、HOLD/スコープ変更)をすべて保持し、必要な発見事項を格下げしない。 |
| wave budget | 各 wave の RPI、同時実行数、時間またはトークン数、実行中の試行回数に数値を設定し、チェックポイントを設けている。 |
| hard budget | 何によってもリセットされないキャンペーン全体の合計に数値を設定し、それを適用する制御、または測定されていない集計値を明記している。 |
| breaker | ラチェットがない場合の数値しきい値と HOLD のトリガーを設定している。 |
| operator andon | HOLD の各事案につきヘルパーを 1 つだけ許可し、UNSTUCK と ESCALATE の扱いを定め、NEEDS_OPERATOR で実装を停止する。 |
| scope | 非目標と、読み取り、書き込み、外部操作、Git に関する正確な権限を示している。 |
| self-hosting | 不安定なファクトリーを外部から修復し、ファクトリー自体は宣言された範囲内のカナリアとしてのみ実行する。 |
| terminal reports | ACHIEVED、NOT_ACHIEVED、NEEDS_OPERATOR の定義を示している。 |
出力
コピーして貼り付けるだけの目標プロンプトを埋めてください。見出しと終端の意味を維持し、山括弧で囲まれたフィールドをすべて置き換えてください。次の順序で返してください。
- 最初の行は、次のいずれか1つの判定で正確に始めてください。
SAFE_TO_CREATE、USE_RPI、UNSAFE_GOAL。SAFE_TO_CREATEはプロンプトの内容を判定するものであり、ネイティブな適用を保証したり、目標を作成したりするものではありません。 UNSAFE_GOALの場合は、不足している各判断を記載してください。呼び出し元はInterviewで判断できます。- 安全な場合は、入力済みのプロンプト、別個の目標ツール用トークン予算、想定した前提を記載してください。
- 評価基準の各項目について、合格または検出事項を1行ずつ記載してください。
停止
このスキルは、作成または lint を1回実行してから結果を返します。目標を作成したり、実行したり、beadsを変更したりすることはありません。作成する目標は、最初の終端レポート(ACHIEVED、NOT_ACHIEVED、NEEDS_OPERATOR)で停止します。