agentleFS
mauriciovieiramauriciovieira/groundwork/skills/verify/SKILL.md

verify

Skill0 starsChanged 4 months agoMITView on GitHub

Prove a feature actually works by driving the running application and capturing evidence, rather than trusting a green test suite. Builds the project's own verification CLI and feature map on first use, runs a verification on demand, and keeps the map in step with the app.

188 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use instinct-export, instinct-import and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • TheKREATORSSkill

    instinct-export

    Export instincts from project/global scope to a file

    Also in 3 projects that use this

  • TheKREATORSSkill

    instinct-import

    Import instincts from file or URL into project/global scope

    Also in 3 projects that use this

  • AviadPSkill

    risk-assess

    Assess the risk and blast radius of a proposed code change before implementing it. Evaluates CI impact, framework-wide vs localized scope, rollback path, and identifies blindspots. Use when user says "what's the risk", "is this safe", "assess the impact", "risk assess", "blast radius", or before applying framework-wide or CI-affecting changes. Do NOT use for code quality review (use code-quality) or plan validation (use design-validator).

    Also in 3 projects that use this

  • diego-tobalinaSkill

    build-fix

    Fix build and compilation errors systematically. Run when build fails.

    Also in 6 projects that use this

  • AaravChadhaSkill

    secure

    Security review with a confidence gate - a finding exists only with a concrete exploit scenario and a high/medium/low confidence rating; everything else goes to a worth-hardening list, never inflated. Sweeps five surfaces: auth gates, secrets hygiene, injection and unsafe sinks, unsafe deserialization/crypto/transport, and LLM tool-use trust boundaries. Reports only, never fixes. Use when the user asks for a security review or to check vulnerabilities, secrets, or auth.

    Also in 3 projects that use this

  • ArvorCoSkill

    specify

    Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.

    Also in 10 projects that use this

  • +1 more from TheKREATORS

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 1 is distinctive, and 9 are very specific to this project.

  • 0

    Common

    Most of the 167 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 9

    Very specific

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

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

    Read docs/groundwork/config.json.

    line 45
  2. Very specific:

    Read docs_dir from the config and resolve every path below against it.

    line 48
  3. Very specific:

    If the config has no verify block and --init was not passed, say so in one line and run --init first - there is nothing to verify with yet.

    line 51
  4. Distinctive:

    Do not write the CLI from guesswork.

    line 56
  5. Very specific:

    Read before asking: Check the README, package.json scripts, Makefile, Procfile, compose files, CI workflows, and any existing test setup.

    line 58
  6. Very specific:

    Interview for what's left: Use the groundwork:interview-loop technique, one question at a time, and only for what you could not find: how …

    line 61
  7. Very specific:

    Add <docs_dir>/verify/evidence/ to .gitignore.

    line 88
  8. Very specific:

    Read the feature map entry.

    line 94
  9. Very specific:

    Run this when features land or change.

    line 125
  10. Very specific:

    After a verification, report the outcome and the evidence, then stop.

    line 130

“Common” is measured: kept by at least 6 in 10 of the 167 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

groundwork:verify

A passing test is the agent grading its own homework. This skill exists so a slice can be shown working, not asserted working.

The idea, and the shape of the asset below, are adapted from the pstack articles credited in this repository's NOTICE.

What this builds

Verification lives in the repository being worked on, not inside this plugin and not inside any one agent's directory, so a human at a terminal and any agent can run the same thing. Everything below sits under the configured docs_dir (docs/groundwork by default):

<docs_dir>/verify/
  README.md            how to launch, check health, drive, prove, and clean up
  control              the project's own CLI - executable, any language
  features/
    README.md          the index, and the order to sweep them in
    NNNN-slug.md       one file per feature
  evidence/            scratch space, gitignored

Two things earn their keep here.

The CLI is the lever. Prose telling an agent how to run your app is re-read and re-interpreted every session. A command is not. control is a real program in whatever language the project already uses, with subcommands, a --dry-run for anything destructive, machine-readable output behind --json, and help text worth reading.

