Why capabilities instead of prompts
A prompt copy-pasted between projects has no version, no way to tell if it's been edited since you last trusted it, and no declared relationship to the other prompts sitting next to it in the same codebase. That's fine for one script. It stops being fine once more than one agent, or more than one project, needs the same behavior.
A HeepX capability addresses each of those directly:
- Versioned.
hx learn warrant --version 1.2.0pins an exact version;hx update warrantfetches the newest one deliberately, not by accident. - Verifiable. Every cached capability has a content fingerprint recorded
at download time.
hx verify warrantrecomputes it and tells you if anything on disk has changed since — the same guarantee a lockfile gives a package manager, applied to a prompt. - Composable. A capability's descriptor can declare what it's meant to
be used alongside —
warrant's owncomposes_withnames "any reasoning or planning scaffold." That's metadata a loose prompt string has no way to carry.
None of this requires a bigger model or a cleverer prompt. It requires treating the thing itself — the instructions, the constraints, the scope — as an artifact with a lifecycle, the way source code already is.
See the Capability Standard for the actual format, or browse the registry to see it in practice.