Plan the visible colours phase: MIL-003 and the Project Plan revision
Add milestone MIL-003 Visible Colours (due 2026-10-10): a contrast measure and a faint-colour filter in the palette extraction, with their tests, a real run that rechecks SC1 to SC8, and the code review. Five Go criteria and six plain technical tasks, no use cases. Revise PP-001: the MIL-003 gateway in the schedule and the Gantt chart, the new scope item, the dependency on MIL-001 and MIL-002, and a plan risk. Accepted by S01 in chat. Record the review of MIL-003 as RC-008 (verdict Go, terms and Tasks wording confirmed by S01).
This commit is contained in:
@@ -14,8 +14,8 @@ document of a type. `Primary File` may contain a glob (e.g.
|
|||||||
| BC | Business Case | docs/business-case.md | 002 |
|
| BC | Business Case | docs/business-case.md | 002 |
|
||||||
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
||||||
| PP | Project Plan | docs/project-plan.md | 002 |
|
| PP | Project Plan | docs/project-plan.md | 002 |
|
||||||
| MIL | Milestone / Gateway | docs/milestones/*.md | 003 |
|
| MIL | Milestone / Gateway | docs/milestones/*.md | 004 |
|
||||||
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 008 |
|
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 009 |
|
||||||
|
|
||||||
## Languages
|
## Languages
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,85 @@
|
|||||||
|
# MIL-003: Visible Colours
|
||||||
|
|
||||||
|
## Metadata
|
||||||
|
| Key | Value |
|
||||||
|
| --- | --- |
|
||||||
|
| ID | MIL-003 |
|
||||||
|
| CrossReference | [BC-001] |
|
||||||
|
| Language | en |
|
||||||
|
| Domain | it |
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
| Date | Status | Author | Reviewer | Change | Commit |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | pending |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This gate decides whether the palette keeps only colours that stand out from
|
||||||
|
the white background, so that every dot of the painting is clearly visible
|
||||||
|
(objective O6 of the Business Case). The palette must contain no colour whose
|
||||||
|
contrast with white is below 2.0, and the painting must still meet every
|
||||||
|
earlier criterion.
|
||||||
|
|
||||||
|
## Deliverable
|
||||||
|
|
||||||
|
A contrast measure and a faint-colour filter in the program's source file under
|
||||||
|
`src/`, applied when the palette is extracted, together with their tests and
|
||||||
|
one real run that shows the painting drawn from the filtered palette.
|
||||||
|
|
||||||
|
## Go / No-Go Criteria
|
||||||
|
|
||||||
|
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | The contrast measure gives 1.0 for white and 21.0 for black, and the filter keeps a colour only when its contrast with white is 2.0 or more (SC8) | The tests of the measure and the filter pass | Any of those tests fails |
|
||||||
|
| 2 | The palette of the reference image has no colour with a contrast below 2.0, still has at least 2 colours, and still has no white shade (SC8, SC3) | The printed palette with the contrast of every colour meets all three | A colour below 2.0, fewer than 2 colours, or a white shade |
|
||||||
|
| 3 | The earlier behaviour is unchanged: all tests pass, and `ruff` and `mypy --strict` are clean | All tests pass and both tools report no problem | A failing test or a reported problem |
|
||||||
|
| 4 | A real run still draws the painting in 30 seconds or less, with 100 dots, no trail and no turtle, and the window stays open until a click (SC1, SC5, SC6) | A timed run and a captured picture show all of it, and every dot is clearly visible | Any of them fails |
|
||||||
|
| 5 | The phase code has a review record against `qc-programming-python` with verdict `Go` (SC7) | `RC-*` verdict `Go` | `Go-with-conditions` or `No-Go`, or no record |
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
| Depends on | Reason |
|
||||||
|
| --- | --- |
|
||||||
|
| MIL-001 | The filter is applied inside the palette function that phase delivered, beside its white-shade filter |
|
||||||
|
| MIL-002 | The painting is drawn again with the filtered palette, and its tests must keep passing |
|
||||||
|
|
||||||
|
## Traceability
|
||||||
|
|
||||||
|
| Business Case objective / KPI / user story | Reference |
|
||||||
|
| --- | --- |
|
||||||
|
| O6: every dot clearly visible, contrast with white of 2.0 or more | [BC-001]; criteria 1, 2 and 4, SC8 |
|
||||||
|
| O2: palette without white shades | [BC-001]; criterion 2, SC3 (still holds) |
|
||||||
|
| O1, O4: the painting and its clean presentation | [BC-001]; criteria 3 and 4, SC1, SC5 and SC6 |
|
||||||
|
| O5: delivery through the framework, code reviewed against `qc-programming-python` | [BC-001]; criterion 5, SC7 |
|
||||||
|
|
||||||
|
No use case or user story applies: every task is a technical step, so the
|
||||||
|
Tasks column "Needs its own Use Case/User Story?" says `No` throughout.
|
||||||
|
|
||||||
|
## Ownership
|
||||||
|
|
||||||
|
| Role | Stakeholder ID (SA) |
|
||||||
|
| --- | --- |
|
||||||
|
| Owner | S01 |
|
||||||
|
| Approving reviewer | S01 |
|
||||||
|
|
||||||
|
## Target Date
|
||||||
|
|
||||||
|
2026-10-10 — inside the one-week limit of [BC-001] (2026-10-07 to 2026-10-14), and leaves four days of slack.
|
||||||
|
|
||||||
|
## Tasks
|
||||||
|
|
||||||
|
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| 1 | Add the contrast measure | Add a function that returns the contrast ratio of a colour against white, as the Web Content Accessibility Guidelines (WCAG) 2.x define it from relative luminance: 1.0 for white and 21.0 for black. It is the measure that objective O6 and criterion SC8 of the Business Case rest on. | No | |
|
||||||
|
| 2 | Add the faint-colour filter | Add a named constant for the limit, 2.0, and a function that drops every colour whose contrast with white is below it, keeping the order of the rest. It sits beside the white-shade filter, which stays as it is, so SC3 keeps its own check. | No | |
|
||||||
|
| 3 | Add tests for the measure and the filter | Add tests under `tests/` with known values (white 1.0, black 21.0, a mid grey) and with the boundary: a colour just below 2.0 is dropped and one just above is kept. They pin the limit before the real image is involved, as the white-shade tests do for 240. | No | |
|
||||||
|
| 4 | Apply the filter when the palette is extracted | Make `extract_palette` apply the faint-colour filter after the white-shade filter, update its tests, and add one that checks the palette of the reference image: no colour below 2.0 and at least 2 colours. Print the palette with each contrast; the measurement on 2026-10-08 predicts 22 colours. | No | |
|
||||||
|
| 5 | Check the painting again with a real run | Run `main` on a real window, time it and capture the picture: 100 dots in 10 rows of 10, no trail, no turtle cursor, the window open until a click, and every dot clearly visible on the white background. This rechecks SC1 to SC8 together. | No | |
|
||||||
|
| 6 | Review the phase code against qc-programming-python | Check the code of this phase against `framework/qc/qc-programming-python.md` and record the result as an `RC-*`; a `Go` verdict is Go criterion 5 (SC7). | No | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[BC-001]: ../business-case.md
|
||||||
+22
-12
@@ -4,31 +4,32 @@
|
|||||||
| Key | Value |
|
| Key | Value |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| ID | PP-001 |
|
| ID | PP-001 |
|
||||||
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002] |
|
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003] |
|
||||||
| Language | en |
|
| Language | en |
|
||||||
| Domain | it |
|
| Domain | it |
|
||||||
|
|
||||||
## Version History
|
## Version History
|
||||||
| Date | Status | Author | Reviewer | Change | Commit |
|
| Date | Status | Author | Reviewer | Change | Commit |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- |
|
||||||
| 2026-10-07 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [b823d1f] |
|
| 2026-10-08 | Deprecated | Jens Tirsvad Nielsen | S01 | Recorded the Go decisions of MIL-001 and MIL-002<br>Closed the reference-image open issue | [a6b17d3] |
|
||||||
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Recorded the Go decisions of MIL-001 and MIL-002<br>Closed the reference-image open issue | [a6b17d3] |
|
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Added gateway MIL-003 Visible Colours: schedule, timeline, scope coverage, dependency and a plan risk | pending |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
This plan schedules the two phases of the Hirst painting project, the colour
|
This plan schedules the three phases of the Hirst painting project, the colour
|
||||||
palette and the spot painting, inside the one-week limit that [BC-001] sets
|
palette, the spot painting and the visible colours, inside the one-week limit
|
||||||
(2026-10-07 to 2026-10-14). Each phase is a gateway with its own milestone
|
that [BC-001] sets (2026-10-07 to 2026-10-14). Each phase is a gateway with its
|
||||||
document, and each gateway ends with a Go/No-Go decision by S01.
|
own milestone document, and each gateway ends with a Go/No-Go decision by S01.
|
||||||
|
|
||||||
## Planning Assumptions
|
## Planning Assumptions
|
||||||
|
|
||||||
- Week 1 starts 2026-10-07; the plan ends by 2026-10-14, per the Business Case assumption confirmed by S01.
|
- Week 1 starts 2026-10-07; the plan ends by 2026-10-14, per the Business Case assumption confirmed by S01.
|
||||||
- The baseline documents ([BC-001], [SA-001] and their review records) are finished on 2026-10-07, before the first phase starts.
|
- The baseline documents ([BC-001], [SA-001] and their review records) are finished on 2026-10-07, before the first phase starts.
|
||||||
- Phase length: two to five days, because the work is one small script. The palette phase is shorter because it is the smaller of the two.
|
- Phase length: two to five days, because the work is one small script. The palette phase is shorter because it is the smaller of the two.
|
||||||
- S01 owns both phases and takes both Go/No-Go decisions; S01 is the only stakeholder in [SA-001], so communication follows the review gates in that document.
|
- S01 owns every phase and takes every Go/No-Go decision; S01 is the only stakeholder in [SA-001], so communication follows the review gates in that document.
|
||||||
|
- [MIL-003] was added on 2026-10-08, after [MIL-001] and [MIL-002] had been decided Go, to meet objective O6 of [BC-001]; it runs from 2026-10-08 to 2026-10-10, inside the one-week limit.
|
||||||
- No user stories exist: the program has no user interaction beyond the exit click, so the Stories column is empty.
|
- No user stories exist: the program has no user interaction beyond the exit click, so the Stories column is empty.
|
||||||
|
|
||||||
## Gateway Schedule
|
## Gateway Schedule
|
||||||
@@ -37,6 +38,7 @@ document, and each gateway ends with a Go/No-Go decision by S01.
|
|||||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||||
| Colour palette | [MIL-001] | 2026-10-07 to 2026-10-09 | 2026-10-09 | S01 | none | Palette function that returns the reference image's colours without white shades | [MIL-001 milestone] |
|
| Colour palette | [MIL-001] | 2026-10-07 to 2026-10-09 | 2026-10-09 | S01 | none | Palette function that returns the reference image's colours without white shades | [MIL-001 milestone] |
|
||||||
| Spot painting | [MIL-002] | 2026-10-10 to 2026-10-14 | 2026-10-14 | S01 | none | Program that draws the 10 by 10 painting and meets SC1 to SC7 of [BC-001] | [MIL-002 milestone] |
|
| Spot painting | [MIL-002] | 2026-10-10 to 2026-10-14 | 2026-10-14 | S01 | none | Program that draws the 10 by 10 painting and meets SC1 to SC7 of [BC-001] | [MIL-002 milestone] |
|
||||||
|
| Visible colours | [MIL-003] | 2026-10-08 to 2026-10-10 | 2026-10-10 | S01 | none | Palette without faint colours: every colour has a contrast of 2.0 or more with white (O6, SC8 of [BC-001]) | |
|
||||||
|
|
||||||
```plantuml
|
```plantuml
|
||||||
@startgantt
|
@startgantt
|
||||||
@@ -45,6 +47,8 @@ Project starts 2026-10-07
|
|||||||
[Colour palette Go/No-Go] happens 2026-10-09
|
[Colour palette Go/No-Go] happens 2026-10-09
|
||||||
[Spot painting] starts 2026-10-10 and ends 2026-10-14
|
[Spot painting] starts 2026-10-10 and ends 2026-10-14
|
||||||
[Spot painting Go/No-Go] happens 2026-10-14
|
[Spot painting Go/No-Go] happens 2026-10-14
|
||||||
|
[Visible colours] starts 2026-10-08 and ends 2026-10-10
|
||||||
|
[Visible colours Go/No-Go] happens 2026-10-10
|
||||||
@endgantt
|
@endgantt
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -54,20 +58,25 @@ Project starts 2026-10-07
|
|||||||
| --- | --- |
|
| --- | --- |
|
||||||
| One Python program using `turtle`, `random` and `colorgram` | [MIL-001] (`colorgram` part), [MIL-002] (`turtle` and `random` part) |
|
| One Python program using `turtle`, `random` and `colorgram` | [MIL-001] (`colorgram` part), [MIL-002] (`turtle` and `random` part) |
|
||||||
| Palette extracted from one reference image, white shades removed | [MIL-001] |
|
| Palette extracted from one reference image, white shades removed | [MIL-001] |
|
||||||
|
| Removal of faint colours from the palette: contrast with white below 2.0 | [MIL-003] |
|
||||||
| Drawing the 10 by 10 dot grid: size, spacing, row change, heading | [MIL-002] |
|
| Drawing the 10 by 10 dot grid: size, spacing, row change, heading | [MIL-002] |
|
||||||
| Screen handling: `exitonclick`, hidden turtle, pen up, drawing speed | [MIL-002] |
|
| Screen handling: `exitonclick`, hidden turtle, pen up, drawing speed | [MIL-002] |
|
||||||
| Framework documents and review records for the plan-first workflow | Finished before the first gateway ([BC-001], [SA-001], this plan, [MIL-001], [MIL-002] and their reviews); the review of each phase's code is a task in that phase |
|
| Framework documents and review records for the plan-first workflow | Finished before each gateway ([BC-001], [SA-001], this plan, the milestone and their reviews); the review of each phase's code is a task in that phase |
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
```
|
```
|
||||||
Baseline documents → [MIL-001] Colour palette → [MIL-002] Spot painting
|
Baseline documents → [MIL-001] Colour palette → [MIL-002] Spot painting → [MIL-003] Visible colours
|
||||||
```
|
```
|
||||||
|
|
||||||
[MIL-002] needs the palette function from [MIL-001]. A No-Go on [MIL-001] moves
|
[MIL-002] needs the palette function from [MIL-001]. A No-Go on [MIL-001] moves
|
||||||
the start of [MIL-002] by the days needed to rework and re-review; the
|
the start of [MIL-002] by the days needed to rework and re-review; the
|
||||||
one-week limit then has no slack, so S01 decides whether to extend it.
|
one-week limit then has no slack, so S01 decides whether to extend it.
|
||||||
|
|
||||||
|
[MIL-003] extends the palette function of [MIL-001] and redraws the painting of
|
||||||
|
[MIL-002]; both were decided Go on 2026-10-08, so nothing blocks it. A No-Go on
|
||||||
|
[MIL-003] leaves the accepted program as it is, so the earlier gateways stand.
|
||||||
|
|
||||||
## Plan Risks
|
## Plan Risks
|
||||||
|
|
||||||
| Risk | Impact | Mitigation |
|
| Risk | Impact | Mitigation |
|
||||||
@@ -75,12 +84,13 @@ one-week limit then has no slack, so S01 decides whether to extend it.
|
|||||||
| The reference image is not supplied before the palette phase starts | [MIL-001] cannot start its extraction task; the window of two to three days is lost | The tasks that do not need the image (toolchain check, white filter and its tests) come first; S01 decides on another image if this one stays unavailable |
|
| The reference image is not supplied before the palette phase starts | [MIL-001] cannot start its extraction task; the window of two to three days is lost | The tasks that do not need the image (toolchain check, white filter and its tests) come first; S01 decides on another image if this one stays unavailable |
|
||||||
| A No-Go on the palette phase | [MIL-002] starts late and the one-week limit is missed | The palette phase is the smaller one and ends 2026-10-09, leaving five days for the painting phase |
|
| A No-Go on the palette phase | [MIL-002] starts late and the one-week limit is missed | The palette phase is the smaller one and ends 2026-10-09, leaving five days for the painting phase |
|
||||||
| Review effort is large compared with the code | Time goes to documents instead of the program | Two phases, plain tasks, no use cases or design artifacts, as set out in [BC-001] |
|
| Review effort is large compared with the code | Time goes to documents instead of the program | Two phases, plain tasks, no use cases or design artifacts, as set out in [BC-001] |
|
||||||
|
| The faint-colour filter changes code that [MIL-001] and [MIL-002] already delivered | An earlier test or criterion, such as SC3, could break | [MIL-003] keeps the white-shade filter and its tests untouched and adds the contrast filter beside it; criterion 3 of [MIL-003] requires every earlier test to pass |
|
||||||
| The Project Plan has no quality checklist | The plan is accepted on S01's judgement alone | S01 checks the plan against the one-week limit of [BC-001] and the Go/No-Go criteria of both milestones |
|
| The Project Plan has no quality checklist | The plan is accepted on S01's judgement alone | S01 checks the plan against the one-week limit of [BC-001] and the Go/No-Go criteria of both milestones |
|
||||||
|
|
||||||
## Open Issues
|
## Open Issues
|
||||||
|
|
||||||
- **Reference image:** resolved. S01 supplied `assets/20260524_132700.jpg` on 2026-10-07, which completed task 4 of [MIL-001].
|
- **Reference image:** resolved. S01 supplied `assets/20260524_132700.jpg` on 2026-10-07, which completed task 4 of [MIL-001].
|
||||||
- **Project Plan review:** the Project Plan has no quality checklist yet, so it is `Accepted` when S01 says so in chat (done on 2026-10-07, and again on 2026-10-08 for the gateway decisions); no review record is written for it.
|
- **Project Plan review:** the Project Plan has no quality checklist yet, so it is `Accepted` when S01 says so in chat (done on 2026-10-07, and again on 2026-10-08 for the gateway decisions and for MIL-003); no review record is written for it.
|
||||||
- **Milestone links:** `sync-project.sh --apply` ran on 2026-10-07 and created the two Milestones and issues #1 to #13 on the git host; the Milestone column links to them.
|
- **Milestone links:** `sync-project.sh --apply` ran on 2026-10-07 and created the two Milestones and issues #1 to #13 on the git host; the Milestone column links to them.
|
||||||
|
|
||||||
## Gateway Decisions
|
## Gateway Decisions
|
||||||
@@ -100,9 +110,9 @@ Both decisions came before the planned dates because every Go criterion was alre
|
|||||||
[SA-001]: ./stakeholder-analysis.md
|
[SA-001]: ./stakeholder-analysis.md
|
||||||
[MIL-001]: ./milestones/mil-001-palette.md
|
[MIL-001]: ./milestones/mil-001-palette.md
|
||||||
[MIL-002]: ./milestones/mil-002-painting.md
|
[MIL-002]: ./milestones/mil-002-painting.md
|
||||||
|
[MIL-003]: ./milestones/mil-003-visible-colours.md
|
||||||
[MIL-001 milestone]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/milestone/68
|
[MIL-001 milestone]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/milestone/68
|
||||||
[MIL-002 milestone]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/milestone/69
|
[MIL-002 milestone]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/milestone/69
|
||||||
[PR 14]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/pulls/14
|
[PR 14]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/pulls/14
|
||||||
[PR 16]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/pulls/16
|
[PR 16]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/pulls/16
|
||||||
[b823d1f]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/commit/b823d1f405ebac6b0198605edd9d802518529725
|
|
||||||
[a6b17d3]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/commit/a6b17d30bc0778b7f80c57bfd22a505df5fe9ee1
|
[a6b17d3]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/018-hirst-painting/commit/a6b17d30bc0778b7f80c57bfd22a505df5fe9ee1
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
# Review Record: Milestone MIL-003
|
||||||
|
|
||||||
|
## Metadata
|
||||||
|
| Key | Value |
|
||||||
|
| --- | --- |
|
||||||
|
| ID | RC-008 |
|
||||||
|
| CrossReference | [MIL-003], [BC-001], [QC-MIL-001], [QC-LANG-001] |
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
| Date | Status | Author | Reviewer | Change | Commit |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version (draft prepared by the assistant for S01 to confirm)<br>Terms confirmed by S01, verdict `Go` | pending |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Artifact Under Review
|
||||||
|
|
||||||
|
- Instance reviewed: [MIL-003]
|
||||||
|
- Checklist used: [QC-MIL-001], together with [QC-LANG-001] because the milestone is written in the PO language
|
||||||
|
- Scope: full review
|
||||||
|
- Language and domain: en / it (the artifact's Metadata rows)
|
||||||
|
- Language reviewer: none. S01 reads English and knows the IT domain. S01 is also the author; S01 accepted a documented self-review on 2026-10-07 (see the review record of BC-001, Action Item 1)
|
||||||
|
|
||||||
|
**Status of this record:** final. The assistant read the milestone against
|
||||||
|
every criterion and recorded what it found; S01 confirmed the open point on
|
||||||
|
2026-10-08 and the verdict is `Go`.
|
||||||
|
|
||||||
|
## Checklist Results
|
||||||
|
|
||||||
|
| # | Criterion | Status | Evidence/Notes |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | A concrete deliverable is defined for every gate | Pass | Deliverable: a contrast measure and a faint-colour filter in the source file under `src/`, applied when the palette is extracted, with their tests and one real run that shows the painting. It is a tangible output, not a date |
|
||||||
|
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Five criteria, each with a Go and a No-Go column and a check that can be run: the measure's values and the filter's limit by tests, the printed palette with every contrast, all tests and both tools, a timed run with a captured picture, and the review record |
|
||||||
|
| 3 | Dependencies on other milestones are explicitly mapped | Pass | Dependencies table names MIL-001 (the filter is applied inside its palette function) and MIL-002 (the painting is redrawn and its tests must keep passing), each with its reason; both were decided Go on 2026-10-08 |
|
||||||
|
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability table maps O6 (criteria 1, 2 and 4, SC8), O2 (criterion 2, SC3), O1 and O4 (criteria 3 and 4, SC1, SC5 and SC6) and O5 (criterion 5, SC7) of [BC-001]; O6 and SC8 are in the Business Case revision accepted with RC-007 |
|
||||||
|
| 5 | Milestone owner and approving reviewer are identified | Pass | Ownership table gives S01 for both; the shared identity is the accepted self-review |
|
||||||
|
| 6 | Milestone has a defined target date consistent with project constraints | Pass | 2026-10-10, inside the one-week limit of [BC-001] (2026-10-07 to 2026-10-14) and in agreement with the Project Plan, leaving four days of slack |
|
||||||
|
|
||||||
|
## Language and Domain Results
|
||||||
|
|
||||||
|
| # | Criterion | Status | Evidence/Notes |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | The `Language` row says `en` and the `Domain` row says `it`; `check-languages.sh --list` reports both |
|
||||||
|
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is a BCP 47 code; `it` is in the registry's domain list ("Software and IT") |
|
||||||
|
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English; tool names are established technical terms |
|
||||||
|
| 4 | The register matches the one the registry gives for the artifact type | Pass | Registry gives IT Executive English for MIL. Purpose, Deliverable and the Go/No-Go table state decisions and checks. The Tasks table is more technical (function names, `ruff`, `mypy --strict`) because the milestone reference requires each summary to be understood as an Issue without opening the file; S01 confirmed the same reading for MIL-001 and MIL-002 on 2026-10-07 |
|
||||||
|
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | S01 confirmed that no dictionary is needed. The terms *faint colour*, *contrast* and *palette* match [BC-001] as revised and confirmed with RC-007, and *white shade* keeps its meaning from SC3. The new compound names *contrast measure* and *faint-colour filter* are used in the same form throughout |
|
||||||
|
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Headings follow the MIL reference exactly |
|
||||||
|
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | Only `docs/milestones/mil-003-visible-colours.md` exists |
|
||||||
|
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First version; there is no previous accepted version |
|
||||||
|
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 confirmed on 2026-10-08 that the domain terms are used correctly, including the new compound names *contrast measure* and *faint-colour filter* (Action Item 1). S01 is also the author; the self-review was accepted on 2026-10-07 |
|
||||||
|
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | WCAG is spelled out at its first use, in task 1 ("Web Content Accessibility Guidelines (WCAG) 2.x"); O1 to O6, SC1 to SC8 are defined in [BC-001] and cited with it; RC is the project's review-record prefix |
|
||||||
|
|
||||||
|
## Overall Verdict
|
||||||
|
|
||||||
|
Go — every criterion of [QC-MIL-001] and of [QC-LANG-001] passes (criterion 8 of [QC-LANG-001] is N-A for a first version). S01 accepted the documented self-review and confirmed on 2026-10-08 that the domain terms are used correctly and that the technical wording of the Tasks table is acceptable. The action item is closed. The milestone may now be synced to the git host and its tasks may start (plan-first gate).
|
||||||
|
|
||||||
|
## Action Items
|
||||||
|
|
||||||
|
| # | Action | Owner | Due |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | Confirm that the domain terms are used correctly, including *contrast measure* and *faint-colour filter* (QC-LANG-001 criterion 9), and that the technical wording of the Tasks table is acceptable in a milestone of register IT Executive English. **Closed 2026-10-08:** S01 confirmed both points | S01 | 2026-10-09 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[MIL-003]: ../../milestones/mil-003-visible-colours.md
|
||||||
|
[BC-001]: ../../business-case.md
|
||||||
|
[QC-MIL-001]: ../../../framework/qc/qc-milestones-gateways.md
|
||||||
|
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
|
||||||
Reference in New Issue
Block a user