MindLoop · an engineering walkthrough

MindLoop, opened up

The anatomy of a store that runs itself — one real decision traced end to end, the prediction engine underneath it, every seat at the table, and the economics on top.

mindloop.studio every number in this talk is read from the system, not invented
← → or click to navigate · f for fullscreen · d to draw on any slide
In this talk

Six sections, one machine

01The integration problemwhy the owner is the bottleneck — and why every fix so far failed
02One decision, end to endone real customer message at 23:42, followed through every checkpoint
03The prediction enginewhere the numbers come from — and why they can’t cheat
04Seven seatsthe same machine, rebuilt for seven different people
05The economystrategies, spare capacity, and money that only moves on proof
06What just became possiblewhat you couldn’t do before, job by job
The integration problem · 1 of 2

Five streams, one head

WhatsApp · Insta · webcustomer chat, 24/7 stock & suppliersreorder? how much? prices & discountshold margin? move stock? staffing & schedulewho works Saturday? the hard problemsaged stock · compliance the owner every decision ends here missed sales the 23:00 message waits margin slips the discount nobody priced

Every stream is a stream of decisions — and every decision routes through one person, in real time, during business hours only.

failure mode 1Speed. A customer message at 23:00 gets answered at 08:30. The customer didn’t wait nine and a half hours — they bought somewhere else.
failure mode 2Guessed discounts. Every concession is decided in the moment, under pressure, with no math behind it — so profit leaks away a little at a time, invisibly.

The bottleneck isn’t effort. It’s architecture.

The integration problem · 2 of 2

Every fix so far sits in the wrong quadrant

OBSERVES ACTS CHECKS FIRST GUESSES dashboardsobserve · then wait for you chatbotsact · without checking anything the app stackacts on one task · owns no outcome consultantscheck · but never act, never re-check checks · acts · proves vacant — until every decision becomes a graded record
Dashboards show you what’s happening. The deciding — and all its work — stays exactly where it was: with you.
Chatbots answer instantly, but from nothing. They don’t know your stock, your capacity, or what a promise costs you. Fast, not true.
Apps each automate one task. None of them owns the result — so you’re still the glue holding them together.
Consultants check carefully — once, months ago, in a slide deck. Nobody ever checks whether their advice worked.

Filling the empty corner takes something genuinely new: every decision becomes a record — with its own forecast, its own safety check, its own receipt, and its own grade.

The claim, mechanically

Every question becomes a governed decision

signal a message · a stock dip a typed question decide evidence · twins · 5 lanes council + write guard forecast sealed first act reply · offer · order every write → a receipt prove scheduled result check vs a named source learn lesson banked autonomy earned the next decision starts smarter — the loop is the product you: approve · veto
a* = argmax E[utility | evidence]  s.t.  evidence valid · point-in-time · policy ok · write-guard ok · approval if needed · claim ≤ proof

Not “an AI answers questions.” A system that picks the best allowed move — and keeps the paper trail to prove it. That difference is the rest of this talk.

02

One decision, end to end

A customer messages a boutique at 23:42. We follow that single message through every mechanism it touches — council, guard, gate, checkout, receipt, and grade — with the real thresholds and the real endpoints.

End to end · 1 of 6 · the arrival

23:42 — a message enters the system

the customer “Do you have the navy silk midi dress in a 38?” WhatsApp · 23:42 INGESTION — 6 CHANNEL FAMILIES signed provider webhook /external-commerce/webhook/{agentKey} duplicate-proof · locked to this store or: hosted page · widget · QR “copy and paste — nothing to connect” intent parse claude-sonnet-4-6 · ≤900 chars · 12s cap attacks are caught before the AI CONVERSATION STATE thread + parsed intent “Dress / outfit · EUR 320 band · this week · Le Marais” multi-intent → tabs per task the volume it carries 260 conversations · 287 threads 1,137 messages · 8 seller agents 6 channel types the seller council meets for any request that matters anything ≥ €80 · next slide
why the AI can’t be the gateKnown attack patterns — prompt injection, price scraping — are caught by fixed rules before the AI ever sees them. The reply engine gets 900 characters and 12 seconds; if it can’t answer safely inside that budget, a human takes over.
what’s already true at 23:42:07The message is now a record that belongs to this store alone, can’t be processed twice, and carries what the customer actually wants — not a line in a chat log. Everything downstream works on that record.
End to end · 2 of 6 · the council

