Skip to main content
skill CX Codex

agent-acceptance-gate — Claude Code skill: check before you commit

A read-only gate that reconciles parallel agent results and runs triggered checks before a commit or push. It returns PASS, CONDITIONAL PASS or FAIL with evidence.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add WenyuChiou/agent-collab-skills --skill agent-acceptance-gate -a claude-code
Open on GitHub

What agent-acceptance-gate does

This skill sits between "the lanes are done" and "commit or push". It inventories every planned lane, keeps missing, declined, cancelled, timed-out and failed states apart, and compares changed files against each lane's declared scope. Unexplained drift is a FAIL. A claimed success with no evidence stays unverified.

Presets fire on what the diff contains. Two or more locale variants of one file stem pull in multi-locale-mirror-sync; new catalog or listing entries pull in catalog-entry-add; a named frontier model with a benchmark number, release date or license claim pulls in fact-check-frontier-models. These are declarative review contracts under presets/, not an engine — you follow their checks by hand. Matching heading counts or line counts proves nothing about meaning, so disagreements get quoted.

The skill never commits, merges, pushes or deletes branches, and it will not turn a decline, cancellation, timeout or failure into a pass. Numeric budgets and retry limits come from the project's policy rather than from the skill itself. In harness mode an unreadable policy, plan or checkpoint is a fail-closed blocker: stop and report it. A human can approve a documented exception, but the original gate record stays as it was.

What it helps with

  • reconcile several subagent results before committing
  • catch drift between locale variants of one file
  • confirm a lane's changed files match its declared scope
  • separate an unverified success from one backed by evidence
  • record a human exception without rewriting the gate result

Example prompts for the agent

  • Run agent-acceptance-gate on this diff before I commit and give me the verdict with evidence
  • Reconcile the lane results and list what was filtered out and why
  • Run the multi-locale-mirror-sync preset over the changed locale files

How to install agent-acceptance-gate

1Skills CLI (Vercel)

npx skills add WenyuChiou/agent-collab-skills --skill agent-acceptance-gate -a claude-code

2Manually: put the files in place

~/.claude/skills/agent-acceptance-gate/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/agent-acceptance-gate/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about agent-acceptance-gate

How do I install agent-acceptance-gate in Claude Code?

Run npx skills add WenyuChiou/agent-collab-skills --skill agent-acceptance-gate -a claude-code. The skill lands at ~/.claude/skills/agent-acceptance-gate/SKILL.md.

What does agent-acceptance-gate do?

It reconciles lane results, runs the presets the diff triggers, and returns PASS, CONDITIONAL PASS or FAIL with evidence. It does not commit or merge anything itself.

What is the difference between PASS and CONDITIONAL PASS?

PASS means every required check passed and no blocker remains. CONDITIONAL PASS means deterministic checks passed but a human action, a degraded optional check or a documented non-blocking condition is still open.

Source text

SKILL.md · MIT
---
name: agent-acceptance-gate
description: Use when about to commit or push a diff that touches two or more locale variants of one file stem, adds catalog or listing entries, states benchmark numbers, release dates, or licenses for named frontier models, or merges output from any subagent or delegate. Reconciles the lane results, runs the matching preset, and returns PASS, CONDITIONAL PASS, or FAIL with evidence.
---

# agent-acceptance-gate

The read-only check between "the lanes are done" and "commit or push". It
reconciles results, runs the triggered presets, and returns a verdict. It
never merges, commits, retries, or turns a decline, cancellation, timeout, or
failure into success. Since 0.6.0 it includes the former
`agent-output-reconciler`.

## Inputs

- the lane table or plan: lane ids, roles, scopes, acceptance criteria;
- each lane's returned summary, evidence paths, and log paths;
- the merged diff and the project's verification commands;
- in harness mode, the `TaskCheckpoint` and latest `PolicyDecision`;
- prior human decision records, if any.

Historical provider fields may be read for migration only. Current checks use
lane or task ids and roles.

## Step 0: Harness mode only

Validate the plan, checkpoint, and policy before anything else. An unreadable
configured policy, plan, or checkpoint is a fail-closed blocker: stop and
report it. Do not infer missing policy values.

