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

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