Communityコーディング&開発github.com

human-in-the-loop

ワンタイムブラウザインターフェースを提供し、オーナーがエージェントにフィードバック(ドキュメントのセクションごとの承認・修正、選択肢付きの質問回答、ブラインドラベリング、提案の評価など)を行えるようにします。

human-in-the-loop とは?

Human-in-the-loop スキルは、エージェントと人間のオーナーとの間での複雑なやり取りを効率化するためのワンタイムブラウザインターフェースを提供します。オーナーはチャット上で長文の質問に答える代わりに、HTMLページ上でドキュメントのセクションごとの承認・修正、選択肢付きの質問への回答、ブラインドラベリング(正解を見ずに採点)、提案のスケール評価などを行えます。エージェントは spec.json でページの構造を定義し、ビルドスクリプトが自動で HTML ページを生成します。オーナーがページ上で操作し、「エージェント用 JSON をコピー」ボタンで結果を JSON としてチャットに返送すると、エージェントがその内容を解釈してドキュメントに反映したり、スコア計算を実行します。このスキルは Claude Code、Cursor、Codex などのエージェント環境で動作し、複数項目のレビューやラベリングが必要な場面で特に有効です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vasilievyakov/human-in-the-loop/tree/HEAD/skills/human-in-the-loop

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Human in the Loop

オーナーとエージェントの間のワンタイムインターフェース層。エージェントがオーナーに確認・決定してほしい内容を記述し、スクリプトがスタンドアロンなHTMLページを生成、オーナーはブラウザ上で自由な順序で回答し、JSONを返します。ページは手書きしません:spec.json と scripts/build.py のみ使用します。

$SKILL はこのファイルのフォルダを指します。

使用するタイミング

  • ドキュメントの承認:仕様書、PRD、提案書、計画書。セクションごとのステータス、その場でのテキスト修正、未回答質問への回答。
  • 複数の質問に対する選択肢の一括選択:各質問にエージェントの選択肢と独自の回答が可能。
  • ブラインドラベリング:オーナーが回答し、モデルの回答は別ファイルに保存されページには表示されません。後で score.py が一致率を計算します。
  • 提案のスケール評価。

質問が1つか2つの場合は、チャットで尋ねてください。

サイクル

  1. 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 には含めないでください。
  2. ページの生成。 python3 $SKILL/scripts/build.py spec.json -o page.html でページをビルドし開きます。specとページはプロジェクトの隣(例:private/)に配置し、スクラッチパッドには置かないでください。オーナーが後から戻れるようにします。オーナーには、何が開かれていて、何をしてほしいかを一行で伝えてください。
  3. オーナーが回答し、チャットに JSON を貼り付けます(「エージェント用 JSON をコピー」ボタン)。JSONには、オーナーが触れた項目のみ含まれます:status、comment、markdown_old/markdown_new、answers、notes、さらに decision と general_comment。
  4. エージェントが回答を適用します。JSON内の task フィールドに基づいて、何を変更し、何が残っているかを報告します。決定ボタンが存在するのに decision が空の場合は、決定が下されていないことを意味します:再確認し、ドキュメントを承認済みと見なさないでください。ラベリングの場合:JSONを保存し、以下を実行します: python3 $SKILL/scripts/score.py labels.json sidecar.json --spec spec.json 相違点はリストでオーナーに提示し、ラベリングの誤りは自分で修正しないでください。

specが変更された場合、ページは新しいバージョンで再ビルドされ、ブラウザ上の古い回答は適用されません。

テスト

python3 $SKILL/tests/selftest.py [フォルダ] は examples/ から両方の例をビルドし、ヘッドレスChromiumで実行して出力を検証します。テンプレートやスクリプトを変更した後は必ず実行してください。

関連スキル