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 bx33661/oh-my-vul --skill omv-reprogit clone --depth 1 https://github.com/bx33661/oh-my-vulWrote 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/bx33661/oh-my-vul/omv-repro)<a href="https://agentmods.dev/skills/bx33661/oh-my-vul/omv-repro"><img src="https://agentmods.dev/badge/skills/bx33661/oh-my-vul/omv-repro/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/bx33661/oh-my-vul/omv-repro"><img src="https://agentmods.dev/badge/skills/bx33661/oh-my-vul/omv-repro.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.00091 | $0.01245 |
| Opus 5 | $0.00046 | $0.00622 |
| Sonnet 5 | $0.00018 | $0.00249 |
| Haiku 4.5 | $0.00009 | $0.00125 |
Grade A, and why
omv-repro scanned grade A 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 11d 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 accesslowExcessive agency
A wildcard tool grant or "run any command" leaves no least-privilege boundary at all.
Stay in passive research mode: do not execute any commands yourself. Guide the user to execute locally and report back what they observed. Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
omv-repro
引导研究员在本地执行复现步骤,将 evidence.observed_result 从 unknown 填写为具体可验证的观测描述,完成 /omv-report 所需的最后一块证据。
Stay in passive research mode: do not execute any commands yourself. Guide the user to execute locally and report back what they observed.
Invocation
/omv-repro <id> [--force]
<id>对应.omv/findings/<id>.yaml文件--force允许覆盖已有observed_result(默认不覆盖)
Reference Loading
按需加载,不要一次性全读:
- 环境准备与观测记录框架:
references/repro-guide.md - Evidence.v1 字段定义与 evidence/submission 评分规则:
contracts/evidence.v1.yaml
复现目标
读取 .omv/findings/<id>.yaml 后,你的目标是:
终态条件(任一)
evidence.observed_result写入非unknown的具体观测描述,复现材料保存到.omv/repro/<id>/,且omv findings validate <id>输出 submission score ≥ 75- 无法复现,
blockers中记录具体原因,verdict.exploitability更新为blocked或disproven
如何达到目标,由你自主决定。 根据 evidence.reproducer 的内容——步骤数量、依赖环境、漏洞类型——自主决定如何拆解步骤、向用户提什么问题、如何解读输出。参考 references/repro-guide.md 获取环境准备和观测记录的思维框架。
开始前始终展示:versions.tested、evidence.source、evidence.sink、evidence.reproducer 的当前值,作为复现背景。
约束边界
以下是硬约束,不可逾越:
- 不自动执行命令 — 所有命令由用户在本地环境执行,Codex 或 Claude Code 只提供指令和解读
- 不修改
evidence.reproducer— 该字段属于 omv-audit 职责,只读 - 不推断或编造
observed_result— 必须来自用户的真实执行报告,不得根据 reproducer 文字推断结果 - 不攻击线上服务 — 所有执行在本地隔离环境中进行
- confirmed 由 CLI validation 决定 — 写入用户报告的
observed_result后,必须运行omv findings validate <id>;失败时保持candidate - 复现材料标准化保存 — 建议把命令、输出、截图或 Compose 文件放到
.omv/repro/<id>/,并在evidence.repro_artifacts中列出路径
HARD-GATE: observation before proven
NO invented observed_result
NO exploitability: proven WITHOUT user-reported local observation recorded in Evidence
NO "ready to submit" — after success, point to omv review --strict, not free-form certainty
结论规则
| 结论 | 触发条件 | 下一步 |
|---|---|---|
confirmed |
observed_result 已填,submission score ≥ 75 |
运行 omv findings validate <id>,提示用户运行 /omv-report |
blocked |
多次尝试后无法在本地复现,或环境依赖无法满足 | 填写 blockers,运行 omv findings validate <id>(预期 FAIL) |
candidate(保留) |
observed_result 已填但其他字段缺失或 submission score 不足 |
展示缺失项清单,提示回到 /omv-audit 补充 |
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- contracts/evidence.v1.yaml 9.1 KB
- evals/evals.json 2.5 KB
- evals/golden/artifact-recording.md 363 B
- evals/golden/blocked-repro-failure.md 203 B
- evals/golden/no-agent-execution.md 304 B
- evals/golden/read-only-reproducer.md 309 B
- evals/golden/submission-ready.md 336 B
- evals/golden/version-mismatch.md 487 B
- references/repro-guide.md 4.6 KB
- scripts/check_output.py 3.1 KB runs code
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.
- 11d ago First seen · 104 lines · 91 tokens per session scan A b6b00fb2fe32
omv-repro is a skill published in the GitHub repository bx33661/oh-my-vul (4 stars, last pushed 22d ago), licensed MIT. It adds 91 tokens to every session and 1,245 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 1 finding (unrestricted tool access). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
insforge-debug
Use when diagnosing problems in an InsForge project — reactive failures (SDK error object, HTTP 4xx/5xx, gateway timeout 502/503/504, edge function failure or timeout, login/OAuth/auth errors, RLS denial, realtime channel issues, slow query on one endpoint, edge function or Vercel deploy failure), proactive audits…
binary-re-dynamic-analysis
Use when you need to run a binary, trace execution, or observe runtime behavior. Runtime analysis via QEMU emulation, GDB debugging, and Frida hooking - syscall tracing (strace), breakpoints, memory inspection, function interception. Keywords - "run binary", "execute", "debug", "trace syscalls", "set breakpoint"…
binary-re-dynamic-analysis
Use when you need to run a binary, trace execution, or observe runtime behavior. Runtime analysis via QEMU emulation, GDB debugging, and Frida hooking - syscall tracing (strace), breakpoints, memory inspection, function interception. Keywords - "run binary", "execute", "debug", "trace syscalls", "set breakpoint"…
binary-re
This skill should be used when analyzing binaries, executables, or bytecode to understand what they do or how they work. Triggers on "binary", "executable", "ELF", "what does this do", "reverse engineer", "disassemble", "decompile", "pyc file", "python bytecode", "analyze binary", "figure out", "marshal". Routes to…
binary-re-static-analysis
Use when analyzing binary structure, disassembling code, or decompiling functions. Deep static analysis via radare2 (r2) and Ghidra headless - function enumeration, cross-references (xrefs), decompilation, control flow graphs. Keywords - "disassemble", "decompile", "what does this function do", "find functions"…
sent-routing-strategist
Decides how a Sent message should reach the recipient — automatic routing versus a pinned channel, what the channel array actually does, how fallback and reroute work, and why a message ended as FAILED, FILTERED, BLOCKED, or channel "auto". Use when choosing the channel field, expecting WhatsApp-to-SMS fallback…