← Mission Control

Rebuilt Sun Sep 20 · 19:09 · code introspection, not documents (BUILD.md G6)

Engine state

Per-stage status, stages 0 to 20

SPEC.md section 13, audit trail
#stagelast runresultDONE-check, from diskexceptions opened today
00HealthSun Sep 20, 19:08okheartbeat 0.0h old (controls/heartbeat)0
01DiscoverSun Sep 20, 19:08ok122 of 122 campaign(s) last_seen today (campaigns.json)0
02SyncSun Sep 20, 19:08ok0 of 122 campaign(s) status=ended (campaigns.json)0
03VerifySun Sep 20, 19:09ok2 approved_sources[] entries total (campaigns.json)4
04ScoreSun Sep 20, 19:09ok122 of 122 campaign(s) carry all 7 score_parts (campaigns.json)0
05AllocateSun Sep 20, 19:09ok4 campaign(s) status selected/active (campaigns.json)11
06IngestSun Sep 20, 19:09ok0 approved, 0 ingested (objects.json)0
07AnalyzeSun Sep 20, 19:09ok0 source(s) analyzed (objects.json)3
08RenderSun Sep 20, 19:09ok0 clip(s) rendered (objects.json)0
09QASun Sep 20, 19:09ok45 qa_passed, 0 qa_failed (objects.json)0
10ScheduleSun Sep 20, 19:09ok0 of 0 queue.json row(s) queued0
11Pre-publishSun Sep 20, 19:09ok0 of 0 queue.json row(s) carry gate results (persisted to disk, BUILD.md G3 item 6); 0 currently 'claimed'0
12PublishSun Sep 20, 19:09ok3 idempotency key(s) claimed (objects.json)0
13ConfirmSun Sep 20, 19:09ok0 file(s) under dryrun/0
14SubmitSun Sep 20, 19:09okno disk marker -- whop.submit() is not capable, exception-only0
15TrackSun Sep 20, 19:09okmetrics.json empty or missing0
16ReconcileSun Sep 20, 19:09okmetrics.json empty or missing0
17LearnSun Sep 20, 19:09ok0 post(s) total measured (metrics.json)0
18CleanupSun Sep 20, 19:09ok1 backup(s) on disk, last restore_test ok=True0
19ReportSun Sep 20, 19:09okbriefs/2026-09-20.md exists3
20SleepSun Sep 20, 19:09okheartbeat 0.0h old (controls/heartbeat, written one stage earlier per AUDIT.md section 1)0

Source: audit/2026-09-20.jsonl, one line per stage per loop run, written by engine/core/loop.py's _stage_audit(). Result and last-run columns are read verbatim from that trail; the DONE-check column is read independently from objects.json / campaigns.json / queue.json / metrics.json / dryrun/ / backups/ / briefs/, per SPEC.md section 24 ("the report checks the conditions, not the logs"). Hover a DONE-check cell for that stage's full audit detail.

Adapter capabilities

SPEC.md section 14, engine/core/adapters/*.py
adapterinterfacemodecapable ofraises NotCapable on
WhopContentRewardsAdapterMarketplaceAdapterbrowserlist_campaigns, get_rulessubmit, get_earnings
TikTokAdapterPublishAdaptersessionpublish, confirmstats, quota
TelegramNotifyNotifyAdapterapipagenone
SourceAdapter (no concrete class found)SourceAdaptern/anonefetch, transcript

Read off the live class objects in engine/core/adapters/*.py (.capabilities, .mode) at build time, not copied from SPEC.md section 14's table.

Controls

SPEC.md section 16
presentTEST_MODEcontrols/TEST_MODE
absentKILLcontrols/KILL
presentPUBLIC_MINIMIZEDhandles masked on this page
$0.0191LLM spend todayof $2.00 cap
0.0h agoheartbeat agecontrols/heartbeat
loadedlaunchd: daily...clipping.daily
loadedlaunchd: heartbeat...clipping.heartbeat

launchctl list | grep clipping, run fresh at build time; every other value here is read straight from controls/ on disk.

Gates

BUILD.md, gates.json
gatestatusproof
G0passedAUDIT.md sections 1-8, 112 rows
G1passed1) Spend cap: brain.ask() calls controls.check_spend_cap() pre-flight, records via audit.cost()+controls.record_spend() (controls/spend_today.json), pages once at 80% (controls.maybe_page_80pct); rule ...
G2passed1) Persisted-login browser session built (engine/core/adapters/whop_session.py: Playwright persistent context at .sessions/contentrewards/, chmod 0700) and run LIVE against the real site. Email-code s ...
G3pendingno proof on file
G4pendingno proof on file
G5pendingno proof on file
G6passedPART A (naming/data consistency, this pass) DONE. Part B (Mission Control's per-stage executable-state section on dashboard.py) is NOT done here -- dashboard.py/loop.py/brain.py/controls.py/daily.py w ...
G7pendingno proof on file
G8pendingno proof on file

gates.json updated 2026-09-20 · hover a proof cell for the full text.

Static page rebuilt by engine/dashboard.py on every loop run, SPEC.md Version 3.2.