feat(ci): add governed local runner routing#55
Merged
Conversation
kyle-sexton
marked this pull request as ready for review
July 12, 2026 07:48
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_a1676679-db74-4a6e-9c43-24fb47d60391) |
There was a problem hiding this comment.
Risk: medium. Not approving because Cursor Bugbot was present but skipped (usage limit reached), so automated review results are incomplete. Human review is needed; no reviewers were assigned because no non-author collaborators are available on this repository.
Sent by Cursor Approval Agent: Pull Request Router and Approver
2 tasks
kyle-sexton
added a commit
that referenced
this pull request
Jul 16, 2026
) ## Summary Closes decision #55 (`metadata-claude-md-encode-github-conventions`) for this repo. Adds a **Branching & PRs** section to `CLAUDE.md` mirroring medley's citation pattern (`AGENTS.md` "Branching & PRs": terse rule inline + one pointer to the full convention source). - Inline rule: PRs required, squash merge, Conventional Commits branch `<type>/<description>` — already enforced here by `.github/workflows/pr-title.yml`. - Pointer: `melodic-software/standards` `conventions/` as the org-wide convention home. The pointer targets the `conventions/` directory rather than `conventions/engineering/naming.md` specifically: `naming.md` today covers only Clean-Code identifier naming (classes, files, variables), not branch/PR grammar. Promoting medley's branch-naming grammar into `standards` org-wide is tracked separately as decision #24 (`naming-branch-convention-org-wide`, WP-11). Once that lands, `naming.md` (or wherever it lands) becomes the sharper anchor — the directory-level pointer stays valid either way per `standards`' `conventions/engineering/reference-dont-duplicate.md` (cite a stable anchor, never a copy that can drift). Decisions Log: https://claude.ai/code/artifact/232ecdce-8316-4880-8c0a-dc3c7dcf3a63 ## Test plan - [x] `npx markdownlint-cli2 CLAUDE.md` — 0 errors - [x] Manual read-through against medley's `AGENTS.md` "Branching & PRs" and `.claude/rules/worktree/{branch-naming,pr-conventions}.md` for pattern fidelity 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Us4azyXMBuXGV2sshG7UuB --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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.


Summary
ubuntu-24.04hosted fallback.ci-status, Claude review, link checking, public/fork execution, and privileged control-plane jobs on GitHub-hosted runners.Merged dependencies
melodic-software/ci-workflows#74:99ac2f8c5b09dbb785d4eaf18465cbd96c30290cmelodic-software/standards#85:ff4b47341693dcd6bd8a55e52aa5f7fe7a1eacd8melodic-software/github-iac#55:3e1fa5d882ea1738b45b1ee50f7da55ff6a5066cFinal reviewed evidence
6f46fc6500f63606dd312a936f1217656d1b147d99ac2f8c5b09dbb785d4eaf18465cbd96c30290cc34f0aa/fd9a74dreferences: 01d3762ccompatibility references retained unchanged: 6ff4b473, Git blobb3cf17a861fa59b19536d371b8ede21640fab48a.plugins/and.claude-plugin/remain byte-identical to the PR base.Rollout gate
This PR intentionally remains draft and unmerged. It will be reconciled with
mainonly after the immutable fleet release, desktop canary, two-host HA proof, and the organization rollout gate are ready. Keeping it draft prevents CI routing from becoming active before the live control plane is proven.Note
High Risk
Large CI workflow refactor changes where jobs execute and how required checks fail closed; mis-routing or org-variable gaps could block merges or shift untrusted work onto the local fleet.
Overview
Introduces governed CI runner routing so eligible private Linux validation lanes run through per-job
select-runnerreusable workflows (org vars + pinnedci-workflowsSHAs), withubuntu-24.04only as an explicit fallback when selection succeeds—not as a silent escape from strictself-hosted-onlymisconfiguration.ci.ymlgains a selector job ahead of each quality lane,merge_grouptriggers, a hostedrunner-policyenforcement job, pinnedci-workflows@99ac2f8, and stricterci-statusaggregation (workloads must besuccess;skippedno longer passes).pr-title.ymlmirrors the selector pattern and adds a small hostedpr-title / pr-titlegateway that fails if routing or semantic validation fails.Adds
.github/runner-policy.json,docs/CI-RUNNER-ROUTING.md, and locked CI toolchains: rootpackage.json/package-lock.json(Biome + Claude Code vianpm ci), hash-pinned Ruff in.github/requirements-ci.txt, and expanded Dependabot coverage for npm/pip plus the standards runner-policy package root.plugin-gateinstalls those locked tools instead of mutable global installs so hosted and self-hosted contract tests see the same binaries.Reviewed by Cursor Bugbot for commit 394ab0d. Bugbot is set up for automated code reviews on this repo. Configure here.