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 instructions/tikoci/rosetta/extractor-import-side-effectsgit clone --depth 1 https://github.com/tikoci/rosettaWhat 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.00901 | $0.00901 |
| Opus 5 | $0.00451 | $0.00451 |
| Sonnet 5 | $0.00180 | $0.00180 |
| Haiku 4.5 | $0.00090 | $0.00090 |
Grade A, and why
rosetta extractor-import-side-effects.instructions.md 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 3d 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.
What it actually says
Extractor import side effects
There are two separate hazards here. Hazard 1 must be closed for every src/extract-*.ts
file — and now is (audited 2026-07-14, issue #19). Hazard 2 is not closed for most
extractors and isn't required to be; it's mitigated in tests by the import pattern
described below.
-
No unguarded execution at module scope. Every extractor's side-effecting logic (DB writes, file/network reads, subprocess spawns) must live inside a
main()function called only underif (import.meta.main) { ... }. Pure helpers, type declarations, and argument-shape parsing that has no I/O may stay at module scope. Without this guard, merelyimport-ing the file — e.g. a future test reusing a parser helper — runs the entire pipeline unconditionally. This was the actual gap found in the 2026-07-14 audit:extract-commands.ts,extract-devices.ts,extract-properties.ts, andextract-all-versions.tshad noimport.meta.mainguard at all. All extractors now have one. -
Top-level
db.tsimport still opens a connection.db.tsdoesexport const db = new sqlite(DB_PATH)at module scope, so any extractor that doesimport { db, initDb } from "./db.ts"at the top of the file opens a DB connection the moment it's imported — even with theimport.meta.mainguard in place, since the guard only defers execution, not the import itself. Most extractors keep this top-level import; it opens the real on-disk DB unless the importer setDB_PATHfirst. That's correct for normal CLI use (a real DB is exactly what you want), but it's a trap for any test or script that imports the module without first settingDB_PATH. This is not itself a bug to fix — it's the reason the test-import discipline below exists. For tests, that means:- Set
process.env.DB_PATH = ':memory:'before importing the extractor. - Use dynamic
await import(...)so Bun does not hoist the real-DB import before the env var assignment. extract-schema.tsandextract-test-results.tsgo further and dynamic-importdb.tsitself lazily insidemain(), so importing them touches no DB at all — that's the strictest form and is preferred for new extractors, but not required retroactively.
- Set
src/query.test.ts carries a singleton guard (V-db-wipe-guard in VALIDATION.md) that
fails loudly if any test file leaves the db singleton pointed at a non-:memory: path —
treat a failure there as a real regression in one of the two patterns above, not test flakiness.
That runtime guard only fires on the unlucky file order where the offending file loads
db.ts first, so a static db.ts-reaching import can sit latent through many green runs and
present as a CI flake (#98). src/source-hygiene.test.ts (V-test-db-import-static-guard)
closes that gap structurally: it scans every *.test.ts that sets process.env.DB_PATH
and fails if any statically (value-)imports a module transitively reaching db.ts, regardless
of run order. Statement-level import type … from is erased by the transpiler and stays
allowed (e.g. extract-hardware-catalog.test.ts); only value imports load db.ts. So the
dynamic-import discipline above is now enforced, not merely documented — add a new
DB_PATH-setting test the wrong way and this test rejects it at author time.
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.
- 3d ago First seen · 52 lines · 901 tokens per session scan A a8a4a1cb664c
rosetta extractor-import-side-effects.instructions.md is an instructions file published in the GitHub repository tikoci/rosetta (43 stars, last pushed 17d ago), licensed MIT. It adds 901 tokens to every session, about $0.0045 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-30.
Other instructions, from other repositories
bun-mcp copilot-instructions.md
Copilot instructions for TomasHubelbauer/bun-mcp, covering github copilot instructions for the bun-mcp repository and formatting.
memorix GEMINI.md
Instructions for AVIDS2/memorix, covering memorix - cross-agent memory rules, session start - bind project, then load context, during session - capture important context, architecture & decisions and bug fixes & problem solving.
calc-mcp CLAUDE.md
Instructions for coo-quack/calc-mcp, covering project rules, tech stack, commands, project structure and tool architecture.
mcp-security-scanner CLAUDE.md
Instructions for badchars/mcp-security-scanner, covering mcp-security-scanner — mcp security scanner, architecture, key rules, tool categories (43 tools) and commands.
relay AGENTS.md
Instructions for ImBIOS/relay, covering agents.md — relay, project overview, tech stack, architecture and support policy.
copilot-mcp CLAUDE.md
Claude Code instructions for VikashLoomba/copilot-mcp, covering claude.md, project overview, development commands, root directory commands and install dependencies for both extension and web ui.