Skip to main content

useReview Hook

Runs the same execution pipeline as <Review>, but returns state for custom rendering.
import { useReview } from "smithers-orchestrator";

function ReviewPanel() {
  const { status, result, error } = useReview({
    target: { type: "diff", ref: "main" },
    criteria: ["No regressions", "Tests updated"],
  });

  return (
    <panel>
      <text>Status: {status}</text>
      {error && <text>Error: {error.message}</text>}
      {result && <text>Summary: {result.summary}</text>}
    </panel>
  );
}

API

function useReview(props: ReviewProps): UseReviewResult

interface UseReviewResult {
  status: "pending" | "running" | "complete" | "error"
  result: ReviewResult | null
  error: Error | null
}

Props

PropTypeDefaultDescription
targetReviewTargetWhat to review (required). Has type ('commit' | 'diff' | 'pr' | 'files'), ref, and optional files
agent'claude''claude'Agent to use for review
modelstringModel to use
criteriastring[]Review criteria/checklist
blockingbooleanStop orchestration if issues are found
postToGitHubbooleanPost review as GitHub PR comment
postToGitNotesbooleanStore review in git notes
onFinished(result: ReviewResult) => voidCallback when review is complete
onError(error: Error) => voidCallback on error

Notes

  • Requires SmithersProvider context.
  • Honors blocking, postToGitHub, postToGitNotes.