Plan project and set up Phase 1 skeleton
CI / test (push) Successful in 54s

Add the framework submodule and the accepted planning documents:
Business Case, Stakeholder Analysis, Project Plan, three milestones,
review records RC-001 to RC-006 and the traceability matrix.

Set up the project skeleton for MIL-001: pyproject.toml (Python
>=3.13, no runtime dependencies, pytest/ruff/mypy as dev extra),
 src/coffee_machine/constants.py, a constants consistency test,
 Doxyfile and a CI workflow that runs ruff, mypy and pytest.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
This commit is contained in:
2026-10-07 10:43:22 +08:00
parent 7c7c15ddf9
commit c24f41207f
22 changed files with 1362 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
# Review: Business Case BC-001
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-001 |
| CrossReference | [BC-001], [QC-BC-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [BC-001]
- Checklist used: [QC-BC-001]
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | ROI/Cost-Benefit analysis is quantitative, or where qualitative, is explicitly justified | Pass | Cost-Benefit Assessment now states it is qualitative because there is no revenue or budget to quantify (fixed during this review). |
| 2 | Risks are identified with documented impact and mitigation | Pass | Three risks, each with impact and mitigation. |
| 3 | Success criteria are measurable, stating explicit targets rather than vague aspirations | Pass | Five criteria with targets and measures (pytest exit code 0, 0 dependencies, 3+ topics). |
| 4 | Scope explicitly separates In Scope vs Out of Scope | Pass | `### In Scope` and `### Out of Scope` present. |
| 5 | Stakeholders are cross-referenced to Stakeholder Analysis IDs rather than re-described inline | Pass | Stakeholders table uses S01, S02, S03 only. |
| 6 | Methodology and quality-standard foundation are stated explicitly (e.g. ISO/IEC 25010, Larman) | Pass | ISO/IEC 25010:2023, the framework and the Python checklist are named. |
| 7 | Assumptions and constraints are explicit and clearly distinguished from one another | Pass | Separate sections; a target completion date was added to Constraints during this review. |
| 8 | Document supports executive decision-making with a clear, unambiguous recommendation | Pass | "Proceed" with a one-sentence rationale. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — all mandatory criteria pass. One defect (unjustified qualitative cost-benefit) and one gap (no schedule constraint for the milestones to check against) were fixed during the review.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Confirm the target date 2026-10-16 | S01 | 2026-10-09 |
---
[BC-001]: ../../business-case.md
[QC-BC-001]: ../../../framework/qc/qc-business-case.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
@@ -0,0 +1,68 @@
# Review: Stakeholder Analysis SA-001
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-002 |
| CrossReference | [SA-001], [QC-SA-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [SA-001]
- Checklist used: [QC-SA-001]
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | Power/Interest grid is filled for every stakeholder, with no gaps or unclassified entries | Pass | S01-S03 all have power, interest and quadrant. Levels for S02 and S03 are the drafter's classification, not given in the brief; S01 accepts them. |
| 2 | Each stakeholder is assigned a unique, stable ID | Pass | S01, S02, S03. |
| 3 | Roles and organizational context are defined with explicit Power and Interest levels, not just narrative description | Pass | Role, organization, HIGH/LOW levels in the table. |
| 4 | Communication needs (channel, frequency, deliverable type) are mapped to project phases or milestones | Pass | Communication table maps to MIL-001 to MIL-003. |
| 5 | Conflicting stakeholder interests are identified with documented mitigation or resolution strategies | Pass | One conflict (assignment names versus Python style) with a mitigation. |
| 6 | Stakeholder concerns are explicitly traced to Business Case objectives | Pass | Business Goal Alignment table cites BC-001 objectives 1-4. |
| 7 | Primary concerns are expressed in both business language and a recognized quality-attribute mapping (e.g. FURPS+) | Pass | FURPS+ mapping table. |
| 8 | Document is understandable and navigable by non-technical stakeholders reviewing their own entry | Pass | Plain table, one row per stakeholder. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Professional English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — all criteria pass.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Confirm the Power/Interest levels of S02 and S03 | S01 | 2026-10-09 |
---
[SA-001]: ../../stakeholder-analysis.md
[QC-SA-001]: ../../../framework/qc/qc-stakeholder-analysis.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
+66
View File
@@ -0,0 +1,66 @@
# Review: Milestone MIL-001
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-003 |
| CrossReference | [MIL-001], [QC-MIL-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [MIL-001]
- Checklist used: [QC-MIL-001]
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | A concrete deliverable is defined for every gate | Pass | Skeleton, `pyproject.toml`, Doxyfile and CI workflow. |
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Criteria are checkable by a command or a file check (pytest, pip install, doxygen, `.gitignore`). |
| 3 | Dependencies on other milestones are explicitly mapped | Pass | None (first phase), stated. |
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Objectives 2 and 3, success criteria 1 and 2. |
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01. Same person; accepted for a solo project (see Action Items). |
| 6 | Milestone has a defined target date consistent with project constraints | Pass | 2026-10-09, on or before the BC-001 completion constraint 2026-10-16. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — all criteria pass.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Confirm that S01 as both owner and approving reviewer is acceptable | S01 | 2026-10-09 |
---
[MIL-001]: ../../milestones/mil-001-setup.md
[QC-MIL-001]: ../../../framework/qc/qc-milestones-gateways.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
+66
View File
@@ -0,0 +1,66 @@
# Review: Milestone MIL-002
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-004 |
| CrossReference | [MIL-002], [QC-MIL-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [MIL-002]
- Checklist used: [QC-MIL-001]
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | A concrete deliverable is defined for every gate | Pass | The four modules and the tests. |
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Criteria are checkable by a command or a file check (pytest, pip install, doxygen, `.gitignore`). |
| 3 | Dependencies on other milestones are explicitly mapped | Pass | Depends on MIL-001, with reason. |
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Objectives 1 and 2, success criteria 1 and 4. |
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01. Same person; accepted for a solo project (see Action Items). |
| 6 | Milestone has a defined target date consistent with project constraints | Pass | 2026-10-14, on or before the BC-001 completion constraint 2026-10-16. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — all criteria pass.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Confirm that S01 as both owner and approving reviewer is acceptable | S01 | 2026-10-09 |
---
[MIL-002]: ../../milestones/mil-002-core.md
[QC-MIL-001]: ../../../framework/qc/qc-milestones-gateways.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
+66
View File
@@ -0,0 +1,66 @@
# Review: Milestone MIL-003
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-005 |
| CrossReference | [MIL-003], [QC-MIL-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [MIL-003]
- Checklist used: [QC-MIL-001]
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | A concrete deliverable is defined for every gate | Pass | README, Doxygen docs, repository description and topics. |
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Criteria are checkable by a command or a file check (pytest, pip install, doxygen, `.gitignore`). |
| 3 | Dependencies on other milestones are explicitly mapped | Pass | Depends on MIL-002, with reason. |
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Objectives 3 and 4, success criteria 3 and 5. |
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01. Same person; accepted for a solo project (see Action Items). |
| 6 | Milestone has a defined target date consistent with project constraints | Pass | 2026-10-16, on or before the BC-001 completion constraint 2026-10-16. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — all criteria pass.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Confirm that S01 as both owner and approving reviewer is acceptable | S01 | 2026-10-09 |
---
[MIL-003]: ../../milestones/mil-003-docs.md
[QC-MIL-001]: ../../../framework/qc/qc-milestones-gateways.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
+62
View File
@@ -0,0 +1,62 @@
# Review: Project Plan PP-001
## Metadata
| Key | Value |
| --- | --- |
| ID | RC-006 |
| CrossReference | [PP-001], [QC-LANG-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Review record | pending |
---
## Artifact Under Review
- Instance reviewed: [PP-001]
- Checklist used: none (PP has no QC checklist; see the first row of Checklist Results)
- Scope: full review
- Language and domain: en / it
- Language reviewer: none
## Checklist Results
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | Plan schedules every phase against the Business Case constraint (no QC checklist exists for PP; validated against BC-001 and the Go/No-Go criteria of each MIL) | Pass | Three phases end on or before 2026-10-16; each MIL target date equals the plan's decision date. |
| 2 | Every required PP section is present, in order | Pass | Purpose through Open Issues are present. |
| 3 | Gateway Schedule lists every MIL document | Pass | MIL-001, MIL-002, MIL-003. |
## Language and Domain Results
Checklist: [QC-LANG-001].
| # | Criterion | Status | Evidence/Notes |
| --- | --- | --- | --- |
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | `Language | en`, `Domain | it`. |
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry's domain list. |
| 3 | The content (prose and table cells) is written in the stated language | Pass | All prose and table cells are English. |
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English as the registry states. |
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | No dictionary (`DICT`) exists yet; terms (Menu, CoffeeMaker, MoneyMachine, drink, resource) are the assignment's own and used consistently. |
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Verified by reading the file. |
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No twin file in `docs/`. |
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | N-A | First accepted version; no language change. |
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 reads English and works in the IT domain; S01 asked for this review and acceptance in chat. |
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | PO, FURPS+, CI, PP, MIL are defined by the framework; PO is spelled out in the Stakeholder Analysis. |
## Overall Verdict
Go — validated against the Business Case and the milestones; the plan is accepted by S01 as Product Owner.
## Action Items
| Action | Owner | Due |
| --- | --- | --- |
| Fill the `Milestone` column after `sync-project.sh --apply` | S01 | 2026-10-09 |
---
[PP-001]: ../../project-plan.md
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
+48
View File
@@ -0,0 +1,48 @@
# Traceability Matrix
## Metadata
| Key | Value |
| --- | --- |
| ID | TM-001 |
| CrossReference | [BC-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Proposed | Jens Tirsvad Nielsen | S01 | Initial version | pending |
---
## Purpose
Tracks backward and forward links between artifact instances so that traceability is measurable. A row is added or updated whenever an artifact instance is created or reviewed.
## Traceability Table
| Artifact Instance | Type | Language | Domain | Upstream (Backward Link) | Downstream (Forward Link) | Last Reviewed (RC-ID) |
| --- | --- | --- | --- | --- | --- | --- |
| [BC-001] | Business Case | en | it | - | [SA-001], [PP-001] | [RC-001] |
| [SA-001] | Stakeholder Analysis | en | it | [BC-001] | [PP-001] | [RC-002] |
| [PP-001] | Project Plan | en | it | [BC-001], [SA-001] | [MIL-001], [MIL-002], [MIL-003] | [RC-006] |
| [MIL-001] | Milestone | en | it | [BC-001], [PP-001] | - | [RC-003] |
| [MIL-002] | Milestone | en | it | [BC-001], [PP-001] | - | [RC-004] |
| [MIL-003] | Milestone | en | it | [BC-001], [PP-001] | - | [RC-005] |
## Coverage Notes
No KPI, use case, user story or design artifact exists yet: the course supplies the design, so the tasks in the milestones are plain tasks. `-` in Upstream means foundational; in Downstream it means nothing is built on it yet.
---
[BC-001]: ../business-case.md
[SA-001]: ../stakeholder-analysis.md
[PP-001]: ../project-plan.md
[MIL-001]: ../milestones/mil-001-setup.md
[MIL-002]: ../milestones/mil-002-core.md
[MIL-003]: ../milestones/mil-003-docs.md
[RC-001]: reviews/rc-001-business-case.md
[RC-002]: reviews/rc-002-stakeholder-analysis.md
[RC-003]: reviews/rc-003-mil-001.md
[RC-004]: reviews/rc-004-mil-002.md
[RC-005]: reviews/rc-005-mil-003.md
[RC-006]: reviews/rc-006-project-plan.md