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 skills add elevanaltd/HestAI-MCP --skill subagent-rulesgit clone --depth 1 https://github.com/elevanaltd/HestAI-MCPWrote 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/elevanaltd/hestai-mcp/subagent-rules)<a href="https://agentmods.dev/skills/elevanaltd/hestai-mcp/subagent-rules"><img src="https://agentmods.dev/badge/skills/elevanaltd/hestai-mcp/subagent-rules/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/elevanaltd/hestai-mcp/subagent-rules"><img src="https://agentmods.dev/badge/skills/elevanaltd/hestai-mcp/subagent-rules.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.00017 | $0.01783 |
| Opus 5 | $0.00009 | $0.00892 |
| Sonnet 5 | $0.00003 | $0.00357 |
| Haiku 4.5 | $0.00002 | $0.00178 |
Grade A, and why
subagent-rules 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 7d 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 — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
===SKILL:SUBAGENT_RULES=== META: TYPE::SKILL VERSION::"2.5.0" STATUS::ACTIVE PURPOSE::"Enforce oa-router delegation with anchor ceremony for all subagent Task() calls"
§1::ROUTING_RULE SCOPE::"Task()/Agent tool delegations only. External CLI dispatch (pal clink→goose/gemini/codex) is a separate mechanism — see /review §4." RULE::"ALL Task() agent delegation MUST use subagent_type:'oa-router'. NEVER call role agents directly." RATIONALE::"oa-router runs anchor ceremony providing identity, governance, context, enforcement (I5)"
§2::TEMPLATE
INVOCATION::Task({
subagent_type: "oa-router",
description: "{brief description}",
prompt: role: {role} tier: {tier|default} topic: {context for ARM computation} BEFORE ANY WORK: Load deferred MCP tool schemas via ToolSearch if needed (see §4d), then complete the anchor ceremony. Do not read or act on the task below until you have a valid PERMIT_SID. YOUR TASK {detailed task description} SUCCESS CRITERIA {what done looks like}
})
§3::TIER_SELECTION TIERS::[ micro::trivial_read_only_tasks[0_tensions,tension_bypass], quick::fast_iteration_single_constraint[1_tension], default::standard_work[2_tensions], deep::critical_decisions_production_impact[3_tensions] ]
§4::CALLER_RULES MUST::["Include anchor-first instruction in every prompt (baked into §2 template)", "Include role field (oa-router cannot bind without it)", "Store agent_id from Task() result for same-role reuse", "Use resume parameter with stored agent_id for subsequent calls to same role"] NEVER::["Skip/bypass anchor ceremony", "Pre-assign identity (e.g., 'You are an implementation-lead')", "Omit role from prompt", "Include pre-ceremony instructions that bypass binding", "Launch fresh Task() for same role when previous agent_id exists in session", "Use run_in_background:true for oa-router delegations"] BACKGROUND_RULE::[ PROHIBITION::"oa-router Task() calls MUST run in foreground (run_in_background MUST be false or omitted)", RATIONALE::"Background execution hides the anchor ceremony — multi-stage identity proofs (I5) become unauditable. Foreground shows every sub-agent action (anchor_request, file reads, anchor_lock, anchor_commit) enabling real-time verification.", PARALLEL_ALTERNATIVE::"For throughput, use multiple foreground Task() calls in a single message — Claude Code executes independent calls concurrently while preserving visibility.", DETECTION::"IF oa-router output contains 'Async agent launched successfully' THEN ceremony auditability is lost → treat as governance concern" ] INVALID_WORK::"IF subagent produces output without valid PERMIT_SID THEN work is INVALID per I5 → discard and re-delegate"
§4b::RESUME_RULE RULE::"When delegating to a role previously invoked in the same session, MUST use Task({resume: agent_id}) instead of launching fresh" RATIONALE::"Fresh launch forces full re-anchor (~50k+ tokens). Resume preserves anchor context, governance state, and loaded capabilities." PATTERN::[ FIRST_CALL::Task({subagent_type: "oa-router", prompt: "role: X ..."})→store_agent_id, SUBSEQUENT::Task({resume: stored_agent_id, prompt: "continue: ..."})→reuse_context ] EXCEPTION::"Launch fresh only when role changes OR context has fundamentally shifted (different branch, different project)"
§4c::CONTINUATION_RULE RULE::"Subagents using external tools with continuation/thread IDs (PAL continuation_id, future equivalents) MUST store and reuse the ID returned from the first call in ALL subsequent calls to the same tool within the session." RATIONALE::"Each call without continuation_id starts a fresh conversation — losing accumulated context, wasting tokens on re-explanation, and risking inconsistent responses across calls." SCOPE::[ PAL_CHAT::continuation_id[returned_in_response→pass_in_next_call], PAL_CLINK::continuation_id[same_principle], FUTURE_TOOLS::"Any tool returning a thread/session/continuation identifier" ] PATTERN::[ FIRST_CALL::mcp__pal__chat({prompt: "...", ...})→store_continuation_id_from_response, SUBSEQUENT::mcp__pal__chat({prompt: "...", continuation_id: stored_id, ...})→reuse_thread ] NEVER::["Discard continuation_id between calls to the same tool", "Start fresh PAL conversations when continuation_id is available"]
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.
- 7d ago First seen · 106 lines · 17 tokens per session scan A 07135c48a43a
subagent-rules is a skill published in the GitHub repository elevanaltd/HestAI-MCP (0 stars, last pushed yesterday), licensed Apache-2.0. It adds 17 tokens to every session and 1,783 once invoked, about $0.0001 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-09-03.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…