Eleven roles debate. A guard can veto. One voice replies.

customer_intent workrun_memory catalog inventory pricing_margin capacity market_foresight expert_strategy risk_write_guard human_handoff master_seller_agent debate_style: veto_guard one voice out THE BLACKBOARD — RECEIPTS, NOT A DEBATE intent: dress · size 38 · tonight commitment · confidence 0.84 memory: drew on 19 related work runs catalog: navy silk midi · 38/40 in range inventory: stock 2 @ 38 · freshness 5–8 min pricing: EUR 320 · margin kept private capacity: deliverable this week foresight: 62% likely the customer buys write guard: checks every outbound action real veto: “qty 30 > checked capacity 20” ESCALATION RULES over €80 → worth a meeting over €300, or any approval → full proof required the guard signs at 0.9 confidence the master reply — one voice “Yes — the navy silk midi in 38, EUR 320. I can hold it until noon tomorrow.” raw council debate never reaches the customer; the owner can read it: “How MindLoop’s seller team reached this” on record: 36 council sessions · 360 commitments · 72 debate messages

The eleven roles are copied from the code (lib/external-commerce/types.ts), not invented for this slide. Each specialist files a structured commitment — not chat text. Margin figures live on the blackboard and never reach anything the customer sees.

End to end · 3 of 6 · the gate

The offer is a contract, and the contract must clear a gate

OfferContract — the object the customer will see
Navy silk midi dress · size 38EUR 320
source_freshness_minutes: 5–8 · payment: stripe checkout · hold: until noon
Discount within auto-limit?max 10% without approvalpass — 0%
Sources fresh enough?must be < 60 min oldpass — 5–8 min
Custom order over €300?staff hand-off threshold€320 → needs the owner

The rules behind this gate are the same ones the owner edits in plain words — the sentence you read is the rule that runs. Across 203 live offers: 185 pass · 17 need approval · 1 blocked.

what the owner sees at 23:441 offer needs your approval” — with the homework attached: “Why MindLoop chose it: it fits the request and current business rules.” · “Expected margin: EUR 96” · “62% likely the customer buys.” Margin is owner-only.
and if a check had failedThe offer never renders. A stale inventory read (confidence 0.117) shows the owner May need checking, and a hard guard stop reads Held for you — MindLoop stopped, handed to you. Refusal is a first-class outcome.

A chatbot has one path: reply. This system has three: reply, ask you, or refuse — and the third is what makes the first trustworthy.

End to end · 4 of 6 · the close

Money moves; a receipt is born

owner taps Approve …/offer-contracts/approve then: payment-link Stripe checkout the money goes to the store’s own account, not a middleman Paid · 23:51 payment_state: paid 21 paid and counting the delivery receipt object external_write_executed: true · provider msg id tied to this exact sale, this exact store only then: “Sent on WhatsApp” connection state alone can NEVER produce the badge what the customer can tap Pay securely · Reserve · Book every action passes the write guard; gated ones wait for the owner’s yes tracked, not claimed 606 offers · 52 need approval 21 paid → €6,720 revenue each with a checkout link

Everything the system does in the outside world leaves a receipt tied to one decision and one store. That single habit powers all the proof to come: no receipt, no claim.

End to end · 5 of 6 · the decision object

Meanwhile: the owner’s own question is a WorkRun

