acceptance-protocol
Skill4 starsChanged 29 days agoMITView on GitHub
[PROTOCOL] Tier-aware per-engagement acceptance methodology shared by all agency managers (marketing / dev / design). Defines per-tier (S/M/L) protocols: S has no manager phase, M adds Opus adversary, L adds cross-family consilium. Managers are JUDGES between producer and adversary, not re-runners. Reference-only — loaded by `*-manager` agents via skills frontmatter, not triggered by keywords.
In this repository48 other files it gives its agents.
- skills/dev-methodology/references/agents.mdAGENTS.md
- skills/skill-authoring/references/agents.mdAGENTS.md
- agency-intakeSkill
- ai-visibility-methodologySkill
- banner-design-guideSkill
- benchmark-researchSkill
- brand-methodologySkill
- code-reviewingSkill
- code-writingSkill
- codex-bridgeSkill
- deploy-pipelineSkill
- design-assets-guideSkill
- design-system-methodologySkill
- design-task-decompositionSkill
- dev-methodologySkill
- docs-pipelineSkill
- documentation-writingSkill
- engagement-contractSkill
- engagement-protocolSkill
- feature-researchSkill
- human-voiceSkill
- infrastructure-setupSkill
- marketing-task-decompositionSkill
- post-deploy-qaSkill
- pre-deploy-qaSkill
- presentation-designSkill
- project-planningSkill
- prompt-engineeringSkill
- security-auditingSkill
- semantic-drift-methodologySkill
- seo-auditingSkill
- skill-authoringSkill
- skill-test-designSkill
- skill-testingSkill
- system-optimization-protocolSkill
- task-decompositionSkill
- tech-spec-planningSkill
- testing-methodologySkill
- ui-styling-guideSkill
- ui-ux-methodologySkill
- user-spec-planningSkill
- validation-pipelineSkill
- yandex-analytics-methodologySkill
- yandex-direct-guideSkill
- yandex-metrika-guideSkill
- yandex-search-guideSkill
- yandex-webmaster-guideSkill
- yandex-wordstat-guideSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 80
If size is missing or invalid → treat as M (safe default).
- Distinctive: line 100
Don't accept with "LGTM": Every accept references the criteria trace.
- Distinctive: line 101
Don't reject on style / taste alone: Only on criteria mismatch, validator failures, contradictions, unsupported claims, out-of-whitelist …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Acceptance protocol (tier-aware)
Naming note: throughout this protocol, "director" denotes the per-engagement acceptor role — implemented by the
*-manageragents (dev-manager,design-manager,marketing-manager). The senior*-directoragents are a separate role: the system-optimizers that improve the skill/agent corpus (seesystem-optimization-protocol); they never accept engagements. Read every "director" below as "manager / acceptor". (Script names likedirector-verdict-check.pyare unchanged — they check the verdict artefact, not the agent name.)
Acceptance scales with engagement tier. The same engagement at tier S, M, and L receives different rigour:
| Tier | Director phase? | Adversary | Validator coverage |
| S | No (producer self-attest + mechanical + human glance) | None | Per domain + ux_heavy, minimal set |
| M | Yes, lightweight (judge between producer + 1 adversary) | Opus adversary in fresh subprocess | Per domain + ux_heavy, typical 1-3 |
| L | Yes, full (judge between producer + consilium of 5) | Opus + 2× Codex + Sonnet + Haiku consilium | All applicable validators |
Tier is read from engagement/criteria.md frontmatter size: S|M|L. The acceptance phase dispatches to the matching per-tier reference below.
Where this skill ends and per-domain manager starts
This skill defines GENERIC acceptor behavior shared by all 3 domain managers (dev-manager, design-manager, marketing-manager). The agent files contain only domain-specific contracts:
- Required validators per domain (e.g., security-auditor for dev; critique + accessibility for design; reality-checker + skeptic for marketing)
- Domain red flags that force REJECT (e.g., migration without rollback for dev; brand-token-propagation failure for design; ranking-without-source-date for marketing)
- Domain-specific anti-patterns (e.g., "don't edit source files" for dev; "don't open Figma" for design; "don't rewrite copy" for marketing)
- Common scope-sync questions (domain-flavored)
- Tool-unavailability special cases (Playwright/Figma for design; Yandex APIs for marketing)
Tier dispatch, verdict template, mechanical post-check, scope-sync protocol, escalation, iteration loop — all live in this skill (this hub routes to the per-tier and cross-tier references). If you're modifying generic acceptor behavior, edit this skill (one place, three managers benefit).
Role boundary
Directors do not plan, do not dispatch executors, do not write deliverables, do not re-run validators independently. They judge the lead's handoff against criteria, informed by adversary findings (M/L) or producer self-attestation (S).
| Action | Lead | Director |
| Capture intake | ✗ | ✗ (secretary does) |
| Plan engagement | ✓ | ✗ |
| Dispatch executors | ✓ | ✗ |
| Run validators (security / accessibility / code-reviewer / etc.) | ✓ (required before handoff) | ✗ (judges results) |
| Run adversary (M/L only) | ✗ (script invocation, not lead authoring) | Triggers via adversary_lg.py |
| Judge against criteria | ✗ | ✓ |
| Write verdict | ✗ | ✓ (M/L only) |
| Return to user | Lead on S; director on M/L | ✓ |
Re-running a validator is allowed only on L-tier and only when adversary findings explicitly identify a validator-coverage gap. Maximum 1 re-run per validator per iteration. Sweep-style "re-run everything" is forbidden — same brain produces same verdict, no new information.
Tier dispatch (read criteria.md frontmatter, follow your tier's protocol)
# engagement/criteria.md frontmatter
---
engagement: ...
domain: ...
size: S | M | L # ← dispatch by this field
ux_heavy: ...
tools_required: ...
---If size is missing or invalid → treat as M (safe default). Verify via python ~/.claude/scripts/handoff-precheck.py engagement/ (it reports tier in TL;DR).
Follow the protocol for the dispatched tier — that IS the act of accepting:
- S → follow s-tier.md — producer self-attest + mechanical + human glance; 1 iteration; no manager phase.
- M → follow m-tier.md — lightweight manager, 1 Opus adversary, two-pass consilium, human-as-judge flow, 2 iterations.
- L → follow l-tier.md — full 5-reviewer cross-family consilium, cross-family obligations, 3 iterations.
Every tier also applies, in addition to its per-tier steps:
- the cross-tier rules in cross-tier-rules.md — consilium fidelity/provenance cross-check (M/L), ux_heavy gradient, validator selection, danger-scan, per-engagement reflection + SkillOpt readiness, engagement-directory layout.
- the process rules in process-rules.md — iteration loop + escalation triggers, scope sync (M/L), auto-promote handling, observability.
- the verdict format in verdict-format.md — binary ACCEPT/REJECT (no conditional), canonical templates per tier, adjudication marker reference, path verification.
Anti-patterns
- Don't issue
ACCEPT CONDITIONALor any non-binary verdict. Tool unavailability = REJECT withvalidation incomplete. - Don't accept "user will verify"-style claims. Agency exists to remove that burden.
- Don't plan or redirect lead's approach. Reject with evidence, let lead rework.
- Don't fix artefacts yourself. Even one-line fix belongs to the lead. Acceptor, not co-author.
- Don't accept with "LGTM". Every accept references the criteria trace.
- Don't reject on style / taste alone. Only on criteria mismatch, validator failures, contradictions, unsupported claims, out-of-whitelist files.
- Don't re-run validators in sweep style. That's the old protocol. M/L use adversary for second opinion. Validator re-run only when adversary findings identify specific coverage gap (max 1 per validator per iter, L only).
- Don't run director phase on S-tier. S has no director. Producer self-attest + mechanical + human glance.
- Don't skip adversary on M. That's the whole point of M acceptance — adversary breaks framing contamination.
- Don't skip consilium on L. Single Opus adversary on L misses cross-family blind spots.
- Don't skip the consilium because it "looks unavailable." It runs in-session via subprocess
claude -p(self-bootstrapping venv, off-PATH binary discovery, read-tool grant — see Runbook in m-tier.md §step 4). A permission/PATH/venv error is a bug to fix or escalate ONCE, never grounds to accept M/L without it. Substituting independent-validator coverage for the mandatory consilium is a silent skip (the dispatch-gap that forced this was fixed 2026-06-01; the reviewer empty-timeout hang was fixed + field-confirmed 2026-06-02 — "adversary_lg hangs" is no longer a valid waiver). - Don't loop silently. Escalate immediately on repeating critique. Counter-based escalation is the floor.
- Don't write "slot N/M" anywhere. Slot language banned across all agency artefacts.
- Don't demote tier mid-engagement. Auto-promote is one-way; if scope shrinks, acceptance still uses higher tier.
- Don't write a verdict without binding it. Every verdict carries
handoff-sha256:in its## Iteration {N}section (handoff-digest.pyprints the line). An unbound verdict survives the handoff being edited underneath it, which makes the whole acceptance record unfalsifiable. See verdict-format.md §"Bind the verdict to what it judged". - Don't edit handoff.md after the verdict and leave the digest alone. If the edit was immaterial, re-record the digest deliberately. A stale binding is worse than none, because it looks checked.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

