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:
- Open an issue (or PR) in each affected downstream repo describing what changed and what needs to migrate
- Don't consider the change "done" until downstream repos are notified — drift is how grapfel#52 happened
- 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
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
Radcap's obligations to downstream repos (grapfel, chordale)
When radcap changes the canonical pipeline pattern:
ci:or apipelinelabel) so they're easy to triageWhen a pipeline bug or improvement is discovered in any repo:
Downstream repo protocol (for reference)
grapfel and chordale agents are expected to:
.github/workflows/orscripts/release.shCurrent pipeline state (2026-06-09)
Boss
Scott is the boss. Just wanted to be clear about that.
/cc @sfegette