Repository navigation
📝 docs: restructure README into catalog and reference pages - #54
Merged
Merged
Conversation
gaborbernat
force-pushed
the
docs-restructure
branch
from
November 6, 2026 16:56
9203e8a to
1ab788c
Compare
The README had grown to ~1500 lines of reference material in one file. It now holds a catalog of every reusable workflow and Action, a quick start with the typical caller files, and the pinning policy. Reference material moves to docs/ with one page per area, plus a mermaid diagram of the release flow. Inputs and behaviour were checked against the YAML. Fixes include: open-maintenance-pr exposes no number output, the patch artifact name is free, release-notes needs a release-notes lock group, commit-and-tag always pushes main, cooled-prek takes no cutoff inputs and reads hook exceptions only from pyproject.toml, and API retries are three attempts in total. scorecard.yaml and previously unlisted inputs are documented.
Add a troubleshooting page keyed by error messages, per-workflow caller permissions in the catalog, links to each breaking-changes section, a list of what stays in the caller, and a test that fails when a workflow or Action input, output, or secret is missing from its docs section. Review fixes: document the ./ self-reference with its zizmor ignore for repositories that run actionlint, which rejects $/; replace the public-only Scorecard claim with the action's own terms and its workflow restrictions; describe assembly installing only the changelog formatter hook, per the change this branch now sits on.
gaborbernat
force-pushed
the
docs-restructure
branch
from
November 6, 2026 16:57
a430805 to
5eed746
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The README had grown past 1,500 lines, so a maintainer adopting these workflows in another repository had to read nearly all of it to find the parts that mattered. Now the README answers three questions quickly: what is available, how a typical repository wires it up, and how to pin versions. The first is a table covering every workflow and Action, each with a one-line purpose, the permissions its caller must grant, and a link. The second shows the check and prepare-release caller files in full and links to the rest.
The reference material now lives in one page per area: the release flow, preparation, publishing, pull request checks, maintenance pull requests, locked tools, security scanning, JetBrains, the pre-commit mirror, and LaTeX. Each page opens with when and why to use its pieces, then lists inputs, outputs, permissions and secrets in tables, and calls out the pitfalls. The release flow page has a diagram that runs from the pull request dry run through dispatch, tagging and publishing, with colours readable in both light and dark themes. A new troubleshooting page is keyed by the error text a maintainer sees in the job log.
Every fact from the old README carries over. While moving it, I checked each input against the workflow and Action definitions and fixed where the docs had drifted. For example, the maintenance workflow does not expose the pull request number to callers, the notes workflow needs a
release-noteslock group, and the tag push always targetsmain. The Scorecard workflow and several inputs that were never listed are now documented. A new test fails when a workflow or Action input, output or secret is missing from its docs section, so this drift cannot build up silently again.#55, which merged first, makes release preparation install only the changelog formatter's hook, and the docs describe that behaviour.
Practices adopted from well-documented action repositories:
permissions:, as in setup-uv, gh-action-pypi-publish and the SLSA generic builder. Permissions are what callers most often get wrong with reusable workflows, because a caller can only narrow them.action.yml. A name check in the test suite gets most of that benefit without moving 36 interfaces into generated blocks.I did not adopt two practices. Separate READMEs beside each
action.yml, as the reviewdog action repos keep, would scatter 36 units whose value lies in how they combine. Version "What's new" blocks at the top of the README would duplicate the changelog.