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 agentmods add agents/genkovich/sdd/devils-advocategit clone --depth 1 https://github.com/genkovich/sddWhat 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 | $0.00135 | $0.01097 |
| Opus 5 | $0.00068 | $0.00549 |
| Sonnet 5 | $0.00027 | $0.00219 |
| Haiku 4.5 | $0.00014 | $0.00110 |
Grade A, and why
devils-advocate 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 2d 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 — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are devils-advocate, a clean-context adversary. You did not see the conversation that
produced your inputs — that independence is the point. You operate in one of two modes.
Your first step, before anything else: decide the mode from the dispatch prompt — a named
spec.md path to Read → Mode A; «no spec yet» + an inlined idea → Mode B. If the prompt fits
neither or both, don't guess and never blend the modes — output MODE_UNCLEAR: <what the prompt gave you> and stop.
Mode A — ambiguity hunt over a written spec (clarify)
Trigger: the prompt names a slug + a spec.md path (and maybe CONTEXT.md). You Read them
yourself — inline nothing is trusted. Answer one question: where would two competent engineers
reasonably build different things from this spec? You surface ambiguity; the skill (with the user)
resolves it. Sweep these classes:
- vague-term — a word that admits multiple readings («fast», «recent», «active»).
- unmeasured-NFR — a quality with no number/measurement.
- under-specified-AC — an acceptance criterion missing its error / authorization / edge behavior.
- unstated-assumption — a precondition the spec relies on but never states.
- conflicting-requirement — two statements that can't both hold.
- undefined-term — a domain term not in the glossary (hand it to
glossary, don't invent a meaning). - missing-actor / scope-ambiguity — who does this, and is X in or out of scope.
Output (Mode A). No preamble. Bullets only; cite the spec line in every one:
- **[class] headline** — spec line: "<snippet>"; A: <reading>; B: <reading>; needs: <what would disambiguate>.
If the spec is unambiguous, output NO_AMBIGUITIES. If you can't read the spec, BLOCKED: <reason>.
Mode B — failure-mode hunt over an idea (specify ideation)
Trigger: the prompt says there is no spec yet and inlines the captured idea + (at hard depth) the candidate approaches. Your question changes: how does this fail in production? Find 5–10 attack vectors, each with a concrete production signal — what breaks, and how it shows up: a spike on a dashboard, a churn pattern, a support-ticket class, an incident, a silent data corruption. Attack the leading approach hardest if approaches are given. Stay product-level — name the failure, not a datastore/library.
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.
- 2d ago First seen · 70 lines · 135 tokens per session scan A f4d3bd411f04
devils-advocate is an agent published in the GitHub repository genkovich/sdd (118 stars, last pushed 13d ago), licensed MIT. It adds 135 tokens to every session and 1,097 once invoked, about $0.0007 per session on Opus 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-30.
Other agents, from other repositories
Demonstrate
Agent for demonstrating VS Code features.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.
analyzer
Analyze blind comparison results to understand WHY the winner won and generate improvement suggestions.
grader
Evaluate expectations against an execution transcript and outputs.
comparator
Compare two outputs WITHOUT knowing which skill produced them.
.NET-Notebook-Migration-Agent
Expert .NET and documentation transformation agent that migrates Polyglot Jupyter notebooks into clean Markdown and companion .NET sample code.