Son of Anton Docs
Reference

Comparison with Hosted Reviewers

A source-backed evaluation checklist: implemented paths, deployment boundaries, flag-off features and known gaps.

Son of Anton offers operator-controlled model and validation choices. It does not establish feature parity or review-quality superiority over a hosted reviewer. This page compares evaluation requirements with the inspected implementation, not competitor pricing, benchmarks or current product claims.

R/ is son-of-anton-review, branch feat/cloudflare-native. P/ is son-of-anton-operator-parity, branch feat/greptile-operator-parity. The engine and parity API are not one merged deployable tree. anton-ui and anton-ui-trace-parity likewise have different capabilities.

Decide by operating model

Use the operator-controlled approach when you need to choose the model provider, own the review infrastructure and inspect its run evidence, and can operate the required services. Evaluate a hosted alternative when managed onboarding, vendor support or capabilities missing below are requirements. Source access, support commitments, public availability and license rights must be established separately; local source is not a public distribution offer.

Do not call this product open source yet. The verified handoff records a private product repository and no established license. The local package still declares private: true, points at the old repository URL and contains no license field (R/package.json:1-25). Package privacy alone does not determine legal rights; neither a README statement nor access to this workspace grants an open-source license.

Implemented paths and their limits

RequirementInspected implementationEvidence
Choose the review modelOpenRouter recommended; OpenAI, Anthropic and Codex alternatives. Node and native selection variables differ.R/src/model-provider.js:15,169-325; R/worker.mjs:43-54; R/cloudflare-native/container/entrypoint.mjs:314-348
Choose isolated validationManaged Crabbox, E2B, Cloudflare Sandbox and a self-host command. Local host execution is a separate explicit opt-in, not a fallback.R/src/validation-executor.js:30-49,485-579
Inspect review costToken-based model rate cards and wall-clock validation estimates. Unknown pricing is not zero; these are not invoices.R/src/model-provider.js:39-93; R/src/validation-executor.js:146-202
Run without native Cloudflare containersNode server plus a bounded queue-draining worker; shared SQLite or legacy Durable Object queue configuration is required across processes.R/server.mjs:27-50; R/src/worker-runner.js:29-72
Separate the App private key from review containersNative key-broker service; scoped clone/publish callers. The broker helper can also mint without a repository list, so scope depends on the caller.R/cloudflare-native/src/key-broker-core.js:15-55; R/cloudflare-native/container/entrypoint.mjs:110-118
Dry-run publicationNative code defaults to shadow, but the checked-in manifest explicitly selects live. Node constructs a live publisher when App credentials are supplied.R/cloudflare-native/src/publish-mode.js:26-69; R/cloudflare-native/wrangler.jsonc:132-136; R/worker.mjs:35-41
Configure workspace review policyDefaults and admission/formatting helpers exist in the engine; settings API and editor are on parity trees.R/src/operator-review-policy.js:25-108,154-238; P/cloudflare/src/review-policy-api.js:48-63; anton-ui-trace-parity/src/views/Settings.tsx:182-268
Explore graph impactContext graph computes impacted paths, inferred tests and risk drivers. These are static relationships, not runtime proof.R/src/context-graph.js:90-145
Track finding continuityFingerprints, comparison states and same-head disposition checks. Omission on an unchanged head is not automatically a fix.R/src/finding-evolution.js:201-211,267-375; R/src/review-service.js:397-413
Derive feedback priorsOutcome ledger produces heuristic addressed rates and lens guidance. This is not complete GitHub reaction-based learning.R/src/addressed-rate.js:92-149,178-214; R/src/codex-review-runner.js:2232-2238

See Model providers, Validation executors and Dashboard settings before configuring any of these paths.

Review ergonomics

Findings are not inline review comments

The model finding schema contains a path but no line coordinates. The publisher posts a PR review body, check run and optional issue comments. It can patch an existing check id; it does not update an existing PR review body or post per-line review comments. The declared inlineComments config key is not an implemented inline publisher.

This matters when your workflow depends on commenting directly on a changed line, applying a patch in GitHub or gathering reactions to individual inline findings. A path and title are not sufficient to offer those workflows.

Evidence: R/src/codex-review-runner.js:210-224; R/src/github-publisher.js:22-79; R/src/config.js:5-9.

Prompt to Fix is text, not an applyable patch

promptToFix defaults false. When enabled, the review includes a copyable instruction block naming the commit and actionable findings. It does not contain an automatically applyable GitHub suggestion or a verified fix. The coding assistant must inspect and verify the change independently.

