mcpField
V
verify-commands

verify-commands

github.com/mdsmithaustinTesting & quality8152 installsUpdated today
Repository

About verify-commands

verify-commands is a skill for developers writing and reviewing command-line acceptance checks. It focuses on observable failure signals, verified paths, and avoiding checks that pass without measuring anything.

Key features

  1. 01Define explicit failure signals
  2. 02Ground command paths in repository evidence
  3. 03Detect checks that measure nothing
  4. 04Review commands without guessing replacement paths

Use cases

  1. 01Write acceptance checks before shipping
  2. 02Review a command that may pass without testing
  3. 03Verify repository paths and manifests
  4. 04Identify fragile shell pipelines or filters

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mdsmithaustin/pstack --skill verify-commands

After installing, type/verify-commandsin Claude Code to confirm it loaded.

Details

From the project README

Verify commands

A verify command is an acceptance test. Before shipping one, answer: if this command were silently doing nothing, what in its output would tell me? If you cannot answer, you have a command, not a check. Fix the command; do not invent a statement for it.

Name the failing direction

Next to every runnable check, write one line naming the observable signal that means failure: non-zero exit, "0 passed" in the summary line, the coverage line is absent, stderr contains "ECONNREFUSED". "The command fails" and "an error occurs" are restatements, not signals. TBD, N/A, and none are refusals. Short is fine; non-zero exit is complete. Prefer the signal the tool actually emits over one you imagine: for a command that already ran, state what you saw; for a new one, take the signal from the tool's documented output. N commands need N statements.

Ground every path

Inherit the command that already worked in this repo, verbatim, before deriving a new one. A cd target or --prefix target must exist, or be created by an earlier step, and must hold the matching manifest (package.json, Makefile, pyproject.toml). Prefer npm --prefix <dir> run <script> over cd <dir> && npm run <script>; it does not depend on the caller's working directory. Do not hand-reason the filesystem: list it. If you cannot ground a path, say so instead of guessing.

Shapes that pass while measuring nothing

TrapWhy it passesInstead
pnpm ls vite | grep -E '^vite@7'tree output starts each line with └──, so ^ never matchesdrop the anchor, or match (└|├)── vite@7
npm test | grep '714 passed'a count recalled from memory, stale from traininggrep -E '[0-9]+ passed', or run the count first
X=$(cmd 2>/dev/null || echo 0) feeding [ "$X" = "$Y" ]both sides default to 0 when inputs are missing, so parity passes on nothinglet the failure propagate, or guard with test -f and exit
grep -c 'LITERAL' file == 0 while an instruction or comment quotes LITERALthe gate trips on comment text, not on codedescribe the forbidden thing by concept, not by literal
! grep -q PATTERN file when a sibling change legitimately adds PATTERN elsewhere in the filea file-wide negative is unsatisfiable across regionsscope it: awk '/^def f/,/^def /' file | grep, or an AST check, or a unit test
a test-name filter that matches zero testsexit 0 with nothing assertedlist tests first (--collect-only, --list), then run the one named test
npm test | tail -20 whose exit status is read as the verdicta pipeline exits with its last command's status, so tail reports 0 while npm test failedstart the same command line with set -o pipefail; npm test | tail -20 (bash, zsh). A set from an earlier tool call is gone

The anchor trap has a family: npm ls, yarn list, docker ps, and kubectl get all print column or tree prefixes. || echo default is acceptable only when absence is the default and the value is not used in a comparison meant to detect absence.

Reviewing someone else's command

Report; never prescribe a replacement path you did not verify. A prescribed path is copied verbatim and carries zero information. A missing directory or manifest is a blocker: quote the raw target. A dynamic path, glob, ~, or variable is a warning, not a licence to guess the literal.

Comments

Markdown supported