M10 — Studio workflow (media library, gamut compare, spot-read, projects)
Product layer on top of the shipped v2.0 wizard (Stages 0–5).
Does not replace disk artefact gating. Does not implement #16 TargetPrint.
Does not add a colour engine, display calibration, i18n, or in-process Argyll.
Issues
- #146 Media library (printer + paper + ink + .cal bound to a preset)
- #147 Gamut compare (second profile, references, click-inspect)
- #148 Spot-read console (bundled spotread; default_instrument consumer)
- #149 Project file (.icceryproj index over basename + cwd)
Implementation order (locked)
Single-implementer serial path — do not start N+1 product UI until N’s CI/mock gate is green:
- #146 Media library — foundation. Introduces
MediaRecipe+MediaLibraryStoreand the apply/capture path through existingPresetMapping. No M10 predecessors. Unlocks a stable recipe id for #149. - #148 Spot-read console — independent of #146 code, but second because a library “trust this paper/ink” workflow wants a live Lab check before
captureFromSession. Owns process idspotreadonly; must not land while Stage 3 chartread ids are being retouched in the same PR. - #147 Gamut compare — independent of #146/#148. Third so SceneKit layering does not collide with the new sidebar chrome from the library and spot-read sheets. Can be developed in parallel with #148 on a separate
feat/branch, but merge after #148 to keep sidebar/a11y diffs serial. - #149 Project file — last. Soft-depends on #146 (
mediaRecipeIDisdecodeIfPresent; project must still open if the library file is absent). Consumes verification history and live basename/cwd. Do not start until #146 apply/capture is onmilestone/m10-studio.
Hard dependency: #149 is blocked by #146.
Soft / merge-order only: #148 before #147 (sidebar contention), #148 after #146 (product narrative, not code).
Parallelism
- After #146 is on the milestone branch, #148 and #147 may proceed as sibling
feat/branches. - #149 stays serial behind #146.
- Do not stack all four in one PR.
Gates
- CI/mock: unit tests for the four stores/parsers + UI smoke (open library, load two .gam, one mock spot-read, open/save project).
- Hardware: bind a real printer+paper+.cal; compare two real .gam; one live spot-read; reopen a project after quit.
Branching
develop ← milestone/m10-studio ← feat/<issue>-<slug>
Feature PRs target milestone/m10-studio, not develop.
No due_on.
No due date
87% Completed