Session-end update 2026-05-04 03:30 UTC — Marathon continues: - Tier 1: 4/4 shipped ✅ — LT1 ✅, MOB ✅, ONB ✅, smoke gate refresh ✅ (
docs/operations/SOFT_LAUNCH_GATE_2026-05-04.md) - Tier 2: 5/7 shipped ✅ — ASSET ✅, PERF ✅, LT2 ✅ (authoring UI), LT3 ✅ (agent vocabulary — full vibe-coding loop now live), A11Y refresh ✅. Remaining: Aseprite manual recolor (Kevin DIY), sound design (Kevin curation). - Tier 3: 1/5 in flight — DISCOVER (showcase grid + stumble) running. - Settings polish (SET) running — Tier 1+ adjacent (brand identity + link list + integrations) - Aggregate uplift: craft 7.7 → ~8.8, fit 6.9 → ~8.5. - Endenza is shipping-ready. Tier 1 + foundational + tests + a11y all GREEN perSOFT_LAUNCH_GATE_2026-05-04.md. Remaining gates are Kevin-manual infra (Cloudflare, Stripe, uptime) + content (screenshot, social).
Update 2026-05-03 16:30 PDT: RN-α landed. Rebrand is end-to-end: Mac app (
/Applications/Endenza.app), codebase user-facing strings, PWA manifest, marketing copy, memory files (endenza_naming.md), localStorage migration shim withENSEMBLE_*→ENDENZA_*for 20+ keys. New tests:test_brand_strings.py+test_localstorage_migration.py. Out of scope (deferred): plugin dir rename,/tmp/ensemble-dashboard/build path, GitHub repo rename. The roadmap below is now the authoritative next-steps doc.Date: 2026-05-03 evening (this Maestro session, post Slot A/B/C/TC-α/stress-α/β/γ/RN-α merges) Bar: Apple quality across two axes — craft (engineering) × fit (does it match the user’s mental model and the v1.0 launch posture) Method: rate every visible surface, sequence improvements by visible-impact-per-effort, propose the next 4-5 warp directives
Kevin’s ask: “let’s do a quick polish ranking and plan for how we can keep improving the platform once this final warp lands”
1. Surface-by-surface polish ranking
Each surface rated on craft × fit, scale 1-10. ✅ = ready as-is. 🟡 = needs targeted polish. 🔴 = major gap.
Visitor-facing (the walkable canvas pillar)
| Surface | Craft | Fit | Status | Top gap |
|---|---|---|---|---|
Landing (/) |
7 | 6 | 🟡 | “rooms not lists” headline doesn’t yet show a room — hero is static |
Canvas walk (/canvas/<id>.html) |
7 | 5 | 🟡 | No moving things — feels like still life. Living-things plan addresses this. |
Showcase grid (/ensemble.html) |
8 | 7 | 🟡 | Empty in fixture mode; no real published canvases yet to showcase |
Pair (/pair.html) |
8 | 7 | ✅ | Working; could use a clearer “connected” celebration moment |
| Character Creator | 9 | 8 | ✅ | Just shipped 64×64 preview + walk cycle + body layer (Slot B); needs real Mana Seed body art (Aseprite pipeline, manual) |
| Mobile responsive | 6 | 5 | 🟡 | Haven’t dogfooded on mobile this session; assume gaps in canvas walk + Studio drag |
Maker-facing (the agent-controller pillar)
| Surface | Craft | Fit | Status | Top gap |
|---|---|---|---|---|
Terminal (/terminal.html) |
9 | 9 | ✅ | Just shipped — heartbeat + diagnostic errors + hydration + mode toggles + STATUS layout + resize/reorder. Strong. |
Dashboard (/dashboard.html) |
8 | 7 | 🟡 | Warp widget reconciliation just landed; widget catalog could be richer; “edit dashboard” mode is functional but not polished |
Studio (/studio.html) |
7 | 6 | 🟡 | Component palette works; no “living things” tab; agent chat lacks vocabulary for behaviors |
Settings (/settings.html) |
7 | 7 | 🟡 | Theme picker works; missing brand-management / link-management polish |
| Pair-this-browser flow | 8 | 7 | ✅ | Auth cascade fixed earlier this session; works |
Foundational
| Surface | Craft | Fit | Status | Top gap |
|---|---|---|---|---|
| Auth + BYOK | 9 | 8 | ✅ | Just unified on DASHBOARD_TOKEN; /byok/link confirmed working |
| Persistence (sprite/canvas/chat stores) | 9 | 8 | ✅ | Atomic writes + flock + 137 tests; CC dual-shape just landed |
| SSE streaming | 9 | 8 | ✅ | Backpressure + max-clients cap + zombie cleanup (warp γ from earlier) |
| Sprite engine | 8 | 7 | 🟡 | Pack-aware mode works; no animation for non-player sprites yet (living-things runtime needed) |
| Bundle + dashboard-generate | 8 | 7 | 🟡 | Works; ~6.5s wall-clock could be faster; perf-budget gating just landed |
Brand + positioning
| Surface | Craft | Fit | Status | Top gap |
|---|---|---|---|---|
| Wordmark + icon | 9 | 8 | ✅/🟡 | Single logo across themes shipped; Mac icons regen’d; codebase rebrand in flight |
| MANIFESTO + marketing copy | 7 | 6 | 🟡 | Will be partly rewritten by RN-α; tone could be sharper post-rebrand |
| Press kit | 7 | 7 | ✅ | Exists per memory; needs post-rebrand pass |
| Social proof / waitlist | 5 | 4 | 🔴 | No public-facing signup → no list to flip when launching |
Technical health
| Surface | Craft | Fit | Status | Top gap |
|---|---|---|---|---|
| Test suite | 8 | 7 | ✅ | 0 errors after stress-β; 3 pre-existing failures left (test-pollution patterns) |
| CI | 6 | 6 | 🟡 | Local-only; no GitHub Actions yet |
| Lint / formatter | 7 | 6 | 🟡 | shellcheck + ruff configured but ruff not installed locally; pre-commit hooks light |
| Smoke gate (per memory) | 7 | 7 | ✅ | Phase smoke checkpoints exist per memory; visitor-flow tests just stabilised |
Aggregate
- Craft 7.7 / 10 — most surfaces solid, mobile + asset depth pull the average down
- Fit 6.9 / 10 — vision is clear, but several “where’s the wow?” gaps (living things, mobile, social proof)
The session moved this from ~6.5/6.0 to ~7.7/6.9 — meaningful uplift. Next session should target 8.5/8.0.
2. The four-tier roadmap
Tier 1 — Ship-blocking polish (before public flip)
These are the gaps where a first-time visitor will say “this doesn’t feel done.” Do these in the next session(s).
-
Living-things Phase 1 — Pets + ambient NPCs in the canvas. One wandering chick changes the whole “is this thing alive?” vibe. Plan:
docs/decisions/LIVING_THINGS_PLAN_2026-05-03.md. 4 ACs, 1 Sonnet slot. -
Mobile responsive sweep — Walk the canvas + Studio drag + Terminal compose ALL on iPhone Safari. Identify breakpoints that look broken. ~3-5 ACs depending on findings.
-
Visitor onboarding flow polish — Signup → first canvas → showcase publish in <3 minutes. The path exists; the experience has rough edges. ~3 ACs.
-
Soft-launch smoke gate refresh — The 4 mandatory user-eyes-on checkpoints per memory. Verify each + document the current pass-state.
Tier 2 — High-leverage post-launch (first 2-4 weeks after flip)
These multiply the value of Tier 1 but aren’t strictly blocking.
-
Asset audit — Crawl Kevin’s purchased LimeZu + Mana Seed packs (likely in
~/Downloadsor~/Library). Bundle the worthy subset. Replaces the procedural body-layer placeholder with real art. ~2-3 ACs of audit + 1 of bundling. -
Aseprite recolor pipeline — Manual ~3-6h Kevin DIY (per
SESSION_HANDOFF.md§🟡). Real Mana Seed body sprites in 6 skin tones. -
Living-things Phase 2 (authoring) — Component palette gains “Living things” tab + behavior panel + path waypoint editor. ~4 ACs.
-
Living-things Phase 3 (agent vocabulary) — Studio agent learns to suggest pets/NPCs in chat. ~2-3 ACs.
-
Sound design pass — Replace 16 Freesound placeholder files with real audio. Curate, license, integrate. Manual + ~2 ACs of integration code.
-
A11y deep audit refresh — Last audit was 2026-05-02. With all the new resize/reorder/collapse features, re-audit. ~2-3 ACs.
-
Performance budget tightening — Now that perf-budget tests pass cleanly, add 2-3 new budgets (canvas walk frame rate, character-creator first-paint, terminal hydrate latency). ~2 ACs.
Tier 3 — Differentiator features (months 1-3 post-launch)
The “Endenza is unique because…” moves.
-
Living-things Phase 5 (L4 reactive + L5 dialogue) — NPCs turn to face the player, click-to-show-line. The “place feels alive” capstone before live AI.
-
Multi-canvas overworld scaffolding — v1.5 territory. The grid where you walk between creator canvases. Major work — separate planning doc needed.
-
Live presence — See other visitors as walking sprites in the same canvas. Pubsub via SSE; client-side smoothing.
-
Discovery / stumble — A “show me a random canvas” button. Crucial for the network effect to start before there’s a critical mass of search.
-
Pricing + checkout polish — Pro tier conversion flow. Right now exists per memory but needs end-to-end UX polish before driving traffic at it.
Tier 4 — Stretch / strategic (post v1.5)
-
Live AI creator-bots (Living-things L6) — NPCs backed by Claude prompts. The “Roblox for Claude” framing crystallises here. v2.
-
Theme store — Per VISION_REVISION_2026-04-30 v1.5 hint. User-installable themes beyond the 21 built-in.
-
Marketplace — Per the original “playground combining a personal Studio, a navigable multiplayer pixel world, setup sharing, theme store, and creator marketplace” pitch.
-
Mobile native app — PWA is fine for v1.0; native app store presence matters for distribution at scale.
3. Craft-debt ledger (small but worth tracking)
Not roadmap-tier but worth a sweep next time we’re idle:
plugins/endenza/directory rename →plugins/endenza/with import path updates (deferred from RN-α)ENSEMBLE_*localStorage one-cycle deprecation cleanup — once the migration shim has been live a few weeks, delete the old keysVISION_REVISION_*.mdhistorical banners — each historical doc gets a “decided 2026-XX-XX, brand was Ensemble at the time” header- Test pollution last 3 —
test_canvas_detail_endpoint_serves_public_canvas,test_studio_html_shrunk_below_threshold,test_no_api_key_*. Per stress-α report. - ruff install —
pip3 install --user ruffso the lint check inwarp_post_merge_verify.shactually runs - Stale
claude/warp-*branches — none right now (we cleaned up earlier today). Good. - Aseprite recolor pipeline manual — Kevin DIY 3-6h for real Mana Seed body sprites
- Freesound audio — 16 placeholder files
- Persistent CF tunnel — manual, Kevin owns the cloudflared rotation pain
- Repo rename —
KiwiMaddog2020/claude-ensemble→…/endenza(Kevin owns the GitHub remote)
4. Concrete next-warp candidates (ready to fire after RN-α lands)
Each is a directive I can write + fire as soon as you give the go.
Slot LT1 — Living-things Phase 1 (recommended first)
- Tier: Sonnet standard
- Wall-clock: ~45-60 min
- ACs: 4 (data model, runtime simulator, idle/wander/patrol behaviors, deterministic seed + reduced-motion + IntersectionObserver pause)
- Files:
bin/dashgen/canvas_store.py, NEWbin/dashgen/widgets/living_things_runtime.py, hook instudio_widgets_runtime.js - Dependency: RN-α merged (so file paths are post-rebrand)
Slot MOB — Mobile responsive sweep
- Tier: Sonnet standard
- Wall-clock: ~60-75 min (heavier visual work)
- ACs: 5 (audit each surface on iPhone breakpoint, fix Studio drag on touch, fix Terminal compose on landscape, fix canvas walk perf on mobile, regression test against existing breakpoints)
- Files: all
bin/dashgen/styles/responsive_*.py+ targeted patches across pages
Slot ONB — Onboarding flow polish
- Tier: Sonnet standard
- Wall-clock: ~45 min
- ACs: 3 (signup CTA polish, first-canvas hand-holding, showcase-publish celebration)
- Files:
bin/dashgen/pages/ensemble_body.py,studio_body.py, settings flow
Slot ASSET — Pack audit + bundle expansion
- Tier: Sonnet standard
- Wall-clock: ~75 min (file-system crawl + judgment calls + manifest updates)
- ACs: 3 (audit purchased packs in
~/Downloads/~/Library, propose subset to bundle with rationale, bundle + update credits) - Files:
bin/dashgen/static/packs/,/credits.html, manifests
Slot PERF — Performance budget tightening
- Tier: Sonnet standard
- Wall-clock: ~30 min
- ACs: 2 (define 3 new budgets — canvas-walk fps, CC first-paint, terminal hydrate latency; add tests)
- Files:
tests/test_perf_budget.py,bin/perf_audit.py
5. Recommended first-wave sequence
Once RN-α lands:
- Single fire: Slot LT1 (Living-things Phase 1) — biggest visible wow per minute of work. The canvas comes alive. ~45 min.
- Parallel pair: Slot MOB + Slot ASSET — both ~60-75 min, no file overlap (mobile = CSS / responsive; asset = packs/ + credits). Memory permitting (sudo purge between fires if tight).
- Single fire: Slot ONB — best done after LT1 lands so first-canvas onboarding can include the pet placement.
- Single fire: Slot PERF — lowest priority of these five; do it when you want.
Total: ~3-4 hours of warp wall-clock + Kevin’s review + merges. Could finish Tier 1 of the roadmap in one focused session.
6. Open decisions that affect the plan
- Repo rename — Kevin owns. When are you flipping
claude-ensemble→endenzaon GitHub? - Public flip date — what’s your gate? Living-things Phase 1 + mobile + onboarding shipped seems like the natural cut.
- Aseprite manual time — when do you want to block out the 3-6h to do real Mana Seed body sprites?
- Sound design — are you owning the curation of Freesound replacements, or do you want me to propose a search list + you approve?
- Living-things behavior tier — already locked at L0+L1+L2+L3 for v1.0 per
LIVING_THINGS_PLAN_2026-05-03.md. No re-decision needed.
End of roadmap. Next directive ready when RN-α lands.