cellm/skills/pr-guardian/SKILL.md
Govern explicit weekly Super PRs or maintainer-requested PR merges. Evaluates a 10-criterion readiness checklist and performs governed merge only when a user-requested PR is READY. Never creates or keeps permanent PRs. Use when: 'pr-check', 'pr-merge', 'merge this PR safely', 'is PR ready', 'guard merge', or /sk-git delegates pr-merge.
npx skillsauth add murillodutt/cellm cellm/skills/pr-guardianInstall 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.
UI location: Oracle settings → Git Guardian → PR Readiness (Octokit-anchored section). Skill id
cellm:pr-guardianand allCELLM_PR_GUARDIAN_*ENV keys remain unchanged.Main-first policy: routine CELLM work lands directly on
mainafter local pre-push validation. PR Guardian is reserved for explicit weekly Super PRs or maintainer-requested review/release checkpoints.Authority layering: GitHub branch protection is cloud-authoritative for the configured target branch. Configure it from Git Guardian → Branch Protection. This skill remains the local preflight/explainer: it reports whether the 10 criteria are READY before a requested PR merge is attempted.
PR Guardian governs the transition from "user-requested PR open" to "PR merged" by enforcing a deterministic readiness checklist. It defends explicit Super PR or release-review rails from premature merges caused by impulse, unverified CI state, missing review, or active conflicts.
Explicit PR semantics: Guardian never creates or keeps permanent PRs. PRs are opened only on user request, then stay open until quality and governance criteria are met or the user closes them.
| Arg | Action |
|---|---|
| check | Read-only readiness evaluation (10 criteria, PASS/FAIL/UNKNOWN each) |
| merge | Requires check=READY, then gh pr merge --squash --delete-branch + sync local |
Detailed criteria, fail-closed rules, and troubleshooting: see reference.md.
Before any evaluation:
gh auth status succeeds — Guardian is operational.Missing GitHub capability → abort with actionable message. No open PR is an idle scheduled-PR state for check; for merge, it is always blocking.
Run capability detection.
If no open PR is found for the current branch, report VERDICT: IDLE with guidance to open one only on user request.
Evaluate 10 criteria in order (see reference.md). Collect verdict per criterion.
Emit structured report:
VERDICT: READY | BLOCKED
PR #<num> — <title>
[PASS|FAIL|UNKN] 1. CI checks all SUCCESS
...
[PASS|FAIL|UNKN] 10. No outstanding change requests
Exit code 0 when READY or IDLE, non-zero when BLOCKED.
check is read-only. Never mutates PR or repository, and never creates a PR.
check internally. If verdict != READY, ABORT — emit BLOCKED report, exit non-zero.--silent, not --delegated): render confirmation via AskUserQuestion with PR title, base branch, commit count, passed criteria.gh pr merge <num> --squash --delete-branch.git checkout <baseBranch> && git pull --ff-only.Delegated mode skips confirmation but still requires check=READY. The delegated contract MUST NOT override the checklist.
First-hit wins:
CELLM_PR_GUARDIAN_OVERRIDE=true — allows BLOCKED merge with loud warning; logged to Oracle timeline. Emergency only.CELLM_PR_GUARDIAN_MIN_HOURS=<n> — overrides min-open-hours threshold (default 24).CELLM_PR_GUARDIAN_REQUIRE_REVIEW=(true|false) — overrides human-approval policy (default false).CELLM_PR_GUARDIAN_ENABLED=false — disables Guardian; check still runs informational, merge proceeds via plain gh pr merge.pr.* keys, mirrored from Settings UI).minOpenHours=24, requireHumanApproval=false, blockingLabels=['WIP','do-not-merge','blocked'], baseBranch='main'.Every verdict and merge decision is logged to the Oracle timeline with a PR link and the full checklist.
Silent mode skips confirmations, not safeguards.
gh network/API error → ABORTcheck, ABORT for mergeCallers: sk-git, cellm:olympus (certification), cellm:arena (quality gate), cellm:convergir (close-out).
AskUserQuestion confirmations unconditionally.--op scoping: merge never widens into unrelated git ops.check=READY requirement.gh pr merge without a passing check (unless CELLM_PR_GUARDIAN_OVERRIDE=true)mergeStateStatus != CLEAN)minOpenHours without explicit overridecellm:gitpro pr-open only when the user asks to open onegh pr mergecellm:gitpro — universal git operations (commit, push, sync, bump, pr-open). Guardian is invoked by gitpro --op pr-merge in delegated mode.cellm:olympus, cellm:arena, cellm:convergir — quality orchestrators that delegate to Guardian for final merge.data-ai
Prose override — temporarily disable quantization and respond in readable prose. Use when relational density matters, for safety-critical explanations, onboarding handoffs, or when token economy is not the priority.
data-ai
Operational surface for the compress-llm Layer-1 token I/O compressor. Enable, disable, switch mode, and inspect status without editing config files. Use when tuning compression pressure for the current session or project.
tools
Generate structured upstream feedback for the CELLM engineering team. Produces evidence-first Markdown at docs/evidence/<date>-cellm-feedback-*.md for bugs, anti-patterns, deprecation gaps, and harness surprises, with optional atom registration via knowledge_ops. Use when: 'feedback for CELLM', 'send to CELLM team', 'register this as atom', 'document this anti-pattern', 'report this bug upstream'. Trigger proactively on MCP schema/runtime mismatches, mechanical edit loops (>=3 sequential edits), short deprecation windows (<6 weeks), or reusable harness surprises. Do NOT trigger for routine feature work or project-local bugs.
documentation
Docops: scaffold LLM-first documentation structure, templates, and docops.json for a project. Creates directory hierarchy without overwrite. Use when: 'init docs', 'setup documentation', 'create docops structure'. Not for Oracle setup (use cellm:oracle).