Skip to content

Restructure the README to the portfolio standard - #8

Merged
AdamXweb merged 1 commit into
mainfrom
docs/readme-standard
Aug 10, 2026
Merged

Restructure the README to the portfolio standard#8
AdamXweb merged 1 commit into
mainfrom
docs/readme-standard

Conversation

@adamXbot

@adamXbot adamXbot commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Brings this README onto the shared portfolio structure for infrastructure repos: what consumes it, how a consumer calls it, the version contract, how to change it safely, licence.

Size: README.md 13,604 → 7,652 bytes. Nothing was deleted; the detail moved into docs/ and is linked from the README.

Wrong facts removed

  • "Inside the workflows, the composite actions are referenced as privacykey/gh-workflows/actions/<name>@main" — they are not, and never were at any released tag. Every internal reference is @v1, at v1.0.0, v1.1.0 and v1.2.0 alike.
  • "A push to main here changes behaviour under consumers pinned to @v1" — the opposite is true, and it is the single most important thing a maintainer needs to know before editing this repo. A push to main is inert for consumers; moving the v1 tag is the release action. The README now says that, and documents the real subtlety instead: an exact workflow pin (@v1.1.0) still resolves its composite actions through the moving v1 tag, so it is not a full freeze.
  • The Contents table was missing three of the ten things in the repo.github/workflows/ios-release.yml, .github/workflows/project-status.yml and actions/project-status. The iOS release pipeline, which is the largest workflow here, was undocumented in the README entirely.
  • actions/setup-apple-keychain was described as importing a "Developer ID cert." ios-release.yml also uses it for an Apple Distribution certificate, so the description no longer names one certificate type.
  • docs/ios-release.md opened with an unapplied "README patch" instruction block — an HTML comment telling the reader to paste two chunks into the README, which never happened. Replaced with a title. The body is untouched, and the README links it.

Dead links avoided

There were no dead links in the old README (it contained no external links at all). Four would have been introduced by the obvious version of the new "What consumes this" section: four consumers of this repo are private and return 404 to anyone reading this public README. They are counted, not named or linked. Only privacycommand and .github are linked; both verified 200.

Consumer counts

Verified by code search across all three accounts rather than asserted: six repositories, using macos-sparkle-release.yml@v1, macos-app-ci.yml@v1, ios-release.yml@v1, project-status.yml@v1 and assert-trusted-runner@v1 (the guard is called from nine workflows in total).

Badges

Status and licence only, both verified to resolve. No CI badge: every workflow in this repo is workflow_call-only, so there is no default-branch run for a badge to report. No release badge: there are no published GitHub Releases — the tags are the whole contract, which the README now states.

The status badge is currently live and reads "Maintained". If it briefly renders "resource not found", that is the status hub PR still merging; the endpoint path is correct.

Content moved, not deleted

  • docs/macos-release.md — caller snippets, input tables, release-script env contract, Homebrew cask PR flow, gen-1 → gen-3 secret rename table, migration sequence.
  • docs/self-hosted-runners.md — the private-repositories-only rule and the two gates enforcing it.
  • docs/design-decisions.md — the design-decisions list.

Note, out of scope

just lint currently reports two pre-existing actionlint findings in ios-release.yml (a vars context at line 191 and an SC2012 ls usage at line 890). Not touched by this PR.

The README was 13,604 bytes and carried the whole consumer manual. It is
now 7,652 bytes and covers only what an infrastructure repo needs: what
consumes it, how a consumer calls it, the version contract, and how to
change it without breaking the callers. Nothing was dropped — the detail
moved into docs/ and is linked from the README.

Moved out:
- docs/macos-release.md — release/CI caller snippets, the input tables,
  the release-script env contract, the Homebrew cask PR flow, the
  gen-1 -> gen-3 secret rename table and the migration sequence.
- docs/self-hosted-runners.md — the private-repositories-only rule, the
  two gates that enforce it, and the fleet behaviour changes.
- docs/design-decisions.md — the design-decisions list, extended with the
  paired-cleanup requirement and the per-account status hub rationale.

Corrected:
- The "Pinning model" section claimed the composite actions are referenced
  as @main, and that a push to main therefore changes behaviour under
  consumers pinned at @v1. Both statements are wrong. Every internal
  reference is @v1, and has been at every released tag (v1.0.0 through
  v1.2.0). The real consequence is the opposite and is now documented: a
  push to main is inert, and an exact workflow pin still resolves its
  composite actions through the moving v1 tag.
- The Contents table omitted ios-release.yml, project-status.yml and
  actions/project-status. All three are listed now.
- setup-apple-keychain was described as importing a "Developer ID" cert.
  ios-release.yml also uses it for an Apple Distribution cert, so the
  description no longer names one certificate type.

Also:
- docs/ios-release.md opened with an unapplied "README patch" instruction
  block telling a reader to paste its contents into the README. Replaced
  with a title; the body is untouched.
- Consumer repositories are named and counted from a code search rather
  than asserted. Only the two public consumers are linked — the other four
  are private, so linking them would have produced four 404s.
- Added the status and licence badges. No CI badge: every workflow here is
  workflow_call-only, so there is no default-branch run for one to report.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@AdamXweb
AdamXweb merged commit 9e135c7 into main Aug 10, 2026
@AdamXweb
AdamXweb deleted the docs/readme-standard branch August 10, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants