Admin · Pilot run
End-to-end pilot run
The 15-step journey a customer/admin walks from opening Home through confirming the go/no-go verdict. Each step has a named proof source, an action route, an owner, and a last-checked timestamp. Steps with a verifier API path are system-verified — not button-only.
Pilot verification result (R35)
No verification result on recordNo pilot verification result on record. Run the one-click verification on /system-health to confirm persistence works end-to-end.
Why pilot verification matters
Pilot verification is the product's own proof that Supabase persistence works end-to-end for the signed-in customer. Every readiness surface consumes the verdict — pilot readiness flips Ready only after this passes.
What it verifies
- Supabase session exists for the signed-in customer.
- Supabase is configured (URL + anon key) on this deploy.
- manual_environments table accepts upsert + read-back.
- manual_agents table accepts upsert + read-back.
- review_snapshots table accepts upsert + read-back.
- report_history table accepts upsert + read-back.
Next action: Open /system-health and click Run pilot verification.
Run pilot verification →The cached run is a localStorage cache of the/api/system-health/pilot-verification-run endpoint response — never proof on its own. The endpoint return value is the authoritative source.
R37 / S34BI · Auto-executable pilot run
Pilot run executor
Executes the 11 system-verifiable pilot steps. Per-step proof source, verifier API, blocker, and exact next action.
Verdict · not ready
Pilot run has not been executed yet. Click 'Run pilot check now'.
Next action: Run pilot check nowOpen /admin/pilot-run
- Run id
- —
- Started
- —
- Completed
- —
- Passed
- 0
- Failed
- 0
- Blocked
- 0
R37 / S34BI · Live configuration completion
Configuration completion
2 pilot-blocking configuration item(s) outstanding.
Variable names only · never echoes secret values.
- Configured
- 3
- Inferred
- 0
- Mismatch
- 0
- Missing
- 3
- Optional
- 2
2 pilot-blocking configuration item(s)
- Supabase public URL (NEXT_PUBLIC_SUPABASE_URL): Set NEXT_PUBLIC_SUPABASE_URL on Railway
- Supabase publishable (anon) key (NEXT_PUBLIC_SUPABASE_ANON_KEY): Set NEXT_PUBLIC_SUPABASE_ANON_KEY on Railway
Public base URL
missingNot configured and cannot be inferred from request headers.
- Variable name
- AGENTPROOF_PUBLIC_BASE_URL
- Consumed by
- GitHub Actions scheduled radar workflow; Email link rendering; R34 Radar schedule validator
Next action: Set AGENTPROOF_PUBLIC_BASE_URL on RailwayOpen /admin/setup
Supabase public URL
missingSupabase URL is not configured.
- Variable name
- NEXT_PUBLIC_SUPABASE_URL
- Consumed by
- Auth + persistence; R12 system health probe
Next action: Set NEXT_PUBLIC_SUPABASE_URL on RailwayOpen /admin/setup
Supabase publishable (anon) key
missingSupabase anon key is not configured.
- Variable name
- NEXT_PUBLIC_SUPABASE_ANON_KEY
- Consumed by
- Auth + persistence; R12 system health probe
Next action: Set NEXT_PUBLIC_SUPABASE_ANON_KEY on RailwayOpen /admin/setup
Admin tools
optional missingAdmin tools disabled — pilot admin must enable on Railway to access /admin/* routes.
- Variable name
- AGENTPROOF_ADMIN_TOOLS_ENABLED
- Consumed by
- /admin/* routes
Next action: Set AGENTPROOF_ADMIN_TOOLS_ENABLED=true on RailwayOpen /admin/setup
Radar preview (public)
optional missingRadar preview is hidden behind the admin flag.
- Variable name
- AGENTPROOF_RADAR_PREVIEW_PUBLIC_ENABLED
- Consumed by
- /learn/ai-landscape-radar
Next action: Optional: set AGENTPROOF_RADAR_PREVIEW_PUBLIC_ENABLED=true to publish the previewOpen /learn/ai-landscape-radar
Scheduled radar workflow
configuredGitHub Actions workflow file present in repo.
- Variable name
- .github/workflows/radar-scheduled-run.yml
- Consumed by
- R33 scheduled radar runner
Next action: No action neededOpen /admin/intelligence-ops
GitHub Actions repository secret
configuredRepo secret AGENTPROOF_PUBLIC_BASE_URL is documented in workflow.
- Variable name
- AGENTPROOF_PUBLIC_BASE_URL (GitHub Actions secret)
- Consumed by
- .github/workflows/radar-scheduled-run.yml
Next action: Verify the value on GitHub → Settings → Secrets
Documentation: where secrets are consumed
configuredAGENTPROOF_PUBLIC_BASE_URL is consumed by the workflow at .github/workflows/radar-scheduled-run.yml and by scripts/run_radar_scheduled_check.cjs.
- Variable name
- (see workflow + scripts)
- Consumed by
- .github/workflows/radar-scheduled-run.yml; scripts/run_radar_scheduled_check.cjs
Next action: No action neededOpen /admin/intelligence-ops
Pilot journey state (R36)
2 dimension(s) blocked. Address the named blocker before continuing.
Setup
BlockedSetup wizard reports one or more critical items missing or failing.
Evidence source: /api/admin/setup-status returns overall_state === 'all_critical_configured'.
Store: Computed at render
Blocker: Open /admin/setup and address every critical item.
Open setup wizard →Verification
Not startedR31 pilot verification has not been run for this session.
Evidence source: R31 cached run from /api/system-health/pilot-verification-run.
Store: Local cache (UI tracking only)
Blocker: Open /system-health and click Run pilot verification.
Run pilot verification →Workspace
Not startedCustomer is not signed in. Workspace is empty.
Evidence source: SSR session detection + manual_agents row presence via the verify endpoint.
Store: Computed at render
Blocker: Pilot customer signs in.
Open workspace →Manual agent
Not startedNo manual agent verified yet for the signed-in user.
Evidence source: /api/workspace/manual-agent/verify confirms a real row.
Store: Computed at render
Blocker: Open /workspace/manual-agent/new and submit the form.
Add manual agent →Review
Not startedNo committed review snapshot for any agent yet.
Evidence source: review_snapshots Supabase upsert + read-back via R31 verification.
Store: Computed at render
Blocker: Open /workspace/readiness and walk the review.
Open the readiness review →Report
Not startedNo report rows visible yet for the signed-in user.
Evidence source: /api/reports/verification returns supabase_real_rows.
Store: Computed at render
Blocker: Complete a review to generate the first report.
Open the reports centre →AI Radar
BlockedRadar schedule artefact ships but endpoint is not reachable (likely missing AGENTPROOF_PUBLIC_BASE_URL).
Evidence source: /api/radar/schedule-validator returns configured_runs_clean.
Store: Computed at render
Blocker: Add AGENTPROOF_PUBLIC_BASE_URL secret on the deploy.
Open intelligence ops →Pilot readiness
Not startedPilot readiness has not flipped to Ready yet.
Evidence source: R34 PilotReadinessFinalGating verdict === 'ready_for_controlled_private_pilot'.
Store: Computed at render
Blocker: Resolve remaining blockers on /admin/pilot-readiness.
Open pilot readiness →
The same journey state shape renders on /workspace, /system-health, /admin/pilot-pack, /admin/pilot-readiness, and /admin/pilot-run — one consistent view across surfaces.
Pilot run journey (R36)
8 step(s) blocked or failed. Address the named blocker before continuing.
Step 1. Open Home
User attestedOwner: Pilot customerPilot customer opens the public home page on the deploy URL.
Proof required: Customer opens / and confirms the landing renders.
Proof source: Visual confirmation — no API verifier.
Last checked: never
Open / →Step 2. Sign in
Not startedOwner: Pilot customerPilot customer signs in with the invited identity.
Proof required: SSR shell reports a signed-in Supabase session for the customer.
Proof source: Supabase auth.getSession() inside the server shell or R31 endpoint.
Last checked: never
Blocker: Customer signs in.
Open /auth/login →Step 3. Run pilot verification
BlockedOwner: Pilot customerClick Run pilot verification on /system-health. The R31 endpoint writes + reads back 4 records.
Proof required: R31 cached run verdict === 'passed' with all step outcomes verified.
Proof source: /api/system-health/pilot-verification-run. · Verifier:
/api/system-health/pilot-verification-runLast checked: never
Blocker: Customer signs in first.
Open /system-health#one-click-pilot-verification →Step 4. Open the workspace
BlockedOwner: Pilot customerCustomer opens /workspace and confirms the readiness journey + pilot mode panels render.
Proof required: Workspace renders without dead ends and shows the verification result consumer.
Proof source: Customer-attested. Workspace pilot mode panel reflects the verification state.
Last checked: never
Blocker: Customer signs in first.
Open /workspace →Step 5. Add a manual non-Microsoft agent
BlockedOwner: Pilot customerOpen /workspace/manual-agent/new, submit the form, and confirm the verified success panel.
Proof required: At least one verified manual_agents row exists for the signed-in user.
Proof source: /api/workspace/manual-agent/verify. · Verifier:
/api/workspace/manual-agent/verifyLast checked: never
Blocker: Submit the manual non-Microsoft agent form.
Open /workspace/manual-agent/new →Step 6. Start the readiness review
BlockedOwner: Pilot customerOpen /workspace/readiness for the new agent and walk the first answers.
Proof required: Review snapshot present (in-progress or committed) for the agent.
Proof source: review_snapshots Supabase row.
Last checked: never
Blocker: Add a manual agent first.
Open /workspace/readiness →Step 7. Save answers
BlockedOwner: Pilot customerCommit at least one review snapshot — placeholders and 'Legacy answer unavailable' do NOT count.
Proof required: Review snapshot reports committed === true with real answers (not placeholders).
Proof source: review_snapshots upsert + read-back via R31. · Verifier:
/api/system-health/pilot-verification-runLast checked: never
Blocker: Walk the review and save real answers.
Open /workspace/readiness →Step 8. Generate the report
BlockedOwner: AgentProof engineAfter committing the review, the report row lands in report_history.
Proof required: At least one report_history row visible to the signed-in user.
Proof source: /api/reports/verification. · Verifier:
/api/reports/verificationLast checked: never
Blocker: Commit a review to trigger report generation.
Open /reports →Step 9. Open the reports centre
BlockedOwner: Pilot customer/reports lists at least one real report with the four version stamps.
Proof required: ReportsCentreDataPanel renders real rows.
Proof source: Customer-attested via /reports + /api/reports/verification. · Verifier:
/api/reports/verificationLast checked: never
Blocker: Generate the first report first.
Open /reports →Step 10. Export / print the report
In progressOwner: Pilot customerUse the export / print action on the report row or detail page.
Proof required: Export action visible on at least one report and the print layout is clean.
Proof source: Customer-attested via the export/print action on the report card.
Last checked: never
Open /reports#export →Step 11. Open AI Radar
User attestedOwner: Pilot customer/learn/ai-landscape-radar surfaces the customer-safe operating loop.
Proof required: Radar Learn page renders without a fake real-time monitoring claim.
Proof source: Customer-attested.
Last checked: never
Open /learn/ai-landscape-radar →Step 12. Run or check AI Radar
In progressOwner: Product adminOpen /admin/intelligence-ops and confirm the schedule validator + run history.
Proof required: At least one radar run (scheduled or manual) is recorded.
Proof source: /api/radar/schedule-validator + run history. · Verifier:
/api/radar/schedule-validatorLast checked: never
Blocker: Configure AGENTPROOF_PUBLIC_BASE_URL or click Run on /admin/intelligence-ops.
Open /admin/intelligence-ops →Step 13. Review AI Radar impact
BlockedOwner: Product adminConfirm whether approved Radar updates affect the generated report.
Proof required: Adaptation governance panel + reports newer-intelligence warning aligned.
Proof source: R33 governance + R34 reports verification view.
Last checked: never
Blocker: Record a radar run first.
Open /admin/intelligence-ops →Step 14. Open the pilot readiness verdict
User attestedOwner: Product admin/admin/pilot-readiness consumes setup + verification + reports + radar + trust.
Proof required: PilotReadinessFinalGatingPanel renders with consumed validators visible.
Proof source: Customer-attested via /admin/pilot-readiness.
Last checked: never
Open /admin/pilot-readiness →Step 15. Confirm go / no-go verdict
In progressOwner: Product adminRecord the go/no-go decision against the stop/go criteria.
Proof required: Final-gating verdict === 'ready_for_controlled_private_pilot'.
Proof source: R34 PilotReadinessFinalGating view consumed validators.
Last checked: never
Blocker: Resolve remaining blockers on /admin/pilot-readiness.
Open /admin/pilot-readiness →
Steps backed by a verifier API path are derived from the named endpoint, not from a button click. The runner refuses to mark such a step system-verified unless its verifier has confirmed it.
Route smoke inventory (R36)
All 17 routes in the smoke inventory resolve to a real page.
- /OK
Route / resolves to app/page.tsx.
Source:
app/page.tsx· Shell: public - /learnOK
Route /learn resolves to app/learn/page.tsx.
Source:
app/learn/page.tsx· Shell: public - /demoOK
Route /demo resolves to app/demo/page.tsx.
Source:
app/demo/page.tsx· Shell: public - /trialOK
Route /trial resolves to app/trial/page.tsx.
Source:
app/trial/page.tsx· Shell: public Route /workspace resolves to app/workspace/page.tsx.
Source:
app/workspace/page.tsx· Shell: workspaceRoute /workspace/manual-agent/new resolves to app/workspace/manual-agent/new/page.tsx.
Source:
app/workspace/manual-agent/new/page.tsx· Shell: workspace- /reportsOK
Route /reports resolves to app/reports/page.tsx.
Source:
app/reports/page.tsx· Shell: public Route /learn/ai-landscape-radar resolves to app/learn/ai-landscape-radar/page.tsx.
Source:
app/learn/ai-landscape-radar/page.tsx· Shell: publicRoute /system-health resolves to app/system-health/page.tsx.
Source:
app/system-health/page.tsx· Shell: publicRoute /admin/setup resolves to app/admin/setup/page.tsx.
Source:
app/admin/setup/page.tsx· Shell: adminRoute /admin/pilot-readiness resolves to app/admin/pilot-readiness/page.tsx.
Source:
app/admin/pilot-readiness/page.tsx· Shell: adminRoute /admin/pilot-pack resolves to app/admin/pilot-pack/page.tsx.
Source:
app/admin/pilot-pack/page.tsx· Shell: adminRoute /admin/pilot-run resolves to app/admin/pilot-run/page.tsx.
Source:
app/admin/pilot-run/page.tsx· Shell: adminRoute /admin/intelligence-ops resolves to app/admin/intelligence-ops/page.tsx.
Source:
app/admin/intelligence-ops/page.tsx· Shell: adminRoute /admin/pilot-launch resolves to app/admin/pilot-launch/page.tsx.
Source:
app/admin/pilot-launch/page.tsx· Shell: adminRoute /admin/customer-acceptance resolves to app/admin/customer-acceptance/page.tsx.
Source:
app/admin/customer-acceptance/page.tsx· Shell: adminRoute /pilot/session resolves to app/pilot/session/page.tsx.
Source:
app/pilot/session/page.tsx· Shell: public
Pilot session — live (run observer)
storage: local_cache_onlySign in for Supabase-backed persistence.
AI Radar — operating state visible to run
Approved-source watchlist only. No broad crawling. No company probing. Live mode requires AGENTPROOF_RADAR_LIVE_FETCH=true server-side; otherwise the run is dry-run and clearly labelled.
Storage: local_cache_only — this cache is per browser. Supabase-backed persistence is a separate piece.