# Session 0004.0 — Transcript > App: engineering > Start: 2026-06-05T12-37 (PST) > End: 2026-06-06T00-01 (PST) > Type: coding > Status: **FINALIZED** ## Launch prompt ``` Tangent: define best practices for a "Solution Design" (a combined business analyst + product + engineering spec) in the Engineering docs, and reference it in the engineering handbook. A Solution Design should contain: - Business Context - Problem Statement - Targeted Business Outcome(s) with success metrics - Business Use Cases — BDD format, business-centric (no product/technical detail), each with acceptance criteria (what does a user successfully completing that business scenario look like?) - Product Use Cases — BDD format, describe the UX (buttons, notifications, etc.), each linked to a Business Use Case where applicable - Wireframes — show the user experience; doesn't need to be polished, but UX components should be in approximately the right location - Technical Design — high-level architecture diagrams, and for each Product Use Case a sequence diagram + technical implementation details - Delivery Plan — overall approach/strategy, then a Slicing Plan (Slices -> completed Product Use Cases), plus anything else useful for execution Question to answer: "Am I missing anything?" ``` ## Plan Define a **Solution Design** standard (combined BA + product + engineering spec) in the engineering docs and reference it from the handbook. Decisions settled with operator (via AskUserQuestion): 1. **SD *is* the spec** (unify) — Solution Design is the canonical spec format; handbook §3's binding-contract content becomes its Technical Design lens, Delivery Plan absorbs the roadmap/slicing. Enrich §3 with a new §3.3. 2. **Dedicated guide + template + thin handbook section** — the full standard lives in `engineering/solution-design/GUIDE.md` + `TEMPLATE.md`; handbook §3.3 carries the load-bearing summary + a pointer (per §4.1 doc-leads-automation). 3. **Wireframes: describe canonically, generate on demand** — section 10 is a structured *UX Layout description* (the source of truth, git-native, diffable); wireframes are generated from it (Claude Design etc.) on demand, not committed. Mirrors §3.2 (spec leads) / §4.1 (doc leads automation). ## Pre-state Clean `main`, in sync with `origin/main`. Engineering registered as an app (`app.json`). Handbook (`README.md`) structured as numbered §1–§12 with an existing spec concept: §1 lifecycle (discovery → `SPEC.md` → `ROADMAP` → build), §2 discovery (prototype or BDD corpus), §3 "Write the first spec", §7 roadmap. No `solution-design/` dir; no `CLAUDE.md` in the repo. ## Arc 1. **Session gate / init.** Classified the opening prompt as a **coding** session (authoring committed docs in the engineering repo) — invoked `wgl-session-coding-init`, claimed session **0004** (no other sessions in flight). Verified clean pushed `main`. Installed the missing `CLAUDE.md` import stub (`@~/.claude/wiggleverse.md`) for future sessions. 2. **Brainstorming.** Explored the repo to ground the design. Key realization: the proposed "Solution Design" overlaps the handbook's *existing* lifecycle (discovery / `SPEC.md` / `ROADMAP`), so the load-bearing question wasn't "which sections" but "how does it relate to the existing spec concept." 3. **Answered "Am I missing anything?"** with a grouped gap analysis, flagging the Wiggleverse-specific additions tied to existing handbook rules: front matter/status & versioning (§3.1#5), stakeholders/personas, explicit scope/non-goals (§3.1#4), assumptions/constraints/deps, guardrail metrics, negative/edge BDD scenarios, a traceability matrix, **invariants** (§3.1#1), data model & interface contracts (§3.1#2), NFRs incl. the hard secrets rule (§6.3), key decisions/alternatives, testing strategy (§10.3), rollout/canary (§10), risks, and an open-questions/decisions log. 4. **Settled two structural forks via AskUserQuestion** — both → recommended: SD *is* the spec (unify); dedicated guide + template + thin handbook section. 5. **Operator pushback on wireframes.** Asked whether ASCII-in-markdown wireframes would actually succeed, or whether to describe UX and generate wireframes (e.g. Claude Design). Agreed the description should be canonical (git-native, diffable, the contract) and wireframes a generated rendering — consistent with §3.2/§4.1. Third AskUserQuestion settled it → **describe canonically, generate on demand, don't commit images.** 6. **Authored the deliverables** on `docs/solution-design-standard`: `solution-design/GUIDE.md` (full standard), `solution-design/TEMPLATE.md` (copy-to-start skeleton with worked BDD / Mermaid / UX Layout / table stubs), `README.md` §3.3 + TOC, and the `CLAUDE.md` stub. Verified fences/anchors. 7. **Landed it.** Committed, pushed. `gh pr create` was denied (gh targets GitHub, not the Gitea host); created the PR via the Gitea API helper (`gitea-api.sh`, Keychain token) → PR **#12**, mergeable. Merged (autonomous posture), synced local `main`, deleted the branch. ## Cut state - PR **#12** merged to `main` (`51b99d1`). `main` clean and synced. - New: `solution-design/GUIDE.md`, `solution-design/TEMPLATE.md`, `CLAUDE.md`. - Edited: `README.md` (§3.3 + TOC). - Stale local branches from prior sessions left untouched (`dev-env/v0.1`, `docs/retire-operator-cli-repo-role`, `session-0046/*`). ## Operator plate / follow-ups - **Optional:** add a one-line Solution Design pointer to the auto-loaded digest (`agent-context.md`), since a spec/discovery session won't otherwise learn the format automatically. Logged in memory as a possible follow-up. ## Deferred decisions _No low-confidence autonomous calls this session — the three structural decisions (SD-is-spec, guide+template placement, wireframe approach) were all made *with* the operator via AskUserQuestion, not deferred._