pocs/agent-plugins/claude-pragma/skills/capsule/SKILL.md
Create or update a concept capsule — the conceptual anchor for a project or feature area. Use before writing code on a new project or feature, or when terms and boundaries feel unclear. Defines glossary, invariants, happy-path scenario, and non-goals.
npx skillsauth add hashintel/labs capsuleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a concept capsule — a short, precise document that anchors all subsequent work to a shared vocabulary (ubiquitous language, DDD) and a set of constraints (design by contract).
The capsule is the durable semantic authority for a project or feature area. It should change slowly after initial establishment.
Use the capsule for durable conceptual truths only:
Do not use the capsule for:
The project or feature area: $ARGUMENTS
If the user hasn't described the domain clearly enough, interview them:
Write a document with exactly these four sections. Keep it to one screen (~250-500 words). Each bullet should be one sentence.
5-15 domain terms with their exact intended meanings in this project. These are the names that must appear in code — types, functions, modules, test suites.
Format:
- **Term**: Definition (one sentence)
3-10 statements that must always be true. Constraints, not features.
Format:
- An X must always have a Y
- X can never be Z while W is true
A single concrete input → output story. This becomes the first integration test.
Format:
Given: [concrete starting state]
When: [concrete action]
Then: [concrete observable result]
Must be specific ("Given a file post.md with front-matter...", not "Given some input...").
Two things this project or feature explicitly will not do. These prevent scope creep and stop the agent from "helpfully" adding features.
Format:
- This will NOT do X (because Y)
- This will NOT do Z (because W)
These are deliberate exclusions, not "not yet" items.
Update a capsule when one of these is true:
Do not append changelogs, progress logs, milestone status, or decision journals inside the capsule.
When an assumption stabilizes into a durable law, promote it from
docs/assumptions.md into capsule invariants and track enforcement via
/pragma:contract.
docs/capsule.md for project-leveldocs/capsule-<feature>.md for feature-levelAfter writing, check:
If any check fails, revise before proceeding.
Append to the response:
foundation/pragma:skeleton/pragma:consult (default unless user explicitly continues directly)documentation
Read and write a Petri net (SDCPN) document by Automerge URL. Use when creating, editing, or querying Petri nets — adding or removing places, transitions, arcs, color types, differential equations, and parameters.
development
Time-boxed throwaway investigation to answer one hard question. Use when facing technical uncertainty before a slice — the output is knowledge, not production code. Retires risk by producing a spike verdict with clear recommendations.
development
Implement one tracer-bullet slice following the inside-out methodology. Use when you have a tracer-bullet card ready to build. Implements functional core first, then imperative shell, then end-to-end wiring, then alignment refactor.
tools
Build a walking skeleton — the thinnest runnable system that proves build, test, and runtime work end-to-end. Use when starting a new project, before any feature work. Front-loads tooling and infrastructure so every subsequent slice is cheaper.