agentleFS
melconcoastmelconcoast/code-idea/.agents/skills/test-and-verify/SKILL.md

test-and-verify

Skill4 starsChanged 11 days agoMITView on GitHub

Use this skill whenever tests are to be run or a failure chased down — "run the tests", "run the test suite", "verify this", "check the tests pass", "fix the failing tests", "why is this test failing", or when `execute-plan` needs a task or a `Task X.V` gate verified. Use it even when the request looks like a one-liner — the bounded loop and the honest verdict are the point, not the command. Not for writing a feature or its tests from a plan — use execute-plan. Not for standing up a project's first test runner — use execute-plan. Runs a project's tests, reads the real output rather than the exit code, and fixes what fails — a bounded diagnose-fix-rerun loop that stops after three remediation attempts instead of guessing on, and never weakens a test to reach green. Targets the suite relevant to the work, and adds the type-checker and linter at a phase gate. Reports a plain pass or fail verdict with the exact command it ran, and never edits a plan file — the caller marks the boxes.

3 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. cellrishi-code/claude-skills-atlas★ 6same name
    2. lucasrafaldini/paperdeck★ 1same name
    3. sainzs/santiagosainz-skills★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository7 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 4 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Never to decide *what* to build, and never to write a feature's first tests from a plan — that's execute-plan

    line 16
  2. Distinctive:

    Fix only what the failure names: Not the code around it, not a style you'd have written differently, not a passing test you find …

    line 21
  3. Very specific:

    Never edit a plan file: Not a glyph, not a count, not the Progress Log.

    line 23
  4. Very specific:

    If the caller supplied a command, use it.

    line 30
  5. Very specific:

    A Task X.V phase gate is the exception: run the whole module's suite, plus the project's type-checker and linter if it has them.

    line 32
  6. Very specific:

    If no runner exists at all, say so and hand back.

    line 34
  7. Distinctive:

    Run the command. Capture stdout and stderr, and read them — the exit code alone is not the result.

    line 37
  8. Distinctive:

    Read the failure properly: the assertion, the stack trace, the actual-versus-expected.

    line 42
  9. Distinctive:

    When visual scenarios were in scope, report each one — matched, mismatched with what differs, or not checked and why.

    line 50

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

test-and-verify

Runs the tests, reads what actually happened, and fixes what's broken — within a bounded number of attempts, then hands back.

When this runs

  • execute-plan finishes a task and needs its scenarios proved, or reaches a Task X.V phase gate
  • The user asks for the suite to be run, or for a failing test to be chased down
  • Never to decide what to build, and never to write a feature's first tests from a plan — that's execute-plan

Core philosophy

  • A pass you didn't read isn't a pass. Run the command, read stdout and stderr, and check the counts. A suite that "succeeded" because it collected zero tests, skipped the new ones, or exited 0 on a crash is a failure wearing a green hat.
  • Three attempts, then stop. The loop is bounded on purpose. A fourth attempt is guessing, and guessing costs tokens and makes the diff worse. Hand back with what you know.
  • Fix only what the failure names. Not the code around it, not a style you'd have written differently, not a passing test you find unconvincing. Unrelated findings get reported, never fixed in passing.
  • The failure decides what to fix — application code or the test. These are different bugs, and picking wrong makes both worse. Say which one you concluded and why before you change anything.
  • Never edit a plan file. Not a glyph, not a count, not the Progress Log. This skill produces a verdict; execute-plan writes it down. Two writers on one file is how a plan stops being trustworthy.
  • A screen nobody looked at isn't verified. Visual scenarios pass only on a rendered comparison with their mockup, never on reading markup — and with no way to render, the honest verdict is not checked, never a pass.
  • Never weaken a test to make it pass. Deleting an assertion, loosening a matcher, adding a skip, or narrowing the run until the failure is out of scope is not a fix — it's hiding the bug and reporting green.

Workflow

Step 1 — Find the command, and the right scope for it

  • If the caller supplied a command, use it. Otherwise discover it — see references/test-commands.md.
  • Default to the tests relevant to the work at hand, not the whole suite. A targeted run is faster and its output is readable.
  • A Task X.V phase gate is the exception: run the whole module's suite, plus the project's type-checker and linter if it has them. The gate exists to catch what this phase broke somewhere else, and a targeted run cannot see that.
  • Visual scenarios add a visual check — whenever the caller names any, and at the gate of a phase that built a screen. Render each screen at the reference widths and compare it with its mockup; see references/visual-check.md. It's part of the same verdict, not a separate one.
  • If no runner exists at all, say so and hand back. Setting one up is a project decision that belongs to execute-plan, not a remediation step.

Step 2 — Run it and read the output

  • Run the command. Capture stdout and stderr, and read them — the exit code alone is not the result.
  • Confirm the tests you expected actually ran. Check the reported counts, and check for skips, filters, or .only that quietly excluded them.
  • Green, with the expected tests genuinely run: stop here and report. Don't keep going, and don't tidy anything on the way out.

Step 3 — Diagnose, fix, re-run — at most three times

  • Read the failure properly: the assertion, the stack trace, the actual-versus-expected. Guessing from the test's name is how the wrong file gets edited.
  • Decide whether the bug is in the application code or in the test — a bad mock, a wrong assertion, a fixture that drifted — and say which before changing anything. See references/remediation.md.
  • Apply one targeted fix, then re-run. One change per attempt, so the next run tells you something.
  • After the third failed attempt, stop. Report what failed, what you tried, what you ruled out, and your best read on the cause. Handing back a clear dead end beats a fourth guess.

Step 4 — Report the verdict

  • State plainly: passed or failed, the exact command run, the counts, and what the caller may now do.
  • On a gate run, report the type-check and lint results too, and say explicitly if the project has neither rather than implying they passed.
  • When visual scenarios were in scope, report each one — matched, mismatched with what differs, or not checked and why.
  • On failure, never imply partial success. A caller that reads "mostly passing" as green is the failure mode this whole skill exists to prevent.
  • Report anything you noticed but deliberately did not fix. See references/remediation.md for both report shapes.

Reference files

  • references/test-commands.md — where to find the right command per ecosystem, targeted versus full-suite invocation, and the type-check and lint commands a gate adds. Read this in Step 1 when no command was supplied.
  • references/visual-check.md — rendering a screen, comparing it with its mockup, and what to do when there's no browser. Read this in Step 1 whenever visual scenarios are in scope.
  • references/remediation.md — telling an application bug from a test bug, what a targeted fix looks like, the circuit breaker, and the exact pass and fail report formats. Read this before the first fix in Step 3.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.