verify-cli-run SKILL.md skillA
verify-cli-run from reticlehq/reticle is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add reticlehq/reticle/verify-cli-run@v3.9.0Pins v3.9.0 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- reticlehq/reticle
- Path
skills/verify-cli-run/SKILL.md- Versions recorded
- 10
- Latest version
- v3.9.0, committed Oct 29, 2026
- First version recorded
- Sep 23, 2026
- Size
- 10,363 bytes
- Repository stars
- 1,249
- License
- a license file GitHub does not identify
Prove that a command-line tool actually did what it said, instead of trusting its exit code and its output. Snapshots the filesystem before and after, names the expected consequence in advance, and returns one of four verdicts with what could not be seen. Use after running a build, a migration, a scaffolder, a formatter, a codegen step, or an AI coding CLI; when a command printed success and you are about to report "done"; when you are about to write "exit code 0, so it worked"; or when a tool…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Prove the command did what it said A command exited 0 and printed `✓ done`. You have learned that the tool reached its own success branch. You have not learned that anything happened. This is the whole problem with verifying a CLI: **the two things everybody checks are both the tool describing itself.** The exit code is chosen by the same code that did the work. The output is written by it. When a tool is wrong about what it did, it is wrong on both, in agreement. That is exactly why their agreement proves nothing. This skill needs no tools installed. It is four rules and some `git`. ## The rule that decides everything > **Evidence for a consequence must not come from the thing that performed the action.** Grade every fact before you use it: | What you have | Grade | Can it prove the command worked? | | --- | --- | --- | | Files on disk, before vs after | **consequence** | **Yes.** The filesystem decided whether the write landed, not the tool | | An API answering when you ask it afterwards | **consequence** | **Yes.** Another party, answering you rather than the tool | | Exit code | presence | No. The tool chose it | | stdout / stderr | context | No. The tool wrote it | …
Read the whole file at its exact version.
How to install
mdr add reticlehq/reticle/verify-cli-run@sha256:5255953535864553The line at the top of this page pins the label v3.9.0, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_6k2ueh64q6jvl3qf)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 10 versions of this file, between Sep 23, 2026 and Oct 29, 2026, about one every 4 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| v3.9.0 latest | 2026-10-29 | f2e07e0 | 10,363 B | A | view · diff |
| v3.8.2 | 2026-10-26 | f8a40d5 | 10,363 B | A | view · diff |
| v3.8.1 | 2026-10-26 | a6b11ca | 10,363 B | A | view · diff |
| v3.8.0 | 2026-10-25 | 68dd8a1 | 10,363 B | A | view · diff |
| v3.7.0 | 2026-10-09 | 4019204 | 10,367 B | A | view · diff |
| v3.6.0 | 2026-10-07 | c08be48 | 10,367 B | A | view · diff |
| v3.5.0 | 2026-10-01 | 14085e6 | 10,367 B | A | view · diff |
| v3.4.0 | 2026-09-30 | 2685d9a | 10,367 B | A | view · diff |
| v3.3.0 | 2026-09-25 | 0b8afcc | 10,367 B | A | view · diff |
| v3.2.0 | 2026-09-23 | d400c5d | 10,367 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (10363 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
reticlehq/reticle · 1,249 stars · license a license file GitHub does not identify · pushed 2026-11-07 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_6k2ueh64q6jvl3qf GET https://markdownregistry.com/api/v1/resolve?ref=reticlehq/reticle/verify-cli-run GET https://markdownregistry.com/api/v1/blob/5255953535864553dbdc04d43cfd6fac1014da5b215223bea812972faaa8c0bb
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.