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.
npx skills add Acendas/shipyard --skill anti-stub-scangit clone --depth 1 https://github.com/Acendas/shipyardWrote 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/skills/acendas/shipyard/anti-stub-scan)<a href="https://agentmods.dev/skills/acendas/shipyard/anti-stub-scan"><img src="https://agentmods.dev/badge/skills/acendas/shipyard/anti-stub-scan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/acendas/shipyard/anti-stub-scan"><img src="https://agentmods.dev/badge/skills/acendas/shipyard/anti-stub-scan.svg" alt="Reviewed on agentmods" width="80" 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.00016 | $0.02635 |
| Opus 5.5 | $0.00006 | $0.01054 |
| Sonnet 5.5 | $0.00003 | $0.00527 |
| Haiku 4.5 | $0.00002 | $0.00264 |
Grade A, and why
anti-stub-scan scanned grade A with 0 findings 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 2mo 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Anti-Stub Scan
A diff scanner that flags code claimed as complete but not actually wired. Runs on the orchestrator side after dispatching-task-loop returns. Findings re-dispatch the subagent with the specific lines listed.
This file is the SPEC, not the runtime. The pattern catalog, placeholder-marker semantics, and output shape documented below are implemented by shipyard-data scan-stubs <base>..<head> [--lang <x>] (bin/scan-stubs.mjs) — a CLI subcommand, not model-driven Bash + grep/awk. The orchestrator invokes the CLI directly; see "Implementation Notes for the Orchestrator" below for the exact invocation and exit-code contract.
Why both this AND the prompt-level Iron Law? The Iron Law (NO STUBS IN CODE YOU CLAIM IS COMPLETE) lives in the subagent's prompt and works most of the time. This scanner is the second line: when the subagent rationalizes past the rule, the orchestrator catches the stub before flipping the task to done. Belt and suspenders.
When to Invoke
From the orchestrator side:
- After
dispatching-task-loopreturnsSTATUS: COMPLETE. - Before marking the task
status: donein its task file. - Before merging the worktree branch back to the working branch.
Do NOT invoke during the subagent's own loop — the prompt-level Iron Law is the in-loop check.
Inputs
base_ref— git ref / sha that this task's commit branched from (typically the working branch HEAD before the wave started).head_ref— the subagent's commit sha (fromCOMMIT:in its return).language— primary language(s) detected in the diff (informs which patterns to apply).
The scan operates on the diff (base_ref..head_ref), not on the whole codebase. Untouched files are not scanned — the subagent is responsible only for what it added or changed.
Stub Patterns
Each pattern has a confidence (HIGH / MEDIUM / LOW) and a language scope. Findings at HIGH confidence block done; MEDIUM go in the report and require a re-dispatch decision; LOW are advisory.
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.
- 2mo ago First seen · 178 lines · 16 tokens per session scan A 4cf3458845a0
anti-stub-scan is a skill published in the GitHub repository Acendas/shipyard (2 stars, last pushed 2mo ago), licensed MIT. It adds 16 tokens to every session and 2,635 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
code-review
Review code changes for concrete defects.
aio-map
Trace dependencies, call graphs, and blast radius for a file/function/module via GitNexus + LSP. Step 2 of the codeflow discover → map → plan trio (after aio-discover, before aio-plan).
bughunter
When the user wants to find bugs, test edge cases, stress-test code, or perform adversarial analysis of their codebase. Use when the user says "find bugs," "break this," "what could go wrong," "red team," "hunt bugs," "adversarial test," "edge cases," "stress test," "what did I miss," "pen test this logic," or before…
audit-and-remediation
Use when auditing an existing codebase and sequencing fixes -- produce a structured audit doc, prioritize findings across three lenses, and split remediation work so humans and agents can proceed in parallel; not for greenfield planning.
trace-mcp-refactoring
Safe refactoring workflow using trace-mcp — assess risk, find candidates, check impact, and rename symbols across all files without missing import sites or cross-file references.
blast-radius
Project-grounded blast-radius tracing for code changes, PRs, diffs, files, symbols, or bugfixes, especially in Helpdesk-style repos. Use before editing, committing, merging, or reviewing when downstream callers, tests, routes, SQL, configs, schema, auth/tenant boundaries, external integrations, sibling bugs, or…