What problem does it solve? When a feature needs an LLM or coding-agent turn (classifying an inbound message, working an issue), teams often scatter prompt logic, identity handling, and tool permissions across services and use cases. This Skill enforces a single, consistent pattern: one agent class per business intention, built on a concrete template-method base, so run tokens, identity stamping, and tool scope each live in exactly one place. ## Core Features & Use Cases - Standardized agent structure: One directory per agent (<Name>Agent.ts, prompt.ts, types.ts, index.ts) with input schemas built via z.agentInput() so the run envelope (ownerId/threadId/cwd) is inherited by construction. - Enforced architectural invariants: A registry of 15 patterns (AGT-01 to AGT-15) and 18 documented bad practices covering template-method discipline, static identity schemas parsed before token issuance, declared tool scopes, and transient class-token DI. - Testing guidance: Stub the AgentRunner seam to record requests and yield canned events, asserting the base stamps identity and failures surface as named errors. - Use Case: You need an agent that classifies incoming WhatsApp messages into issues. Scaffold it with bun cli agent <context> ClassifyMessage, implement buildRequest, declare an output schema, and expose one public classify() method delegating to collect(). ## Quick Start Ask the AI to scaffold a new agent in a given context using the agent skill, for example to create a ClassifyMessage agent with an input schema, prompt builder, and stubbed-runner test.