Studios reference

Celebrate. Remember. Launch.

Three studios, deliberately only three: one for what's coming, one for what happened, one for what you're shipping. This page is the reference for their inputs, artifact kinds, coverage-gap semantics, and the privacy model that is enforced in code rather than promised in prose.

CELEBRATE — the moment that's coming

Tools: oce_plan_occasion, oce_design_invite, oce_write_toast, oce_moodboard. Grounding sources: OpenStreetMap/Overpass for venues (ranked by listing completeness, global chains demoted — order changes, facts never do), Open-Meteo for forecasts.

fieldtypenotes
planjsonSummary, grounded claims (each with source + retrievedAt), uncertainties, prep checklist. Every venue is explicitly 'NOT booked, NOT confirmed'.
schedulejsonTimed items with venues. SCHEDULE_OVERLAP and impossible travel gaps are hard failures.
budgetjsonLine items that must sum to the stated total within $0.01 — hard check.
contingencymdThe if-it-goes-wrong branches: weather calls, venue fallback order, no-show slack.
guest_guidehtmlA shareable, self-contained page for guests — honest about what is and isn't booked.
invitation / toast / moodboardpng / md / pngFrom the single-purpose tools, same grading, same seal eligibility.
Dates beyond the forecast horizon produce a plan that says “too far out for any real forecast to exist … check it about ten days before” — not an invented forecast. That sentence is quoted from a real pack.

REMEMBER — the moment that happened

Tool: oce_make_keepsake. Input: your notes and optionally your photographs. Output: keepsake artwork in a curated style (sunprint by default) and a story page with three strictly separated sections — What we can see (only what the photos and your notes establish), The story (prose, labelled as prose), and What we do not know (left honest, never filled in).

fieldtypenotes
keepsake_artpngOriginal artwork; the repair loop rendered our own first one twice before it passed legibility.
story_pagehtmlThe fact/prose-separated editorial page.

The privacy model, all enforced in code:

  • · Uploads are re-encoded through sharp on arrival — EXIF, GPS, camera serials are gone before any bytes touch disk. The originals are never written.
  • · Served only through HMAC-signed, expiring URLs. Never indexed, never public.
  • · People are counted, never identified: the vision layer's output is scrubbed of relationship and demographic guesses even if the model volunteers them.
  • · DELETE /projects/:id removes the pack, artifacts, and the photographs from disk — a link table exists precisely so deletion can find them. Verified live.
  • · On-chain: only the manifest hash. A keepsake is verifiable forever without any personal content ever leaving the store.

LAUNCH — the thing you're shipping

Tool: oce_launch_kit. Given a URL, a real headless browser renders your site and extracts the brand genome from what actually painted — resolved colours, resolved type — never from guesswork. Given no URL, the genome is description-only and the pack says so in its gaps.

fieldtypenotes
brand_kitmdThe genome: positioning, audience, voice, three messages, palette (extracted vs House Style, adopted/rejected with reasons), banned clichés.
og_image / brand_markpngHero visual and mark concept in the chosen style; palette drift from the declared style is measured.
launch_threadmdThe thread. Filler is caught by a deterministic phrase filter plus the critic's substitution test.
demo_scriptmdA 90-second beat sheet. Invented prices/user-counts are caught and replaced with explicit [YOUR PRICE HERE] placeholders.
landing_specmdSection-by-section landing copy, honestly framed.

Coverage gaps — the honesty contract

A failed provider never aborts a pack and never gets papered over. It degrades the pack and is recorded in coverageGaps — pack-level and per-artifact. The semantics:

fieldtypenotes
presencedisclosedA gap means something real: a source was down, a check couldn't apply, a model degraded. Absence means full coverage — and absence is the claim being made.
shapeID: detaile.g. MARKET_DATA_UNAVAILABLE, CRITIQUE_UNAVAILABLE, site:not-provided — machine-greppable prefix, human-readable rest.
gradingunaffectedGaps never inflate scores. An axis a critic couldn't assess is handled by the published rubric, not silently maxed.
surfaceeverywhereGaps ship in the tool response, on the public /k page, and in /stats ('coverage gaps disclosed' is a headline counter — we count our own imperfections in public).

House Styles

Ten versioned prompt systems with stable ids, each gated to the studios it suits (appliesTo): amethyst_editorial (warm ivory editorial collage, the safe default), gilded_noir (near-black + champagne gold, black-tie), jazz_age (art-deco geometry, gold on emerald), solstice_bloom (pressed-flower botanicals, sunny), paper_lantern (festival paper-cut, communal), sunprint (cyanotype blues, the REMEMBER default), porcelain_garden (blue-white chinaware, delicate keepsakes), terra_fresco (ochre plaster, travel & rustic), neon_reverie (luminous dark minimalism, launch-native), and atlas_ink (map-and-ledger, itinerary-native — never applied to launch brand work). Changing a style bumps its version; palettes are published in the manifest and PALETTE_DRIFT measures renders against them. Call oce_style_catalog (free) for all ten with real swatches and a real passing example, or see them in use in the gallery.