Skip to content
Normative experiment · v0.1

Let the Web say what can be done.

The Web already links people, data, and services. Hyperactive Web v0.1 asks whether an invocable affordance can travel just as well: a typed declaration of inputs, outputs, protocol binding, authorization, risk, and consent cues—interpreted by software while authority stays with the user.

v0.2 draftIdentity and provenance are becoming first-class: who contributed, which model or tool participated, what evidence supports the claim, and what remains unknown.
PQ by designDurable provenance uses SHAKE256/384 and ML-DSA. Hybrid proofs pair the PQ signature with a classical compatibility signature during migration—without silent downgrade.
runtime stacks
2
shared fixtures + vectors
12
standards claims
0
§ 01 · The proposal

A portable declaration of an affordance.

Forms, HTTP methods, link relations, hypermedia controls, and software agents already belong to the Web. The problem is narrower: agent protocols describe callable tools differently, and the policy information around an action rarely travels with it.

A Capability Link is the v0.1 experiment: a typed hypermedia control that declares the action contract and a binding, then leaves the final authorization decision to a local runtime. It extends the Web’s vocabulary; it does not replace hyperlinks, browsers, HTTP, or human-readable pages.

Existing Web foundations
URIrepresentationhypermedia control

URIs identify resources. Representations, forms, HTTP methods, and typed links already describe interaction.

The v0.1 experiment
typed relationschemasbindingpolicy cues

Carry a portable action contract across agent protocols, then evaluate authority and consent locally.

§ 02 · The contract

Small enough to inspect. Precise enough to test.

The declaration is ordinary JSON in v0.1. Its selected contract fields canonicalize to the same bytes and SHA-256 digest in Swift and TypeScript. That proves exact declaration equality—not semantic equivalence or provider trust.

Capability Link · v0.1application/json
{
  "rel": "travel.searchHotels",
  "href": "a2a+https://provider.example/skills/search-hotels",
  "method": "delegate",
  "inputSchema": {
    "type": "object",
    "required": ["city"]
  },
  "outputSchema": { "type": "object" },
  "declaredRisk": "readOnly",
  "requiresConfirmation": false
}
The custom address and composed URI scheme are experimental. A v0.2 design should test ordinary HTTPS identifiers, URI-valued relations, and typed binding metadata—potentially through Web of Things.
§ 03 · Runtime

A call, with the human still in the loop.

Discovery is not authority. The runtime validates what was declared, resolves a binding, evaluates local policy, pauses when consent or credentials are required, invokes through an adapter, and retains evidence of what occurred.

You state a goal

“Find and book a refundable hotel in Stockholm.” Your node turns it into a plan — and composes the steps.

plan: search → book book.hotelID = {"$ref":"search.results.0.id"}

v0.1 policy still relies partly on publisher-declared risk. Independent local classification and stricter limits for fan-out, retries, and caching are design gates—not solved problems.

§ 05 · Identity + provenance

Not a badge. A chain of evidence.

The proposed v0.2 profile records contributions instead of guessing a single human-or-AI verdict. It keeps the principal, node, actor, executor, model, signer, issuer, and verifier distinct.

Read the formal v0.2 profile (opens in a new tab)Start with the ordinary HTTP example (opens in a new tab)

Contributions

Prompted, generated, edited, reviewed, approved, signed, and delivered roles remain visible.

Evidence

Signed statements bind exact artifacts to credentials, model attestations, mandates, and receipts.

Verification

Consumers report content binding, identity, participation, chronology, transparency, and lineage separately.

Honest uncertainty

Missing or stripped provenance means unknown—not proof that something was human-made.

Post-quantum migration

PQ is the durable baseline; hybrid-strict proofs preserve classical interoperability without making it the trust anchor.

§ 06 · Evidence

Working code, clearly separated from the hypothesis.

Implemented in v0.1
  • A frozen wire contract, JSON Schemas, valid fixtures, invalid fixtures, and a canonical digest vector.
  • Swift and TypeScript implementations that agree on validation, canonicalization, and SHA-256 addressing.
  • Service Card profiles, provider resolution, confirmation and authorization gates, adapter dispatch, and provenance records.
  • A runnable travel workflow that exercises discovery, planning, policy interruption, payment challenge, and result rendering.
Open design gates
  • Replace or profile the experimental capability address and composed protocol schemes with Web-native identification and binding metadata.
  • Map the contract to Web of Things, JSON-LD, and URI-valued link relations before adding vocabulary.
  • Classify risk independently of publisher claims and define safe behavior for retries, caching, fan-out, and partial failure.
  • Complete privacy, security, accessibility, internationalization, governance, and centralization reviews with real deployments.
Proposed in v0.2
  • Contribution graphs distinguish human, agent, model, tool, signer, issuer, and verifier roles.
  • Signed statements bind exact artifacts to evidence, delegation, model identity, and declared lineage.
  • Verification reports separate content binding, identity, participation, chronology, and transparency checks.
  • Missing provenance remains unknown; the profile does not invent a human-made or AI-made verdict.
The request is criticism, not endorsement

Help decide whether this should become a profile, a mapping, or a lesson learned.

  1. 01Is Web of Things the correct foundation for portable agent affordances?
  2. 02Should the primary identity always be a dereferenceable HTTPS URI?
  3. 03Which policy facts belong in a portable declaration—and which must remain local?
  4. 04What smallest pilot could falsify the interoperability claim?