コンテンツにスキップ

Reviewノード

Reviewノードは、レビュアーが承認・却下・差し戻しを決定するまでワークフローを一時停止するゲートです。自動パイプラインに人間の判断を組み込むための主要な仕組みです。

破壊的あるいは不可逆な操作(デプロイ、データマイグレーション、コンテンツ公開、外部システムへの送信など)の直前にReviewノードを挟みます。中間成果物を点検して品質が足りなければ作り直させる、という用途でも有効です。

レビュアーモードは2種類:

  • human — HQダッシュボードからレビュアーが判断。
  • minion — 別のミニオンがcriteriaプロンプトをもとにLLMで判定。
フィールド説明
reviewer_type"human" または "minion"
reviewer_idミニオンUUID。reviewer_type"minion"のとき必須。
criteriaレビューの基準。minionレビューではLLMへの指示、humanレビューではダッシュボードに表示されるガイダンス。
revision_targetキャンバス上でreviewノードから祖先ノードにrevisionエッジを引くと自動設定されます。差し戻し時に再実行するノード。

revision_target はReviewノードの祖先、すなわち非revisionエッジで前方到達可能なノードでなければなりません。そうでないと差し戻しループが実際に経由できません。

  1. cascadeがReviewノードに到達すると、waitingかつreview_status: review_pendingで挿入され、判定待ちになります。
  2. レビュアー(humanはダッシュボード経由、minionはpending-reviewsキュー経由)が判定を送信:
    • approved — approved出力エッジに沿ってcascadeが続行。
    • revisionrevision_targetが再実行されます。再実行が終わるとReviewノードも自動で再開。
    • rejected — その時点でグラフが停止。
  • review 設定ブロックは必須。
  • reviewer_type は必須。
  • reviewer_type === "minion" のとき reviewer_id は必須。
  • criteria は空文字不可。
  • revision_target は実在するノードで、かつReviewノードの前方祖先でなければなりません。
  • Reviewノードには少なくとも1本のapproved出力エッジが必要です(fan-outテンプレート内なら、テンプレートOutマーカー宛のapproved io-edgeでも可)。そうでないと承認後にハッピーパスが続かなくなります。
  • Reviewノードからrevision_targetへのrevisionエッジが必要です。
flowchart LR
Draft["Skill: draft-post"] --> R{"Review"}
R -->|approved| Publish["Skill: publish"]
R -. revision .-> Draft

revisionエッジ(点線)は、レビュアーが修正を求めたときにフローをdraft-postに戻します。draft-postが再度完了すると、自動的にReviewが再開されます。