work run wr_016 — one real record, field by field
“Should CA_1 add a second mid-week delivery run for the top grocery items before the weekend rush?”
run_type: micro state: clarifying confidence 0.62 answer_mode: clarify
The forecast, committed up frontrecommendation$1,850 vs $1,100 do-nothing
The blocking question — verbatimclarification_requested“Is the delivery van free on Wednesdays, or would a second run need a new slot?”
The reality contractresolution_contractcheck in +4 days vs “CA_1 point-of-sale weekly sales export”
What the forecast may not seeforbidden_inputsactual · result · outcome · postmortem · future_visibility_features
the state machine23 lifecycle states (workrun_models.py) collapse into 8 readable stops — Compile · Evidence · Forecast · Decide · Execute · Resolve · Postmortem · Learn — and 3 buckets: needs you running proved
the gate is one question wideThe run doesn’t page the owner with a dashboard. It asks exactly what blocks it — van availability, top-sellers vs full range, stockouts vs margin — and $1,850 unblocks on one answer.
the check is scheduled before actingResult source and date are fixed at forecast time. The run cannot later choose a friendlier measuring stick.

A chat answer evaporates. This object accumulates — evidence, receipts, actuals, and finally a grade.

End to end · 6 of 6 · the grade

Four days later, reality files its report

result-capture POST /{id}/result-capture locks prediction_as_of first no self-grading caller_baseline_accepted: false the system’s baseline, not yours the score improvement = baseline_error − prediction_error “how much better than doing nothing?” the readout, verbatim “Predicted 74 → landed at 76 index points. Beat doing nothing (68) by 6.” the lesson is banked, searchable, and feeds the autonomy ladder — the loop closes
the lesson, verbatim from the record“CA_1 demand upside was strongest around SNAP/event calendar periods and price-stable household categories.” Wins land in What worked; misses get their own bucket, in muted ink, never hidden.
and autonomy is arithmetic, not a toggleA move-type earns a suggested auto-run floor only after ≥ 5 resolved runs beating do-nothing ≥ 80% of the time — and the floor is the 25th percentile of the winners’ own stakes. Until then: “Not enough history yet — your call on these.”
03

The prediction engine

Where does “$1,850, 62% sure” actually come from? One button press fans out into eleven stages — gathering evidence, simulating thousands of similar store-weeks, racing five forecasts against each other, policing time-travel, and passing nine proof gates. We walk them one by one.

source: bazaar/v2/portal/v2_portal/workrun_full_stack_orchestrator.py · scorer_service.py · prediction_leakage_guard.py

The engine · 1 of 7 · overview

One simulate call, eleven stages

Don’t read every box — each numbered stage gets its own slide next. Just notice two things: evidence flows left to right, and nothing skips a gate.

1 · EVIDENCE data-point manifest intake + owner answers + public packs ≤200,000 rows admission control external rows ≤500 · rights-checked each row: visibility_time · hash 2 · TWINS selection policy 256 → 16,384 by run type budget ×0.75–1.55 by live signals population manifest cohorts: aligned / at_risk at_risk when disagreement > 0.25 3 · SCORER + KERNEL six scoring heads residuals · calibration · utility decision_mode: prediction_engine bounded prediction kernel bounded-prediction-kernel-v0 horizons 7d/30d/90d/180d 4 · TWO TRACES + DISAGREEMENT kernel-capped 1 call · ~$0.015 deep synthesis 2 calls · ~$0.045 compare_prediction_traces flip · Δconf > 0.12 · Δprob > 0.15 material → red_team_review 5 · THE LEAKAGE GATE visibility_time(feature) ≤ prediction_as_of 12 forbidden field markers 7 forbidden feature roles 50-row audit trace per run fail → certification blocked 6 · THE NUMBER V0 retail forecaster same-weekday means over 4/8/12/26-week windows inverse-error weighted ensemble conformal intervals 7 · FIVE LANES baseline · v0 · v1 · avg · router primary sealed before actual v0_floor_enforced: true foundation models hard-blocked 8 · CONTRACT + 9 PROOF GATES forecast set: 8 required outputs no_second_prediction_system: true any gate fails → certified ↓ calibrated never silently certified

