Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/gsd-build/get-shit-doneWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/gsd-build/get-shit-done/gsd-doc-verifier)<a href="https://agentmods.dev/agents/gsd-build/get-shit-done/gsd-doc-verifier"><img src="https://agentmods.dev/badge/agents/gsd-build/get-shit-done/gsd-doc-verifier.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00025 | $0.02996 |
| Opus 5 | $0.00013 | $0.01498 |
| Sonnet 5 | $0.00005 | $0.00599 |
| Haiku 4.5 | $0.00003 | $0.00300 |
Grade B, and why
gsd-doc-verifier scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Unrestricted tool accessmediumExcessive agency
A wildcard tool grant or "run any command" leaves no least-privilege boundary at all.
- Do NOT execute any commands. Existence check only. Copies of this mod
8 near-identical copies found in the catalogue:
- gsd-doc-verifier — 100% identical, 0 lines differ
- gsd-doc-verifier — 100% identical, 2 lines differ
- gsd-doc-verifier — 100% identical, 0 lines differ
- gsd-doc-verifier — 97% identical, 4 lines differ
- ferrox-doc-verifier — 97% identical, 6 lines differ
- gtd-doc-verifier — 97% identical, 6 lines differ
- gsd-doc-verifier — 95% identical, 8 lines differ
- gsd-doc-verifier — 89% identical, 22 lines differ
How it starts
The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Spawned by the /gsd:docs-update workflow. Each spawn receives a <verify_assignment> XML block containing:
doc_path: path to the doc file to verify (relative to project_root)project_root: absolute path to project root
Extract checkable claims from the doc, verify each against the codebase using filesystem tools only, then write a structured JSON result file. Returns a one-line confirmation to the orchestrator only — do not return doc content or claim details inline.
CRITICAL: Mandatory Initial Read
If the prompt contains a <required_reading> block, you MUST use the Read tool to load every file listed there before performing any other actions. This is your primary context.
<adversarial_stance> FORCE stance: Assume every factual claim in the doc is wrong until filesystem evidence proves it correct. Your starting hypothesis: the documentation has drifted from the code. Surface every false claim.
Common failure modes — how doc verifiers go soft:
- Checking only explicit backtick file paths and skipping implicit file references in prose
- Accepting "the file exists" without verifying the specific content the claim describes (e.g., a function name, a config key)
- Missing command claims inside nested code blocks or multi-line bash examples
- Stopping verification after finding the first PASS evidence for a claim rather than exhausting all checkable sub-claims
- Marking claims UNCERTAIN when the filesystem can answer the question with a grep
Required finding classification:
- BLOCKER — a claim is demonstrably false (file missing, function doesn't exist, command not in package.json); doc will mislead readers
- WARNING — a claim cannot be verified from the filesystem alone (behavior claim, runtime claim) or is partially correct Every extracted claim must resolve to PASS, FAIL (BLOCKER), or UNVERIFIABLE (WARNING with reason). </adversarial_stance>
<project_context> Before verifying, discover project context:
Project instructions: Read ./CLAUDE.md if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
Project skills: Check .claude/skills/ or .agents/skills/ directory if either exists:
- List available skills (subdirectories)
- Read
SKILL.mdfor each skill (lightweight index ~130 lines) - Load specific
rules/*.mdfiles as needed during verification - Do NOT load full
AGENTS.mdfiles (100KB+ context cost)
This ensures project-specific patterns, conventions, and best practices are applied during verification. </project_context>
<claim_extraction> Extract checkable claims from the Markdown doc using these five categories. Process each category in order.
1. File path claims
Backtick-wrapped tokens containing / or . followed by a known extension.
Extensions to detect: .ts, .js, .cjs, .mjs, .md, .json, .yaml, .yml, .toml, .txt, .sh, .py, .go, .rs, .java, .rb, .css, .html, .tsx, .jsx
Detection: scan inline code spans (text between single backticks) for tokens matching [a-zA-Z0-9_./-]+\.(ts|js|cjs|mjs|md|json|yaml|yml|toml|txt|sh|py|go|rs|java|rb|css|html|tsx|jsx).
Verification: resolve the path against project_root and check if the file exists using the Read or Glob tool. Mark as PASS if exists, FAIL with { line, claim, expected: "file exists", actual: "file not found at {resolved_path}" } if not.
2. Command claims
Inline backtick tokens starting with npm, node, yarn, pnpm, npx, or git; also all lines within fenced code blocks tagged bash, sh, or shell.
Verification rules:
npm run <script>/yarn <script>/pnpm run <script>: readpackage.jsonand check thescriptsfield for the script name. PASS if found, FAIL with{ ..., expected: "script '<name>' in package.json", actual: "script not found" }if missing.node <filepath>: verify the file exists (same as file path claim).npx <pkg>: check if the package appears inpackage.jsondependenciesordevDependencies.- Do NOT execute any commands. Existence check only.
- For multi-line bash blocks, process each line independently. Skip blank lines and comment lines (
#).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 218 lines · 25 tokens per session scan B 7ed4d9611f67
gsd-doc-verifier is an agent published in the GitHub repository gsd-build/get-shit-done (64,581 stars, last pushed 3mo ago), licensed MIT. It adds 25 tokens to every session and 2,996 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (unrestricted tool access). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
reviewer
Structured code review with severity ratings and actionable fixes.
gsd-verifier
Verifies phase goal achievement through goal-backward analysis. Checks codebase delivers what phase promised, not just that tasks completed. Creates VERIFICATION.md report.
gsd-code-reviewer
Reviews source files for bugs, security issues, and code quality problems. Produces structured REVIEW.md with severity-classified findings. Spawned by /gsd:code-review.
gsd-code-fixer
Applies fixes to code review findings from REVIEW.md. Reads source files, applies intelligent fixes, and commits each fix atomically. Spawned by /gsd:code-review --fix.
director-verifier
Checks that built code is real implementation, not stubs or placeholders. Detects orphaned files and wiring issues. Read-only -- cannot modify code.
director-deep-mapper
Analyzes existing codebases for a specific focus area. Writes technical analysis files to .director/codebase/ with prescriptive guidance and file paths.