The feature map is behaviour, not code. Each file answers the same four questions, so an agent can drive a feature without opening the source. The glossary names the domain; the feature map says what the product actually does and how to see it doing it.

0. Preconditions

Read docs/groundwork/config.json. If it doesn't exist, don't stop - bootstrap it per the "Lazy bootstrap" section of the groundwork setup skill, then continue.

Read docs_dir from the config and resolve every path below against it. Never hardcode docs/groundwork; a repository is free to have moved it.

If the config has no verify block and --init was not passed, say so in one line and run --init first - there is nothing to verify with yet.

1. --init: build the verification asset

Do not write the CLI from guesswork. Find out how this project actually runs, then build.

  1. Read before asking. Check the README, package.json scripts, Makefile, Procfile, compose files, CI workflows, and any existing test setup. Most of the answers are already written down somewhere.
  2. Interview for what's left. Use the groundwork:interview-loop technique, one question at a time, and only for what you could not find: how the app is started for local use, what it needs to be healthy (database, migrations, seed data, a logged-in user), how a developer normally drives it, and what counts as visible proof that something worked.
  3. Write control. Give it these subcommands at minimum, and add whatever this project needs beyond them:

    • launch - start the app in a state ready to be driven, and return only when it is
    • doctor - check preconditions and report what is wrong, never fix silently
    • drive <feature> - exercise a feature the way a user would
    • prove <feature> - capture evidence of the outcome into evidence/
    • clean - return the machine to the state it was in before launch

    Rules: any subcommand that destroys or mutates shared state takes --dry-run and prints exactly what it would do. Every subcommand supports --json. Errors say what failed, what was expected, and what to try next.

  4. Seed the feature map. Walk the codebase and write one file per user-visible feature from templates/feature.md, plus the index from templates/features-README.md. Base the files on behaviour you can see, and mark anything you inferred rather than confirmed.
  5. Run it once before handing over. Execute doctor, then drive and prove on one feature. If any of that fails, fix it now. Do not deliver a verification asset you have not seen work - that is the exact failure this skill exists to prevent.
  6. Record it in the config, with paths relative to docs_dir:

    "verify": { "cli": "verify/control", "evidence_dir": "verify/evidence" }

    Add <docs_dir>/verify/evidence/ to .gitignore.

2. Running a verification

Given a feature slug, or the feature a slice touches:

  1. Read the feature map entry. If none exists, say so and stop - verifying against an unwritten expectation proves nothing. Write the entry first, or run --sync.
  2. control doctor. If the environment is not healthy, report that and stop. A failed verification and an unrunnable app are different results and must never be reported alike.
  3. control drive <feature>, then control prove <feature>.
  4. Report one of three outcomes, never a bare pass or fail:
    • proven - the expected observable outcome happened, and here is the evidence
    • disproven - the app ran and did something other than what the feature map says
    • not verifiable - the app would not run, or the feature has no observable outcome defined yet. This is not a pass.

Where the evidence actually lives

evidence/ is gitignored scratch. It disappears when a worktree is removed, so a file path in it is worthless to anyone on another machine or in a later session.

The proof of record is the artifact itself, posted to the tracker: pasted into the issue comment, or into the PR body when the slice became a PR. A screenshot, a log excerpt, a captured response - small enough to read inline. If the evidence is too large for that, summarise it inline and say where the full artifact came from.

3. --sync: keep the map honest

A feature map that drifts is worse than none, because it is trusted. Reconcile it against the app:

  • features in the code with no map entry - write one
  • map entries whose described path no longer exists - correct them, or delete the entry if the feature is gone, and say which you did
  • entries no verification has exercised in a long time - flag them, don't quietly trust them

Run this when features land or change. build triggers it at the end of a pass; running it by hand periodically is worth it on a codebase moving faster than its map.

4. Hand off

After a verification, report the outcome and the evidence, then stop. This skill proves or disproves; it does not fix. A disproven feature goes back to build with the specific mismatch, and validate is what decides whether the feature as a whole is done.

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.