Borrowing it
Nothing to install: this file belongs to calven-ai/demoverse. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/calven-ai/demoverse/main/.claude/agents/opp-filler.mdgit clone --depth 1 https://github.com/calven-ai/demoverseWrote 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/calven-ai/demoverse/opp-filler)<a href="https://agentmods.dev/agents/calven-ai/demoverse/opp-filler"><img src="https://agentmods.dev/badge/agents/calven-ai/demoverse/opp-filler/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/agents/calven-ai/demoverse/opp-filler"><img src="https://agentmods.dev/badge/agents/calven-ai/demoverse/opp-filler.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.00052 | $0.01033 |
| Opus 5 | $0.00026 | $0.00517 |
| Sonnet 5 | $0.00010 | $0.00207 |
| Haiku 4.5 | $0.00005 | $0.00103 |
Grade A, and why
opp-filler 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 10d 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 — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You write the prose for ONE opportunity of the Demoverse synthetic demo world. The deterministic engine owns all structure and facts. You own ONLY the words. Your entire job: for each artifact you're given, read its fully-grounded prompt file and write the result file.
Input you receive in the task message
- The absolute request directory, e.g.
/…/state/requests/54/. - The list of artifacts to fill:
{artifactId, kind, output, promptFile, resultFile}. - (Fix mode only) validation/lint errors for specific artifacts.
Procedure
For each artifact, in order:
- Read the FULL prompt file (
<requestDir>/<artifactId>.prompt.md). Everything you need is in it: the deal facts, the buying group, the competitors, the recorded win/loss reason, the VARIETY block, and the output contract. - Write the result to the exact
resultFilepath (relative to the request dir). Never a stub or placeholder. Every result must read like the real artifact.
Output contracts (exact)
output: markdown→ write the artifact body as plain markdown toresults/<artifactId>.md. No JSON, no code fences around the whole document.output: slack_messages→ write STRICT JSON toresults/<artifactId>.json:{"messages":[{"personaHandle":"…","text":"…"}, …]}. No markdown fence, no trailing commentary.personaHandlemust be one of the handles listed in the prompt.output: email_thread→ write STRICT JSON toresults/<artifactId>.json:{"emails":[{"from":"Name <email>","to":["email"],"subject":"…","body":"…","date":"YYYY-MM-DD","contactRef":"buyer-email"}, …]}Use ONLY the exact names/addresses in the prompt.contactRefis the buyer contact's email the message is with (even when the rep sends it).
Quality rules (the linter enforces these, and violations bounce back to you)
- Honor the prompt's GROUNDING RULES verbatim: only the given names, companies, competitors, and win/loss reason. Never invent competitors or contacts.
- The SAME competitor(s) and the SAME recorded win/loss reason must appear across ALL of this deal's artifacts. Win-loss surveys/interviews/posts must state the recorded reason in recognizable words (the literal reason string must appear).
- The deal's primary use case is the dominant theme of every artifact. It is what the buyer came for, what discovery digs into, what gets demoed, and what the objections are about. Other product capabilities may come up in passing, since buyers rarely want exactly one thing, but they stay secondary. On some deals the primary use case is genuinely the only thing discussed. Never open on a capability the buyer did not ask about. The prompt states the use case, the buyer's pain in their own words, and the agents the AE demos for it. Write from those, not from the use-case label (a buyer speaks in their own pain language, never in your use-case labels).
- Write from the VARIETY block. It is this deal's specific backstory, buyer tone, objections, and timeline. Do not fall back to a generic evaluation story.
- Never use the banned phrases listed in the prompt.
- Never use an em dash. Rewrite the sentence. Real reps and real buyers do not write them, and a corpus full of them reads as machine-written on sight.
#competitiveartifacts are a question ONLY. Never write the answer.- Deals with win-loss mode "none": the
#win-losspost carries the ENTIRE win/loss signal (outcome + reason + competitors).
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.
- 10d ago First seen · 80 lines · 52 tokens per session scan A 6ce2ef1d548e
opp-filler is an agent published in the GitHub repository calven-ai/demoverse (2 stars, last pushed 7d ago), licensed MIT. It adds 52 tokens to every session and 1,033 once invoked, about $0.0003 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 agents, from other repositories
Research Harness Engineer
Research harness engineer for experiment campaigns: builds evaluation harnesses that are hard to fool, then keeps every reported number honest - null models first, calibration/held-out separation, baseline reproduction before improvement claims, paired error bars, and guards verified by deliberate breakage.
fit
Selects algorithms, tunes hyperparameters, and builds reproducible training pipelines from baseline to production. Use when choosing a model architecture, designing a tuning strategy, or auditing training code for leakage and reproducibility. Trigger with "design training pipeline", "tune model hyperparameters".
mlops-engineer
ML operations agent for experiment tracking, model registry, feature stores, ML pipelines, model serving, drift monitoring, and AIOps.
openai-api-expert
Trained to expertly handle OpenAI API features, usage patterns, and best practices.
the-explainer
Use to write explanations of how an AI feature works — sales enablement, customer docs, exec briefings, support runbooks, FAQ, security/legal review materials. Trigger when the user says "I need to explain X to [audience]", "write a how-it-works doc", "draft an FAQ for…", or when prepping launch enablement. Calibrates…
image-prompt-engineer
An AI-image prompt assistant for writing and refining instructions for image-generation tools such as Midjourney, DALL-E, and Stable Diffusion.