commit d52ac63afeb2c2f0a6cb616525af41182864fa00 Author: Lucas Winther Date: Fri Oct 23 18:17:20 2026 +0200 docs: add approved spec and plan for timeline mockups Co-Authored-By: Claude Opus 5.5 diff --git a/docs/plans/001-timeline-mockups.md b/docs/plans/001-timeline-mockups.md new file mode 100644 index 0000000..41689c6 --- /dev/null +++ b/docs/plans/001-timeline-mockups.md @@ -0,0 +1,126 @@ +--- +status: in-progress +--- + +# EPIC Timeline — Repo bootstrap + 7 mockups Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** A Bun app, shipped as a Docker image, that serves an index page and 7 design-direction mockups. All of them share one sample dataset and carry fan-project credits. The repo is prepared for agents following the playbook. + +**Architecture:** `Bun.serve` with HTML-import routes. `bun build --target=bun` bundles the server and every page into `dist/`, and the Docker image runs `bun dist/server.js`. Each mockup is a self-contained folder under `src/mockups/NN-slug/` that imports the shared data, credits and audio modules. + +**Tech Stack:** Bun 1.3.x (runtime, bundler, test runner), TypeScript, three.js (mockups 06/07 only), `@fontsource/*` for self-hosted fonts, Docker `oven/bun:1.3`. + +**Spec:** `docs/specs/001-timeline-mockups.md` + +## Global Constraints + +- Every page (the index and all 7 mockups) shows the fan notice and the credit to **Jorge Rivera-Herrans**, both from `src/shared/credits.ts`. +- Mockups, not full pages. Target a desktop viewport of 1440×900. No routing, persistence, or mobile polish. +- Self-contained at runtime: no CDN scripts or fonts. Video slots are YouTube link cards. Songs may have an optional direct MP3. +- three.js only in `src/mockups/06-constellation/` and `src/mockups/07-sea-voyage/`. +- No framework (Vite, React, Next…). Use plain TypeScript and the DOM plus Bun's bundler. +- Sample data: Troy Saga (5 songs), Cyclops Saga (4 songs), and 1–2 later callback songs. Lyrics are placeholder lines. Facts that haven't been checked are marked `// TODO(verify)`. +- A mockup agent edits **only its own folder** `src/mockups/NN-slug/`. Shared files are fixed after Task 1. +- Commits use Conventional Commits and end with `Co-Authored-By: Claude Opus 5.5 `. + +## Review Focus + +1. **Song with no `audio`** (every sample song): the audio slot shows an empty state ("No audio yet"), never a broken `