Bump the failproofai submodule pointer when this repo's main moves - #3
Conversation
FailproofAI/failproofai now carries this repo as a `skills` submodule. Keep its pinned commit tracking this repo's main automatically instead of by hand. Mirrors failproofai's own bump-platform-submodule.yml, which bumps platform and agenteye when failproofai moves: same direction (the submodule's source pushes the bump downstream) and same mechanism — a version-bot app token, which bypasses the org ruleset's PR requirement on the downstream main. Needs a one-time admin step before it can run: this repo has no Actions secrets, so VERSION_BOT_APP_ID and VERSION_BOT_PRIVATE_KEY must be copied here from failproofai. The workflow header documents it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U6pt7MCEDAasEYkrLUGork
|
Warning Review limit reached
Next review available in: 38 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
hermes-exosphere
left a comment
There was a problem hiding this comment.
Hermes Agent Review — APPROVED ✓
Adds the companion CI job that keeps the skills gitlink in FailproofAI/failproofai in sync when this repo's main moves. Mirror image of failproofai's own bump-platform-submodule.yml.
What's here
- New workflow:
.github/workflows/bump-failproofai-submodule.yml(124 lines) - Triggered on every push to
main(andworkflow_dispatch) - Mints a version-bot app token, checks out
FailproofAI/failproofaimain, rewrites theskillsgitlink, pushes directly
What's good
- ✅ Follows the proven pattern from failproofai's
bump-platform-submodule.yml— same app token mechanism, same race-safe push loop (3-attempt rebase-and-retry), same SIGPIPE-safe subject extraction - ✅ Version-bot is already a bypass actor on the org-level
failproofai-rulesruleset — no ruleset change needed - ✅ Concurrency is serialized (
group: bump-failproofai-submodule,cancel-in-progress: false) so back-to-back merges produce sequential bumps - ✅ Clear error handling: detects non-gitlink with
::error::+ exit 1, idempotent when SHA hasn't changed - ✅ Permissions are minimal:
contents: readon this repo; all writes use the app token - ✅ Workflow header documents the one-time admin step (secrets setup)
- ✅ PR body is thorough: merge order, secret setup instructions, downstream cascade implications all documented
No concerns
The workflow is a straightforward adaptation of a proven pattern. The verified test results in the PR body (normal bump, SIGPIPE handling, idempotency, missing gitlink) plus the clean CodeRabbit pass give confidence it works.
Merge away. 🚀
Note
Remember the one-time admin step before this goes live: copy VERSION_BOT_APP_ID and VERSION_BOT_PRIVATE_KEY secrets from FailproofAI/failproofai to FailproofAI/skills.
FailproofAI/failproofaiis picking this repo up as askillssubmodule (FailproofAI/failproofai#559). This adds the job that keeps its pinned commit tracking ourmain, so nobody has to bump the gitlink by hand.What it does
On every push to
mainhere: mint a version-bot token scoped tofailproofai→ rewrite theskillsgitlink → push straight to itsmain.It's the mirror image of failproofai's
bump-platform-submodule.yml— same direction (the submodule's source pushes the bump downstream), same mechanism, we're just the source this time:failproofaiplatform,agenteyefailproofaiskillsfailproofaiskills(here)The direct push works because
failproofai'smainis covered by the org-levelfailproofai-rulesruleset — the same ruleset object that governs platform and agenteye — and version-bot is a bypass actor on it. So the existing bypass covers this repo's pushes too; no ruleset change needed.This repo has no Actions secrets at all today. The job fails at the token step until someone with admin copies both values over from
failproofai, which already has them:Same shape as the
SKILLS_SYNC_PATsetup thatagenteye'ssync-skill.ymldocuments. The workflow header repeats these instructions so they're findable from the file itself.Merge order
Land FailproofAI/failproofai#559 first. Until
skills/is a gitlink over there, this job aborts withis not a gitlink — abortingrather than inventing the entry.One consequence worth knowing
A bump landing on
failproofai'smaintriggers its push-drivenbump-platform-submodule.yml, soplatformandagenteyethen get bumped to the new failproofai SHA. That cascade is by design — they track failproofaimain— but it does mean one commit here eventually produces bump commits in three repos. Worth a look if that churn isn't wanted. (App-token pushes do trigger downstream workflows, unlikeGITHUB_TOKENpushes; that's what makes the chain fire.) There's no cycle back here, so it terminates.Verified
I extracted the exact
run:block from the YAML and ran it against a real clone of failproofai's submodule branch withskills/empty on disk, matching CI'ssubmodules: false.git pushwas stubbed, so nothing was pushed.37d6892→ new SHA, mode160000preserved, only that one tree entry changed.Upstream: <first line>underset -euo pipefail, no failure.Already at … nothing to doand creates no commit.::error::+ exit 1.Not exercised locally: the push itself and the rebase-retry path, which are carried over verbatim from the proven original.
🤖 Generated with Claude Code
https://claude.ai/code/session_01U6pt7MCEDAasEYkrLUGork