skills/cy-final-verify/SKILL.md
Enforces fresh verification evidence before any completion, fix, or passing claim, and before commits or PR creation. Use when an agent is about to report success, hand off work, or commit code. Do not use for early planning, brainstorming, or tasks that have not yet reached a concrete verification step.
npx skillsauth add compozy/compozy cy-final-verifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Claiming work is complete without verification is dishonesty, not efficiency.
Core principle: Evidence before claims, always.
Violating the letter of this rule is violating the spirit of this rule.
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
If the verification command has not been run in the current message, the result cannot be claimed.
BEFORE claiming any status or expressing satisfaction:
1. IDENTIFY: What command proves this claim?
2. RUN: Execute the FULL command (fresh, complete)
3. READ: Full output, check exit code, count failures
4. VERIFY: Does output confirm the claim?
- If NO: State actual status with evidence
- If YES: State claim WITH evidence
5. ONLY THEN: Make the claim
Skip any step = lying, not verifying
Match the verification scope to the claim scope:
make verify), run that.A narrow verification does not support a broad claim. Running make test alone does not justify "task complete." Running the linter alone does not justify "ready to commit." The verification scope must be equal to or broader than the claim scope.
If in doubt, run the full pipeline. Over-verification wastes minutes. Under-verification wastes hours.
Passing pipeline != meeting requirements. A green build proves the code compiles, lints, and passes existing tests. It does not prove the implementation matches the requirements. For "task complete" or "requirements met" claims, also verify the deliverables against the original specification — line by line, not by assumption. In a spec/PRD workflow, "the original specification" means the canonical artifacts in the spec directory (example documents, input tables, parity maps, QA seeds) — never just the task file's paraphrase of them (see "Spec Contract Parity").
| Claim | Requires | Not Sufficient | | --------------------- | ------------------------------- | ------------------------------ | | Tests pass | Test command output: 0 failures | Previous run, "should pass" | | Linter clean | Linter output: 0 errors | Partial check, extrapolation | | Build succeeds | Build command: exit 0 | Linter passing, logs look good | | Bug fixed | Test original symptom: passes | Code changed, assumed fixed | | Regression test works | Red-green cycle verified | Test passes once | | Agent completed | VCS diff shows changes | Agent reports "success" | | Requirements met | Line-by-line checklist | Tests passing | | Matches spec contract | Field-by-field diff vs canonical spec artifacts | Task-file paraphrase satisfied, checkboxes ticked |
| Excuse | Reality | | --------------------------------------- | ---------------------- | | "Should work now" | Run the verification | | "I'm confident" | Confidence ≠ evidence | | "Just this once" | No exceptions | | "Linter passed" | Linter ≠ compiler | | "Agent said success" | Verify independently | | "I'm tired" | Exhaustion ≠ excuse | | "Partial check is enough" | Partial proves nothing | | "Different words so rule doesn't apply" | Spirit over letter |
Apply this skill before:
Two companion gates below are conditional. Probe the agent skill roots (.agents/skills/, .claude/skills/, or the runtime's skill catalog) for a SKILL.md under the named skill. If the skill is absent, skip that gate entirely — do not invent a substitute, and do not fail verification for the missing companion.
| Gate | Requires | If missing |
| ---- | -------- | ---------- |
| Deslop Gate | deslop | Skip deslop; proceed to verify |
| QA Tracker Impact | both qa-report and qa-execution | Skip the QA impact flag |
Only when the deslop skill exists. Before collecting completion evidence, run deslop on the branch diff and apply its cleanup. Order matters: deslop mutates code, so verification evidence gathered before it is stale — deslop first, then verify. Skipping it when the skill is present ships AI slop (noise comments, defensive clutter, style drift) into permanent artifacts.
Commits and PRs are permanent artifacts. They require the highest verification standard.
Before git commit:
deslop skill exists, run the deslop pass (see "Deslop Gate" above).make verify). Not a subset. The full pipeline.qa-report and qa-execution skills exist and the project keeps a living QA tracker (e.g. docs/qa/state.csv), apply the QA impact flag (see "QA Tracker Impact" below).git commit.Before creating a PR:
git diff review).If the full pipeline has not passed in this session after the last code change, the commit or PR must not proceed.
Only when both qa-report and qa-execution skills exist. A green pipeline proves the code works; it does not keep QA verdicts honest. When the project also keeps a living QA tracker (e.g. docs/qa/state.csv), a completion claim also requires the impact flag — one question, ~1 minute:
Does this diff change user-visible behavior (UI, CLI verb, API route, config key, user-facing copy)?
untested.qa_status to untested (a stale pass is worse than no verdict).Flag, don't retest. Running QA is the QA cycle's job — untested rows are exactly its scope. Skipping the flag silently (when the companion skills and tracker are present) is a stale-verdict claim: the same dishonesty as claiming tests pass without running them.
A green pipeline and ticked task checkboxes do not prove the deliverable matches the spec. When the work executes a task from a spec directory (PRD/TechSpec plus sibling artifacts), a "task complete" claim additionally requires:
_examples.md, _qa.md input tables, _tests.md test contracts, _user_stories.md acceptance criteria, parity maps). If none are known, survey the spec directory now — absence must be proven, not assumed.Contract parity: line).Failure mode this section exists to prevent (real incident): a task shipped "green" through seven peer-review rounds while contradicting the spec's canonical example document — every check measured engineering quality against the task file's paraphrase, and nothing ever compared the deliverable to the canonical contract.
Verification is not complete until the agent cites actual command output in their response. "I ran it and it passed" is not evidence. If the verification output is not shown, the verification did not happen.
Every verification must be reported using this structure. Do not deviate.
VERIFICATION REPORT
-------------------
Claim: [What is being claimed — e.g., "tests pass", "build succeeds", "task complete"]
Command: [Exact command run — e.g., `make verify`]
Executed: [Timestamp or "just now, after all changes"]
Exit code: [0 or non-zero]
Output summary: [Key lines from output — pass count, error count, build result]
Warnings: [Any warnings, or "none"]
Errors: [Any errors, or "none"]
Contract parity: [spec-workflow tasks: artifacts compared + PASS/mismatch; otherwise "n/a"]
Verdict: PASS or FAIL
If the verdict is FAIL, do not use completion language. State what failed and what remains.
If the verdict is PASS, the claim may proceed — but only the specific claim supported by the evidence. "Tests pass" does not mean "build succeeds."
Verification failure is not a dead end. It is information. Follow this protocol:
Never:
If the correct verification command is unclear, identify it before making any completion claim. If only partial verification is available, state that limitation explicitly and avoid completion language.
development
Expands a raw idea into a structured, research-backed spec in .compozy/tasks/<slug>/_idea.md through interactive brainstorming, web research, business analysis, and multi-advisor debate. Use when the user has a feature idea and wants to explore and structure it before creating a PRD. Do not use for PRD creation, technical specifications, task breakdown, or code implementation.
testing
Reconciles a finished workflow's planned decisions (its Accepted ADRs) against the settled reality (git diff, review issues, and task status), then promotes the proven, cross-feature-durable ones into a durable project decision log at .compozy/DECISIONS.md plus .compozy/decisions/AD-NNN.md. Use when a workflow has finished its full pipeline (review round, reviews fix, and final verify) and you want to capture its durable decisions as the final step, or when re-running capture to refresh the log after further changes. Do not use for capturing decisions mid-implementation before review remediation, for PRD or TechSpec authoring, for PR review remediation, or for generic note-taking.
development
Performs a comprehensive code review of a PRD implementation and generates a review round directory with issue files compatible with cy-fix-reviews. Use when reviewing implemented PRD tasks, creating a manual review round without an external provider, or performing a quality audit of code changes. Do not use for fetching reviews from external providers, fixing existing review issues, executing PRD tasks, or editing source code.
testing
Executes one PRD task end-to-end uninterrupted — resolves spec conflicts autonomously, implements, validates, and updates tracking without pausing for questions. Use when a prompt includes a task specification that must be implemented, validated, and reflected in task tracking files. Do not use for PR review batches, generic coding tasks without a PRD task file, or standalone verification-only work.