Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote 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/mappedsky/seizu/repo-cve-reachability)<a href="https://agentmods.dev/skills/mappedsky/seizu/repo-cve-reachability"><img src="https://agentmods.dev/badge/skills/mappedsky/seizu/repo-cve-reachability/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/mappedsky/seizu/repo-cve-reachability"><img src="https://agentmods.dev/badge/skills/mappedsky/seizu/repo-cve-reachability.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.00048 | $0.02366 |
| Opus 5 | $0.00024 | $0.01183 |
| Sonnet 5 | $0.00010 | $0.00473 |
| Haiku 4.5 | $0.00005 | $0.00237 |
Grade A, and why
repo-cve-reachability 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 12d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- The sub-agent reaches GitHub **through those tools, not the network** — the sandbox has no outbound internet access, so `curl`/`urllib` against `api.github.com` or `raw.githubusercontent.com` always fails. If a delegat How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Decide whether each of these CVEs is reachable in the code of repo, not merely present in its dependency graph.
Inputs — the values arrive in the ## Inputs block below these instructions:
repo— use the resolvedowner/namefullname from the findings step.findings— when this is empty, the CVEs to review are the ones the findings review produced, which you already have in this step's context. Use those. An empty value here is normal and is not a reason to stop.ref— branch, tag, or commit SHA; empty means the default branch.max_cves— the most advisories to assess. Treat it as a hard cap: rank by severity, then EPSS, assess that many, and say which you did not reach and why.
Tool arguments — use exactly these field names:
ext__github__get_file_contents: owner, repo, path, ref (path/lists the repository root; a path ending in/lists that directory)ext__github__search_code: query (GitHub code-search syntax, e.g.repo:owner/name path:*.py "import yaml"), perPageext__github__list_commits: owner, repo, sha, path, perPageext__github__get_commit: owner, repo, shaext__github__list_branches: owner, repogithub_security__repo_dependencies: repos, packages, manifest, org, limit Splitrepoon/intoownerandrepofor everyext__github__*call.
Check the owner before you read anything. repo may carry an owner that nobody verified — a plan step or a requester can put the upstream project's org on a name that the graph holds under a different one. The findings step resolved the real fullname; if what you were given disagrees with it, use the resolved one and say so in the output. If neither the findings step nor github_security__repo_risk_summary (with org="" and the bare name) can place this repository in the graph, stop and report that — do not read a repository the graph has no record of. Reading the upstream project instead of the scanned fork produces verdicts about a codebase nobody asked about, and they look correct.
Do this work in the sandbox. sandbox__delegate reads tool results with far larger bounds than you have — tens of thousands of rows and megabytes against your 100 rows and 200KB — and anything oversized is written to a file under /home/user/seizu_results/ and returned as a receipt the sub-agent parses with run_python. Reading a large lockfile or sweeping many search hits is exactly that shape of work, and doing it in your own context is what exhausts the run.
How to delegate:
- Name every tool the task needs in the delegation's
toolsargument:ext__github__get_file_contents,ext__github__search_code,ext__github__list_commits,github_security__repo_dependencies. Naming them is what binds them. A delegation that omitstoolsleaves the sub-agent hunting for capability it has not been given, and it will spend the budget failing to find it. - Pass the finding list as the delegation's
input_data, and ask for a per-CVE verdict with citedpath:lineevidence. - The sub-agent reaches GitHub through those tools, not the network — the sandbox has no outbound internet access, so
curl/urllibagainstapi.github.comorraw.githubusercontent.comalways fails. If a delegation reports network errors it took the wrong route; re-issue it with the tools named. - Have it list the tree and search the code. Never hand it a guessed list of candidate filenames to probe.
- Ask for independent lookups together, not one at a time. Each round trip to the sub-agent costs a model call, and the searches for different advisories do not depend on each other: issue every
ext__github__search_codefor the current batch of advisories in one turn, then read every hit site that came back in the next. Only work that genuinely needs a previous result — reading a file the search just located, or following a commit a diff pointed to — has to wait for it.
What to establish for each CVE:
- Fix the ref. When
refis empty, callext__github__list_branchesonce to find the default branch and use it for every later call. - Locate the vulnerable API. Search with
ext__github__search_codescoped torepo:+ the fullname for imports/requires of the package and, more importantly, calls into the specific function, class, or configuration flag the advisory names. Read the hit sites withext__github__get_file_contents— search results alone are not evidence of reachability. - Trace untrusted input. Does attacker-controlled data (HTTP bodies, query params, uploaded files, webhook payloads, CI inputs from forks) flow into that call? Read the surrounding handler or entrypoint rather than guessing from the file name.
- Look for mitigations: input validation or allowlists, the feature disabled by default, a non-privileged context, a pinned safe version elsewhere.
- Check whether it is already fixed but not yet re-synced:
ext__github__list_commitson the manifest or lockfile path, andext__github__get_commitfor a promising SHA. ext__github__search_codeonly indexes the default branch and can lag. If a search returns nothing, say so and fall back to directory listings before concluding the package is unused.- A package with no direct import may still arrive through another dependency. Ask
ext__deps__depsdev_find_dependency_path(system, name, version, target) whether the intermediate pulls it in, andext__deps__depsdev_get_requirementsfor the range it declares. Never state a version pin or compatibility range from memory — the security graph records installed versions, not declared requirements, and the sandbox has no network to check them. If those tools cannot answer, say the relationship is undetermined rather than asserting one. - A transitive dependency's code still runs. No direct import means the repository does not call the package itself; it does not mean the vulnerable code is unused, because the intermediate that pulls it in is calling it. Name that intermediate (step 7), then establish whether the repository's use of the intermediate reaches what the advisory names: which of the intermediate's entry points this repository calls, and whether the advisory's function, feature or flag sits underneath them. Read the intermediate's source with
ext__github__get_file_contentswhen you can identify its repository. What settles it is evidence about the intermediate: a cited call site in its source, or its own documentation stating it does not use the affected feature. Evidence about this repository cannot settle it, because this repository is not the caller. The absence of a direct import is what makes the package transitive — it is the precondition for this step, never its answer. Where you cannot get evidence about the intermediate, that isUndetermined.
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.
- 12d ago First seen · 68 lines · 48 tokens per session scan A 119a0a6505c2
repo-cve-reachability is a skill published in the GitHub repository mappedsky/seizu (5 stars, last pushed today), licensed Apache-2.0. It adds 48 tokens to every session and 2,366 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
tutti-agent-workspace-app
Build or evolve a complex agent-enabled Tutti workspace app repository. Use for Tutti apps with web/server/shared monorepos, @tutti-os/agent-acp-kit local agent runtimes, kit-owned TUTTICLI agent/composer discovery, dynamic agent catalogs, run-scoped MCP tool gateways, app-owned package builders, web-first debugging…
assimilate-popular-workflows
This skill should be used when the user asks to "find skills in the wild", "assimilate popular workflows", "discover SKILL.md files in repos", "research external skills", "find workflow patterns", "survey the skill landscape", "what skills exist out there", or wants to investigate public repositories for extractable…
mcp-app-verification
Comprehensive verification checklists for MCP Apps. Tests with basic-host reference, validates handler-before-connect, text fallback, resource URI linking, single-file bundling, host styling, CSP, and legacy pattern detection.
verification-suite
Plan structure validation, phase completeness checks, reference integrity verification, and artifact existence confirmation. Provides the structured verification layer ensuring GSD artifacts are well-formed and complete.
mcp-app-scaffolding
Scaffolds MCP App project structure with correct directory layout, dependencies, entry points, and framework-specific templates. Handles React (useApp hook), Vanilla JS, Vue, Svelte, Preact, and Solid.
mcp-csp-investigation
Comprehensive Content Security Policy audit for MCP Apps in sandboxed iframes. Discovers all network origins, traces them to source, and generates CSP configuration for registerAppResource.