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 commands/clawnify/greybeard/pressure-testgit clone --depth 1 https://github.com/clawnify/greybeardWhat 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.00020 | $0.02910 |
| Opus 5 | $0.00010 | $0.01455 |
| Sonnet 5 | $0.00004 | $0.00582 |
| Haiku 4.5 | $0.00002 | $0.00291 |
Grade A, and why
pressure-test 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 — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run the decision test on $ARGUMENTS — or, if that's empty, on the approach currently on the table in this conversation.
The governing question for the choice: whatever is scalable, long term, and cannot be done in a more efficient way.
Ground it first — don't judge from priors. A prior isn't only stale training data — it's also a conclusion you minted this session from neighboring code. The second kind is more dangerous: it feels freshly earned, so it rides on the credibility of everything else you verified. Verify before ruling.
- For this infra/tech decision, research how established services and competitors solved the same problem — engineering blogs, postmortems, talks, and case studies are fair game here. Prior art is signal.
- Verify any fact you lean on — an API, a limit, a price, current behavior — against a primary source (official docs, the actual source code), not a remembered version or a random blog. When a docs-retrieval tool is available — Context7, a
find-docsskill, an MCP docs server — use it to pull the latest docs instead of recalling them. - Sweep the whole repo for the symptom before you hypothesise where it lives. Before deciding which subsystem owns the problem, grep/semantic-search the entire codebase for the reported symptom itself — the user's literal words, the error string, the observable behaviour (e.g. every place that can emit "not available / not ready / refused", every
status/guard early-return on this entity). Enumerate all the sites that could produce it across every layer, with no assumption about which one is at fault, then rule per site. Anchoring on the subsystem you happen to have been working in is the most common way a careful, well-grounded ruling lands on the wrong code — and the volume of grounding you did there makes the wrong-subsystem conclusion feel solid. Narrow to the load-bearing claim only after the sweep. - Read the actual code and architecture this touches before ruling — locally correct but architecturally wrong is still wrong. That means the exact file the change runs through, not only its neighbors — reading everything around the target and inferring the target by analogy is the most seductive way to skip this.
- Ground per claim, not per session. Verifying four neighboring things doesn't transfer to the one load-bearing claim. The volume of grounding you've done makes the unverified claim feel as solid as the rest — it isn't. Isolate the single claim the ruling rests on and verify that one directly: "the thing this touches is built like its neighbors" is not evidence about the thing it touches.
- Do the cheapest decisive check yourself — don't defer it. If one file (a
wrangler.jsonc, an entrypoint, a config) would settle the load-bearing claim, open it. Ending your turn by asking the human to confirm what a file you could have read answers is the same deferral repeating one turn later. - Look down the stack, not just sideways. Before designing any new state — config keys, DB columns, env vars, endpoints, files — search the framework / platform / library you build on (and the rest of this repo) for a native primitive that already models this concern. The leanest correct option is frequently one that already exists one layer down; reinventing what the host exposes is the most common efficiency miss. Verify it against the dependency's actual source, not its docs alone.
- But don't optimize away the domain object. "Reuse the primitive one layer down" is a virtue until it deletes the thing the feature is actually about. The trap: fusing a property the feature requires (email-binding, single-use, consent) with an implementation that happens to carry it (a Supabase magic link, an auth token, a signed URL) — once fused, reuse looks automatically correct, and you end up borrowing an ephemeral auth artifact to stand in for a durable domain record. Separate the two: name the property, then ask whether the primitive models the property or merely coincides with it today. An auth link is not an invitation; a cache key is not a job; a session is not an audit trail. When the feature needs a lifecycle — revoke, resend, expire independently, run several concurrently, record who accepted and when, ask consent before acting — that lifecycle is the domain object, and a first-class record (a row + a
requested → active / declinedstatus) is the correct construct, not gold-plating. Reuse that has no place to hang those states pushes the real cost into fragile edges (24h expiry, single-use collisions, "already registered", silent auto-accept). Adding well-chosen, durable state is sometimes the efficient move, not the wasteful one. - A reused state inherits every behavior already attached to it — enumerate them before you adopt it. The bullet above warns against reuse that deletes the domain object; this is its mirror — reuse that silently inherits one. When the approach repurposes an existing status / flag / enum / column to mean something new (
trialingto mean "currency-migration bridge",pendingto mean "awaiting review",archivedto mean "soft-deleted"), it doesn't just carry the one property you wanted — it fires everything that already reads that value: webhooks, cron jobs, entitlement gates, billing/credit grants, UI branches, cleanup sweeps. Before committing, grep every consumer of that value (grep -rn 'trialing\|is_trial'across every layer) and list what each one does with it; a behavior you never intended rides along for free. The tell that you skipped this: you validated the one behavior you wanted and discovered the others reactively — one bug (or one "wait, why did all of them get free credits?") at a time. The reused state's full behavior set is part of the decision, not a surprise you pay for after. And enumeration is not the verdict — price each behavior: wanted (a feature you'd otherwise build yourself — an approval gate on a doc that needs approval, search over a doc worth finding), neutralizable (name the exact switch that turns it off), or harmful. Reuse loses only if a harmful behavior survives neutralization; a list where most behaviors are wanted is an argument for reuse. The tell you skipped pricing: "none fatal alone, but together they say no" — a count of behaviors standing in for a judgment of them, which quietly biases every ruling toward building new state, the exact miss the efficiency pillar exists to catch. And when you do adopt it, verify by diffing the whole system's response (side-effect tables, ledgers, related rows) before/after — not just the fields you predicted would change; the inherited behavior only shows up in the diff you didn't expect.
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 · 57 lines · 20 tokens per session scan A 042a944692a3
pressure-test is a command published in the GitHub repository clawnify/greybeard (6 stars, last pushed 9d ago), licensed MIT. It adds 20 tokens to every session and 2,910 once invoked, about $0.0001 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-31.
Other commands, from other repositories
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.
analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
constitution
Create or update the project constitution from interactive or provided principle inputs.
converge
Assess the current codebase against the feature's spec, plan, and tasks, then append any remaining unbuilt work as new tasks to tasks.md so implement can complete it.