§14 Conformance

What it means to conform to HCP/1.1 as a pack, a runtime, or a host, and the executable vectors that back the claims.

On this page

14.1 Conformance targets#

TargetClaimsSections
PackDirectory is a valid Harness Pack§2, §3, §4, §5
RuntimeLoads packs and executes both loops per this specification§6 to §11
HostProjects packs through a conforming runtime§12

An implementation MAY conform as more than one target.

14.2 Pack conformance#

A pack conforms when all of the following hold:

  1. The three required files are present (§2.1).
  2. surface.json validates against the manifest schema (§3).
  3. Every command and trigger has a Policy entry (§4.4).
  4. confirm appears only on write entries (§4.5).
  5. The Skill contains no credentials or host paths and teaches only declared commands (§5.2).
  6. Binding declares at most one mode (§8.1).
  7. Lint from a conforming runtime returns zero issues.

Informative. The reference implementation also runs a pack's commands live and runs its eval cases (hcpx check --probe). A catalog entry carries that result as evidence; a claim in the Skill or a README is not evidence.

14.3 Runtime conformance#

A runtime conforms when it:

  1. Fails lint on any of §14.2 violations.
  2. Executes the pipeline of §6.3 in order and fails closed at each step.
  3. Enforces the five capabilities (§9.4) and the evaluation order (§9.5).
  4. Enforces confirm (§4.5) and resolves project scope for land brain (§9.2).
  5. Mints Binding at exec time and never falls back (§8.4).
  6. Defaults to sandbox with allow-list and jail (§10.2).
  7. Isolates Sense from Execute and gates delivery on sense.enable (§7.2 and §7.3).
  8. Reports the four availability flags (§11.2).
  9. Returns the result envelope of §6.2 for success and denial.
  10. Accepts any 1.x pack (§13.2).

14.4 Host conformance#

A host conforms when it:

  1. Routes every projected tool call through a conforming runtime (§12.2.5).
  2. Filters the projected tool set by grants (§12.2.6).
  3. Preserves confirm markers (§12.6).
  4. Does not merge Sense into a callable tool (§12.5.5).

14.5 Vectors#

The reference implementation ships executable vectors in packages/sdk/src/conformance.test.ts and pack fixtures under examples/packs/. Each vector names the section it checks.

VectorSection
pack.lint.transit§2, §3, §4
pack.lint.ledger§4.5
pack.lint.echo§3 (composite)
exec.transit.plan§6.3, §6.4, §6.5
exec.ledger.transfer.confirm-required§4.5, §6.3 step 6
exec.denied.missing-write-grant§9.4, §9.7
exec.sandbox.bin-not-allowlisted§10.2
exec.brain.requires-project§9.2
availability.flags§11.2
Terminal
cd hcp && bun test packages/sdk/src/conformance.test.ts

A runtime that passes every vector against the gold packs MAY claim "HCP/1.1 runtime, reference vectors passing". Passing the vectors is necessary but not sufficient; the text of this specification governs.

14.6 Claiming conformance#

An implementation claiming conformance SHOULD publish:

  • Target(s) and protocol version.
  • Which optional behaviours are implemented (native-local, openapi, composite, Sense sinks).
  • A link to its vector run or its own test suite.
  • Its runtime profile: hub implementation, store, sink, isolation.

14.7 Non-conformance#

Informative. Common ways to fail: executing an unactivated pack; a write without confirm; env-token fallback on mint failure; a single admin boolean instead of five capabilities; polling exposed as Sense; a host spawning wrap.bin directly.