Map each acceptance criterion to a specific verification method, collect evidence during verification, and produce a structured evidence bundle for the verdict judge. Use when verifying implementation completeness against issue acceptance criteria.
From flownpx claudepluginhub synaptiai/synapti-marketplace --plugin flowThis skill is limited to using the following tools:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Domain skill that formalizes the mapping from acceptance criteria to verification methods and structures evidence collection.
EVERY ACCEPTANCE CRITERION GETS A VERIFICATION METHOD AND AN INDIVIDUAL VERDICT. No criterion passes by assumption. No criterion is "too obvious to verify."
Each acceptance criterion maps to a verification type:
| Criterion Type | Signal Words | Verification Method | Evidence Format |
|---|---|---|---|
| Behavioral (logic) | "when X then Y", "should return", "must validate" | Unit/integration test | Test runner output (pass/fail + relevant lines) |
| API endpoint | "status code", "response", "endpoint", "header" | curl/fetch command | HTTP status + response body snippet |
| UI rendering | "displays", "shows", "page", "renders", "layout" | Screenshot + visual analysis | Screenshot path + analysis summary |
| Error handling | "error message", "invalid", "fails gracefully" | Test with invalid input | Error output + expected vs actual |
| Performance | "within N ms", "rate limit", "timeout" | Benchmark/timing command | Timing output |
| Configuration | "config", "environment", "setting" | Build/load test | Build success log |
| Data processing | "transforms", "converts", "output matches" | Run with test data | Input/output comparison |
During the PLAN phase, after the implementation-planner creates implementation tasks, create a matching verification task for each acceptance criterion:
TaskCreate(
subject: "Verify: {criterion short description}",
description: "Criterion: {full criterion text}\n\nVerification method: {type from classification}\nVerification command: {specific command to run}\nExpected evidence: {what success looks like}",
activeForm: "Verifying {short description}"
)
Verification tasks execute during the VERIFY phase, NOT during CODE. They are separate from implementation tasks.
During VERIFY phase, for each verification task:
TaskUpdate(verifyTaskId, status: "in_progress")TaskUpdate(verifyTaskId, status: "completed", result: "EVIDENCE_COLLECTED")After all verification tasks complete, assemble the evidence bundle — a structured text document that the verdict-judge receives:
## Evidence Bundle for Issue #{N}
Generated: {timestamp}
Branch: {branch name}
Commits: {count} since branch creation
### Criterion 1: {full criterion text}
- **Type**: {behavioral|api|ui|error|performance|config|data}
- **Verification command**: `{command that was run}`
- **Evidence**:
{raw output from verification command}
- **Screenshot**: {path, if UI type — otherwise omit}
### Criterion 2: {full criterion text}
- **Type**: {type}
- **Verification command**: `{command}`
- **Evidence**:
{output}
{repeat for all criteria}
The bundle is passed to the verdict-judge agent, which must judge independently. Therefore:
The judge receives ONLY:
Behavioral (test output):
npm run test -- --grep "user authentication" 2>&1 | tail -20
API endpoint (curl):
curl -s -w "\nHTTP_STATUS:%{http_code}" http://localhost:3000/api/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"wrong"}' 2>&1
UI rendering (screenshot path):
Screenshot saved to: .screenshots/login-page-desktop.png
Visual analysis: Login form visible with email and password fields, submit button enabled.
Error handling:
npm run test -- --grep "invalid credentials" 2>&1 | tail -10
The criterion-verification-map skill is invoked in two phases of /flow:start: