Skip to content
cccskills
FreePublished on GitHub

quality-gates

Shared in-workflow quality gates for code/PR skills — the gate model, trust tiers, and the three primitives (evidence-before-done, independent judge, anti-gaming). DO NOT TRIGGER directly — referenced by consumer skills via relative path.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (9)

  • SKILL.md4.7 KB
  • DECISION.md1.4 KB
  • evals/evals.json2.5 KB
  • gates/_index.md387 B
  • gates/gate-model.md3.2 KB
  • gates/primitives/anti-gaming.md1.8 KB
  • gates/primitives/evidence-before-done.md546 B
  • gates/primitives/independent-judge.md3.8 KB
  • hooks/ship-gate-check.sh4.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Quality Gates

Shared reference for turning a skill's critical steps from prompts into gates: enforced checkpoints with independent verification, required evidence, and a STOP-on-fail. Not invocable directly; consumer skills reference these files by relative path.

This is the CANONICAL copy. opsmill-repo/skills/quality-gates/ is a synced copy; if they diverge, this copy wins (see DECISION.md).

Contents

  • gates/gate-model.md — the 4 properties of a gate, the 3 trust tiers, and the hybrid ship-vs-verify judge policy.
  • gates/primitives/evidence-before-done.md — P1: no "done" claim without pasted output.
  • gates/primitives/independent-judge.md — P2: author≠judge via a fresh subagent.
  • gates/primitives/anti-gaming.md — P3: measure intent, not form; forbidden evasions.

Trust tiers (summary)

TierSkill doesRequired gates
T0advisory / read-onlyP1 + self-review
T1mutates a branch, no shipP1 (P2 optional)
T2ships / opens PR / merges / force-pushes / stamps a "complete" markerP1 + P2 + P3

Consumer Gate Mapping

Which skills declare which gates. Keep this in sync as consumers are wired.

SkillPluginTierShip gate (full P2)?
fixing-bugsdevT2yes — before AGENT_FIX_COMPLETE
test-driving-bugsdevT2yes — before AGENT_TEST_COMPLETE (local mode stamps the marker; PR mode also opens the draft PR; both require the ship gate)
prdevT2yes — before gh pr create
monitoring-pull-requestsdevT2yes — before declaring CI resolved
merging-branchesdevT2yes — before opening the draft PR
rebasedevT1 escalating to T2 at force-pushyes — the ship gate is mandatory before force-push (T2); branch-only rebases without force-push are T1
commitdevT1no
analyzing-bugsdevT0no
creating-issuesdevT0no (human is judge, R4)
grilling-ideasdevT0no (human is judge, R4)
auditing-repo-standardsrepoT0no
auditing-agentic-structurerepoT0/T1no
detecting-repo-driftrepoT2yes — before opening each PR

Adding a new consumer

A new code/PR skill that ships output (opens a PR, merges, force-pushes, stamps a completion marker) MUST declare a T2 ship gate. Propose any new primitive as an ADR in DECISION.md rather than copying gate logic into the consumer.

Hook enforcement (Claude Code only)

Under Claude Code, a PreToolUse hook (hooks/ship-gate-check.sh, registered in this plugin's .claude-plugin/plugin.json) enforces two deterministic gates on Bash commands — both opt-in per repo (.claude/quality-gates/enabled; the hook is a no-op until it exists) and both overridable with QUALITY_GATES_BYPASS=1:

  • Branch discipline: denies git commit / git push while on a protected branch (main, master, develop, stable, release/*). Create a feature branch first.
  • Ship-gate receipt (commit-bound): denies the irreversible ship actions — gh pr create/merge, git push --force*, and AGENT_FIX_COMPLETE/AGENT_TEST_COMPLETE marker stamps — unless a PASS/DEGRADED receipt exists for the current HEAD. The P2 judge writes .claude/quality-gates/receipts/<HEAD>.json on PASS; a new commit invalidates it.

Progressive enhancement: the prose gates are unchanged and remain the behaviour under Codex; the hook adds deterministic enforcement under Claude. Gitignore .claude/quality-gates/receipts/ in consuming repos.

Receipt format (ship-gate PASS)

On a ship-gate PASS the P2 judge writes a commit-bound receipt to .claude/quality-gates/receipts/<HEAD>.json. The authoritative field list and write steps (mkdir -p, git rev-parse HEAD, the PASS/DEGRADED verdicts) live in gates/primitives/independent-judge.md › Handling the verdict — kept in one place so the receipt shape can't drift between this overview and the procedure agents actually run.

Properties that matter here: a DEGRADED receipt (an accepted R2 re-read with no subagent) is allowed, but the hook surfaces it as a visible allow-reason. The receipt is commit-bound — a new commit changes HEAD, so a stale pass cannot authorise a later ship. Receipts live under .claude/quality-gates/receipts/ (gitignored); this is what the hook checks before allowing gh pr create / gh pr merge.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

commit

Free

Stages and commits the current changes onto a safe working branch, enforcing branch discipline and optionally pushing upstream. TRIGGER when: the user wants to commit, save, or check in the current changes. DO NOT TRIGGER when: opening a pull request → pr.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

Turns a single feature idea, improvement, or bug into ONE well-structured GitHub issue. TRIGGER when: the user wants to file/open/create an issue, turn a feature idea or improvement into a ticket, or capture something missing or broken as a ticket. DO NOT TRIGGER when: breaking work into multiple issues or planning a body of work → a planning skill; writing a full Product Requirements Document → creating-prd; the idea is still fuzzy and unhardened → grilling-ideas first.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue). Synthesises from context; does not interview. TRIGGER when: the conversation has produced enough understanding of a feature and the user wants it captured as a PRD. DO NOT TRIGGER when: a single small issue is enough → creating-issues; the idea has not been stress-tested yet → grilling-ideas first; bug reports.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

Stress-tests a fuzzy or vague feature idea before any PRD, spec, or ticket is written. TRIGGER when: the user has a fuzzy feature idea — one or two paragraphs, vague on users / scope / success — and wants to harden it, or says "grill / stress-test / pressure-test this idea." DO NOT TRIGGER when: the idea is already turned into a spec or PRD; bug fixes or refactors; the idea is hardened and you are ready to write the PRD → creating-prd.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

Watches an open pull request's CI until green and fixes failing checks. TRIGGER when: the user wants to watch a pull request's CI, babysit a PR until it goes green, or fix failing CI checks on an open PR. DO NOT TRIGGER when: opening the PR in the first place → pr; rebasing the branch onto its base → rebase.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

pr

Free

Opens a pull request, publishing the current branch as a PR. TRIGGER when: the user wants to open a pull request, publish the current branch as a PR, or take the current work through to an open PR. DO NOT TRIGGER when: only committing changes → commit; babysitting CI after the PR is already open → monitoring-pull-requests.

The English summary is being prepared. Showing the original description.

opsmill/nornir-infrahub12Updated Oct 19, 2026

See all skills by opsmill

Report a problem with this skill