Human in the Loop
オーナーとエージェントの間のワンタイムインターフェース層。エージェントがオーナーに確認・決定してほしい内容を記述し、スクリプトがスタンドアロンなHTMLページを生成、オーナーはブラウザ上で自由な順序で回答し、JSONを返します。ページは手書きしません:spec.json と scripts/build.py のみ使用します。
$SKILL はこのファイルのフォルダを指します。
使用するタイミング
- ドキュメントの承認:仕様書、PRD、提案書、計画書。セクションごとのステータス、その場でのテキスト修正、未回答質問への回答。
- 複数の質問に対する選択肢の一括選択:各質問にエージェントの選択肢と独自の回答が可能。
- ブラインドラベリング:オーナーが回答し、モデルの回答は別ファイルに保存されページには表示されません。後で
score.pyが一致率を計算します。 - 提案のスケール評価。
質問が1つか2つの場合は、チャットで尋ねてください。
サイクル
- Spec.
spec.jsonを作成します(フォーマットはreferences/spec-format.md参照)。Markdownドキュメント用のテンプレートがあります:python3 $SKILL/scripts/from_markdown.py doc.md --options options.json -o spec.json(##および###セクションは編集可能なブロックに、セクション「未解決の質問」は options.json の選択肢付き質問になります)。 ブラインドラベリングの場合、隠し回答は別のsidecar.jsonに配置し、spec.json には含めないでください。 - ページの生成。
python3 $SKILL/scripts/build.py spec.json -o page.htmlでページをビルドし開きます。specとページはプロジェクトの隣(例:private/)に配置し、スクラッチパッドには置かないでください。オーナーが後から戻れるようにします。オーナーには、何が開かれていて、何をしてほしいかを一行で伝えてください。 - オーナーが回答し、チャットに JSON を貼り付けます(「エージェント用 JSON をコピー」ボタン)。JSONには、オーナーが触れた項目のみ含まれます:
status、comment、markdown_old/markdown_new、answers、notes、さらにdecisionとgeneral_comment。 - エージェントが回答を適用します。JSON内の
taskフィールドに基づいて、何を変更し、何が残っているかを報告します。決定ボタンが存在するのにdecisionが空の場合は、決定が下されていないことを意味します:再確認し、ドキュメントを承認済みと見なさないでください。ラベリングの場合:JSONを保存し、以下を実行します:python3 $SKILL/scripts/score.py labels.json sidecar.json --spec spec.json相違点はリストでオーナーに提示し、ラベリングの誤りは自分で修正しないでください。
specが変更された場合、ページは新しいバージョンで再ビルドされ、ブラウザ上の古い回答は適用されません。
テスト
python3 $SKILL/tests/selftest.py [フォルダ] は examples/ から両方の例をビルドし、ヘッドレスChromiumで実行して出力を検証します。テンプレートやスクリプトを変更した後は必ず実行してください。