Stages 1–4 run top-left to top-right; 5–8 bottom-left to bottom-right. Canonical spine, stamped on every run: StudioTwin → prediction_kernel → Bazaar receipts → Autodune proof → WorkRun packet.

The engine · 2 of 7 · simulation

Dynamic twins: the simulation buys exactly the certainty it needs

this store, this decision each dot = one “twin”: a similar store-week from real data, replayed against this decision
run typetwin ladderCI width target
micro256 · 512 · 1,024 · 2,0480.22
team512 → 4,0960.18
full1,024 → 8,1920.13
diligence2,048 → 16,3840.10
the budget breathes with realityThe twin budget multiplies by live conditions, clamped 0.75–1.55: +0.12 stockout risk · +0.08 promo · +0.07 holiday · up to +0.12 weather · +0.14 severe inventory shortage (ratio < 0.85) · +0.06 supplier lead time ≥ 4 days. A calm Tuesday costs less compute than a stormy SNAP weekend.
it knows when to stopIt keeps adding twins until two rounds in a row barely improve the answer (gain < 0.012), or the uncertainty band is tight enough. Then the answer is stress-tested against worlds weighted 1.0 / 0.88 / 0.76 — it must hold even if reality turns out 12–24% different than assumed.
and it admits when the ground is thinWhen the twins disagree with each other by more than 0.25, the run is labeled at_risk instead of aligned — and that thin support reaches the owner as lower confidence, never as false certainty.

Run 016 ran 2,200 twins over 3,049 source rows. That’s what one “simple” $1,850 forecast costs — and why it can be trusted.

The engine · 3 of 7 · the race

Five lanes race. The champion is sealed before reality arrives.

6065707580 baseline 68 · doing nothing v0_champion ★ 74 · sealed as primary v1_dynamic_twin 69 = v0 × (0.94 + 0.12·support) average_v0_v1 71.5 learned_router 72.5 = .08·b + .68·v0 + .14·v1 + .10·avg actual: 76 — lands AFTER the seal
the promotion rule — in code, not cultureA newer model can take over only by proving, before the result arrives, that it’s at least as good as the champion everywhere it matters (candidate_beats_or_equals_v0, calibration not worse, no critical segment regressed). The code that checks this carries one telling comment: “It never reads actual/result fields.”
what can never happenBig general-purpose AI models are locked out of the number entirely: primary_allowed: false. And the app can’t invent lane data — anything a browser sends is stripped on the server, and missing data is flagged as missing, never made up.
The engine · 4 of 7 · the time police

The leakage guard: the forecast physically cannot peek

sales_wk_-4 · visibility: T-28d weather_forecast · visibility: T-1d weekend_outcome · visibility: T+2d ✗ snap_calendar · visibility: T-90d field marked “converted” ✗ THE GATE visibility_time(feature) ≤ prediction_as_of policy: prediction_leakage_guard .2026-05-18 admitted to the forecast every admitted row logged in a 50-row audit trace “could the model have peeked?” — answerable, per row bounced — 12 forbidden markers actual · actuals · outcome · label · target · converted conversion · resolved · result · post_outcome · post_action · after_action  +  7 forbidden feature roles
failure is loud, not silentIf a forbidden field slips in, the run doesn’t just lose a few points — it loses its certification, with the reason written down (leakage_status: failed). And if the certified engine can’t run at all, the system re-runs in a visibly weaker mode and says so — never a quiet downgrade.
why this matters commercially“We beat the baseline” is only worth money if the bet was sealed first. The guard is what turns marketing language into an auditable property of every single run.
The engine · 5 of 7 · the bounded model

The LLM advises. The kernel decides the number.

