Skip to content

Review Steps

Sovereign
Sovereign tier required. Review steps make independent evaluation an explicit part of the delivery process.

Use a review step after implementation to launch a registered reviewer against the source agent session and its work.

Configuration

- key: launch_review
  name: Launch Reviewer
  kind: review
  needs: [launch_executor]
  review:
    action: launch_reviewer
    taskKey: "${workflow.inputs.taskKey}"
    sourceSessionUlid: "${steps.launch_executor.outputs.sessionUlid}"
    reviewId: "${workflow.inputs.reviewId}"
    assignmentId: "${workflow.inputs.assignmentId}"
    agentHandle: "${workflow.inputs.reviewerHandle}"
    launcherConfigKey: "${workflow.inputs.reviewerLauncherConfigKey}"
  waitsFor:
    kind: workflow_input
    expected: [review_approved, review_changes_requested]
  outputs:
    reviewerSessionUlid: "$.normalized.session.sessionUlid"
    outcome: "$.normalized.input.outcome"
FieldRequiredPurpose
review.actionYesUse launch_reviewer
taskKeyYesTask being reviewed
sourceSessionUlidYesImplementation session whose work is reviewed
reviewIdWhen dispatchingExisting review record receiving the verdict
assignmentIdWhen dispatchingExact reviewer assignment receiving the verdict
agentHandleYesRegistered reviewer assigned to this launch
launcherConfigKeyYesLauncher preset used for the reviewer
runNoDispatch immediately by default; set false to create the reviewer session only
outputsNoNamed values, usually the reviewer session identity

For a dispatched review, create or load the review and assignment before this step. Valdr freezes the exact reviewId and assignmentId correlation before the reviewer runs, keeping the published verdict attached to the intended review and work.

Choose an execution mode

  • Start and wait: Leave run unset, include reviewId, assignmentId, and waitsFor, and let the Review step own its verdict wait.
  • Detached: Leave run unset, set detached: true, and join that exact reviewer turn later with an Await-Condition Step.
  • Create only: Set run: false without waitsFor. This creates the reviewer session but sends no initial review turn; a later Session step can prompt it after the artifact is ready. Review and assignment IDs are not required until a dispatched turn needs to publish a verdict.

Review outcomes

OutcomeMeaning
review_approvedThe supported review evidence approved the work
review_changes_requestedThe reviewer requested another implementation pass

These values are different from the approved and rejected choices used by a human gate.

Route requested changes

Use an Outcome route to send review_changes_requested back to implementation within a bounded loop. Review then runs again against the revised work before the workflow can advance.

Next step

Continue with Await-Condition Steps for callback-authorized waits and exact-turn joins.