for builders
The Lab.
41 active decisions covering product thesis, character design, data architecture, URL structure, and discoverability. Everything on the human surface exists because of what lives here.
| ID | Decision |
|---|---|
| YYBW-001 | Product Thesis: From World Builder to Branching Life Observatory The conversation opened from a creature/world-builder framing inspired by games like Spore. That framing suggested a large permutation space of creature creation. |
| YYBW-002 | YY as Canonical Anchor and Narrative Thread The concept needed a central character. The strongest candidate became YY: your real stuffed squirrel, already established elsewhere as your first storytelling partner and the thread through your identity arc. |
| YYBW-003 | Roots Are Finite Story Arcs, Usually Monthly At first the system implicitly leaned toward an indefinitely long root timeline. That threatened clarity, onboarding, narrative shape, and compute discipline. |
| YYBW-004 | Branches Arise from Acquisitions and Drift Gradually The product needed a clean branching logic. Abstract trait mutation and weird parallel selves were initially interesting, but the cleaner form became: same YY, shared root, then a branch where YY acquires a skill, language, or capability. |
| YYBW-005 | Shared Event Stream: Real-World Anchored, Abstracted, Rewindable The event engine evolved from generic world events to a stronger idea: use real-world events as seeds, abstracted enough to remain universal but still tied to actual dates. |
| YYBW-006 | Two Parallel Labs: Measurement and Chaos The concept oscillated between two incompatible desires: 1. a clean system for measuring how a skill changes processing 2. a messy emergent world where branches or agents can collide Initially, crossings were exciting. |
| YYBW-007 | Daily Surface: SMS/Emoji, Mobile-First, Glanceable The surface evolved through several forms: rich narrative logs, SNES dialog, then SMS/emoji. Cost and usability converged on a mobile-first daily check-in product. |
| YYBW-008 | Bookmark a Branch, but Keep Root One Tap Away Once multiple branches exist, users need both attachment and reference. |
| YYBW-009 | Nightly Snapshot Build; Daytime Static Exploration Real-time simulation was attractive in theory but unnecessary and expensive. A better architecture emerged: every night the world advances, artifacts are generated and cached, and during the day users browse static pages and JSON. |
| YYBW-010 | Compute Strategy: Simulate Many Cheaply, Render Few Richly The project repeatedly confronted cost. The core insight was that pictures and clever text are the expensive parts, while structured state transitions are cheap. |
| YYBW-011 | Versioned Canon: YY Evolves Explicitly (v1.0, v1.1, ...) A major late insight: canonical YY may need refinement over time. Rather than silently changing YY, the system should version canon. Each root or branch can explicitly reference the YY version it used. |
| YYBW-012 | Immutable Append-Only Ledger as Database of Truth The project needed high-fidelity tracking. The strongest architectural model became financial: like orders and refunds, original facts remain immutable; later corrections or interpretations are added as ledger events. |
| YYBW-013 | Manifests and Projections: AI-Readable Control Surfaces over Immutable Truth Once the database of truth hardened, manifests regained a narrower but essential role. The system needs machine-readable summaries of what exists, what is stale, what depends on what, and what needs recomputation. |
| YYBW-014 | Cached Diffs for Branches and YY Versions The product depends on comparison. Recomputing diffs on every view would be wasteful. Since most branches and YY versions are mostly static once generated, branch diffs and YY version diffs can be computed once and cached. |
| YYBW-015 | Family-Shareable, Not Child-Directed: COPPA by Positioning and Architecture There was concern that the product might become too cutesy and accidentally look child-directed. At the same time, the intention is that peers might selectively share it with their families. |
| YYBW-016 | Distribution: YouTube Shorts, Daily Email, and Site as the Home of Depth The product is easier to show than explain. YouTube Shorts emerged as the best top-of-funnel: same event, multiple branches, quick outcome. Email emerged later as a Substack-like daily note for people following a branch. |
| YYBW-017 | Launch Infrastructure: Vercel Hobby + Neon Postgres, Static-First The desired early stack is cheap and simple: Vercel for static site delivery and Neon Postgres for source-of-truth storage. The early launch is explicitly hobby-scale and mostly static, with small branch counts and minimal media. |
| YYBW-018 | Future Hooks: Attestation, Hashing, and Optional Stronger Verification In the distant future, others may become involved and stronger verification or distributed attestation may matter. |
| YYBW-019 | yysworld Supersedes YY's World (Case-002) Entirely Case-002 (yymethod-home) defined YY's World as a kids-only, read-only, outward-only property: primary audience ages 8–14, COPPA compliance by structural elimination, no data collection of any kind, no monetization, dandelion seeds with no… |
| YYBW-020 | Public/Private Key Two-Layer Architecture The system has two layers: a public GitHub Pages layer (JSONL ledger, markdown ADRs, JSON projections, static site, visible pipeline) and a private Vercel + Neon layer (generation pipeline, database of truth, API routes, paid features). |
| YYBW-021 | URL Structure and Discoverability: SEO, AEO, GEO Priority Order As the site approaches launch, three distinct discoverability problems must be resolved: |
| YYBW-022 | URL Design: Human and Machine Layers YYBW-021 established a URL structure using `/root/2026-04/` as the path prefix for run data. That prefix has no character scoping — as soon as a second character exists, it becomes ambiguous. |
| YYBW-023 | Temporal Accuracy: Pipeline Timing, Run ID Scheme, and the Day-Zero Exception On 2026-04-14, the first real content was written for the April run. During setup, two questions surfaced simultaneously: |
| YYBW-024 | Time-Gated Publication Replaces Deploy-Gated story_day YYBW-023 established that `story_day` in a branch file records the number of days that have completed the full pipeline cycle, and that "the nightly pipeline is the sole authority for incrementing `story_day`." The implied model was: |
| YYBW-025 | ?preview as Permanent Two-Layer Access Pattern YYBW-020 established a public/private two-layer architecture: the private layer holds source truth; the public layer holds the rendered, gated surface. |
| YYBW-026 | species and Stat Names as Required Baseline Fields On 2026-04-14, two canon integrity failures were caught during first-content validation: |
| YYBW-027 | Authorship and Authority Emerge from Public, Append-Only Systems In public, multi-domain systems, authorship and authority are typically asserted through claims: branding, marketing, explicit declarations of ownership. |
| YYBW-028 | Narrative Artifacts Are Projections; Event Translation Requires Physical Presence On 2026-04-15, the Day 2 artifacts for both branches were reviewed before publication and found to be significantly below quality bar. This ADR documents what failed, why rewriting was permitted, and the rules it establishes going forward. |
| YYBW-029 | World Seed and YY Voice Register: Versioned Authoring Artifacts, Introduced at Next Root The April 2026 root was initialized without two things that significantly affect generation quality: |
| YYBW-030 | Drift Is Research: Governance Makes Drift Legible, Not Absent After designing the world seed and voice register (YYBW-029), the April 2026 run was framed as a gap — a root that started without proper governance. |
| ADR-031 | `source_event` as Required Event Field Event files (`runs/{rootId}/events/evt_*.json`) record the real-world inspiration for each story day in `authorial_note.real_world_inspiration` as a prose string. |
| ADR-032 | Character Name Anchoring: Prevents Branch-ID Drift into Narrative On Day 4 (2026-04-17), the alt1-on-time branch artifact and snapshot used "Alt1" and "alt1" as the character's name throughout the narrative and identity_notes. |
| ADR-033 | Pipeline-Go Corrections: Date Trust, Stat Completeness, Auto-Execution During the April 19, 2026 pipeline session, three failures required live correction by the author: |
| ADR-034 | Voice Versioning: Root-Scoped Narrative Register with Iterative Evolution On April 19, 2026, the author compared the pipeline's generated narrative prose against a reference bedtime story written in their own voice for YY. |
| YYBW-035 | Mid-Run Branch Forking Rules The first two branches in `root_2026_04_14` (main, alt1-on-time) were created at the start of the run and have content from day 1. |
| ADR-036 | World anchor surfacing on day pages Each day's artifact is anchored to a real-world event, translated into YY's physical world per ADR-028. |
| ADR-037 | Decision Schema Normalization and CLAUDE.md Compaction On 2026-04-27, a full audit of all pipeline-generated files in `runs/root_2026_04_14/` was performed across 125 JSON files. Two structural issues were found. A third observation was documented as intentional historical drift. |
| ADR-038 | World v2.0: Anthropomorphic Society, Northeast Anchor, Time-Compressed Seasonal Arc, Unique Inventory The April 2026 root ran without a world seed (ADR-029 §3). v1.0 was reconstructed retroactively. v1.1 was drafted as the first authored-before-a-root template but was never used by a live root. |
| ADR-039 | Voice v1 → v2 Transition: Promotion at the May 2026 Root Boundary ADR-034 established voice as root-scoped: a root declares `voice_version` once at creation and does not revise it mid-run. |
| ADR-040 | Data API for AI Agents: Manifest, Schemas, and Substrate Endpoints ADR-022 declared a two-layer URL design with a machine layer rooted at `/yy/data/`. Two endpoints from that declaration have been built: |
| ADR-041 | Pipeline v0.2: Minimal Context Loading and Carry-Forward Discipline Each `/pipeline-go` run was loading more files than the prior day: |
Museum
57 superseded ADRs preserved as scar records in the museum. Covers three eras: Case-002: YY's World (24), Pre-Manifest (19), Starter Kit v0.1 (14). Corrections are new events, not silent rewrites.