A normal umbrella shelters one person from the rain. We flipped it. Now it's a bowl that catches the rain — and counts every drop. Three builds form the rim: OP catches the work, QR catches the eyeballs, the Pick catches the orders. Everything lands. Nothing leaks.Sealed 02 May 2026 · CircularOS Sovereign Doctrine · MD-450
A traditional umbrella has one job: keep one person dry. The user stands under the canopy, the rain runs off the edges, and nothing is captured.
That's the wrong shape for this system. CircularOS isn't here to shelter the operator — it's here to catch what falls and count it. So the umbrella is inverted: bowl-up, rim-up, pole pointing down to the platform below.
| Direction | Traditional Umbrella | Upside-Down Umbrella · MD-450 |
|---|---|---|
| Above | Rain (a problem) | Value falling in: orders · scans · meals · proofs |
| The shape | Convex shell — repels | Concave bowl — catches |
| The user | Stands under it · sheltered | Stands over it · sees the catch · counts the catch |
| The rim | Drips wasted water | Builds #33 · #34 · #35 — the three rim arcs |
| The pole | You hold it up | The system holds it up — Truth Ledger · op_ledger · qr_tracker |
| The verdict | "I'm dry" | "Everything is sealed." |
The OP brand was chosen for the same reason: platform-not-shelter, bowl-up, black silhouettes. MD-450 is the doctrine that explains why. Overstood = you stand over the platform, the platform stands under you, but the platform's job is to catch the rain — not block it.
Every drop that falls into the bowl is caught by exactly one of these three rim arcs. No drop is lost. No drop is double-counted.
The work-rim. Every page, doc, fix, agent-bug shipped in the 24-hour 1pm→1pm window — numbered, timestamped, sealed in op_ledger.
The eyeballs-rim. Every printed QR — poster, sticker, card, vehicle — logged in qr_tracker with a scan-counting redirect at /qr/go/<slug>.
The orders-rim. Three sellable doors — VMR · ESG Block · White-Label — surfaced as one decision page above the dashboard noise.
| Build | Method | Route | Purpose | Auth |
|---|---|---|---|---|
| #33 | GET | /op | OP Tracker hub (+ aliases /op-platform /overstood /op-overstood-platform /overstood-platform /build-a-thon /buildathon) | public |
| #34 | GET | /qr-tracker | QR registry hub (+ aliases /qr-registry /qr-log /qr-codes-tracker /track-qr /qr-tracker-page) | public |
| #34 | GET | /qr/go/<slug> | Scan-counting redirect — UPDATE scan_count + last_scan_at then 302 to target_url | public |
| #35 | GET | /pick | Three Doors One System landing (+ aliases /buy /start /pick-one /the-pick /three-products /sellable) | public |
| MD-450 | GET | /md-450 | This document (+ aliases /master-document-450 /umbrella-02-may-2026 /02-may-umbrella /today-umbrella /builds-33-34-35 /the-umbrella) | sovereign |
| #36⊕ | GET | /api/op-tracker/analytics | One-shot health + cross-build pulse JSON for the OP analytics card | public |
| Build | Method | Endpoint | Body / Query | Returns | Auth |
|---|---|---|---|---|---|
| #33 | GET | /api/op-tracker/items | ?type=<type>&limit=N | JSON array of current-window items | public |
| #33 | GET | /api/op-tracker/stats | — | {total, velocity_per_hour, projected_total, elapsed_hours, hours[24], type_counts} | public |
| #33 | POST | /api/op-tracker/log | {type, title, summary?, route?, duplicate_in?, severity?, pin} | {ok, id, type, title, created_at} | PIN |
| #33 | POST | /api/op-tracker/agent-bug | {title, summary?, severity?} | {ok, id} | open |
| #33 | POST | /api/op-tracker/delete | {id, pin} | {ok, deleted_id} | PIN |
| #36⊕ | GET | /api/op-tracker/analytics | — | {health, op, qr, vmr, esg, sessions, top_pages_24h, as_of} | public |
| #34 | GET | /api/qr-tracker/items | — | JSON array of all QR codes in the registry | public |
| #34 | POST | /api/qr-tracker/log | {slug, label, target_url, location?, purpose?, status?, notes?, pin} | {ok, id, slug} | PIN |
| #34 | POST | /api/qr-tracker/update | {id, ...fields, pin} | {ok, id} | PIN |
| #34 | POST | /api/qr-tracker/delete | {id, pin} | {ok, deleted_id} | PIN |
CREATE TABLE IF NOT EXISTS op_ledger ( id SERIAL PRIMARY KEY, type TEXT NOT NULL, -- page · doc · fix · section · api · agent-bug · deploy · decision · ping · test title TEXT NOT NULL, summary TEXT, route TEXT, duplicate_in TEXT, source TEXT DEFAULT 'sovereign', severity TEXT, window_start TIMESTAMPTZ NOT NULL, -- 1pm UTC anchor; auto-rolls when now < 1pm created_at TIMESTAMPTZ DEFAULT NOW() );
CREATE TABLE IF NOT EXISTS qr_tracker ( id SERIAL PRIMARY KEY, slug TEXT UNIQUE NOT NULL, label TEXT NOT NULL, target_url TEXT NOT NULL, location TEXT, purpose TEXT DEFAULT 'other', status TEXT DEFAULT 'active', notes TEXT, scan_count INTEGER DEFAULT 0, last_scan_at TIMESTAMPTZ, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() );
| File | Build | Change |
|---|---|---|
| main.py | #33 | + op_ledger schema · _op_window · _op_seed_legacy_once · _op_compute_stats · 5 APIs |
| templates/buildathon.html | #33 | Rewritten · DB-backed · live ledger UI · quick-add panel |
| main.py | #34 | + qr_tracker schema · 5 APIs · /qr/go/<slug> redirect |
| templates/qr_tracker.html | #34 | NEW · registry table · log/edit/delete forms · scan-count column |
| main.py | #35 | + /pick route + 6 aliases · live counts from 4 tables · in PUBLIC_PATHS |
| templates/pick_landing.html | #35 | NEW · three doors + decision matrix + money flow + FAQ |
| main.py | MD-450 | + /md-450 route + 6 aliases · live stats from 4 tables |
| templates/md_450_umbrella_02may.html | MD-450 | NEW · this document |
| sovereign_docs_data.py | MD-450 | + NUMBERED_MASTER_DOCS entry |
| main.py | #36⊕ | + /api/op-tracker/analytics endpoint |
| templates/buildathon.html | #36⊕ | + Live Analytics card with 30s auto-refresh + 6 cross-build tiles |
| replit.md | — | Updated with Build #33-36 + MD-450 entries |
The three rim arcs don't operate in isolation — every catch flows down into the same bowl (the database) and pops up on the OP analytics card via /api/op-tracker/analytics. One pulse, three feeds.
| Check | Endpoint / Page | Result |
|---|---|---|
| OP Tracker hub | /op | 200 |
| OP analytics endpoint | /api/op-tracker/analytics | 200 · valid JSON · health all green |
| OP items API | /api/op-tracker/items | 200 · 32 items today |
| QR Tracker hub | /qr-tracker | 200 |
| QR items API | /api/qr-tracker/items | 200 |
| The Pick landing | /pick | 200 |
| The Pick aliases (×6) | /buy /start /pick-one /the-pick /three-products /sellable | all 200 |
| Sellable products | /vmr · /esg-block · /white-label | all 200 |
| Code review · Build #35 | architect | passed · no severe issues |
| Code review · Build #36 add-on | architect | 1 HIGH XSS found in top-pages JS · fixed live · re-verified clean |
| OP ledger entries · today | op_ledger | 5 entries logged for builds (#28-#32) |