Add inspect + judge-panel handoff doc · Entire

Add inspect + judge-panel handoff doc

Sessions

Changes

1

Handoff — entire inspect + Judge Panel

Last updated: 2026-06-14 · branch review-profiles @ ead8c12dc

TL;DR

entire inspect is the evolved multi-agent code-inspection command (formerly the hidden review). A profile runs a crew of inspectors (parallel review agents) and then a panel of judges that render the verdict; with ≥2 judges a chair merges them. The command, profiles, guided setup, scripted config, --list, and the judge panel are implemented, building, and green. The Pi-specific work lives in a separate stacked PR (#1313) that now needs another rebase.

Terminology (final)

Command surface

entire inspect                # interactive: profile chooser. non-interactive: list + error (never silent default)

tire inspect <profile>      # run a named profile
tire inspect --list         # list profiles (inspectors + judges, default marked)
tire inspect --configure    # interactive wizard; non-interactive discovery view
tire inspect --configure --profile P \
  --set-agents claude-code,codex \      # inspectors (simple)
  --set-slot claude-code=opus --set-slot codex \   # inspector slots (dupes ok)
  --set-judge claude-code=opus --set-judge codex=gpt-5 \  # judges (repeatable; >1 = panel)
  --set-chair claude-code=opus \        # chair for a panel
  --set-model codex=gpt-5-codex --set-task "..."
tire inspect --edit         # advanced skill picker
tire inspect --agent N      # run one inspector
tire inspect --agent N --model M
tire inspect --agents       # list inspectors (valid --agent values)
tire inspect --models [--agent N]
tire inspect --prompt "..." # one-off instructions
tire inspect --findings     # browse local findings
tire attach --review <id>   # post-hoc tag a session (the old `review attach` was removed)

Settings schema (review_profiles)

{
  "review_default_profile": "general",
  "review_profiles": {
    "general": {
      "task": "Review this change for correctness, regressions, tests, and maintainability.",
      "agents": { "claude-code": {"skills": ["/review"]}, "codex": {"skills": ["/review"]} },
      "judges": [{"agent": "claude-code", "model": "opus"}]
    },
    "security": {
      "task": "...",
      "agents": { "claude-sonnet": {"agent": "claude-code", "model": "sonnet"}, "codex": {"model": "gpt-5-codex"} },
      "judges": [{"agent": "claude-code", "model": "opus"}, {"agent": "codex", "model": "gpt-5"}],
      "chair": "claude-code:opus"
    }
  }
}

Back-compat: legacy master (an inspector id) and master_agent / master_model are still honored as a single judge when judges is empty. New configs write judges/chair.

How the judge panel works

Done

Pending / next steps

  1. Rebase PR #1313 (review-pi-reviewer) onto origin/review-profiles (ead8c12dc). It is behind again after the judge-panel + merge + doc commits.
    • PR: https://github.com/entireio/cli/pull/1313 (base review-profiles, head review-pi-reviewer)
    • Contains: Pi review-runner adapter, Pi live model list (pi --list-models), Pi generate/text-gen. The Pi adapter is the obvious first panel-capable text-gen judge to validate the panel end-to-end with a real second judge.
  2. Consider validating scripted --set-judge agents at config time (currently only validated at runtime, where failures are dropped). Intentional for now; revisit if users hit silent typos.
  3. Optional: include the profile task / scope context in composeChairPrompt (today the chair reconciles verdicts only).
  4. Optional: bound judge-panel concurrency if panels ever grow large (currently unbounded; fine for 2–3 judges).

Key files

Verify

go build ./...
go test ./...                 # expect 72 ok, 0 fail
golangci-lint run ./cmd/entire/cli/review/... ./cmd/entire/cli/ ./cmd/entire/cli/settings/...  
go run ./cmd/entire inspect --list
go run ./cmd/entire inspect --help

Gotchas