Websites now build with or without photographs, and your shop recipe book is filed. Next: the first real shop recipes — held up only by four credentials only you can provide.

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

Waiting for you · 1

Live keys and decisions only you can provideM

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 owner
  • ARCHITECTURE.md — owner-gated list with reasons

Spec: KOZTO-SPEC Part 19 (operations)

    Waiting on:
  • Stripe webhook secret + endpoint (owner)
  • R2 scope for tenant assets (owner)
  • Postgres for the control plane (owner)
  • Second model provider key for K-010 routing (owner)
  • Solicitor review of GB legal templates, when Part 18 reaches step 6 (owner)

Risk: Test-mode billing must never be mistaken for live billing again — that exact failure already happened once.

Started 2026-09-06

Blocked · 0

Waiting on something external

Next up · 2

Plug live stock photos into the upload flowM

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 owner

render/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 callers
  • platform/server.py — asset page where it plugs in

Spec: KOZTO-SPEC Part 16 step 6 (Tier-2 remainder)

Name every design source the system learns fromS

The 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 owner

refero/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 state
  • skills/design/references/ — where extraction records live

Spec: KOZTO-SPEC Part 16 step 7

In progress · 1

Shop recipes from your recipe bookL

Your 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 owner

LIBRARY-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 parts
  • recipes/validate.py — existing recipe checks

Spec: LIBRARY-v3 Part 18

Risk: The 17 existing recipe folders use the older taxonomy; building v3 alongside without reconciling forks the layer.

Started 2026-09-11

Ready for you to look at · 1

This status boardM

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 owner

status/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 session
  • status/build.py — renderer + evidence gate
status/build.py

358 lines · renderer with the evidence gate

Board at 1440px: headline, waiting-for-you, columns
Board at 1440px: headline, waiting-for-you, columns · 23KB
Board at 390px: stacked, waiting-for-you first
Board at 390px: stacked, waiting-for-you first · 27KB

Spec: Status board task §1–§13

Started 2026-09-11

Done · 3

Photo supply chain: subject points, live stock, honest gapsL

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 owner

save_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 threading
  • platform/server.py — focal picker, edge enforcement, batch exclusion
  • render/stock.py — Tier-2 record with want-keyed ratios
  • render/gate.py — 3f missing-asset treatment requirement
  • components/cta-monument — treatment + region rename
python3 platform/negatives.py

91/91 controls fired (7 new focal controls)2026-09-11T23:15:05Z

python3 render/stock-negatives.py

11/11 stock controls hold (record passes the crop gate)2026-09-11T23:15:05Z

python3 render/gate-negatives.py

16/16 correct (3f catches an untreated component)2026-09-11T23:15:05Z

live Unsplash retrieve + asset audit, bloom/restaurant

3/3 slots filled, 0 errors, 0 fatal; hero photo renders with credit2026-09-11

Obsidian, zero assets: labelled holes, no gradients
Obsidian, zero assets: labelled holes, no gradients · 34KB
Bloom, zero assets: labelled holes, legible on light
Bloom, zero assets: labelled holes, legible on light · 31KB
Luminous, zero assets: labelled holes, world-distinct
Luminous, zero assets: labelled holes, world-distinct · 30KB
Monument figure hole: dashed frame + label, full-res crop
Monument figure hole: dashed frame + label, full-res crop · 2KB
Live credited stock photo rendering in the bloom hero
Live credited stock photo rendering in the bloom hero · 41KB

Spec: KOZTO-SPEC Part 16 step 6

Started 2026-09-11

Commerce recipe book v3 received and filedS

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 owner

Persisted 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 source
recipes/LIBRARY-v3.md

2561 lines · all 19 parts, verified by header count

Spec: LIBRARY-v3 (owner-supplied)

Started 2026-09-11

Simulated billing stripped outM

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 owner

ceca793 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 survived
git show --stat ceca793

86 files changed, 2757 insertions, 6206 deletions2026-09-10

Spec: Remediation §3

Parked · 1

Not starting before a paying customer needs it

Hardening deferred with reasonsM

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 owner

ARCHITECTURE.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

Spec: ARCHITECTURE.md remediation

Recently changed