how the probability is assembled
raw = 0.12 + 0.26·decision + 0.22·kernel + 0.15·twin
    + 0.10·data_quality + 0.12·calibration + 0.04·utility
    − 0.08·uncertainty
p = ceiling · (0.54 + 0.42·sigmoid(8·(raw − 0.52)))
Seven weighted ingredients become one probability — then a ceiling caps it at what the evidence can honestly support.
Ceiling, synthetic-only evidencehonesty cap0.66
Ceiling, intake-only evidencehonesty cap0.72
Kernel risk weightscomplaint · handoff · latency0.38 · 0.24 · 0.18
two modes, priced per runKernel-capped: one AI call, ≈ $0.015 — the AI may explain and adjust within the statistical engine’s limits, never beyond them. Deep synthesis: two calls, ≈ $0.045 — and its answer is demoted to advisor: it can argue, it cannot set the number. Even the token budget is a formula, not a hope: in = 900 + 120·data_points.
when the two answers disagreeIf the two modes flip the recommendation, or differ by more than 0.12 in confidence or 0.15 on any option, the run is routed to red_team_review — a human-style challenge round. Disagreement is treated as a finding, never averaged away.

This is the answer to “isn’t this just GPT with a nice UI?” — the language model is a bounded advisor inside a calibrated instrument.

The engine · 6 of 7 · certification

Nine gates stand between a forecast and the word “certified”

real_source_datano synthetic masquerade
data_point_manifest · twin_population_manifestevidence + simulation accounted✓ ✓
adaptive_twin_budgetcertainty was actually bought
point_in_time_leakagethe time police, per run
simulation_native_kernel · autodune_certified_primarythe number came from the instrument✓ ✓
bazaar_family_coveragefamilies v1·v2·v3b·v4b·v5b
agent_receipts_verifiedevery actor left a signature
+ retail numeric gate · per-question trained model gateworkrun_per_question_prediction_head✓ ✓
the forecast is sealed before the actionBefore the system acts, a sealed copy of the forecast — its hash, its commitment, its exact payload — is locked away. The prediction is provably older than the action it predicted. You cannot backdate a bet.
the downgrade, not the cover-upAny blocking gate ⇒ certifiedcalibrated with a recorded certification_block_reason. The claim ladder — certified · calibrated · speculative · fixture · not_claimable — always states which rung you’re on.
and the grade math is publishedmove_score = 0.35·forecast + 0.25·fidelity + 0.25·attribution + 0.15·baseline_beat — a move may claim credit only when the measurement, the attribution, and the forecast were each strong enough on their own. A weak link caps the claim.
The engine · 7 of 7 · the grader

Autodune grades the graders — on a public record

public benchmarkmetricpredicted bandactualbaseline
M5 / WalmartWRMSSE ↓0.62 – 0.700.65 ✓1.00 naive
Criteo upliftQini0.078 – 0.0900.084 ✓0.000 random
X5 / RetailHeroAUUC0.595 – 0.6250.608 ✓0.500 coin-flip
Hillstrom email+pp vs control5.1 – 5.95.7 ✓0.0 no-mail
HIGGSAUROC0.866 – 0.8820.879 ✓0.733 logistic
FreshRetailNetwMAPE ↓0.30 – 0.360.32 ✓0.58 naive

↓ = lower is better. Bands were published before evaluation; every score is against held-out targets — 60,288 rows (M5) up to 450,000 (HIGGS). Six for six inside the band.

the promotion loopOne number — improvement = baseline_error − prediction_error, “how much less wrong than doing nothing” — decides whether each model is promoted, kept in the shadows, or rolled back. A model that gets worse rolls back automatically: “you can improve on the floor, never fall through it.”
in the product, this is one sentenceThe store owner never sees WRMSSE. They see: “When MindLoop says a markdown will clear 64% of your stock, it checks later whether it did.” Predicted 64% → ✓ 64% cleared.

Three brains, separated by design: StudioTwin thinks, Bazaar acts and signs, Autodune grades. None may grade its own homework.

04

Seven seats

The same machine serves seven different humans — and rebuilds itself around each one at login. Not themes or role badges: different nouns, different front doors, different physics of what each seat may see and touch.

Seven seats · the mechanism

One login field rebuilds the whole product

authenticated roles derivePersonaFromAuth browser state can’t override 5 PERSONAS · LOGIN-BOUND store_ownerenterprise_buyerenterprise_sellerexternal_expertadmin “see the move before you make it” “forecast every team from one tower” “turn wins into priced capacity” “you sell judgment, not hours” “set the policy every plugin must clear” 8 AUDIENCES store_ownerstore_teamenterprise_memberenterprise_managerenterprise_operatordepartment_ownerexternal_expertadmin WHAT ACTUALLY CHANGES 6 home variants store · team · executive · department · expert · admin exactly 4 primary jobs in the nav everything else folds under one “More” a three-layer vocabulary rewrite canonical → persona → your business’s own nouns WorkRun→“Move” · Baseline→“if you do nothing” a lock on every page and the server, not the browser, has the final say

Default = Simple mode: one plain answer on top, at most 3 act-now items (enforced mechanically: stats.slice(0,3) · SIMPLE_ACT_NOW = 3 · simpleCap = 3), an honest “N more in the full view,” and Advanced one tap away.

Seven seats · 1–2 · the store

The owner decides; the team sees an honest slice

the owner’s morning — three numbers, one button
At stake across 3 open moves$1,850 + $3,200 + $940 · each with a result check$5,990 ◆
From selling your worka strategy other stores bought$228 ready to withdraw
Needs your attention“everything else is running on its own”3
day one, not day thirtyThe First-Run Concierge asks “What words should MindLoop use?” — answer “practice / sessions” and the entire UI is rewritten in your nouns. Four primaries: Today Ask Inbox Results.
the team’s view is a filter, not a copyStaff sign in to the same pages, scoped to their team — and team numbers are computed with exactly the same rules as the owner’s, so every team figure always adds up to the store total. No second dashboard, no drift. Teams own plain areas (works for a boutique or a clinic): “Sales & quotes” holds fashion 298 + B2B 90 of 666 recorded learnings; “Customer care” holds the other 269.
a real recorded learning, verbatim“Navy silk midi dress converted from conversation to payment; compare against baseline conversion and margin.” — the same dress from the 23:42 trace, now teaching the system.

The design law behind both: the primary number and the primary action live in the resting view — never one click behind a fold.

Seven seats · 3–4 · the enterprise

The buyer signs off by dollars; the seller clears like inventory

the buyer’s contract“We forecast — and run the safe ones. You sign off the big ones, ranked by $. The more it’s right, the less it asks.” Every approval leads with the money at stake, marked ◆ (estimated) or ● (measured). Later, “What your sign-offs did” closes each loop: “beat baseline by 12% — $1,900 realized ●” — and test-data results show points, never dollars.
a resolved sign-off, as the buyer reads it“Enterprise pack buying — predicted 84, landed 82, beat doing nothing (72) by 10 · certified.” The consequence of every yes arrives in the same list that asked for it — wins and misses, in the unit each move actually measured.
the seller’s ledger — capacity clears on dual proof
Evening delivery van · 8h × $28queued — awaiting your OK$224 · say yes
CA → TX grocery · 19h × $12proofs ✓✓ · trust 0.96$228 cleared
Weekly Operations Review · $45 × 12 usesinternal chargeback$540
money-truth, enforced“Earned” = cleared + withdrawn only. And a seller’s ledger can only ever count that seller’s own settled trades — never a neighbour’s — a rule enforced in four separate places.

Approvals become a portfolio with a P&L; idle hours become escrowed, dual-proof trades.

Seven seats · 5 · the expert

Experts interrogate sealed data — and are paid on verified results

