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.0 pins an exact version; hx update warrant fetches the newest one deliberately, not by accident.
  • Verifiable. Every cached capability has a content fingerprint recorded at download time. hx verify warrant recomputes 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 own composes_with names "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.