| name | CI/CD Validation & Merge Workflow |
| description | Pre-push validation checklist (cargo fmt, clippy with zero warnings, feature flag testing, test suite), CI monitoring, merge process, and release quality gates. Use when preparing to push code, validating changes before PR, running CI checks, merging PRs, or preparing releases. |
CI/CD Validation & Merge Workflow
Validation, CI monitoring, and merge procedures for cqlite. There is one gate —
scripts/agent-gate.sh — run in a tiered loop. The old manual cargo checklist, coverage/tarpaulin
gate, and human-merge steps were M1-era fossils and are gone (issue #1855); see the pointer files in this
dir and docs/development/pm-operating-loop.md.
When to Use This Skill
Pre-push validation · preparing PRs · monitoring CI · merging · releases · troubleshooting CI failures.
Quick Validation — the tiered gate loop (issue #1821)
scripts/agent-gate.sh is THE canonical pre-PR gate (issue #719): it mirrors the enforced CI gates plus
the local smoke suite and emits a machine-checkable summary block. A claim that "the gate passed" must come
from this script's summary (between the AGENT-GATE SUMMARY markers, ending in RESULT: PASS) — ad-hoc
cargo runs do not count.
scripts/agent-gate.sh --lite
scripts/agent-gate.sh
scripts/agent-gate.sh --only fmt,clippy
- Division of labor (issue #1855): subagents iterate on
--lite / targeted tests and end at
commit + push + report. The lead runs the full gate + roborev — a subagent idle-waiting on a 12-20 min
full gate gets killed by the 600s stall watchdog and takes its child gate process down with it.
- Queued gate ≠ hung gate: under load the full gate may queue for a #1825 slot (prints
waiting for gate slot (N in use)… once) then run 15-20 min — total wall time can exceed 20 min. Use a
long Bash timeout or run_in_background and check for that line before assuming a hang (the default
2-min timeout truncates a queued gate).
- Gate PASS ≠ CI green: the local gate uses pre-existing datasets and a subset of
--test targets.
When a change touches a regenerate path, a fixture parser, or a fail-closed CI guard, reproduce the
actual CI lane locally before relying on the gate.
CI Monitoring
gh run list --limit 10
gh run view <run-id>
gh run watch
gh run view <run-id> --log-failed
Merge
Merge is autonomous on green — once local certification holds (gate PASS + (design-driven)
spec-auditor C PASS + roborev clean), and after the pre-merge SHA assert + HOLD re-read, arm
gh pr merge --auto --squash --delete-branch and stop; GitHub lands the PR when the #2433 required
check goes green (#2667), then flow-finalize <N>. Never ScheduleWakeup-poll a PR's own CI — --auto
replaces the busy-wait. Merge is not a human gate; hold only for a genuine design call, a scope/product
question, an unmet requirement, or a HOLD: merge after #N order. See
merge-process.md and docs/development/pm-operating-loop.md.
References