agentleFS
ChariereFiedlerChariereFiedler/ronce-racine/skills/validating-features-end-to-end/SKILL.md

validating-features-end-to-end

Skill9 starsChanged 23 days agoMITView on GitHub

Use when a feature is just implemented and tests pass, before closing a ticket or announcing it done - "is it good?", "does it work?", "ready to close the ticket?", "c'est bon ?", "est-ce que ça marche ?", "je peux fermer le ticket ?", green unit tests as only evidence.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 6 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    This skill: when: feature implemented, tests green, before closing the ticket / announcing "done" - you must prove the intended behavior …

    line 16
  2. Very specific:

    commit-readiness-review: instead if: the question is "is it committable" (secrets, lint, debug leftovers), not "does it work"

    line 18
  3. Distinctive:

    If multi-tenant: 2 accounts from 2 distinct tenants to verify isolation

    line 25
  4. Distinctive:

    Evidence before assertion: every ✅ in the report = an archivable artifact (screenshot, curl output, SQL query), never "it should work"

    line 30
  5. Distinctive:

    Adjacent non-regression: run the E2E/test suite for the same functional domain - the feature must not break its neighbors.

    line 41
  6. Distinctive:

    If a gap: do not close the ticket - document it in the tracker and return to implementation.

    line 56
  7. Distinctive:

    No dedicated script here: the commands (dev, E2E) are project-specific - read them from its config

    line 81

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

Functional validation of a feature - evidence before verdict

If the current repo has a dedicated validation skill, it wins.

This skill vs. others

  • This skill when: feature implemented, tests green, before closing the ticket / announcing "done" - you must prove the intended behavior works in the real app
  • adversarial-feature-challenge next: once it is proven to work, hunt for what breaks it
  • commit-readiness-review instead if: the question is "is it committable" (secrets, lint, debug leftovers), not "does it work"

Context to gather (before acting)

  • The ticket/spec: golden path, explicit error cases, business rules - that is the list of invariants to validate
  • Dev start command + the domain's E2E test command (package.json / Makefile / CI config)
  • How to call the API directly (auth, base URL) and how to read the DB read-only
  • If multi-tenant: 2 accounts from 2 distinct tenants to verify isolation

Principle

  • "It compiles ≠ it works" and "green tests ≠ working feature" - green unit tests on the formatter do not prove the button downloads a file
  • Evidence before assertion: every ✅ in the report = an archivable artifact (screenshot, curl output, SQL query), never "it should work"
  • Strict scope: validate THE requested feature, not audit the project
  • Complementary to adversarial-feature-challenge: here you prove the intended behavior works; the challenge hunts for what breaks

Workflow

  1. Actually start the app (the project's dev command). No verdict without having exercised the feature in the running app.
  2. List the invariants from the ticket/spec: golden path, explicit error cases, business rules. Validate what the ticket asks for, not what the code does.
  3. Golden path exercised with evidence: preferably a dedicated E2E spec (page object, data-testid, zero hard waits) with a final screenshot; otherwise a driven manual walkthrough (Playwright MCP) + screenshot.
  4. Planned edge cases: for each error case in the spec - 404/someone else's resource, insufficient rights, server validation, quota. Multi-tenant: validate with 2 accounts from 2 tenants (cross-tenant leakage is the #1 risk of exports/lists).
  5. Backend evidence: direct API call (status, payload matching the contract, headers - e.g. Content-Type/Content-Disposition for an export) + read-only DB state.
  6. Adjacent non-regression: run the E2E/test suite for the same functional domain - the feature must not break its neighbors.
  7. Re-read the assertions of the green tests: a test with an over-permissive mock or an empty fixture passes without exercising anything. Green ≠ relevant.

Report (mandatory, not optional)

Feature: <name> - Ticket: #<iid>
Golden path: ✅ (evidence: <screenshot path / output>)
Edge cases: <list with ✅/❌ and evidence for each>
Backend: API conforms ✅ · DB consistent ✅ (evidence)
Adjacent non-regression: <suites run + result>
Tenant isolation: ✅ (if applicable)
Verdict: ready for review | gap identified → <detail>

If a gap: do not close the ticket - document it in the tracker and return to implementation.

Exit condition

  • App started and feature actually exercised (not just the tests)
  • Golden path proven by an archived artifact (screenshot / output)
  • Each edge case in the spec: ✅/❌ + evidence
  • Backend verified: API conforms to the contract + consistent DB state
  • Tenant isolation proven with 2 accounts (if applicable)
  • Adjacent-domain suites run and green
  • Report filled with evidence - verdict given (never "it should work")

Forbidden rationalizations

ExcuseReality
"The tests pass, it's fine"Tests cover what they test. Did you see the feature work in the app?
"I checked by hand, no need to archive"Without evidence, the report is worth an opinion. Screenshot/output or nothing.
"It's late, we'll check tomorrow"10 min tonight < an incident after the announcement. Verify the critical (tenant, golden path), defer the cosmetic.
"The report is bureaucracy"It is what turns "I believe" into "I verified X, Y, Z".

Tooling

  • Browser driving for UI evidence: Playwright MCP (browser_navigate, browser_snapshot, browser_take_screenshot) or the project's E2E runner
  • Backend evidence: HTTP client on the CLI (status, headers, payload) + read-only DB access
  • No dedicated script here: the commands (dev, E2E) are project-specific - read them from its config

After

  • Adversarial stress-test: adversarial-feature-challenge
  • Bug found: superpowers:systematic-debugging, ticket via the repo's bug skill

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.