CHANGELOG.md holds an [Unreleased] section with what the first release
v1.0.0 will contain, in the groups Breaking, Added, Changed and Fixed.
tools/changelog.py checks the convention of ADR-0006 (Unreleased first,
descending versions, dates, a Breaking entry needs a new major and a new major
needs one) and prints the notes of a release for the release page. The
release process guide uses both.
Task: MIL-004#2
Add the brief use case UC-006 (Release a Reusable Workflow), the use case in
UCD-001, stories US-001.11 to US-001.13 and ADR-0006: one version for the
repository with SemVer tags and a moving major tag, a release only from a
green commit with a changelog entry, consumers pin the major or an exact tag
and never main. Add the maintainers' checklist guides/release-process.md.
Review and accept them (RC-040 to RC-043), update TM-001 and the registry.
Task: MIL-004#1
tools/publish_wiki.py holds the 296 lines that were embedded in
publish-wiki.yml, unchanged in behaviour and messages. The scoped workflow
now checks out the repository that owns the wiki and TirSystem/github-action
at main, and runs the file (42 lines instead of 313). The tests import the
file, and a new test asserts that no workflow embeds Python. README and the
Home wiki page with its translations no longer mention embedded Python.
Verified live from TirSystem-BashScript/RepoFoundry.
Task: MIL-004#6
tools/sync_github_metadata.py holds the 221 lines that were embedded in
sync-github-metadata.yml, unchanged in behaviour and messages. The scoped
workflow now checks out TirSystem/github-action at main and runs the file
(33 lines instead of 230). The tests import the file instead of executing
the YAML. Verified live from TirSystem-BashScript/RepoFoundry with that
organisation's secrets.
Task: MIL-004#6
Explain how to call the shared quality-checks workflow, read a failed run,
fix the typical findings of ruff, mypy, shellcheck and shfmt, reproduce a
run locally and configure the tools through the project's own files,
including the shfmt .editorconfig route found in the RepoFoundry trial.
Add the QualityChecks wiki page with its Danish and Bahasa Malaysia
translations, update the capability row and teach build_wiki.py the page.
Task: MIL-003#5
Run against TirSystem-BashScript/RepoFoundry (39 shell files): shellcheck
passes with the project's .shellcheckrc, shfmt fails on 10 files only
because of the case indentation and passes after one .editorconfig line;
the pull request itself passes. Record the findings for the guide, review
the change (RC-039) and update TM-001. The adoption is complete when
RepoFoundry PR 76 is merged.
Task: MIL-003#4
quality-checks.yml implements the contract of ADR-0005: inputs for the
languages, the working directory and one pinned version per tool; ruff,
mypy --strict, shellcheck and shfmt installed from PyPI into a venv; every
tool runs and any failure fails the job; a language without files is skipped
with a notice. Offline tests run the shell steps with stub tools. Verified
live from another organisation with clean files, a seeded failure and an
empty language.
Task: MIL-003#3
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
The sync and publish-wiki scoped workflows embed 200 to 300 lines of Python
in their YAML. Add task 6 to move them to tools/ and run them from a
checkout of this repository, as verified from two organisations, with a
Go/No-Go criterion and O2 in the traceability. Review and accept the
amendment (RC-034) and update TM-001.
Verified on 2026-10-10 with throwaway branches (deleted afterwards):
workflow_call and uses run from the same repository, another repository of
the organisation and a repository of another organisation, so MIL-003 needs
no copied-template fallback. Not tested: a private provider, secrets passed
to a called workflow, and a tag reference. Review it (RC-033) and update
TM-001.
Task: MIL-003#1
S01, standing in for S05 (ADR-0002), approves the minimum Gitea and GitHub
token permissions, recorded with the evidence from the Gitea source and the
GitHub documentation; they are still not tested with a minimal token on the
instance. Confirm the target dates of MIL-001 to MIL-006 and PP-001 (RC-026
to RC-032), update TM-001 and regenerate the Credentials wiki page with its
translations.
Task: MIL-002#4
Add the use case diagram UCD-001, the user stories US-001 and the brief use
cases UC-001 to UC-004 (Synchronize Repository Metadata, Configure Workflow
Credentials, Onboard a Repository, Diagnose a Failed Workflow). Review and
accept them (RC-019 to RC-024) and the PP-001 row that records them
(RC-025), and update TM-001 and the registry.
Task: MIL-002#1
Gitea stores the title "Home da" as Home-da. The publisher compared title
strings, so a file named Home-da.md would have tried to create a page that
already exists. Identify a page by the address Gitea reports (sub_url),
treat a space and a hyphen as the same, and refuse two files that name one
page. Found while preparing the pilot in sqa-qc-checklists, whose wiki has
pages named with spaces.
Task: MIL-006#3
Describe the wiki/.publish marker and the prune word, the per-organisation
TOKEN_FOR_GITEA_WIKI without fallback, and the new messages in the
onboarding, credentials and troubleshooting guides and the README. Add the
capability row and regenerate the five English wiki pages with their Danish
and Bahasa Malaysia translations.
Task: MIL-006#5
Embed the publish script in .gitea/scoped_workflows/publish-wiki.yml and
remove the repository workflow and tools/publish_wiki.py. A repository
publishes only when wiki/.publish exists; the word prune in it is the only
thing that lets the workflow delete pages. The organisation's
TOKEN_FOR_GITEA_WIKI is used with no fallback. This repository opts in with
prune. Tests run the embedded script against a fake Gitea.
Task: MIL-006#2
Task: MIL-006#3
A repository opts in with wiki/.publish; the word prune in it is the only
thing that lets the workflow delete pages. The shared workflow uses the
organisation's TOKEN_FOR_GITEA_WIKI only. Review and accept it (RC-018),
update TM-001 and link the MIL-006 milestone in PP-001.
Add milestone MIL-006 with five tasks: a scoped publish-wiki workflow with
an opt-in rule, piloted in one other repository. Schedule it in PP-001.
The milestone is Proposed; no code starts before it is accepted.
The onboarding guide said delivery to other repositories was not verified.
On 2026-10-10 the sync workflow ran without a copy in repositories of four
organisations, so a repository needs no copy and each organisation needs
its own secrets. Regenerate the Onboarding wiki page and its translations.
Task: MIL-002#2