SKILLS/EVOKORE EXTENSIONS/github-release-management/SKILL.md
Use when cutting a GitHub release that needs progressive canary rollout (5%→25%→50%→100%) with automated health gates and auto-rollback on error-rate or latency regressions.
npx skillsauth add mattmre/evokore-mcp github-release-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ships releases via progressive canary traffic gates (5% → 25% → 50% → 100%) with auto-rollback on health-gate failures. Implemented as a GitHub Actions workflow that pauses between stages to evaluate error rate, p95 latency, and health-check telemetry before widening the blast radius.
Use this skill when:
Traffic is shifted by updating the weight on the canary target. Each stage is held long enough to accumulate meaningful telemetry (default: 10 min minimum, 30 min for stage 1).
| Stage | Canary Weight | Stable Weight | Min Hold | Gate Required | |-------|---------------|---------------|----------|---------------| | 1 | 5% | 95% | 30 min | Yes | | 2 | 25% | 75% | 15 min | Yes | | 3 | 50% | 50% | 15 min | Yes | | 4 | 100% | 0% | sticky | Final check |
Example GitHub Actions step (weight update via router API):
- name: Shift traffic to canary 5%
run: |
curl -sSf -X POST "$ROUTER_API/releases/$RELEASE_ID/weights" \
-H "Authorization: Bearer $ROUTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"canary": 5, "stable": 95}'
A stage is healthy only when ALL of the following are true over the hold window:
/healthz probes return 200 for the last 5 minutes- name: Evaluate canary health gate
id: gate
run: node scripts/release/evaluate-canary-gate.js \
--release "$RELEASE_ID" \
--stage "$STAGE" \
--window 10m \
--error-rate-delta 0.005 \
--latency-ratio 1.20
The evaluator exits non-zero if any criterion fails, which triggers the rollback job via if: failure().
Auto-rollback fires when:
rollback:
if: failure()
needs: [canary-stage-1, canary-stage-2, canary-stage-3]
runs-on: ubuntu-latest
steps:
- name: Revert traffic to stable
run: |
curl -sSf -X POST "$ROUTER_API/releases/$RELEASE_ID/weights" \
-H "Authorization: Bearer $ROUTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"canary": 0, "stable": 100}'
- name: Mark release as rolled_back
run: gh release edit "$RELEASE_TAG" --prerelease --notes-file rollback-notes.md
- name: Notify on-call
run: node scripts/release/notify-oncall.js --release "$RELEASE_ID" --reason auto-rollback
The rollback-notes.md should include: stage reached, failing metric, telemetry link, and the commit SHA of the last known good stable.
If observability lags the gate (e.g. a slow-burn bug surfaces 2 hours after 100% rollout), operators can force-revert:
# 1. Flip router weights back
curl -sSf -X POST "$ROUTER_API/releases/$RELEASE_ID/weights" \
-H "Authorization: Bearer $ROUTER_TOKEN" \
-d '{"canary": 0, "stable": 100}'
# 2. Re-tag previous stable as `latest`
gh release edit "$PREVIOUS_STABLE_TAG" --latest
# 3. Open incident issue with telemetry
gh issue create --label incident,rollback \
--title "Manual rollback of $RELEASE_TAG" \
--body-file incident-report.md
Always open an incident issue on manual rollback — silent reverts erode release-history trust.
Before triggering the workflow:
mainpackage.json version bumped and taggedoff for any risky new pathAfter 100% promotion:
previous-stable tag moved to the prior releasedevelopment
Core orchestration framework for model-agnostic multi-agent workflows with handoff protocol, policy governance, and configuration schemas
testing
Specialized skill for triage issue skill workflows.
development
Complete workflow for building, implementing, and testing goal-driven agents. Orchestrates hive-* skills. Use when starting a new agent project, unsure which skill to use, or need end-to-end guidance.
development
Iterative agent testing with session recovery. Execute, analyze, fix, resume from checkpoints. Use when testing an agent, debugging test failures, or verifying fixes without re-running from scratch.