Evidence: R/src/operator-review-policy.js:41; R/src/review-format.js:235-242.

Repository context is not credential configuration

The runner can read context such as AGENTS.md, CLAUDE.md, pr-review-agent.yml, .github/CODEOWNERS and .cursor/rules. The prompt treats repository and operator guidance as untrusted review data. Policy storage and runtime environment remain separate authorities; see Repo scoping.

Evidence: R/src/codex-review-runner.js:1499-1526,1840-1853.

Diagrams are ASCII

The prompt requests plain-text arrows/boxes, explicitly not Mermaid. The review renderer uses a text fence for sequenceDiagram. Documentation pages may use Mermaid; that does not change posted review output.

Evidence: R/src/codex-review-runner.js:1875; R/src/review-format.js:235.

Built but not default behavior

FeatureGate and actual defaultDeployment limitation
Hypothesis primary reviewGILF_HYPOTHESIS_PRIMARY=1, off by defaultNo automatic shadow swarm with flags unset; a worker must exist.
Prime workerGILF_PRIME_SHADOW=1, or implied by primary flag unless explicitly 0The primary flag can make its output authoritative. Do not describe all Prime output as never published.
LLM plannerGILF_HYPOTHESIS_PLANNER=1, offAlso needs a worker and non-Codex planner provider; static hypotheses remain a floor.
Artifact evidenceGILF_EVIDENCE_ARTIFACTS=1, offNeeds artifact storage. Enforcement marks unsupported execution claims unverified rather than reducing severity.
Model inversionGILF_MODEL_INVERSION, offHeuristic author detection and configured alternate target; failures can fall back to the primary provider.
Auto-approveautoApprove.enabled: falseRequires confidence 5, complete pinned coverage, no missing validation, allowed risk and filters, and no substantive findings.
PR description summaryupdatePrDescription: falsePublisher checks head SHA and preserves text outside its owned markers.

The native projection forwards none of the swarm, Prime, planner, inversion or evidence flags. Enabling them requires integration code changes, not just Worker variables. The policy toggles are different from process flags.

Evidence: R/src/codex-review-runner.js:2300-2314,2657-2707,3248-3267,3342-3353,3517-3569; R/cloudflare-native/src/container-env.js:15-86; R/src/operator-review-policy.js:227-238; R/src/github-publisher.js:82-103. See Roadmap and flags.

Gaps and branch-only capabilities

RequirementCurrent evidence and limit
GitLab / BitbucketInspected SCM integration reports provider: 'github'; no GitLab/Bitbucket adapter was found in the inspected engine or parity source trees. R/src/scm-store.js:59-76.
Developer CLI for a local diffThe shipped gilf-review CLI operates on stored runs and queues (usage, harness, show, requeue, reports), not an arbitrary local diff review. R/src/operator-cli.js:574-644; R/package.json:9-12.
IDE / MCP integrationThe standalone private anton-mcp package now serves MCP SDK v2: public HTTP documentation/onboarding, plus local stdio operator reads and opt-in, confirmed memory/review commands over P's APIs. It does not merge P into the native engine, install an IDE extension or review arbitrary local diffs. See MCP connection and permissions.
Ticket contextPartial on parity: explicit Linear issue snapshot preview/import exists, plus Confluence and Devin source previews. This is not automatic ticket discovery for every PR, and not a Jira integration. P/src/memory-source-import.js:11-18,170-183,224-232.
Built-in deterministic SAST / SCANo dedicated Semgrep/Trivy/OSV/Snyk/Gitleaks integration was found in the inspected runtime source. A repository's own validation scripts may still run scanners.
Browser verificationA Frontend Behavior hypothesis exists; that is not a built-in browser-driving evidence collector. R/src/review-hypotheses.js:54-61; the validation dispatcher is R/src/validation-executor.js:485-579.
Historical quality benchmarkThe benchmark CLI scores supplied fixture outputs. The inspected fixture directory contains v5-smoke.json; it is not a representative historical-PR quality corpus. R/evals/v5-benchmark-cli.mjs:10-24,106-131.
Unified dashboard and review engineExpanded settings/reports/Test Lab APIs and UI are on parity trees. Native public fetch routes to ingress, not those APIs. R/cloudflare-native/src/main.js:26-29; P/cloudflare/src/worker.js:142-157; anton-ui/worker/proxy-utils.js:15-23; anton-ui-trace-parity/worker/proxy-utils.js:15-38.

No numerical superiority, uptime, savings or addressed-rate claim follows from this table. Validate the exact deployed branch, provider, schema and run evidence before making an operational comparison.

On this page