Skip to content

meta: cross-repo pipeline communication protocol — radcap owns coordination #41

Description

@sfegette

Context

radcap serves as the canonical owner of the shared Apple CI/release pipeline across all of Scott Fegette's Apple platform repos: radcap, grapfel, and chordale (and any future additions). This issue documents the reciprocal obligations that come with that ownership — both what radcap owns and what it must do when things change.


What radcap owns

  • The canonical `release.sh` + `release.yml` + self-hosted runner pattern
  • Self-hosted runner registration and service management on the dev machine
  • The keychain unlock pattern for CI codesigning
  • Cross-repo decisions about pipeline architecture, secrets management, and distribution strategy
  • Scaling the pattern to new Apple platforms as they're added

Radcap's obligations to downstream repos (grapfel, chordale)

When radcap changes the canonical pipeline pattern:

  1. Open an issue (or PR) in each affected downstream repo describing what changed and what needs to migrate
  2. Don't consider the change "done" until downstream repos are notified — drift is how grapfel#52 happened
  3. Label pipeline-related issues with a consistent prefix (ci: or a pipeline label) so they're easy to triage

When a pipeline bug or improvement is discovered in any repo:

  • If it's a live risk (could break CI now): the discovering agent files at sfegette/radcap immediately, no user gate
  • If it's an improvement/nice-to-have: flag to user first; user decides whether to escalate here

Downstream repo protocol (for reference)

grapfel and chordale agents are expected to:

  • Check radcap for the current canonical pattern before proposing any change to .github/workflows/ or scripts/release.sh
  • Mirror radcap's solution exactly rather than inventing a new one
  • File live pipeline risks at sfegette/radcap (not just in their own repo)

Current pipeline state (2026-06-09)

Repo Runner release.sh Status
radcap ✅ online ✅ canonical good
grapfel ✅ online ✅ fixed (grapfel#52 → 6fd9299) good
chordale ⏳ pending chordale#49 ⏳ not yet blocked on runner

Boss

Scott is the boss. Just wanted to be clear about that.

/cc @sfegette

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions