Pre-launch — finishing the imagery supply chain, starting the recipe layer
updated just now · generated 2026-09-11T23:23:54Z by muse-code
23 components · 4 worlds · 17 recipes · 146 CI steps green
The site can take test payments but not real ones, store photos but not on permanent storage, and run on a temporary database. Four handoffs need you: the real payment keys, photo storage scope, the production database, and a second AI provider so the system is not depending on one. Nothing is stuck — everything else keeps moving — but these four stay waiting until you answer.
Shipping real money and real customer data needs your accounts, not mine.
not yet confirmed by the ownerARCHITECTURE.md — owner-gated list with reasonsRisk: Test-mode billing must never be mistaken for live billing again — that exact failure already happened once.
Waiting on something external
The system can already fetch real, credited stock photos that pass every check — proven live today. But nothing calls that from the photo upload page yet, so every tenant photo is still uploaded by hand. The next step wires the fetch into the page with the photographer's credit shown.
A shop with no photos gets good ones in one click instead of an empty frame.
not yet confirmed by the ownerrender/stock.py retrieve() proven live 2026-09-11 (3/3 slots, 0 errors, pinned IDs, imgix server-side crops). No caller in platform/server.py yet. Wiring = retrieve on the asset page + save with credit + existing audit.
render/stock.py — retriever, live-proven, zero callersplatform/server.py — asset page where it plugs inThe design advice the system gives comes from books, guides and example collections. Each one needs its licence checked and its lessons written down in one place, so nobody has to wonder where an idea came from. One source (your recipe book's design references) is partly done; four small write-ups remain.
Unattributed sources become untraceable decisions.
not yet confirmed by the ownerrefero/design.md extracts + property index; Vercel patterns licence-verify + node; commerce-agents extraction record; motion consulted-libraries list; Lucide rule (picked, ISC, installed, unused by catalogue).
registry/registry.json — 142 source rows with licence stateskills/design/references/ — where extraction records liveYour recipe book for shops arrived and is filed. The first build from it is the shared product contract plus the base shop recipe, proven by one product that passes and one that is correctly refused. The 17 existing shop folders use the older taxonomy and will need reconciling, not rebuilding from scratch.
Shops are the revenue surface; the recipe book is the specification they build from.
0 of 41 v3 categories with recipe folders
not yet confirmed by the ownerLIBRARY-v3 Part 18 order step 1: product.schema.json and the commerce-base recipe. 41 categories = 32 physical (Part 4) + 8 service (Part 5) + B2B overlay counted once. The 17 existing recipes/*/ dirs predate the v3 taxonomy.
recipes/LIBRARY-v3.md — the v3 authoring source, 19 partsrecipes/validate.py — existing recipe checksRisk: The 17 existing recipe folders use the older taxonomy; building v3 alongside without reconciling forks the layer.
This page. It shows what is done, what is next, and what is waiting on you, with proof attached to every finished item. Open any card for the plain-English version, expand it for the technical detail. Tell me if anything on it is wrong — correcting the board is the fastest way to keep it honest.
You should never have to read the code to know the state of the project.
not yet confirmed by the ownerstatus/board.json -> status/build.py (stdlib, <1s) -> status/dist/index.html. build.py refuses a done card without evidence and verifies every files[].path exists. Facts measured at build time.
status/board.json — the data, maintained per sessionstatus/build.py — renderer + evidence gatestatus/build.py358 lines · renderer with the evidence gate


When someone uploads a photo for the main subject, they now mark where the subject is so crops never cut heads off. The system can fetch real credited stock photos that pass every check. And where no photo exists at all, every world shows a labelled empty frame — never a fake-looking gradient, never a broken image. Proven with screenshots for all three worlds.
Photography is 60–70% of perceived quality; every tier of the supply now proves itself or stays silent.
not yet confirmed by the ownersave_asset(..., focal) refuses subject slots without a point (migration 0016 fx/fy); nine-point picker in site_upload, batch filing excludes subject slots; stock.record keys the slot want so the audit crop gate passes; gate 3f requires each slot component's own missing-asset treatment; cta-monument region renamed k-mon__figure -> k-mon__fig so mark_assets reaches it (it never fired before).
platform/generate.py — save_asset focal validation, assets_of threadingplatform/server.py — focal picker, edge enforcement, batch exclusionrender/stock.py — Tier-2 record with want-keyed ratiosrender/gate.py — 3f missing-asset treatment requirementcomponents/cta-monument — treatment + region renamepython3 platform/negatives.py91/91 controls fired (7 new focal controls)2026-09-11T23:15:05Z
python3 render/stock-negatives.py11/11 stock controls hold (record passes the crop gate)2026-09-11T23:15:05Z
python3 render/gate-negatives.py16/16 correct (3f catches an untreated component)2026-09-11T23:15:05Z
live Unsplash retrieve + asset audit, bloom/restaurant3/3 slots filled, 0 errors, 0 fatal; hero photo renders with credit2026-09-11





Your recipe book for shops — 41 kinds of business, what each shop must ask, and what must refuse — arrived today and is saved word for word as the source the shop-building work follows. Nothing in it has been built yet; filing it was the step that unblocked the recipe pause.
The shop work was paused waiting for exactly this document.
not yet confirmed by the ownerPersisted verbatim at recipes/LIBRARY-v3.md: 19 parts (0–18), taxonomy 32+8+overlay, Part 18 implementation order. Recipes pause lifted on arrival.
recipes/LIBRARY-v3.md — the v3 authoring sourcerecipes/LIBRARY-v3.md2561 lines · all 19 parts, verified by header count
An earlier version pretended test billing was the real thing. It was deleted — thousands of lines removed — and only honest test-mode billing with a read-only live-key check remains. Live billing stays waiting on you (see the top card).
Work described as finished that was not is the failure this board exists to prevent.
not yet confirmed by the ownerceca793 Phase 1 remediation §3.1–§3.8: strip sim billing, injection boundary, rate limits, fonts, palette, docs archive.
billing/ledger.py — honest test-mode ledger that survivedgit show --stat ceca79386 files changed, 2757 insertions, 6206 deletions2026-09-10
Not starting before a paying customer needs it
A short list is deliberately waiting: a security test by an outsider, enforced backups and staging, versioned AI prompts, and a billing-only staff role. Each needs something that does not exist yet, and none blocks launch. They start when a paying customer needs them.
Deferred with reasons beats forgotten.
not yet confirmed by the ownerARCHITECTURE.md remediation row: billing-only role (needs lateral permissions), prompt versioning (needs prompt registry), browser/visual/load testing, pen-test, staging/backups enforcement.
ARCHITECTURE.md — remediation row with the deferred list