the expert asks “Which weekday shifts drive the gap?” inside a granted research workspace workspace unlocks at 85% readiness the classifier + privacy budget risk = 0.10 + 0.20·term + 0.25·exactness terms: exact · which sku · who · name · identity · email · phone · address budget: 0.1 per query · +0.02 if > 160 chars every query writes an audit row answered aggregates only — never raw rows denied “raw, exact, or identifying records” needs_evidence “more connected data before it can answer” the admin can prove it audit tile: “Raw data releases: 0” questions counted, answered vs denied a ledger, not a promise
the market sideAn expert finds work by saying what they fix, in one sentence. The chat ranks 280 recurring problem shapes across 50,000 modeled problems — with math anyone can check: “matched ‘staffing’ · pays $480 · 71% chance.” Build once, test across the whole group — bad outcomes shown, not hidden. The price anchors to the cautious floor (~$568/mo, labeled modeled). And an untested strategy cannot be published: “Run a private test first.”
the payday, reconciledThe $650 bounty (“CA_1 weekend grocery order-depth verdict”) = a $650 pending ledger row, released only through the guarded path; $75/$95/$110 cleared pack payouts; reputation = two un-fakeable scores — works-rate and recorded payout per solution.

The owner never posts a job, never exports a CSV. The boundary does the trust work that NDAs used to fake.

Seven seats · 6–7 · the governor and the guest

The admin governs in place; the customer never logs in

the admin’s front page is the queueApprove or send back a strategy draft right on the landing page — the row collapses to “✓ Approved — logged to history,” writing the same audit record as the full editor would. Release the $650 bounty through the guarded payout path. And no role may claim more certainty than it’s allowed: store_owner 90 · buyer 95 · admin 100.
suggestions say when they’re not enforcedSuggested autonomy floors come from ≥5 resolved runs at ≥80% beat-rate — and an unset floor honestly reads Session note · not enforced because no enforcement API exists yet. The UI refuses to imply machinery it doesn’t have.
the seventh seat: the shopperOn the public /ask page: “I need black loafers size 39 under €180 near Saint-Germain.” Nearby store agents answer, ranked by best offer that’s safe to promise — with “Exact location shared: no” printed on every card. Paying or reserving runs the same write guard; the pickup QR code appears only after a payment receipt exists.
and a human can always take the wheelStaff take over any conversation in one tap and hand it back; each staff reply carries its send-truth: Provider send confirmed or, honestly, Not sent.

Seven seats, one invariant: every seat sees the truth it’s entitled to, and nothing it isn’t.

05

The economy

Once decisions are recorded objects with verified outcomes, they become sellable, priceable, and settleable. A proven playbook stops dying as tribal knowledge — and money learns to move only on proof.

The economy · 1 of 3

A winning run becomes inventory in two clicks

a resolved run “reorder timing that held margin” beat baseline by +$2,310 · certified sourcedFromRunId — traceable “Price & sell” suggested = 2% of lift · floor $25 speculative → revenue-share only comps: $75–$250 per use (5 live) a buyer installs it proof ladder: L1 results tracked → L4 independently certified “beat doing nothing on 67% of 118” settle — on the buyer’s resolution payout = lift × share% · idempotent per run — can’t double-mint paid when it worked, not when it sold …and the buyer’s resolved run can list too — the flywheel is the market
a run-aware marketA struggling run surfaces its own top-3 fixes inline — ranked by the same fit scorer the marketplace uses — and ?run= re-ranks the whole catalog for that exact move. Insight → purchasable object → attached → tracked back to the run that bought it.
claims are contracts, not adjectivesThe catalog runs at a thousand-strategy scale, and every claim badge is contractual: “certified” requires resolved, measured results — and a strategy still making promises can only price as revenue-share, so payment stays tied to demonstrated lift.
The economy · 2 of 3

Money only moves on proof — and the ledger balances

