Add the colour palette (MIL-001) #14

Merged
Tirsvad merged 4 commits from mil-001-colour-palette into main 2026-10-07 17:55:08 +02:00
Owner

Summary

Delivers MIL-001 Colour Palette: the code that builds the palette the painting phase draws with.

  • extract_palette reads the reference image with colorgram and returns its colours without white shades.
  • is_white_shade and remove_white_shades implement the white-shade filter (red, green and blue all at or above 240).
  • 18 tests pin the 239/240 boundary, check the filter and the extraction on synthetic images, and check the palette of the reference image against SC3.
  • pyproject.toml pins the toolchain (Python 3.13, colorgram.py 1.2.0) and configures ruff, mypy --strict and pytest.
  • The reference image is assets/20260524_132700.jpg.
  • The plan documents are included: Business Case, Stakeholder Analysis, Project Plan, MIL-001 and MIL-002, with review records RC-001 to RC-005 (all Go, self-review accepted by S01).

MIL-001 Go criteria

  1. colorgram and turtle import and a window opens: met.
  2. The palette has at least 2 colours: met (30).
  3. No colour with red, green and blue all at or above 240: met.
  4. Filter and palette tests pass: met (18 of 18).
  5. Code review record Go: met (RC-005, reviewed against QC-PY-001).

The formal gateway decision (planned for 2026-10-09) is S01's.

Issues

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6

## Summary Delivers MIL-001 Colour Palette: the code that builds the palette the painting phase draws with. - `extract_palette` reads the reference image with `colorgram` and returns its colours without white shades. - `is_white_shade` and `remove_white_shades` implement the white-shade filter (red, green and blue all at or above 240). - 18 tests pin the 239/240 boundary, check the filter and the extraction on synthetic images, and check the palette of the reference image against SC3. - `pyproject.toml` pins the toolchain (Python 3.13, `colorgram.py` 1.2.0) and configures `ruff`, `mypy --strict` and `pytest`. - The reference image is `assets/20260524_132700.jpg`. - The plan documents are included: Business Case, Stakeholder Analysis, Project Plan, MIL-001 and MIL-002, with review records RC-001 to RC-005 (all `Go`, self-review accepted by S01). ## MIL-001 Go criteria 1. `colorgram` and `turtle` import and a window opens: met. 2. The palette has at least 2 colours: met (30). 3. No colour with red, green and blue all at or above 240: met. 4. Filter and palette tests pass: met (18 of 18). 5. Code review record `Go`: met (RC-005, reviewed against QC-PY-001). The formal gateway decision (planned for 2026-10-09) is S01's. ## Issues Closes #1 Closes #2 Closes #3 Closes #4 Closes #5 Closes #6
Tirsvad added this to the MIL-001: Colour Palette milestone 2026-10-07 17:54:18 +02:00
Tirsvad added 4 commits 2026-10-07 17:54:19 +02:00
Mount the framework as a submodule at framework/ (v0.4.0), add AGENTS.md and
the installed skill copies for Codex CLI (.agents/skills) and Claude Code
(.claude/skills).
Add the Business Case (BC-001), Stakeholder Analysis (SA-001), Project Plan
(PP-001) and two milestones: MIL-001 Colour Palette and MIL-002 Spot Painting.
Record their reviews as RC-001 to RC-004 (all Go, self-review accepted by S01).

The PO language is English and the domain is IT. The milestones and their 13
tasks are synced as Gitea milestones 68 and 69 and issues #1 to #13.
MIL-001 tasks 1 to 6.

- Pin the toolchain and tool configuration in pyproject.toml: Python 3.13,
  colorgram.py 1.2.0, and ruff, mypy (strict) and pytest as dev tools.
- Add is_white_shade and remove_white_shades (threshold 240) with tests that
  pin the boundary at 239 and 240.
- Add extract_palette, which reads the reference image with colorgram and drops
  white shades, with tests on synthetic images and on the reference image.
- Add the reference image assets/20260524_132700.jpg and a note on it.
- Record the code review against QC-PY-001 as RC-005 (verdict Go).

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Task: MIL-001#6
Replace `pending` in the Version History of BC-001, SA-001, PP-001, MIL-001,
MIL-002 and RC-001 to RC-005 with links to the commits that introduced the rows.
Tirsvad merged commit e6e34aa7d2 into main 2026-10-07 17:55:08 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Tirsvad-Udemy-100-days-of-code/018-hirst-painting#14