Files
iccery-v2-mac/BUILD-PLAN.md
gronodandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 4c2863e52c Add bootstrap docs: AGENTS.md, BUILD-PLAN.md, LICENCE.md, vendored spec (docs/), brand assets
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-08 17:36:50 +01:00

2.6 KiB
Raw Permalink Blame History

BUILD-PLAN.md — ICCery v2 Mac

Spec snapshot: docs/. Source of tickets: Gitea milestones M1M6 + Later.

Sprint rule

Do not start milestone N+1 implementation until milestone N CI/mock gate is green. Hardware gates block release of that sprint, not filing, and not starting coding of the next sprint's non-dependent tickets.

Milestone map

Id Name Issues CI/mock gate Hardware gate
M1 Foundation & process core 16 App launches; wizard shell; ProcessManager + runCaptured; artefact gating tests; settings persist + dialog N/A
M2 Target generation & layout 711 targen → .ti1; printtarg → .ti2+TIFF; manifest+gallery; resume; presets N/A
M3 Unmanaged printing (lp) 1215, 17 parsers; build_lp_args goldens (both AP_*); cancel → nil Preferences shows driver PDE; unmanaged page on Epson or Canon
M4 Measurement 1822 chartread.mock; 39+ classifier fixtures; ΔE₀₀; snapshot/average Detect real instrument; one strip or XY through Done → .ti3
M5 Profile / verify / install 2327 colprof → .icc; profcheck parse; atomic history; install into temp dir Full .ti1.icc; profile visible in ColorSync Utility
M6 Gamut, Stage 0, CGATS, release 2832 .gam fixtures; cal argv; CGATS round-trip; signed sidecars; dmgbuild Stage 0 on a real printer; gamut of a real profile
Later Quartz / TargetPrint 16 ICCeryPrintKit standalone + seam test 1:1 on paper vs TIFF

Issue 16 is not an M3 or M6 exit gate.

Branch taxonomy

flowchart LR
  main[main]
  develop[develop]
  m1["milestone/m1-foundation"]
  m2["milestone/m2-targets"]
  feat["feat/7-targen-argv"]
  main --> develop
  develop --> m1
  develop --> m2
  m2 --> feat

Quoted node labels are required (v0.8.5 #80).

Command surface (parity with v0.8.5, native names)

Process: spawn, sendStdin, kill, killAll, resolveBinary, runCaptured. Files: dedicated picker per purpose; readTiffPreviewPng; parseTi2Header. Wizard: verifyStageArtefacts, getProfilePath, snapshotTi3, promoteTi3. Runners: runTargen, runPrinttarg, runChartread, runAverage, runColprof, runProfcheck, extractGamut, detectInstruments. Cal: generateCalibrationTarget, computeCalibrationCurves, applyCalibration, parseCalFile, library + project state. Print: getPrinters, getPrinterCapabilities, showPrinterProperties, printTargetNative. Install / quality / settings / CGATS: same semantics as docs/25-rewrite-notes.md host command list.