docs(roadmap): mark sub-project 2 done, sub-project 3 next #2
+17
-14
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user