From 50ce6c9dfa850c08b4be2639500a891067d88bd6 Mon Sep 17 00:00:00 2001 From: Ben Stull Date: Thu, 4 Jun 2026 07:33:32 -0700 Subject: [PATCH] docs(roadmap): mark sub-project 2 done, sub-project 3 next MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sub-project 2 (ingest & tagging / review tools) shipped via PR #1 this session. Updates the status table and §2 detail, reconciles resolved decisions (first-ship archives, media-root layout, ffmpeg-only opt-in dominant_color), and marks §3 (Pi player) as next. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/ROADMAP.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 0fa72d9..d5a3c8b 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -14,8 +14,8 @@ Design reference: [`specs/2026-06-04-human-experience-filter-design.md`](./super | # | Sub-project | Status | Unblocks | |---|---------------------------------|---------------|----------| | 1 | Catalog & Selection Core | ✅ Done | everything | -| 2 | Ingest & Tagging / Review tools | ⏳ Next | a real library | -| 3 | Player Runtime (Pi) | ◻ Not started | the room runs | +| 2 | Ingest & Tagging / Review tools | ✅ Done | a real library | +| 3 | Player Runtime (Pi) | ⏳ Next | the room runs | | 4 | Arduino Firmware (control panel)| ◻ Not started | real knobs | | 5 | ~~Procedural Side Walls~~ | ❌ Dropped | — (superseded) | @@ -59,11 +59,12 @@ Plan: [`2026-06-04-catalog-and-selection-core.md`](./superpowers/plans/2026-06-0 --- -## 2. Ingest & Tagging / Review tools ⏳ (next) +## 2. Ingest & Tagging / Review tools ✅ -**Goal:** turn the manual catalog into the assisted *draft-then-review* flow from -the spec, and actually populate the library from public-domain sources. This is -where the content hunt lives. +**Done — merged to `main` via PR #1 (session 0002, 2026-06-04); 111 tests pass +(2 opt-in real-ffprobe tests skip when the binaries are absent).** The `tools/` +package turns the manual catalog into the assisted *draft-then-review* flow from +the spec, and can populate the library from public-domain sources. **Delivers (`tools/`):** @@ -82,17 +83,19 @@ where the content hunt lives. Spec: [`2026-06-04-ingest-tagging-review-tools.md`](./superpowers/specs/2026-06-04-ingest-tagging-review-tools.md). **Depends on:** sub-project 1 (`hef.catalog`). -**Done when:** you can run ingest against a source, get `proposed` records, review -them to `approved`, and `load_catalog` validates the result — covered by tests on -the mechanical-tagging and review state transitions. -**External deps:** `ffmpeg`/`ffprobe`, an image lib for dominant color, per-archive -download access. -**Open decisions:** which archives ship first; download/caching layout for media -files on the drive. +**Done when:** ✅ you can run ingest against a source, get `proposed` records, review +them to `approved`, and `load_catalog`/`validate_catalog` validate the result — +covered by tests on the mechanical-tagging and review state transitions. +**External deps:** `ffmpeg`/`ffprobe` only (no image lib — `dominant_color`, when +requested, is ffmpeg-only and opt-in), per-archive download access. +**Decisions settled:** first-ship archives = **LibriVox, NASA, Internet Archive** +(Musopen/FMA/Freesound deferred stubs); media under a `--media-root` with +`file_path` stored relative to it (spec §6.3); only additive `hef.catalog` change +was `validate_catalog` + `index_by_id`. --- -## 3. Player Runtime (Pi) ◻ +## 3. Player Runtime (Pi) ⏳ (next) **Goal:** the thing that makes the room run — read the controls, pick media, play it across the single panoramic projector. -- 2.39.5