Chapter 8 · status

Status & Roadmap

Honest per-element status across the seven feature families, the blockers register with unblock paths, and the working order. Sources: docs/17_FEATURES_AND_PROGRESS.md and docs/15_BLOCKERS.md — both reviewed weekly.

Badges: live shipped & tested · demo works but demo-scoped · next engine-ready, waiting on a dependency · parked idea phase.

Feature families A–G

ElementStatusOne-liner
A · Core loop — built
A1 · 300-format matchliveany reps, any order, first to target closes
A2 · tier handicap v1livecouch ×1.5 → athlete ×0.85
A3 · %HRR handicap v2nextKarvonen blend — engine ready, needs straps in play
A4 · closure bonuslive+15 urgency for the closer
A5 · charity potlivewinner directs, never receives
A6 · taunt engineliveAI-generated, canned fallback
B · Retention arc — built
B7 · seasonslive4-week series, 3/2/1 + MVP, champion crowning
B8 · relegationliveA/B divisions swap at season end
B9 · comeback ×1.2live>30% behind → one-time boost
B10 · MVP votelivesecond podium, feeds season points
B11 · streak forgivenesslive$2 charity top-up saves the streak, once/season
B12 · baseline learningliveHR drift ≤10%/update; volume-based anti-sandbagging
C · Social & viral — mostly built
C13 · result cardslive1200×675 SVG from bots, PNG from app
C14 · spectator modelivewatch <code> — spectate another crew
C15 · crew-vs-crewlivechallenge <code> / challenge accept
C16 · drop-cam / public ladderparkedideas
D · Corporate — built (seeded)
D17 · org leaguesdemohub corporate tab, awaiting real orgs
D18 · employer-funded potsdemo"no employee money handled"
D19 · wellbeing dashboarddemoaggregate-only, k≥5 suppression (Sahha-EAP playbook)
E · Verification — P1 built
E20 · camera countingliveMoveNet in-browser, on-device only, verified:true
E21 · HR strapsliveGATT 0x180D, Karvonen %HRR per set
E22 · HealthKit / Health ConnectP2phased with native
E23 · WHOOP / Garmin cross-checkP3phased
F · Wilder cards — ideas
F24–F28parkedreferee review · champion belts · radio mode · annual charity championship
G · Second wave — first four built (27 Aug)
G29 · rematchliveone-tap run-it-back, roster carried (app + bots)
G30 · Monday digestlivematches, margins, MVPs, pot, rivalry callout, AI line
G31 · photo finishlive≤5% gap → dramatic card + coral SVG variant
G32 · nemesislivehead-to-head rival detection
G33+ · still proposedparkedPRs · ghost race · guest slot · charity ladder · roast tiers · adaptive equivalents · warm-up predictions

Blockers register

What's blocked, why, who unblocks it. 🟥 blocked · 🟧 partial · 🟩 clear — full detail in docs/15_BLOCKERS.md.

#BlockerUnblock pathStatus
Technical
T1Slack app doesn't exist yet (5-min human creation from /slack/manifest.yml)create → install → paste Client ID at /slack → permanent Add-to-Slack linkblocked
T2WhatsApp Cloud API group messaging likely 1:1-only [VERIFY]verify with Meta at pilot; DM-fallback designed (docs/14)blocked
T3Bots only run while the dev machine is on (minirig offline ~96d)power-on + tailscale up --force-reauth → hosting kit install (one command)blocked
T4No auth — names free-typed, per-device statemagic-link auth via Resend on apps/api at MVPpartial
T5App ↔ bot state split (localStorage vs file JSON)wire app → apps/api ← bots — built + tested, migration mechanicalpartial
T6AI key balance — primary exhausted, running on secondarymonitor + top up; fallbacks degrade gracefullypartial
T7CF token lacks Tunnel:Edit — local server not exposed on the domainwiden scope or one tunnel loginpartial
T8GitHub Actions runner stall (Aug 26–27)resolved — transient incident; watch billing if it recurs (private repo)clear
Legal / compliance
L1Charity-wager legal opinion — nobody has looked at the pot structurebrief a charity/gaming lawyer (AUD 3–10k); pledge-only / employer-funded until thenblocked
L2Apple 3.2.2(iv) — no in-app charity collectionalready designed around: payments stay web-onlyclear
L3Privacy policy + data inventory unwrittenone data-inventory sheet → policy + Apple labels + Play data safetyblocked
Business
B1Figma + blueprint not received from founderemail ask + call scheduled — design audit waits on itblocked
B2Equity terms undefined (split, vesting, IP)call agenda item; get it in writingblocked
B3Corporate prospects unvalidated — no LOIsask on the call; Sahha-network introspartial

Deliberately NOT blockers: Apple Messages (no API exists — parked permanently) · app stores (PWA ships without them) · Strava (paid + capped) · custom ML rep counting (MoveNet covers MVP).

The working order

1 · Slack app

T1 — 5 minutes, human-in-loop → corporate surface goes live.

blocker T1

2 · Founder email + call

B1/B2 — Figma + equity specifics in writing.

blockers B1 B2

3 · Bots to minirig

T3 — always-on demo reliability.

blocker T3

4 · App ↔ API ↔ bots

T5 — kill the localStorage/file split; ~one session, mechanical.

blocker T5

5 · Data inventory

L3 — one sheet feeds policy, Apple labels, Play data safety.

blocker L3

6 · Camera lane activation

E20 in production play — MoveNet verifier live for pilot crews.

element E20

Where the build stands

The /system dissemination page showing element families and progress
design-system.png · the live /system page — the same status data, publicly rendered with live components

Phase 0 (due diligence) complete. Prototype feature-complete and live. What began as an email evaluation is a running system: a tested game engine, two chat bots, a phone-first app, an ops console, an AI layer, and push-to-deploy hosting — 122 tests green in CI (measured), 11 public surfaces, GitHub → Cloudflare Pages in ~20s. Remaining for MVP proper: state unification (T5), auth (T4), first real crews, and the pilot gates (WhatsApp verification, Stripe pots, legal opinion).

Live version of the status tables with rendered components: rwf.qalarc.com/system. Full writeups: docs/17_FEATURES_AND_PROGRESS.md · docs/15_BLOCKERS.md.

← backDesign System