# Skill (/academy/skill)



A **skill** is a labeled drawer, not a second brain.

The [system prompt](/academy/system-prompt) says who the [agent](/academy/agent) always is. A skill is the laminated card for one job — when to open it, the steps, the gotchas — sitting on a shelf until the work matches. The agent reads the label first ([progressive disclosure](/academy/progressive-disclosure)), then the full card only if the job is this one. The rest of the drawers stay shut so the [context window](/academy/context-window) stays a desk, not a dumpster.

You already do this. You write a playbook once: how we ship a landing page, how we format the weekly numbers, how we never touch checkout. Next shift reads the card. You are not in the room.

**This repo ships two**

`scaffold-project` and `add-to-project`. They do not teach the model to invent a [stack](/academy/stack). They tell it to plan through [MCP](/academy/mcp) (`npx create-hackhaton-space-stack@latest mcp`), then create — not to hand-roll `package.json` and hope. Install the plugin and those cards sit on the shelf. Ask for "Next, Hono, Postgres, Better Auth" and the right drawer opens.

A [slash command](/academy/slash-command) is you choosing the card. A skill is the card noticing itself. Use both. Do not paste the playbook into every chat. Stuff that is always on fills the room whether you need it or not.

You are not teaching the model to code. You are handing it a recipe so it stops inventing a new kitchen every time.

**What this unlocks**

Once the recipe lives in a file, you stop re-explaining the kitchen. The agent shows up already knowing how this shop scaffolds. A chat without a skill is a confident intern guessing your process. A chat with one is an intern holding your card.

Write it down once. Never explain that task again.
