.md

Roadmap

Which RFCs HCP/1.1 holds, which drafts the reference SDK already runs on trial, what is proposed for 1.2 and reserved for 2.0, and which gaps remain.

On this page

HCP/1.1 is the current draft, and the reference SDK also implements five draft RFCs on trial, one of them in part. Everything after that is a proposal that binds no one until it passes the RFC process, so open an issue titled RFC idea: <title> on hcp-protocol to move an item forward.

In the current draft#

The reference SDK and runtime (0.3.0) and the CLI (0.2.0) implement both versions below. The protocol repository is tagged v0.1.0 with HCP/1 and RFC 0001, and the next tag adds RFC 0003, the RFC 0001 erratum and the RFC 0008 errata.

VersionContents
HCP/1.0Pack model (three files), Execute + isolated Sense, Policy (operation, land), Binding modes and hubs, five capability grants, sandbox default, CLI bootstrap pack (hcp-cli), availability flags, host projections (tool naming, hcp__read_skill)
HCP/1.1RFC 0001: named commands required for wrap; installer family; land local; confirm defined for writes; health commands never mint; control vs runtime plane. RFC 0003: wrap.workspace exec plane (local driver in the reference runtime). RFC 0008: errata where the specification disagreed with itself and with its working notes, and the write_stimulus lint.

Drafts the reference SDK implements#

These RFCs are drafts in hcp-protocol. The reference SDK, runtime and CLI implement them on trial before acceptance, and the Specification section does not contain them yet.

RFCAddsExplained in
0002 Skill four facesLint fails on drift between the Skill and the commands, host paths, credentials, and MCP as the install pathSkill
0004 Wrap JSON flagwrap.json_flag, a per-command json_flag, and no flag when cli[] already selects JSONCLI projection
0005 Wrap project modewrap.workspace.mode: project, and no_project where a runtime has noneManifest
0006 AccessModes, allow/ask/deny rules, human approvals, confirm: "always", approval views, auditAccess
0007 Host projectionCommand titles, approval optionsTitles, Answers a host can offer

The SDK does not implement the rest of RFC 0007 yet: a call record a host shows for each exec (call_id, title, effect, status, locations), rules for cancelling a run (open approvals answered as cancelled, no call started after a cancel), and an access mode a person picks per session.

Proposed for HCP/1.2#

Each item is a candidate RFC for a minor version, which may only add.

ItemWhyShape
Pack versionUpgrades and pinning need itversion: "1.4.0" in manifest; semver; runtimes report it in availability
Argument schemaHosts generate tool parameters by hand todayverbs.<k>.args as JSON Schema; lint validates; hosts project directly
Result schemaAgents cannot rely on result shapeverbs.<k>.result as JSON Schema, optional
Error codesThe specification has only error strings, matched by regexNormative code alongside error in the result envelope, with a registry; the reference implementation already returns the codes in Errors
Extension namespaceRuntimes need private fields without lint noisex-* keys ignored by lint, reserved for extensions
Trigger payload schemaSinks cannot validatestimulusTriggers[].payload as JSON Schema
Manifest $schemaEditor validationOptional $schema pointing at the published schema
Deprecation markersRenaming commands is breakingverbs.<k>.deprecated: "<replacement>"

Reserved for HCP/2.0#

These change meaning, which only a major version may do.

ItemWhy it is major
Registry protocolDiscovery, publish, fetch by pack_id@version; integrity hashes; provenance. The community catalog is a PR-based index and stays separate from it.
Pack signingSignature over the three files; runtimes verify before install
Capability wire profileGrants as a portable token so a runtime can accept an upstream decision
Transport adaptersNormative MCP export and A2UI projection with round-trip guarantees
Rename wire fieldssurface.json → pack.json, verb_key → command, with a compatibility shim
Streaming resultsLong-running commands, progress events

What HCP still lacks#

Set against MCP, Agent Plugins, OpenAPI and package ecosystems, HCP still has these gaps.

They haveHCP statusPlan
Multi-language SDKsTypeScript onlyPython next; the pipeline is small
A registry protocol (signed pack_id@version)NoneHCP/2.0
A community catalog (search + share)Catalog, /api/v1/packs, hcpx searchGrow entries by PR
A conformance badgeVectors exist, no badgePublish a checklist and self-attestation format
A public implementations listStartingImplementations
A security disclosure processStartingSecurity
Versioned spec permalinksSingle draftFreeze /docs/specification per hcp-protocol tag
ChangelogIn §13.5Dedicated page per version
Interactive examples / playgroundNoneBrowser sandbox running the reference runtime on gold packs
Editor toolingThe schemas are live; no editor maps them yetVS Code validation through the published schemas
A test-suite runner for third partiesBun test in the monorepoExtract vectors to a language-neutral fixture format
Governance charterGovernanceRatify once a second implementer joins steering

Not planned#

The protocol will not add a verb ontology, tenant identifiers or credentials in packs, a mandatory UI, or polling as Sense. The non-goals give the reasons.