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/morodomi/dev-crew/sca-attackergit clone --depth 1 https://github.com/morodomi/dev-crewWhat 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.00031 | $0.00901 |
| Opus 5 | $0.00015 | $0.00451 |
| Sonnet 5 | $0.00006 | $0.00180 |
| Haiku 4.5 | $0.00003 | $0.00090 |
Grade A, and why
sca-attacker 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 yesterday.
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.
curl -s -X POST https://api.osv.dev/v1/querybatch \ How it starts
The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Detection Targets
| File | Ecosystem | Parse Method |
|---|---|---|
| package.json | npm | JSON parse, dependencies/devDependencies |
| package-lock.json | npm | JSON parse, packages |
| composer.json | Packagist | JSON parse, require/require-dev |
| composer.lock | Packagist | JSON parse, packages |
| requirements.txt | PyPI | Line parse, package==version |
| Pipfile.lock | PyPI | JSON parse, default/develop |
| Gemfile.lock | RubyGems | Text parse, gem (version) |
| go.mod | Go | Text parse, require lines |
OSV API Integration
- Endpoint:
POST https://api.osv.dev/v1/querybatch - Request Format:
{ "queries": [ { "package": { "name": "lodash", "ecosystem": "npm" }, "version": "4.17.0" } ] } - Batch Size: Max 100 queries per request (recommended)
HTTP Execution
curl -s -X POST https://api.osv.dev/v1/querybatch \
-H "Content-Type: application/json" \
-d '{"queries":[{"package":{"name":"lodash","ecosystem":"npm"},"version":"4.17.0"}]}'
Version Resolution Strategy
| Pattern | Strategy |
|---|---|
1.0.0 (exact) |
Use directly |
^1.0.0 (caret) |
Extract base version (1.0.0) |
~1.0.0 (tilde) |
Extract base version (1.0.0) |
>=1.0.0 (range) |
Extract base version (1.0.0) |
*, latest |
Skip with warning |
| Lock file available | Prefer lock file version |
Priority: lock file > exact version > range base
Fallback Strategy
- OSV API timeout (10s) → Exponential backoff (3回: 2s, 4s, 8s)
- OSV API error → Report as "api-unavailable", continue scan
- Offline mode → Not supported (require API)
| Attempt | Delay | Total Wait |
|---|---|---|
| 1st retry | 2s | 2s |
| 2nd retry | 4s | 6s |
| 3rd retry | 8s | 14s |
Max total wait: 14s + timeout (10s) = 24s per batch
Output
Base: {metadata: {scan_id, scanned_at, agent}, vulnerabilities: [{id, type, vulnerability_class, cwe_id, severity, file, line, code, description, remediation}], summary: {total, critical, high, medium, low}}
Extra: prefix=SCA, types=vulnerable-dependency, extra_fields={package, version, ecosystem, osv_ids, dev}
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.
- yesterday First seen · 99 lines · 31 tokens per session scan A f2f4f78a6d90
sca-attacker is an agent published in the GitHub repository morodomi/dev-crew (1 stars, last pushed 3d ago), licensed MIT. It adds 31 tokens to every session and 901 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 agents, from other repositories
gem-orchestrator
The team lead: Orchestrates planning, implementation, and verification.
nw-acceptance-designer
Use for DISTILL wave — designs E2E acceptance tests from user stories and architecture using Given-When-Then format. EXPANDED scope (plan v3 §3.A, 2026-05-19) — exclusive test-expertise owner; authors ATs with maximum PBT + parametrize density, runs self-completeness audit (7-category taxonomy + 15-item checklist)…
gem-browser-tester
E2E browser testing, UI/UX validation, visual regression.
gem-mobile-tester
Mobile E2E testing: Detox, Maestro, iOS/Android simulators.
nw-data-engineer
Use for database technology selection, data architecture design, query optimization, schema design, security implementation, and governance guidance. Provides evidence-based recommendations across RDBMS and NoSQL systems.
nw-ddd-architect
Use for DESIGN wave domain modeling. Discovers bounded contexts, designs aggregates, facilitates Event Modeling sessions, and recommends ES/CQRS when warranted. Writes to architecture SSOT.