Record the adoption of the quality checks in RepoFoundry (MIL-003 task 4) #72
@@ -11,7 +11,7 @@ each document lives in *this* project and the next version to use.
|
||||
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
||||
| PP | Project Plan | docs/project-plan.md | 002 |
|
||||
| MIL | Milestone / Gateway | docs/milestones/*.md | 007 |
|
||||
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 039 |
|
||||
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 040 |
|
||||
| TM | Traceability Matrix | docs/sqa/traceability-matrix.md | 002 |
|
||||
| ADR | Architecture Decision Record | docs/adr/adr-NNNN-*.md | 0006 |
|
||||
| UCD | Use Case Diagram | docs/use-case-diagram.md | 002 |
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Target date 2026-11-14 confirmed on 2026-10-10 by S01 (stand-in for S05) | [ea06eaa] |
|
||||
| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Task 1 verified: workflow_call and uses work from the same repository, the same organization and another organization (RC-033) | [b3f006f] |
|
||||
| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Task 1 verified: workflow_call and uses work from the same repository, the same organization and another organization (RC-033) | [b3f006f] |
|
||||
| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Task 4 recorded: adoption in RepoFoundry, the shfmt .editorconfig gap and the other findings (RC-039) | [3b8681d] |
|
||||
|
||||
---
|
||||
|
||||
@@ -63,7 +63,7 @@ other repository, and a guide for reading its results.
|
||||
| 1 | Verify reusable workflow support | Check whether this Gitea version supports `workflow_call` and cross-repository `uses`; if not, choose a copied template instead. Verified on 2026-10-10: supported, so no copied template is needed (see Verification results). | No | Verification results |
|
||||
| 2 | Define the quality-check contract | Decide the inputs (language, tool versions, working directory) and what a pass and a fail mean. Start with Python and shell. This is something an engineer does, so it needs a use case first. | Yes | Use case candidate: run project quality checks |
|
||||
| 3 | Implement the reusable quality workflow | Create the workflow in the canonical location with pinned tool versions and least-privilege permissions. | No | |
|
||||
| 4 | Adopt it in one other repository | Onboard a real project and fix the gaps in the guide that appear. | No | |
|
||||
| 4 | Adopt it in one other repository | Onboard a real project and fix the gaps in the guide that appear. Adopted in `TirSystem-BashScript/RepoFoundry` (its PR 76, run passes); see Adoption in a real repository. | No | Adoption in a real repository |
|
||||
| 5 | Write the guide for reading results | Explain status checks, logs and typical fixes so an engineer can make a failing check pass. | No | |
|
||||
|
||||
## Verification results
|
||||
@@ -86,9 +86,39 @@ provider here is public), passing secrets to a called workflow
|
||||
branch. The quality checks of this milestone need none of the secrets; a
|
||||
private provider and tag references are for the release milestone (MIL-004).
|
||||
|
||||
## Adoption in a real repository (task 4)
|
||||
|
||||
On 2026-10-10 the workflow was run against `TirSystem-BashScript/RepoFoundry`
|
||||
(another organization; 39 shell files, no Python), first on a throwaway
|
||||
branch and then as a pull request, RepoFoundry PR 76.
|
||||
|
||||
| Run | `shellcheck` | `shfmt -d` | Python |
|
||||
| --- | --- | --- | --- |
|
||||
| Unchanged repository | PASS on all 39 files | FAIL on 10 files | skipped with a notice (no files) |
|
||||
| With `switch_case_indent = true` under `[*.sh]` in `.editorconfig` | PASS | PASS | skipped |
|
||||
| The pull request itself (`languages: shell`) | PASS | PASS | not selected |
|
||||
|
||||
What the run showed:
|
||||
|
||||
- **`shellcheck` needs no help** when the project has a `.shellcheckrc`: the
|
||||
workflow runs from the repository root, so the project's own settings
|
||||
(`external-sources`, `source-path=SCRIPTDIR`) applied and files that share
|
||||
variables across `src/lib/*.sh` produced no false positives.
|
||||
- **`shfmt` follows the project's style only through `.editorconfig`.** All ten
|
||||
differences were the indentation of `case` patterns: the workflow uses shfmt
|
||||
defaults, the project's own check is `shfmt -i 2 -ci`. One `.editorconfig`
|
||||
line fixed it without changing a script. A shell project with its own shfmt
|
||||
flags should expect a first formatting failure and express the flags there.
|
||||
- **Paths in the log are relative to `working-directory`**, and a caller must
|
||||
reference the workflow at `main` or a tag, not at a branch that is deleted
|
||||
when its pull request merges (the first trial lost its reference that way).
|
||||
|
||||
The task closes when RepoFoundry PR 76 is merged. The gaps above are for the
|
||||
guide of task 5 (issue #19).
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
[ADR-0002]: ../adr/adr-0002-s01-approves-as-stand-in.md
|
||||
[ea06eaa]: https://git.tirsystem.com/TirSystem/github-action/commit/ea06eaaa698247d20e4a8e2694d7acbb1de58b63
|
||||
[b3f006f]: https://git.tirsystem.com/TirSystem/github-action/commit/b3f006f7a482392189a46c324ad4f28c4c3a2d2a
|
||||
[3b8681d]: https://git.tirsystem.com/TirSystem/github-action/commit/3b8681d0236c669b794ffbba725433fff600a2d2
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Review Record: MIL-003 (adoption in RepoFoundry)
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | RC-039 |
|
||||
| CrossReference | [MIL-003], [QC-MIL-001] |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [3b8681d] |
|
||||
|
||||
---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [MIL-003]
|
||||
- Checklist used: [QC-MIL-001]
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | A concrete deliverable is defined for every gate | Pass | Unchanged. |
|
||||
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | Unchanged; criterion 2 (another repository runs the workflow and its status check appears on pull requests) is evidenced by the pull-request run in RepoFoundry. |
|
||||
| 3 | Dependencies on other milestones are explicitly mapped | Pass | Unchanged. |
|
||||
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Unchanged. |
|
||||
| 5 | Milestone owner and approving reviewer are identified | Pass | Unchanged. |
|
||||
| 6 | Milestone has a defined target date consistent with project constraints | Pass | Unchanged. |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go - all six criteria pass; the reviewed change records the adoption trial and its findings. The adoption is not complete until RepoFoundry PR 76 is merged, and the record says so. 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 |
|
||||
| --- | --- | --- |
|
||||
| Merge RepoFoundry PR 76 (its maintainers), then close issue #18 | S01 | 2026-11-14 |
|
||||
| Put the three findings (shfmt style in `.editorconfig`, relative paths, reference `main` or a tag) in the results guide (issue #19) | S01 | 2026-11-14 |
|
||||
|
||||
---
|
||||
|
||||
[MIL-003]: ../../milestones/mil-003-quality-checks.md
|
||||
[QC-MIL-001]: ../../../framework/qc/qc-milestones-gateways.md
|
||||
[3b8681d]: https://git.tirsystem.com/TirSystem/github-action/commit/3b8681d0236c669b794ffbba725433fff600a2d2
|
||||
@@ -4,13 +4,13 @@
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | TM-001 |
|
||||
| CrossReference | [BC-001], [SA-001], [PP-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006], [RC-001], [RC-002], [RC-003], [RC-004], [RC-005], [RC-006], [RC-007], [RC-008], [RC-009], [RC-010], [RC-011], [RC-012], [RC-013], [RC-014], [RC-015], [RC-016], [RC-017], [RC-018], [RC-019], [RC-020], [RC-021], [RC-022], [RC-023], [RC-024], [RC-025], [RC-026], [RC-027], [RC-028], [RC-029], [RC-030], [RC-031], [RC-032], [RC-033], [RC-034], [RC-035], [RC-036], [RC-037], [RC-038], [UC-005], [ADR-0005], [UCD-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [ADR-0001], [ADR-0002], [ADR-0003], [ADR-0004] |
|
||||
| CrossReference | [BC-001], [SA-001], [PP-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006], [RC-001], [RC-002], [RC-003], [RC-004], [RC-005], [RC-006], [RC-007], [RC-008], [RC-009], [RC-010], [RC-011], [RC-012], [RC-013], [RC-014], [RC-015], [RC-016], [RC-017], [RC-018], [RC-019], [RC-020], [RC-021], [RC-022], [RC-023], [RC-024], [RC-025], [RC-026], [RC-027], [RC-028], [RC-029], [RC-030], [RC-031], [RC-032], [RC-033], [RC-034], [RC-035], [RC-036], [RC-037], [RC-038], [RC-039], [UC-005], [ADR-0005], [UCD-001], [US-001], [UC-001], [UC-002], [UC-003], [UC-004], [ADR-0001], [ADR-0002], [ADR-0003], [ADR-0004] |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added RC-034 for MIL-004 | [616c5d2] |
|
||||
| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added UC-005, ADR-0005 and RC-035 to RC-038 | [385d2fb] |
|
||||
| 2026-10-10 | Deprecated | Jens Tirsvad Nielsen | S01 | Added UC-005, ADR-0005 and RC-035 to RC-038 | [385d2fb] |
|
||||
| 2026-10-10 | Accepted | Jens Tirsvad Nielsen | S01 | Added RC-039 for MIL-003 | [3b8681d] |
|
||||
|
||||
---
|
||||
|
||||
@@ -29,7 +29,7 @@ updated whenever an artifact instance is created or reviewed.
|
||||
| [PP-001] | PP | [BC-001], [SA-001] | [MIL-001], [MIL-002], [MIL-003], [MIL-004], [MIL-005], [MIL-006], [US-001] | [RC-002], [RC-009], [RC-015], [RC-017], [RC-025], [RC-032] |
|
||||
| [MIL-001] | MIL | [BC-001], [PP-001] | [MIL-002] | [RC-003], [RC-026] |
|
||||
| [MIL-002] | MIL | [BC-001], [PP-001], [MIL-001] | [MIL-003], [MIL-005] | [RC-005], [RC-027] |
|
||||
| [MIL-003] | MIL | [BC-001], [PP-001], [MIL-002] | [MIL-004] | [RC-006], [RC-028], [RC-033] |
|
||||
| [MIL-003] | MIL | [BC-001], [PP-001], [MIL-002] | [MIL-004] | [RC-006], [RC-028], [RC-033], [RC-039] |
|
||||
| [MIL-004] | MIL | [BC-001], [PP-001], [MIL-003] | - | [RC-007], [RC-029], [RC-034] |
|
||||
| [RC-001] | RC | [BC-001] | - | - |
|
||||
| [RC-002] | RC | [PP-001] | - | - |
|
||||
@@ -83,6 +83,7 @@ updated whenever an artifact instance is created or reviewed.
|
||||
| [RC-036] | RC | [US-001] | - | - |
|
||||
| [RC-037] | RC | [UC-005] | - | - |
|
||||
| [RC-038] | RC | [ADR-0005] | - | - |
|
||||
| [RC-039] | RC | [MIL-003] | - | - |
|
||||
|
||||
## Coverage Notes
|
||||
|
||||
@@ -150,7 +151,8 @@ updated whenever an artifact instance is created or reviewed.
|
||||
[RC-036]: ./reviews/rc-036-us-001.md
|
||||
[RC-037]: ./reviews/rc-037-uc-005.md
|
||||
[RC-038]: ./reviews/rc-038-adr-0005.md
|
||||
[RC-039]: ./reviews/rc-039-mil-003-adoption.md
|
||||
[UC-005]: ../uc-005/uc.md
|
||||
[ADR-0005]: ../adr/adr-0005-quality-check-contract.md
|
||||
[616c5d2]: https://git.tirsystem.com/TirSystem/github-action/commit/616c5d2e48f0d76399a6f78923891fc7f50c8e22
|
||||
[385d2fb]: https://git.tirsystem.com/TirSystem/github-action/commit/385d2fb7cb9be1fdc8fd3503d0af624fa38eafc7
|
||||
[3b8681d]: https://git.tirsystem.com/TirSystem/github-action/commit/3b8681d0236c669b794ffbba725433fff600a2d2
|
||||
|
||||
Reference in New Issue
Block a user