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
A working document for the native readers of Danish and Bahasa Malaysia
(MIL-005 task 5): page list with links, ten checks per page, the judgement
calls to look at first, a findings table and an outcome table.
Add review record RC-015, remove JSON from the credential failures of UC
candidate 2 and the answered MIL-001 items from Open Issues, accept PP-001
and update TM-001.
The sync workflow reads secrets.PAT_FOR_GITHUB as clear text and
parse_github_token and parse_gitea_token only check that the value is not
empty. No secret is JSON any more; the wiki publisher follows. Update the
tests, the guides, the README, PP-001 UC candidate 2 and the wiki pages with
their Danish and Bahasa Malaysia translations.
Task: MIL-002#5
ADR-0002: an artifact approved by S01 counts as approved for the other
named reviewers, with the stand-in recorded. ADR-0003: the wiki is published
with a separate TOKEN_FOR_GITEA_WIKI, dot-named titles work. Add review
records RC-013 and RC-014 and update TM-001.
When Gitea answers 401, add the token's length and likely storage mistakes
(masked text, NAME=value, quotes, whitespace) to the message, without any
character of the token, so a wrongly stored secret can be recognised from
the log.
Task: MIL-005#8
The Publish wiki workflow now reads secrets.TOKEN_FOR_GITEA_WIKI ||
secrets.TOKEN_FOR_GITEA, so the existing token can publish the wiki when it
has write:repository. Update the missing-token message, the credentials and
troubleshooting guides, the README, the tests and the affected English
wiki pages with their Danish and Bahasa Malaysia translations.
Task: MIL-005#8