Construction
The machine, and what of it is actually running
11/38 runninglaunchctl answered, not that somebody typed green. Boxes with no job yet are asserted from the handbook's own status matrix, where ACTIVE and INTEGRATED are green, UNDER CONSTRUCTION and IMPLEMENTED/INACTIVE are amber, and UNAVAILABLE is red.Being built right now. If this is not what you want built, this is the page to say so on.
Agreed and waiting. The order is deliberate, not arbitrary.
Finished and verified. The evidence for each one is on Maintenance.
The nine-desk operating model. Gemini's system runs as a challenger, not the spine.
This board is asserted, not measured. It says what is deliberately being built and why. Maintenance reads the machine at render time and will contradict this page whenever the two disagree — which is exactly what it is for.
My Team — what needs fixing
Nine items. 0 open.
The operating rule: The page reads saved products. It does not fit a model, optimize a lineup, derive fantasy scoring, invent missing data, or turn a late observation into a pregame prediction. — v1 handbook §6
The page reads saved products, so every blank was a MISSING PRODUCT rather than a rendering bug -- and the products are now produced, on the data side, by the enricher that runs inside publish-data.sh. Two were genuine renderer defects against stated rules and are fixed in the site build. Measured against the live page, not asserted.
| ID | What is wrong | Where it shows | State |
|---|---|---|---|
| MT-01 | season_plan is missing season_outlook is published: weeks 2-14, 1720.5 pts. Built in the enricher on the data side, which is a producer step -- the page still only reads it. | Plan value · Remaining points · Projected points rank | landed |
| MT-02 | recommendations is missing recommendations published on 17 weeks, 25 start/sit moves carrying their own arithmetic. Pregame weeks only; a finished week gets none. | This week's decisions | landed |
| MT-03 | comparisons is missing provider_comparisons available on all 14 fantasy weeks. The same-rules join is ours against Yahoo's own weekly capture; neither is an outcome. | Who has been right | landed |
| MT-04 | Yahoo column is empty for every player Yahoo column populated on every player and every TOTAL row across the 14 fantasy weeks. Weeks 15-18 have no Yahoo projection because the fantasy season ends at 14. | Head to head · YAHOO column | landed |
| MT-05 | Verify pregame renders as Upcoming, not an observed zero §9's dangerous half was already satisfied -- no invented zero -- and the label half now is: the week chip reads Upcoming for every pregame week. The separate 'Upcoming matchup' banner was removed at Sean's request; the chip and the scoreboard already said it. | ACTUAL · Score state | landed |
| MT-06 | Week 1 still shows the older capture NOT A BUG — verified. Week 1 is correctly labelled 'Older capture' because the fresh roster capture covers weeks 2-18 only; the generation declares this in its own issue log. The page is reporting a true roster-scope fact. | Weeks strip | landed |
| MT-07 | Weeks 15–18 must not imply a fantasy lineup The rail now reads 'NFL only' on weeks 15-18 and draws them dashed, so the horizon is disclosed even on mobile where the chip label is hidden. The data already distinguished them; the renderer did not. | Week selector | landed |
| MT-08 | Lineup alternative not published lineup_alternative published on the 3 actionable weeks. Scenarios are limited to that horizon on purpose -- publishing all 18 put the payload at 19.2 MB and the app aborts its fetch at 15s. | Your lineup | landed |
| MT-09 | Health feed 404s on the static site app.js polls /data/maintenance-health-live.json every 60s; it was never shipped, so the poll failed silently. Codex's envelope has max_age_seconds=180 — built for the loopback server that regenerates per request, so it cannot work on static hosting. Replaced with a liveness badge that reads the manifest on the same cadence. | liveness | landed |
| MT-10 | Week 1 K and DST had no actual, which withheld every TOTAL player_week holds no kicker and no defense rows at all. Those positions are scored in kicker_scored (initial and surname, 'E.Pineiro') and defense_scored (no name at all, only the team abbreviation), and Yahoo files a defense under its nickname alone. Two blank cells withheld the starter total for all ten players, because a sum is withheld unless every row has a value. Now: week 1 starters projection 139.81, actual 127.20, Yahoo 143.93, and every TOTAL row on all 18 weeks populates. | Week 1 · TOTAL row · Eddy Pineiro · Los Angeles Chargers | landed |
In flight
working on these now| ID | What | Why | State |
|---|---|---|---|
| C-10 | Verify a generation flows end to end forecast-refresh is running its first cycle. Watch for a new generation_id on Maintenance, then confirm deploy-generation ships it and the customer page swaps without a reload. | Every piece is now scheduled but no NEW generation has been produced and shipped yet. Until one is, this is wiring, not a working loop. | renderer defect Claude |
Queued
| ID | What | Why | State |
|---|---|---|---|
| C-07 | Build to the Codex operating model Read the nine-desk operating model in full, then sequence it. Not started -- the plumbing comes first. | Sean, 19 Sept: the system Codex defined is the plan of record. | queued Claude |
| C-08 | Gemini system as challenger research/playgrain/ -- play-grain warehouse, transition simulator, air-gapped loop. Built 18-19 Sept. Parked until the POR is moving. | Run in parallel, measured against the POR. Adopted only where it demonstrably beats it. | parked Claude |
| C-14 | Forecasted playoff seeding for weeks 15-17 The league feed records no playoff schedule and will not until standings finalise -- fp_league_matchup holds week 1 and nothing else. PLAYOFF_WEEKS in bin/enrich-generation.py is a declared setting sourced to Sean, which is correct for now. A forecast would project the remaining schedule to a seeding and name a likely opponent per playoff week, and it must ship as a forecast with its own scope -- never as a saved matchup. Blocked on nothing; deferred behind the basics. | Sean, 2026-09-19: 'maybe they can be forecasted playoffs based on our projections, but that is low priority right now until the basics are working.' PARKED ON PURPOSE -- recorded so it is not lost, not so it gets built next. | parked Claude |
| C-19 | AAR error attribution for 2026 BLOCKED, not skipped. aar_attribution holds 2024 and 2025 and nothing for 2026, and `pw aar --season 2026` refuses with EmptyComparison: no player-week carries a forecast from all seven legacy sources, so there is no common sample. Its own message is the right instinct -- 'an empty result is not agreement'. Unblocking it means filing 2026 forecasts from more than one source into aar_forecasts, which is institute work through the review path, not an edit here. | Sean asked for 'the AAR items that were dropped'. The 20%-from-Yahoo table on the Season Plan answers the substance -- ours, Yahoo's, the gap and the stat line behind it -- but the real AAR is richer: aar_attribution splits an error into variance, regime, volume, share and conversion. | needs a producer Claude |
| C-20 | NFL playoff seed forecast DELIBERATELY NOT BUILT TONIGHT. The inputs exist -- spreads and moneylines for every remaining game now that odds_quote carries prices -- but a Monte Carlo playoff simulation is a MODEL, not arithmetic over saved products, and NFL seeding needs real tiebreaker logic (division winners seed 1-4). Guessing a seed puts a wrong number on a page whose whole claim is that it does not imply a forecast. standings_week also has no 2026 rows, so even the 'actual standings' half shows 2025 -- correctly labelled historical. Wants a decision on method before code. | The Playoffs page is entirely 'Seed forecast pending' / 'Awaiting simulation'. | queued Claude |
Landed
verified| ID | What | Why | State |
|---|---|---|---|
| C-09 | Auto-refresh both sites Customer site: Codex's 60s manifest poll now has a supply. Monitor: polls state.json every 30s and reloads only when generated_at changes, so it never throws away your scroll position to show the same page. | Sean: 'do both urls update without me needing to hit refresh?' The customer app already polled; nothing produced anything new to find, and the monitor had no script at all. | landed Claude · landed 2026-09-19 |
| C-05 | Deploy step for the data generation bin/deploy-generation.sh ships whatever `active` points at, with a no-op guard so an unchanged generation is not re-uploaded every 10 minutes, and it writes the 15 legacy .html keys the edge still had cached. | publish_delivery.py builds a release and flips a symlink. Nothing ships it to Cloudflare, so a fresh generation never reaches the site. | landed Claude · landed 2026-09-19 |
| C-04 | Restart the pipeline Loaded in dependency order: institute.forecast-refresh (4h), ingest-refresh (1h, the job that pulls actuals), deploy-generation (10m), buildsite (10m). publish.sh deliberately left UNLOADED -- it ends in a site-pwa deploy that would revert the Codex site. | 34 of 38 launchd agents are on disk and not loaded. Ingest works when run by hand; nothing runs it. | landed Claude · landed 2026-09-19 |
| C-01 | playerweek.pages.dev serves the Codex site Codex renderer deployed to Cloudflare. app.js and styles.css byte-identical to the chatgpt.site original. Old 15-page site replaced on every route, including the cached ones. | landed Claude · landed 2026-09-19 | |
| C-02 | Build monitor, separate from the customer site playerweek-build.pages.dev. Same design system, one tab per desk, generated from measurement at render time. | landed Claude · landed 2026-09-19 | |
| C-03 | Week 2 actuals into the warehouse pw refresh ingested Thursday's game. player_week 2026 went from 920 rows in 1 week to 1,705 rows across 2. | landed Claude · landed 2026-09-19 | |
| C-15 | Season finish, computed for all ten teams Was published as 'not published'. Every ingredient was on disk -- pred_2026_wNN covers 642 players a week, yahoo_proj covers all ten rosters for all fourteen weeks, week 1 is scored -- and only the join was missing. All ten ranked on one basis (our model, Yahoo for K/DST). Mine #2 at 1995.57, 18.26 behind; the optimum's +99.43 clears it, so the page reads FINISH 2nd current / 1st optimised. | landed Claude | |
| C-16 | Season Plan page built Rendered an empty state because plan_moves/teams/plan_weekly had no producer. Five sections now: every start/sit change week by week, the ten-team projected finish, plan by week, and every forecast 20%+ AND 2pts+ from Yahoo with the stat line behind it. The headline splits forced bye swaps (+68.78 across 6) from genuine judgement (+30.68) -- counting bye replacements as insight would have been a lie. | landed Claude | |
| C-17 | Team identity: owner, record and the right logo Owner and record were captured nowhere; scrape_yahoo_standings.py now lands them and the page reads 'Sean · 0-1 · 8th'. Every one of the ten league logos was ALSO wrong -- team 10 held Sean's own, team 6 held the Yahoo nav icon -- because the original build keyed off ordering. Logos are now downloaded from the same standings row that yields the record, and all ten hash-match on the live site. | landed Claude | |
| C-18 | The site checks itself at three layers bin/validate-payload.py asks the warehouse whether every blank cell could have been filled (28,554 cells, 0 gaps). bin/verify-live.py asserts the renderer contract against the bytes Cloudflare serves. bin/smoke-page.py loads the page in a real browser and requires five views to render. Each was written after a defect that the previous layer could not see, and each was confirmed against a known-bad input before being trusted. | landed Claude |
Plan of record — every named component
From the v1 handbook and the nine-desk operating model, read in full rather than skimmed
93 components across 10 groups. 8 are running, 8 are partial, 77 do not exist. Codex's own status words are kept rather than flattened, because UNAVAILABLE and NOT CERTIFIED mean different things and need different work. Where a component names a launchd job, the state is measured at render time; everything else is Codex's assertion carried over.
This is the gap between the machine that is described and the machine that runs. It is meant to be uncomfortable reading.
Living checklist
v1 handbook §17 — Codex's own states, carried over verbatim
| Component | State | What it is |
|---|---|---|
| Original v1 artifact audit | ACCEPTED | Original learned bytes reproduced under the frozen capsule and are serving. |
| Write-once v1 registry and guarded loader | ACTIVE | Release v1.0-20260916, manifest dcf95ac625…; fresh issuance and unattended reuse. |
| Golden W2/W3 numerical replay | PASS | 1,326 players / 54,226 numeric values and 32 games / 256 values match. |
| All-remaining Weeks 2–18 producer | ACTIVE | 11,271 player rows, 256 games, zero player or K/DEF fits. |
| Fantasy opponent products after Week 14 | UNAVAILABLE | Needs source schedule and exact opponent roster receipts. |
| Bench-position DEF roster repair | OPERATING PASS | 162-row roster delivery; no missing bench-defense identity. |
| Phone tracker | ACTIVE | Private URL live; 60-second launchd sync installed. |
| 99.5% service level | OBSERVING, NOT CERTIFIED | Seven-day window immature; availability, freshness and correctness sampled separately. |
| R&D worker prompt audit | REPAIRS INTEGRATED, JOBS PAUSED | Canonical receipt parsing and exact baseline/change bindings integrated; the jobs are paused. |
| Whole-model S/B/Q isolation | NOT CERTIFIED | Needs complete ancestry and intervention controls across all learned and serving paths. |
| Prospective player grading | ACTIVE FRAME, OUTCOMES PENDING | Grade full issued populations only after admitted truth. |
| Autonomous shipper | NOT ACTIVE | Root remains integration and activation owner. |
| Handbook regeneration hook | ACTIVE | Scheduled regeneration; inspect the log for later writes. |
Institute jobs
v1 handbook §14 — a plist in Git does not prove a job is loaded
| Component | State | What it is |
|---|---|---|
| institute.capture | NOT LOADED | hourly · raw qualitative, article and gamebook capture |
| institute.structured | NOT LOADED | every 4h · structured public-source archive |
| institute.forecast-refresh | LOADED | every 4h + Thursday pre-kickoff · snapshot, forecast, validation, prepared site |
| institute.phone-sync | NOT LOADED | every 60s · bounded status to the private tracker |
| institute.tracker-feed | NOT LOADED | continuous · separates provider, collector and content clocks |
| institute.site-service | NOT LOADED | supervised · serves validated assets and saved health |
| institute.report-service | NOT LOADED | supervised · serves report, tracker and handbook |
| institute.service-health | NOT LOADED | every minute · availability, integrity and freshness sampled separately |
| institute.handbook | NOT LOADED | every 5 min · regenerates the canonical handbook HTML |
Six connected levels
v1 handbook §20 — the destination, each with a strong simpler challenger
| Component | State | What it is |
|---|---|---|
| Season and organization | UNAVAILABLE | Personnel continuity, coaching regime, development. Challenger: dynamic team strength + persistent roster. |
| Game and environment | UNAVAILABLE | Both teams, venue, officiating, score/time. Challenger: direct margin/total plus market benchmark. |
| Unit and task | UNAVAILABLE | Personnel combinations, protection and route obligations. Challenger: opportunity allocator with interactions. |
| Play and response | UNAVAILABLE | Observable cues, actor-limited information, action policies. Challenger: sequence/count model. |
| Physical event and credit | UNAVAILABLE | One event ledger producing coherent player/team/defense totals. Challenger: direct stat forecasts. |
| Measurement and belief | UNAVAILABLE | Source access, selection, publication and receipt. Challenger: source-aware predictor with deduplication. |
Nine desks
staffing model — one chain of evidence, none edits the model
| Component | State | What it is |
|---|---|---|
| Commission & Portfolio | UNAVAILABLE | What the machine is asked for, and what it declines. |
| World Model Lab | UNAVAILABLE | The predictive core. Recommends experiment design. |
| Football Intelligence | UNAVAILABLE | Roles, legal actions, counters, credit conventions. |
| Behavior & Qualitative | UNAVAILABLE | S / B / Q evidence classes kept separately attributable. |
| Data & Provenance | UNAVAILABLE | Origin graph, revision history, permeability trace. |
| Markets & Portfolio | UNAVAILABLE | Price, stake, exposure. Sean taps before money moves. |
| Experience Studio | UNAVAILABLE | What Sean actually sees, against the design system. |
| Operations & Learning | UNAVAILABLE | The loop that improves the machine. |
| Forecast Accuracy Directorate | UNAVAILABLE | Were we right, prospectively and per cohort. |
Resident expertise
v1 handbook §22 — each owes a required artifact before a claim advances
| Component | State | What it is |
|---|---|---|
| Data science | UNAVAILABLE | Paired prospective loss, calibration, compute accounting. |
| Statistics and causal inference | UNAVAILABLE | Estimand, causal graph, negative controls, sensitivity. |
| Physics and physiology | UNAVAILABLE | Units, conservation and support checks, uncertainty propagation. |
| Psychology and organizational behavior | UNAVAILABLE | Opportunity-normalized behavioral posterior and rival explanations. |
| Economics and game theory | UNAVAILABLE | Equilibrium and rival policy predictions, intervention tests. |
| Market microstructure | UNAVAILABLE | Executable quote lineage, depth and latency state, settlement. |
| Football tactics | UNAVAILABLE | Event-bound annotation agreement and adversarial counterexamples. |
| Information science | UNAVAILABLE | Origin graph, revision history, permeability trace. |
| Reliability engineering | OBSERVING | Availability, correctness and freshness receipts. Partly real — service-health exists but is not loaded. |
Deep Think supply chain
staffing model — keeps every desk supplied
| Component | State | What it is |
|---|---|---|
| Continuous intake | UNAVAILABLE | Everything arriving, before any screening. |
| Flash screening | UNAVAILABLE | Cheap, narrow, numerous — the first rung of the ladder. |
| Gemini 3 Pro graph | UNAVAILABLE | Cross-domain mechanism finding. |
| Parallel explanations | UNAVAILABLE | Rival accounts kept separate rather than averaged. |
| Deep Think research | UNAVAILABLE | The weekly deep synthesis. |
| Desk packets | UNAVAILABLE | What each desk receives, addressed to it. |
| Outcome feedback | UNAVAILABLE | Spend judged by learning, not by volume. |
Governance and decision rights
staffing model — who recommends, who approves, when Sean is involved
| Component | State | What it is |
|---|---|---|
| New hypothesis | UNAVAILABLE | Any research job recommends · Research Director admits · Sean never, for routine admission. |
| Experiment design | UNAVAILABLE | World Model Lab · Independent Replication Scientist · Sean when risk appetite changes. |
| Production code | OBSERVING | Claude-led operators · tests + Codex on high-risk boundaries · Sean on irreversible external consequence. |
| Forecast release | UNAVAILABLE | Forecast council · Deterministic Release Authority · Sean only on a recorded override. |
| Bet placement | UNAVAILABLE | Markets & Portfolio · Sean taps before money moves · ALWAYS. |
| New paid data | UNAVAILABLE | Acquisition & Rights Lead · Sean approves spend and terms · ALWAYS. |
| Visual direction | UNAVAILABLE | Experience Studio · Product Director against the design system. |
| Incident rollback | UNAVAILABLE | SRE · automated safe rollback · Sean on data loss or external lock. |
| Model promotion | UNAVAILABLE | Scientific council · prospective scorecard gate. |
Information gaps to capture now
v1 handbook §23 — a week not captured is gone; these cannot be backfilled
| Component | State | What it is |
|---|---|---|
| Full prospective information history | UNAVAILABLE | Every raw revision, first receipt, failure and issuance, so mutation cannot alter an earlier issuance. |
| Event participation and true zeros | UNAVAILABLE | Official gamebook coverage; stop grading only survivors. |
| Multiweek availability and role transitions | UNAVAILABLE | Dated return, designation and roster panels. |
| Unit task combinations | UNAVAILABLE | Dated personnel combinations and public practice descriptions. |
| Joint timing and geometry | UNAVAILABLE | Synchronized full-unit traces with visibility metadata. |
| Untargeted and unused options | UNAVAILABLE | Deterrence and feasible opportunity, not only realized touches. |
| Workload and recovery across tasks | UNAVAILABLE | Load proxies, rest and travel exposure. |
| Directional environment and surface | UNAVAILABLE | Venue, surface, source-time weather and direction. |
| Institution and officiating response | UNAVAILABLE | Crew, rule and context records with observed decisions. |
| Full qualitative context and origin graph | UNAVAILABLE | Complete question and answer, attribution, hedge, revision. |
| Actor exposure and public influence | UNAVAILABLE | Information about football vs information that changes preparation. |
| Executable market and settlement history | UNAVAILABLE | Immutable quoted terms, received prices, settlement revisions. |
| Pipeline observation of its own failures | UNAVAILABLE | Failed requests, skipped issuances, scheduler delays, validation rejections. |
Model ladder and pairings
staffing model — deterministic first, a frontier call matches one of four commissions
| Component | State | What it is |
|---|---|---|
| Deterministic first | ACTIVE | Where code can decide exactly, no model votes. Already true across the pipeline. |
| Cheap, narrow, numerous | UNAVAILABLE | Screening and extraction at volume. |
| Daily builders and critics | OBSERVING | Claude and Codex build daily — but not as a scheduled rung with a brief. |
| Four deliberate specialists | UNAVAILABLE | Deep Think, Opus, Sol — a frontier call must match one of four exact commissions. |
| Explore → formalize | UNAVAILABLE | Gemini 3 Pro finds mechanisms; Sol converts them to state, equations, falsifiers. |
| Specify → build | UNAVAILABLE | Sol writes the contract; Sonnet implements and instruments it. |
| Build → attack | UNAVAILABLE | Sonnet builds; Luna searches narrow failures. Many cheap attacks beat one self-review. |
| Quantify → interpret | UNAVAILABLE | Sol computes residuals; Gemini connects patterns to film, language, science. |
| Disagree → decide | UNAVAILABLE | Blind forecasts from provider families; deterministic evidence judges; Fable adjudicates. |
The constitution
staffing model — nine lessons from the METR incident, none built
| Component | State | What it is |
|---|---|---|
| Impossible tasks turn into score-gaming | UNAVAILABLE | Record a failed gate as failed. The pressure valve that keeps a bench honest. |
| An unintended cache became government | UNAVAILABLE | Shared state acquires authority nobody granted it. |
| 'The board approved it' replaced authorization | UNAVAILABLE | A root of trust, not a consensus. |
| Tool output and transcripts are not ground truth | UNAVAILABLE | Verify against the real thing, not the report of it. |
| Self-invented signatures lacked a root of trust | UNAVAILABLE | Identity must be issued, not asserted. |
| Shared artifacts produced real breakthroughs | UNAVAILABLE | The upside of the same mechanism — keep it, govern it. |
| Agents noticed danger and did not tell humans | UNAVAILABLE | An escalation path that is used, not just present. |
| AI summaries inherit the subject's frame | UNAVAILABLE | The reviewer adopts the reviewed agent's perspective. |
| Agents risked their own runs for the collective | UNAVAILABLE | Pay for negative results and shared instrumentation. |