## Step 1: Reconcile

1. Inventory every planned lane. Keep missing, `null`, declined, cancelled,
   timed-out, degraded, and failed as distinct states. Never invent an absent
   result.
2. Filter unusable results out of synthesis and record what was filtered and
   why. A completed prose result is not `null` just because an optional
   structured-output step failed.
3. Compare changed files with each lane's declared scope. Record justified
   transitive changes separately; unexplained drift is FAIL.
4. Bind each result to its task, attempt, and baseline with the
   [task-content evidence review](../../docs/task-content-evidence.md). Stale
   or wrong-task evidence stays unverified. Account for pre-existing dirty
   state and parallel writers before attributing a change. File times alone
   cannot prove or disprove success.
5. Re-run claimed checks or verify their evidence. A "success" with no
   evidence is unverified.
6. List file collisions, contradictory findings, incompatible assumptions, and
   dependency-order violations.

Report shape: [references/reconciliation_template.md](references/reconciliation_template.md).
Harness mode writes it to scratch; native mode keeps it short in the
conversation or PR body.

## Step 2: Presets (mandatory when triggered)

| Trigger in the diff | Preset |
|---|---|
| two or more locale variants of one file stem | `multi-locale-mirror-sync` |
| new catalog or listing entries | `catalog-entry-add` |
| a named frontier model with a benchmark number, release date, or license claim | `fact-check-frontier-models` |

Presets are declarative review contracts in `presets/`, not an executable
engine; follow their checks. They add to independent review and source
verification and never replace them. If a triggered preset cannot run, report
a blocker or an explicit degraded state, never PASS. Structural parity
(heading counts, line counts, ordering) is not content parity: check meaning
adversarially and quote the passages that disagree.

## Step 3: Verify and decide

1. Run each lane's acceptance criteria and the merge-level verification
   command on the merged result. Never invent missing criteria; mark manual
   checks as manual.
2. Check unresolved high-severity risks and reconciliation blockers.
3. For external facts, cite authoritative sources and say whether each was
   verified locally.
4. Harness mode: evaluate the policy after the gate cycle and write a new
   immutable acceptance record. Never overwrite a prior run or human
   decision.
5. Native mode: put the verdict and its evidence in the conversation or the
   PR body.

All numeric budgets and retry limits come from the canonical policy in harness
mode or from the host in native mode. This skill and its presets do not copy
default values.

## Verdicts

- `PASS`: every required check passed and no blocker remains. Technically
  acceptable; not authorization to merge.
- `CONDITIONAL PASS`: deterministic checks passed, but an explicit human
  action, a degraded optional check, or a documented non-blocking condition
  remains.
- `FAIL`: any required criterion, scope, policy, evidence, preset, or blocker
  check failed.

A human may approve a documented exception, but the original gate record stays
unchanged. The new decision records gate, actor, decision, timestamp,
rationale, and affected action hash. An override never rewrites a failed test
into a passing one. Existing authorization may already cover delivery; do not
ask again just because a review, session, or slice ended. A genuinely new
human gate still needs a separate recorded decision bound to the specific
affected action.

## Output

- verdict;
- per-lane status and criterion results, including filtered or missing lanes;
- scope and preset results;
- commands with exit codes, bounded excerpts, and artifact paths;
- risks, degraded checks, and blockers;
- pending or recorded human decision reference;
- in harness mode, also the run ID, timestamp, plan, checkpoint, and policy
  references, and the action hash that any later human decision binds to.

Coordination scratch is gitignored by default. Promote only an explicitly
required checkpoint snapshot, shipping artifact, or acceptance record. See
[references/acceptance_checklist.md](references/acceptance_checklist.md) for
the verification taxonomy.

## Prohibitions

- Do not run implementation agents or decide retries.
- Do not mutate source, the plan, checkpoint history, or canonical memory.
- Do not overwrite prior acceptance or human-decision records.
- Do not treat agent consensus as evidence.
- Do not commit, merge, push, release, or delete branches.

© WenyuChiou · MIT · WenyuChiou/agent-collab-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set3

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor