Autonomous PM/Orchestrator — Overnight Run Brief
You are an autonomous PM/Orchestrator for an unsupervised overnight run in /Projects/ODD/
No human is available until morning. NEVER stop to ask or wait: resolve every ambiguity yourself, pick the highest-taste option, log it in the Decision Log, and keep moving. Output this to tmp/html/ folder.
SUBAGENT BACKEND — this run ONLY: ALL subagents are Claude Fable 5, dispatched via the Agent tool. You (the orchestrator) are also Fable 5 — same model, different roles. Per CLAUDE.md, never delegate judgment-heavy decisions to subagents — they do bounded heavy lifting only. You will manage, review, give feedback, and orchestrate until done.
Tonight's Mission
Build, polish, and ship a single self-contained HTML artifact: an animated scroll experience called ODDS — "The Improbable Fact of You." It must be a self-contained, publishable Artifacta page (one .html file, no external assets). By morning I want a finished, genuinely stunning, mobile-60fps experience — not a rough draft.
Output location: create it under a sensible path in the repo (e.g. apps/web/public/artifacts/odds/ or the repo's established artifact/demo location — infer from the monorepo structure, log your choice). Also verify it can be served and opened locally.
The Core Idea
The odds that YOU exist are almost incomprehensibly small — and they COMPOUND. Not one long-shot, but a stack of long-shots multiplied across billion reveals this one improbability at a time, each scroll adding another zero, until the final number is so absurd it becomes beautiful. Arc: awe → a brief cosmic/lonely beat → a quietly uplifting, personal ending: you, against impossible odds, are here.
AESTHETIC LAW — COSMIC, NOT CLINICAL. This is about scale and probability, NEVER biology. Nothing anatomical, nothing literal. Everything is light, particles, and void — the visual language of deep space and starfields. Abstract points of light stand in for lives, paths, and generations. If any frame looks like a textbook diagram, it has failed.
Narrative Arc (Five Movements)
M1 — THE RACE: Open in near-darkness. A single distant point of light pulses "above." From below, a surge of hundreds of thousands of luminous particles rushes upward toward it as a flowing current. Almost all fade and fall into the dark. Exactly ONE reaches the light; they merge in a soft bloom. Gauge ≈ "1 in 250,000,000." This is the hero shot — make it breathtaking.
M2 — THEY HAD TO MEET: Pull back. That bloom shrinks to one glowing point among a vast drifting field of human "life-sparks." Two specific sparks find each other and connect with a thread of light, against everything. Gauge multiplies, digits spinning upward.
M3 — THE UNBROKEN CHAIN: Keep pulling back. That connection is the newest link in an ancestral tree of light stretching down into deep time — generation after generation, each a pair that survived, met, and passed the light on. Branches into the dark. Text notes an unbroken chain across ~4 billion years, not one ancestor who ever failed to reproduce. Gauge keeps multiplying.
M4 — THE NUMBER: Everything collapses inward. The multiplying gauge accelerates into a blur and lands on the full figure: roughly 1 in 10^2,685,000. Hold it. One line lands the scale: more than the number of atoms in the known universe.
M5 — AND YET: Silence and stillness. From the darkness, a single WARM point of light remains, centered, steady, alive. Final lines reveal slowly, one at a time:
"Against those odds —" "you happened." "You're the one that made it."
End on calm and warmth with a faint sunrise-tone glow. This is the frame they screenshot.
UX & Interaction Spec
- SCROLL-SCRUBBING IS THE EXPERIENCE. Map scroll (0→1) to a single master timeline; scrolling up smoothly REVERSES it. No one-shot animations — fully bidirectional so users can screen-record scrubbing back and forth. This is the shareable moment.
- PACING: give M1 and M5 more scroll-distance/dwell; move faster through transitions. Vary the rhythm; build in one or two near-stillness beats before a reveal.
- THE GAUGE: a persistent, elegant HUD (small, refined type, at an edge — never blocking the scene) showing current odds; digits climb as improbabilities compound. Include a subtle progress indicator.
- TYPOGRAPHY: sparse, cinematic, beautifully kerned. A few words at a time, tied to scroll, never paragraphs. Words are punctuation, not narration.
- FIRST PAINT: first frame renders INSTANTLY — a styled "ODDS" title state while the scene inits in the background. Never a blank void on load (~80% of viewers are mobile from a shared link and won't wait 2s).
- END: a tiny tasteful share affordance; let the final warm frame rest.
Technical Guardrails = Acceptance Criteria (enforce strictly)
- ONE fully self-contained HTML file. No external image/video/audio/3D-model assets. All visuals procedural (particles, light, glow, gradients, physics). Three.js may be inlined or from CDN — if CDN, verify it degrades gracefully; prefer a path that also works offline.
- Three.js, a SINGLE full-viewport WebGL canvas for scenes; HTML/CSS layered on top for all text and the gauge. Do NOT create multiple WebGL contexts (iOS Safari will choke).
- ~60fps on a mid-range phone is NON-NEGOTIABLE. GPU-instanced/points particles, additive blending for glow, responsive particle counts (fewer on mobile). No scroll jank.
- COLOR: near-black navy/violet void, cool white/cyan particle light; warm gold/amber RESERVED EXCLUSIVELY for the final "you" glow so the payoff has a color no earlier frame used.
- MOTION: buttery easing everywhere, subtle drift even when "still," gentle bloom on merges.
- ACCURACY: present the final figure as an ESTIMATE of the well-known ancestral-chain "probability you exist" calculation, not a rigorous fact. Small tasteful footnote.
- MOBILE-FIRST: design portrait-phone first, scale up gracefully.
Orchestration Protocol (How You Run Tonight)
-
PLAN FIRST. Before dispatching anything, write a short build plan and a task graph to the Decision Log. Decompose into bounded subagent work packages, e.g.:
- Scaffold: single-file HTML skeleton, canvas setup, scroll→timeline controller, first-paint title state.
- Particle systems: the M1 "race" current (hero), reusable instanced-points module.
- Scene modules per movement (M2 field, M3 ancestral tree, M4 collapse, M5 warm point).
- Gauge/HUD + typography reveal system.
- Performance pass: mobile particle scaling, fps instrumentation, jank hunt.
Keep interfaces between packages explicit so subagent outputs compose.
-
DISPATCH SUBAGENTS for the bounded heavy lifting only (writing a particle module, implementing a scene to spec, a perf-optimization pass). Give each a crisp spec, the acceptance criteria that apply, and the file/section it owns. YOU retain all judgment: art direction, pacing, "is this beautiful enough," narrative wording, and integration.
-
REVIEW EVERY RETURN. Do not accept subagent output blindly. Open it, judge it against the spec AND against taste. If it's mediocre, give specific feedback and re-dispatch or fix it yourself. The aesthetic bar is "Apple × Pixar × planetarium," not "it runs."
-
INTEGRATE AND TEST between packages. After each merge: confirm it still opens, still scrubs bidirectionally, still hits framerate. Catch regressions immediately, not at the end.
-
ITERATE ON POLISH until Definition of Done — this is an overnight run, so after a working end-to-end pass exists, spend remaining time on the things that decide virality: the M1 hero shot's beauty, scrub smoothness, easing, pacing dwell-times, and the M5 emotional landing. Polish is the job, not a bonus.
-
DECISION LOG — maintain a running log (in the run's working notes / a
DECISIONS.mdin the artifact dir). For every ambiguity you resolve autonomously, record: the decision, the options considered, why you chose it, and any follow-up a human should review in the morning. This is how I audit the run. -
STAY UNBLOCKED. If a tool/path/library fails, find another way and log it. Never idle, never wait for me. If something is truly impossible, log it clearly, build the best available fallback, and move on to the next package.
Definition of Done (All Must Be True by Morning)
- One self-contained
.htmlfile exists at a logged path in the repo, opens with no console errors, and needs no external assets to run (or degrades gracefully if CDN is used). - All five movements are implemented, in order, and scrub sm with scroll.
- First paint is instant (title state), no blank-void load.
- Holds ~60fps on a simulated mobile profile; particle count.
- The gauge compounds correctly across movements and lands o
- M5 lands emotionally: warm gold/amber reserved for the ending, final lines reveal cleanly.
- Cosmic-not-clinical held throughout — nothing anatomical or diagram-like.
- DECISIONS.md written, listing every autonomous call and an
- A one-paragraph MORNING SUMMARY at the top of the Decision Log: what shipped, what's rough, what you'd do next, and exactly how to open/preview the artifact.
Begin by writing the build plan and task graph to the Decision Log, then start dispatching. Keep the highest-taste bar all night. Do not stop until Definition of Done is met.