/verification-contract
Internal contract: one compact frozen ACCEPTANCE.md per delivery unit, its validation ladder, anti-weakening rules, and blob-bound execution receipt. Consumed by planners, execute-phase, review-change, and loop-review-fold.
$ npx -y skills add gtrabanco/agentic-workflow --skill verification-contract --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/verification-contract
Context preview
The summary Claude sees to decide when to auto-load this skill.
Internal contract: one compact frozen ACCEPTANCE.md per delivery unit, its validation ladder, anti-weakening rules, and blob-bound execution receipt. Consumed by planners, execute-phase, review-change, and loop-review-fold.
SKILL.md
verification-contract.SKILL.mdname: verification-contract
user-invocable: false
version: 1.0.1
author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>"
license: MIT
description: >
Internal contract: one compact frozen ACCEPTANCE.md per delivery unit, its
validation ladder, anti-weakening rules, and blob-bound execution receipt.
Consumed by planners, execute-phase, review-change, and loop-review-fold.
Verification Contract (internal)
Single owner of the delivery finish line. Planning freezes it; executors may strengthen coverage but cannot move it; review checks the same bytes.
Artifact
Every new feature/fix carries `ACCEPTANCE.md` beside its SPEC. Copy the matching repository template. Required parts: `Status: frozen`; one stable ID per SPEC criterion; `Required outcome`; named `Validator`; literal quality floor; project commands. Prefer commands, otherwise use `read-verified: <evidence>` or `manual: <exact observation>`. Unlabelled prose is invalid. A planned test may name its future project runner; it cannot substitute a narrower runner later.
Freeze and receipt
At first execution run `git hash-object <unit>/ACCEPTANCE.md` and append to the unit progress file:
## Acceptance receipt v1
- Manifest: <path> · Blob: <sha> · Status: frozen · Verified: <date>
Before every phase and final review, recompute it. Exact match continues; missing/mismatched evidence stops before edits:
ACCEPTANCE GATE — <unit> BLOCKED
Expected blob: <sha|missing> · Actual: <sha|missing>
Reason: the frozen finish line is missing or changed.
→ Next: restore the frozen manifest, or obtain explicit user approval for a
SPEC amendment and replacement manifest; then write a fresh receipt
· never edit tests, commands, or acceptance to make the current candidate pass
A legitimate change requires, in order: explicit user approval; dated SPEC `## Amendments` row; replacement manifest; committed fresh receipt. The executor never self-authorizes it.
Legacy unit with no manifest mention: fingerprint committed `SPEC.md` and record `Manifest: legacy SPEC.md`. A new plan or any plan naming the manifest fails closed when it is missing.
Validation ladder
Evaluate every row plus the normal project gate:
- `PASS`: commands green; read evidence present; manual checks named.
- `FAIL`: validator disproves the candidate; include compact failure evidence.
- `NEEDS-DECISION`: missing product/architecture choice.
- `BLOCKED`: command/input/environment unavailable; name it.
Anti-gaming rules
Forbidden: deleting, skipping, narrowing, or loosening a validator; suppression, stub, hard-coded answer, or no-op fix used to manufacture green. A command cannot prove an untested read/manual row. Stronger regression tests are allowed. Repair test setup only when assertions stay at least as strong and the reason is logged.
Done when
Frozen manifest + current blob receipt + named validators + literal quality floor; executor and reviewer evaluate identical bytes.
Read more
name: verification-contract user-invocable: false version: 1.0.1 author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>" license: MIT description: > Internal contract: one compact frozen ACCEPTANCE.md per delivery unit, its validation ladder, anti-weakening rules, and blob-bound execution receipt. Consumed by planners, execute-phase, review-change, and loop-review-fold.
Verification Contract (internal)
Single owner of the delivery finish line. Planning freezes it; executors may strengthen coverage but cannot move it; review checks the same bytes.
Artifact
Every new feature/fix carries `ACCEPTANCE.md` beside its SPEC. Copy the matching repository template. Required parts: `Status: frozen`; one stable ID per SPEC criterion; `Required outcome`; named `Validator`; literal quality floor; project commands. Prefer commands, otherwise use `read-verified: <evidence>` or `manual: <exact observation>`. Unlabelled prose is invalid. A planned test may name its future project runner; it cannot substitute a narrower runner later.
Freeze and receipt
At first execution run `git hash-object <unit>/ACCEPTANCE.md` and append to the unit progress file:
## Acceptance receipt v1 - Manifest: <path> · Blob: <sha> · Status: frozen · Verified: <date>
Before every phase and final review, recompute it. Exact match continues; missing/mismatched evidence stops before edits:
ACCEPTANCE GATE — <unit> BLOCKED Expected blob: <sha|missing> · Actual: <sha|missing> Reason: the frozen finish line is missing or changed. → Next: restore the frozen manifest, or obtain explicit user approval for a SPEC amendment and replacement manifest; then write a fresh receipt · never edit tests, commands, or acceptance to make the current candidate pass
A legitimate change requires, in order: explicit user approval; dated SPEC `## Amendments` row; replacement manifest; committed fresh receipt. The executor never self-authorizes it.
Legacy unit with no manifest mention: fingerprint committed `SPEC.md` and record `Manifest: legacy SPEC.md`. A new plan or any plan naming the manifest fails closed when it is missing.
Validation ladder
Evaluate every row plus the normal project gate:
- `PASS`: commands green; read evidence present; manual checks named.
- `FAIL`: validator disproves the candidate; include compact failure evidence.
- `NEEDS-DECISION`: missing product/architecture choice.
- `BLOCKED`: command/input/environment unavailable; name it.
Anti-gaming rules
Forbidden: deleting, skipping, narrowing, or loosening a validator; suppression, stub, hard-coded answer, or no-op fix used to manufacture green. A command cannot prove an untested read/manual row. Stronger regression tests are allowed. Repair test setup only when assertions stay at least as strong and the reason is logged.
Done when
Frozen manifest + current blob receipt + named validators + literal quality floor; executor and reviewer evaluate identical bytes.
🇪🇸 Versión en español A reusable set of agent skills that run a disciplined, doc-driven workflow for building software with agents — from idea/issue to a reviewed, classified, merge-ready change.
Repo: gtrabanco/agentic-workflow
Other skills on agentic-workflow.
- /audit-docs
Audit cross-document coherence: docs ↔ roadmap ↔ code ↔ fix index ↔ issues. Finds drift — features in docs/ not in the roadmap (or vice versa), fix-index entries already merged/closed, broken documentation-map links, dependency cycles, artifacts in the wrong language,
Open skill - /audit-pr
Audit a whole PR against the delivery contract and return MERGE-READY or evidenced blockers with the full URL. Consumes the current review-change REVIEW-PASS receipt instead of re-running review axes; posts a SHA-bound ready comment; never edits or merges. Triggers: "audit-pr",
Open skill - /bump-skill
Internal agentic-workflow maintenance: after SKILL.md edits, bump semver, lint authoring rules, and synchronize changelogs, READMEs, routing metadata, and migrations. Triggers: "bump the skill", "update the changelog", "version bump".
Open skill - /design-feature
Turn a raw idea or existing feature into a designed product SPEC by completing entity, integration, role, and expectation closure. Upserts never destroy recorded decisions. Triggers: "design-feature", "design this feature", "define product scope".
Open skill - /discover-repository-state
Discover repository evidence and write a frozen Normalized Repository State. Produces verified repository evidence and keeps facts, decisions, planned work, documentation, and inference separate. It does not make recommendations or infer implementation from documentation.
Open skill - /execute-phase
Implement all remaining phases of a planned feature/fix by default, or one explicit P<n>, with frozen acceptance, phase-local gates, commits, recovery, and final PR close-out. Use --fix for fix SPECs; --force is user-only.
Open skill

