mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 19:56:53 +00:00
Cosmos, Quick Setup and Credits follow from meta/services.yml, categories.yml and galaxy_info.author, yet 279 role READMEs carried a copy that went stale whenever the metadata moved and nobody re-ran make docs. The documentation build now runs the generators itself, against its own scratch checkout, and the committed READMEs keep only the prose a person writes. utils.cache.PROJECT_ROOT derives from the module's location, so putting the checkout first on PYTHONPATH makes the generator operate on the scratch tree. i18n.py and builder.py add it; the one remaining coupling, a relative_to over PROJECT_ROOT in a log line, is gone. CI extracted the "### Production" block from the committed README with awk. Stripping the section made guide_deployable() return "" for every role, which selects no deploy row and turns nothing red: a fail-open regression. It now asks _is_role_invokable, which matches the old condition exactly (178 roles either way, both difference sets empty), and cli/build/docs/readme/production.py renders the block for the two guide scripts. All 178 renders are byte-identical to what HEAD served, and both scripts' extraction pipelines produce identical output for a web app, a service and a desktop role. test_readme.py inverts: the three sections are now a hard failure in a committed README. readme_md.md documents what each is derived from. Removed: the docs, cosmos, readme-generate, readme-index and readme-check targets, the five aliases pointing at them, and docs from make quality. Verified by running generate_commands() in series against a copy of the checkout: every command exits 0, no README is left without Cosmos or Credits, and exactly the 178 invokable roles get a Quick Setup. The ansible_roles step needs pandoc, which only the docs image carries, so that one link of the chain is unexercised here; it is unchanged by this commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
GitHub Workflow Helpers 🔧
This directory holds the shell helpers that GitHub Actions workflows under .github/workflows/ call. Helpers are grouped by responsibility into subfolders so each workflow file pulls only from the clusters it actually needs.
Subfolders 🗂️
| Subfolder | Responsibility |
|---|---|
| runner/ | Host-runner hygiene around image builds and deploys (disk, swap, Docker daemon, diagnostics). |
| cancel/ | Cancellation of in-progress workflow runs on PR-close and branch-delete events. |
| cleanup/ | Scheduled repository maintenance that prunes stale GitHub resources. |
| resolve/ | Derivation of structured workflow inputs and outputs from repository state. |
| sync/ | Ref synchronization before workflow jobs derive CI scope from git history. |
| update/ | The scheduled 🔄 Update versions pipeline (version bumps and PR open/refresh). |
| i18n/ | Catalog extraction and machine translation for the per-language runners of 🌐 Translate catalogs. |
| release/ | Release-time gates that decide whether a tagged commit may be released. |
A new helper MUST live in the subfolder that matches its responsibility. New responsibilities MAY motivate a new subfolder, but MUST NOT flatten back into the top level.
For the workflow catalog see workflows.md. For the repository Make target index see make.md.