agentleFS
rafaelobrafaelob/pragmatic-agent-skills/skills/layered-testing-executor/SKILL.md

layered-testing-executor

Skill23 starsChanged 8 days agoApache-2.0View on GitHub

Use when a changed capability is ready to verify: tests to pick and run, seams to prove reachable, genuine zero vs unknown. Narrowest layer first. Not first failing test -> tdd.

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the project's existing runner, lock and environment.

    line 48
  2. Distinctive:

    Read selection examples for ambiguous cases, evidence reuse and safe retirement.

    line 60
  3. Distinctive:

    Use the optional evidence note only for a nontrivial result that lacks an existing project format.

    line 62

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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.

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

Select useful tests for this change

Find the real contract

Read the diff, acceptance, declared runner and applicable verification policy. Include relevant staged, unstaged and generated changes. Group by changed behavior and trust boundary, not by a mandatory row for every file. A one-line config change can have broad impact; a large generated diff can have a narrow owner.

Select the smallest adequate proof

First inspect existing affected tests. Add or extend a test only for a distinct uncovered failure, invariant or contract (writing the test → tdd; pruning existing ones → test-audit). Use unit/domain checks for local rules; component tests for local interaction; a real integration for the collaborator behavior at issue; browser journeys for browser-dependent or cross-boundary outcomes. These are choices, not a ladder whose every rung must run.

A copy-only UI edit does not by itself require UI→API→database. Verify its render, overflow or accessible name as relevant. Config syntax does not prove effective precedence or runtime behavior; test those only where affected. A mocked provider can prove local recovery logic, not that provider's live API. An absent required real integration is BLOCKED, not a mocked substitute.

Execute precisely

Use the project's existing runner, lock and environment. Preserve exit status and runner summaries. A deliberately empty lint result may be valid; an empty test suite proves no behavior.

Prove the seam, and keep zero distinct from unknown

A layer passing is not the caller arriving. For a changed capability, start at the accepted entry point — UI action, public function, API, CLI, event or worker — and name only the real seams on that path and which of them one real run proves; add a separate command and verdict only for a seam that run does not reach or cannot distinguish; code invoked solely in tests is not evidence of application wiring, and a health endpoint is not a registered route. Inspect both trigger and effect, and observe a persistence claim through the real read path. When a UI→API→persistence run is owed is the global testing rule's call.

Then keep the outcome's meaning: zero collection, timeout, failure, xfail, deselection, skip and an unreadable result are not interchangeable with a pass, and a fallback of zero, an empty list or a success badge must not erase a failure. The counterexample is the cheapest proof — the same empty payload after a completed run and after a failed run must produce different consumer behaviour.

Escalate or finish

Investigate a failure at the smallest responsible seam instead of adding a heavier suite. Widen for an uncovered contract, cross-cutting effect, concurrency/data risk, known escape or explicit gate—not merely because a generic file category matched. Unrelated blocked checks need not stop independent safe work, but still prevent the completion claim that depends on them.

Report one line per check that actually ran — command, verdict, any gap — in the existing work record. Group identical skip causes instead of producing a row for every deselected test.

Read selection examples for ambiguous cases, evidence reuse and safe retirement.

Use the optional evidence note only for a nontrivial result that lacks an existing project format.

For the red-green loop of one behavior, use tdd; when a browser journey is the only honest boundary, use testing-e2e-playwright.

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.