Files
github-action/docs/sqa/reviews/rc-038-adr-0005.md
T
Tirsvad 385d2fb7cb Define and accept the contract of the shared quality-check workflow
Add the brief use case UC-005 (Run Project Quality Checks), the actor and
use case in UCD-001, stories US-001.09 and US-001.10, and ADR-0005 with the
inputs, the pinned tools and what a pass and a fail mean, based on a probe
of the runner image. Review and accept them (RC-035 to RC-038) and update
TM-001 and the registry.

Task: MIL-003#2
2026-10-10 16:06:30 +08:00

3.0 KiB

Review Record: ADR-0005 (quality checks)

Metadata

Key Value
ID RC-038
CrossReference ADR-0005, QC-ADR-001

Version History

Date Status Author Reviewer Change Commit
2026-10-10 Accepted Jens Tirsvad Nielsen S01 Initial version pending

Artifact Under Review

Checklist Results

# Criterion Status Evidence/Notes
1 The ID (ADR-NNNN, 4-digit) matches the filename number and is unique and sequential Pass ADR-0005 in adr-0005-quality-check-contract.md.
2 Context states the problem, the forces (cost, risk, constraints) and the options evaluated Pass Facts measured on the runner on 2026-10-10 and four options.
3 At least two options were considered, or the absence of alternatives is justified Pass Four options.
4 Decision is stated in one or two unhedged sentences and matches one of the evaluated options Pass Two sentences; option 1.
5 Consequences list both Positive and Negative outcomes Pass Three positive and five negative after the fix.
6 Quality-attribute impacts (performance, security, portability, etc.) are named where the decision affects them Pass Finding fixed during this review: the security impact (tools downloaded from PyPI on every run, versions pinned but not hash-pinned, runner runs as root) was not named. It is now a negative consequence; performance and reliability were already named.
7 Affected Artifacts are listed as links, and each is also in CrossReference Pass MIL-003, UC-005, US-001 and ADR-0004 are linked and cited.
8 Status changes are recorded as new Version History rows with a Change summary and Commit link; retained rows are never rewritten Pass The earlier row is kept and only its status changed.
9 A superseded or deprecated ADR names its successor, and the successor links back N-A Nothing is superseded.
10 Written in business or technical language of the domain, with no unexplained abbreviations Pass PyPI, venv and the tools are named where used.
11 Status is one of Proposed, Accepted, Rejected, Deprecated or Superseded by ADR-NNNN, and every Version History row uses only these Pass Deprecated and Accepted only.

Overall Verdict

Go - all applicable criteria pass; the one finding (criterion 6) was fixed during the review. The contract unlocks tasks 3 to 5 of MIL-003 under the plan-first gate. S01 gave the Go in chat on 2026-10-10, standing in for the other reviewers as ADR-0002 records; there is no independent reader.

Action Items

Action Owner Due
Decide whether to hash-pin the tool packages before consumers outside this organization rely on the workflow (MIL-004) S05 2026-11-28