pending visible, never called “earned” release — the gate writes the exact literal v3_guarded_payout_executed cleared now — and only now — “earned” withdrawn 409 without the release proof
the ledger reconciles to the dollar cleared: $75 + $75 + $95 + $110 + $250 + $540 + $228  ·  pending: $650
the $650 pending row is the $650 challenge bounty — one fact, two views
why one string of text is load-bearingWithdrawing checks for the exact proof string that only the release step can write — without it, the request is refused (409), not spun. Money moves only when there is recorded evidence someone was allowed to move it — a screen saying so is not enough.
disputed money stays visibleThe department ledger carries $1,840 disputed — rendered, labeled, and excluded from “earned.” Inflating the number is a code change, not a style choice.

Sellers are paid when a buyer’s run actually resolves — not when a dashboard feels optimistic.

The economy · 3 of 3 · the constitution

One switch builds a whole world — and honesty is enforced in code

the world-builderOne import builds a complete working world, every surface agreeing: 18 work runs (15 resolved, 3 in flight), 8 people, a marketplace, capacity trades, challenges, payouts, audit and policy — grounded in real public datasets: M5/Walmart, Olist (96,470 rows), NYC inspections (201,494 rows).
same machine, any verticalOne keyword flips the whole product from retail to a therapist practice: 16 clinical runs, results sealed until deliberately revealed, commerce switched off. The vertical is just data; the machine never changes.
lawthe enforcing code path
benchmark points never print as $formatter requires an ISO currency to emit “$”
◆ modeled can never wear ● verifiedverified requires latest_result_proof w/ real actual
self-rated confidence never wears greenBadge “verified” is contractually actual/paid
loading is never zeroin-flight reads render “—”, not 0
“Sent on WhatsApp” needs a receiptreceipt bound to run_id + tenant + external_write
peer stats can’t identify a storebenchmarks render only at k ≥ 12 peers
test data can never pose as proofforce-stamped production_eligible: false

Most products promise honesty in a values deck. Here it’s a set of compile-time properties — which is why every number in this talk could be read straight out of the system.

06

What just became possible

Put the mechanisms back together and read the delta, job by job — what the owner could not buy at any price last year, running overnight now.

The delta, job by job

What you couldn’t do — and what happens now

the jobthe old ceilingthe mechanism that raised it
Sell after closeA chatbot replies and overpromises; the message waits for morning.Council + write guard close checked sales: €142 paid at 23:51; 606 offers, 21 paid, €6,720 tracked.
Hold the marginDiscounts slip through whoever answers; rules live in a prompt.Plain-word rules enforced at offer-build time — previewed by replaying your own history before shipping.
Run the back officeDashboards report; you remain the integration layer.Decisions are objects: 37 ran in a week, you approved 4 — autonomy earned at ≥5 runs / ≥80% beat rate.
Get expert helpAgencies need raw exports, bill monthly, never re-check.Blind queries on sealed shapes, paid on verified results — the $650 job clears only when the fix works. Raw releases: 0.
Prove it worked“AI-powered” claims with no baseline and no misses shown.Forecasts sealed pre-actual, graded per run — “predicted 74 → landed 76, beat doing nothing by 6” — misses left in.
Trade what worksPlaybooks die as tribal knowledge; spare capacity rots.Two clicks list a certified run (+$2,310); van-hours clear as an escrowed $224 dual-proof match.

Every tool before either thought or did. This one checks, acts, proves — and learns.

The recap · one canvas

The whole machine, on one whiteboard

Loading the canvas…

MindLoop · mindloop.studio

A store that runs itself is really a decision that grades itself, repeated.

Signal → council → gate → receipt → grade → lesson. Around that loop: seven seats, an economy, and an honesty constitution enforced in code.

mindloop.studio press Home to replay the trace
1 / 1
THE WHOLE MACHINE · ONE WHITEBOARD → tour · ← back · scroll & drag to explore
drawing on — esc to exit