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/vaultys/vaultysclaw/control-planegit clone --depth 1 https://github.com/vaultys/VaultysClawWhat 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.01639 | $0.01639 |
| Opus 5 | $0.00820 | $0.00820 |
| Sonnet 5 | $0.00328 | $0.00328 |
| Haiku 4.5 | $0.00164 | $0.00164 |
Grade A, and why
VaultysClaw control-plane.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 2d 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 — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Control Plane Conventions
API Routes
File structure: app/api/<resource>/route.ts (collection), app/api/<resource>/[param]/route.ts (item).
Every handler follows this order: auth check → permission check → DB query → response.
export async function GET(request: NextRequest) {
const auth = await getAuthContext(request);
if (!auth) return unauthorized();
if (!auth.canAccessWorkspace(workspaceId)) return forbidden();
const db = getDb();
// raw SQL via better-sqlite3 — no ORM
return NextResponse.json({ success: true, data: result });
}
Pagination (use for all list endpoints):
const page = Math.max(1, parseInt(searchParams.get("page") ?? "1") || 1);
const pageSize = Math.min(
100,
Math.max(1, parseInt(searchParams.get("pageSize") ?? "20") || 20)
);
// response shape:
return NextResponse.json({ items, total, page, pageSize, totalPages });
Error responses: return NextResponse.json({ error: "Message" }, { status: 400 }).
Wrap non-trivial handlers in try/catch and log with console.error("POST /api/... error:", err).
Shared API response types live in lib/api-types.ts (PaginationMeta, ListResponse<T>, AgentSummary, etc.). Import from there before defining local types.
Database
Access the SQLite singleton via getDb() from @/lib/db. Use raw prepared statements:
const db = getDb();
const row = db.prepare("SELECT * FROM agents WHERE did = ?").get(did);
db.prepare("INSERT INTO agents (did, name) VALUES (?, ?)").run(did, name);
Schema changes go directly in createTables() in lib/db.ts — there are no migration files. Add CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS statements.
Auth
Import from @/lib/auth-utils:
getAuthContext(request?)— returnsAuthContext | null(null = unauthenticated). Always pass therequestparameter so API key authentication works in addition to session auth.unauthorized()/forbidden()— return typedNextResponsewith 401/403- Permission methods:
canAccessWorkspace,canAdminWorkspace,canAccessAgent,canAdminAgent
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.
- 2d ago First seen · 148 lines · 1,639 tokens per session scan A 385cf22a29d1
VaultysClaw control-plane.instructions.md is an instructions file published in the GitHub repository vaultys/VaultysClaw (77 stars, last pushed 7d ago), licensed MIT. It adds 1,639 tokens to every session, about $0.0082 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
open-ace CLAUDE.md
Instructions for open-ace/open-ace, covering claude.md, where process documents go, pushing, test placement and ci semantics and schema snapshots (schema-sync ci).
comis CLAUDE.md
Instructions for comisai/comis, covering claude.md, generic runtime check — before every code change, tests-first, docs-current and root-cause before patching.
comis AGENTS.md
Instructions for comisai/comis, covering agents.md — comis engineering protocol, 1) architecture, package map, 1.1 generic agent runtime invariant and 2) engineering principles (normative).
supabase studio-composition-patterns.instructions.md
Instructions for supabase/supabase, covering react composition patterns review rules, core principle, when to flag, 1. boolean prop proliferation (high) and 2. render props instead of children (medium).
recharts AGENTS.md
Instructions for recharts/recharts: This is Recharts repository. Recharts is a React-based charting library. The goal is to provide a simple, declarative, and composable way to build charts. We value consistency, usability, and performance. Accessibility is important.
caracal console-example-naming.instructions.md
Use when writing, editing, or reviewing web console help, info pages, field examples, guided setup copy, or example-facing web console UI text. Enforces the approved Caracal demo naming universe.