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/agent-controllergit 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.01113 | $0.01113 |
| Opus 5 | $0.00557 | $0.00557 |
| Sonnet 5 | $0.00223 | $0.00223 |
| Haiku 4.5 | $0.00111 | $0.00111 |
Grade A, and why
VaultysClaw agent-controller.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 — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent Controller Conventions
Module Imports
No @/* alias — use relative paths for local imports:
import { shellTool } from "./tools/shell";
import { getDb } from "../db";
Cross-package: import { AgentCapability, WSMessage } from "@vaultysclaw/shared" — never relative paths across package boundaries.
Adding a Tool
Create src/tools/<name>.ts, export a single AgentToolDefinition constant:
import { createTool } from "@mastra/core/tools";
import { z } from "zod";
import type { AgentToolDefinition } from "./types";
export const myTool: AgentToolDefinition = {
name: "my-tool",
capability: "internet_access", // see AgentCapability below
requiresApproval: false, // true for system-modifying operations
tool: createTool({
id: "my-tool",
description: "...",
inputSchema: z.object({ url: z.string() }),
execute: async ({ url }) => {
/* ... */
},
}),
};
Then register in src/tools/index.ts by adding to the builtIn array inside createToolRegistry().
requiresApproval: true for anything that writes files, runs shell commands, or executes code.
AgentCapability values: file_access | internet_access | browser_control | api_call | mail_send | code_execution | system_command | agent_communication | knowledge_search
Adding a Skill
Skills are runtime-loaded plugins — they must ship as compiled .js/.mjs, not .ts.
Structure a local skill under skills/<name>/index.ts, compiled to skills/<name>/index.js:
import type { SkillDefinition } from "../../src/skills/types";
export const skill: SkillDefinition = {
name: "my-skill",
description: "...",
version: "1.0.0",
tools: [
/* AgentToolDefinition[] */
],
systemPromptExtension: "Optional: guidance for the LLM about these tools.",
};
Accepted export forms: export const skill = ... or export default { skill: ... }.
The loader scans SKILLS_DIR for .js/.mjs files and index.js/index.mjs inside subdirectories. New skills require a restart (or trigger SkillLoader.load()) unless SKILLS_WATCH=true.
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 · 121 lines · 1,113 tokens per session scan A fb31a6e25190
VaultysClaw agent-controller.instructions.md is an instructions file published in the GitHub repository vaultys/VaultysClaw (77 stars, last pushed 7d ago), licensed MIT. It adds 1,113 tokens to every session, about $0.0056 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).
commonly CLAUDE.md
Instructions for Team-Commonly/commonly, covering claude.md / agents.md, 🧠 product vision & architecture philosophy, what commonly is, the architecture model and key concepts.
1flowbase AGENTS.md
Instructions for taichuy/1flowbase, covering 记忆, 用户偏好, 本项目相关skill在, 本项目 skills and 质量控制.
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.