MD-450 · The Upside-Down Umbrella · 02 May 2026

The Umbrella, Flipped.

A bowl, not a shelter. The platform is below — and value lands on it from above.
Sealed 02 May 2026 Doctrine Library only · MD-273+ rule Covers Builds #33 · #34 · #35 · #36 add-on Type Umbrella doctrine
↑ SKY · VALUE FALLS FROM ABOVE ↑ HANDLE · POINTING TO THE SKY VMR ESG £450 QR scan OP item Decision #33 OP TRACKER #34 QR TRACKER #35 THE PICK CATCH · COUNT · PROVE ↓ FLOOR · DOME RESTS HERE
Operator-corrected orientation: canopy dome on the floor, opening faces up like a bowl, handle points to the sky. Rain (VMR · ESG · QR scans · OP items · decisions) falls in. Three builds form the rim — nothing leaks.
📐 Source sketch · Operator-drawn · 02 May 2026
The original rough sketch the operator drew to show the correct orientation when the previous renders kept getting it wrong. Canopy on the floor (the curved C on the left) · handle pointing out (which becomes up to the sky when stood upright). The proper SVG above is built from this.
Operator's hand-drawn sketch of the upside-down umbrella · canopy on floor · handle to sky
Sketch rotated 90° to upright orientation: canopy at bottom · handle extends upward.
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
28
OP items today
0
QR codes deployed
0
QR scans logged
0
VMR receipts
0
ESG blocks
3
Builds in this umbrella

§1 · Why the umbrella is upside-down

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.

What this means literally

DirectionTraditional UmbrellaUpside-Down Umbrella · MD-450
AboveRain (a problem)Value falling in: orders · scans · meals · proofs
The shapeConvex shell — repelsConcave bowl — catches
The userStands under it · shelteredStands over it · sees the catch · counts the catch
The rimDrips wasted waterBuilds #33 · #34 · #35 — the three rim arcs
The poleYou hold it upThe system holds it up — Truth Ledger · op_ledger · qr_tracker
The verdict"I'm dry""Everything is sealed."

Same doctrine as Build #32 · OP / Overstood Platform

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.

§2 · The three builds — the rim of the bowl

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.

RIM ARC · BUILD #33

OP Tracker

The work-rim. Every page, doc, fix, agent-bug shipped in the 24-hour 1pm→1pm window — numbered, timestamped, sealed in op_ledger.

5 APIs1 table1pm anchored28 today
Open OP →
RIM ARC · BUILD #34

▦ QR Tracker

The eyeballs-rim. Every printed QR — poster, sticker, card, vehicle — logged in qr_tracker with a scan-counting redirect at /qr/go/<slug>.

5 APIs1 tableauto scan-count0 codes
Open QR →
RIM ARC · BUILD #35

★ The Pick

The orders-rim. Three sellable doors — VMR · ESG Block · White-Label — surfaced as one decision page above the dashboard noise.

7 routes4 live counters3 doors0 sold
Open Pick →

§3 · Every route in this umbrella

BuildMethodRoutePurposeAuth
#33GET/opOP Tracker hub (+ aliases /op-platform /overstood /op-overstood-platform /overstood-platform /build-a-thon /buildathon)public
#34GET/qr-trackerQR registry hub (+ aliases /qr-registry /qr-log /qr-codes-tracker /track-qr /qr-tracker-page)public
#34GET/qr/go/<slug>Scan-counting redirect — UPDATE scan_count + last_scan_at then 302 to target_urlpublic
#35GET/pickThree Doors One System landing (+ aliases /buy /start /pick-one /the-pick /three-products /sellable)public
MD-450GET/md-450This 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/analyticsOne-shot health + cross-build pulse JSON for the OP analytics cardpublic

§4 · API contracts

BuildMethodEndpointBody / QueryReturnsAuth
#33GET/api/op-tracker/items?type=<type>&limit=NJSON array of current-window itemspublic
#33GET/api/op-tracker/stats{total, velocity_per_hour, projected_total, elapsed_hours, hours[24], type_counts}public
#33POST/api/op-tracker/log{type, title, summary?, route?, duplicate_in?, severity?, pin}{ok, id, type, title, created_at}PIN
#33POST/api/op-tracker/agent-bug{title, summary?, severity?}{ok, id}open
#33POST/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
#34GET/api/qr-tracker/itemsJSON array of all QR codes in the registrypublic
#34POST/api/qr-tracker/log{slug, label, target_url, location?, purpose?, status?, notes?, pin}{ok, id, slug}PIN
#34POST/api/qr-tracker/update{id, ...fields, pin}{ok, id}PIN
#34POST/api/qr-tracker/delete{id, pin}{ok, deleted_id}PIN

§5 · Database DDL — the two new tables

op_ledger · Build #33

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()
);

qr_tracker · Build #34

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()
);

§6 · File map — what changed, where

FileBuildChange
main.py#33+ op_ledger schema · _op_window · _op_seed_legacy_once · _op_compute_stats · 5 APIs
templates/buildathon.html#33Rewritten · DB-backed · live ledger UI · quick-add panel
main.py#34+ qr_tracker schema · 5 APIs · /qr/go/<slug> redirect
templates/qr_tracker.html#34NEW · 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#35NEW · three doors + decision matrix + money flow + FAQ
main.pyMD-450+ /md-450 route + 6 aliases · live stats from 4 tables
templates/md_450_umbrella_02may.htmlMD-450NEW · this document
sovereign_docs_data.pyMD-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.mdUpdated with Build #33-36 + MD-450 entries

§7 · Cross-build interlock — how they pass the catch

#33 OP TRACKER #34 QR TRACKER #35 THE PICK THE BOWL · op_ledger · qr_tracker · vmr_orders · esg_orders QR scan logs ledger ping Pick orders tick OP velocity orders fall in items fall in scans fall in

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.

§8 · Verification log — sealed 02 May 2026

CheckEndpoint / PageResult
OP Tracker hub/op200
OP analytics endpoint/api/op-tracker/analytics200 · valid JSON · health all green
OP items API/api/op-tracker/items200 · 32 items today
QR Tracker hub/qr-tracker200
QR items API/api/qr-tracker/items200
The Pick landing/pick200
The Pick aliases (×6)/buy /start /pick-one /the-pick /three-products /sellableall 200
Sellable products/vmr · /esg-block · /white-labelall 200
Code review · Build #35architectpassed · no severe issues
Code review · Build #36 add-onarchitect1 HIGH XSS found in top-pages JS · fixed live · re-verified clean
OP ledger entries · todayop_ledger5 entries logged for builds (#28-#32)
The umbrella, flipped.
Catch · Count · Prove. Three builds form the rim. The bowl never empties — only fills.
OP Tracker · QR Tracker · The Pick · Sovereign Library · Proof Stack · Dashboard
MD-450 · Sealed 02 May 2026 · Library only · Sovereign doctrine
SOVEREIGN CO-PILOT
Property or not · Tonnes or not · Always speaking
LIVE
05:00 BRIEF 12:00 PULSE 18:00 WRAP 21:00 COVENANT
Initialising sovereign voice...
CircularOS™ · dPRN™ · 40 Meals™ · B66 Smethwick · Jermaine Murphy
HANDSHAKE — witnesses
Handshake sealed.