DCER integration for Portable Human Context
Experimental adapter 0.1.0 · 14 October 2026
DCER is the optional PHC qualification and access integration. The actual upstream artifact is DEC v0.1, from Azimuth agent-dec. PHC does not rename it, add fields to its signed envelope, or substitute another algorithm. The pinned schema and signed public fixture are reproduced with the upstream Apache-2.0 license and a provenance/digest manifest in vendor/agent-dec/.
Three distinct decisions
| Decision | Implemented here | Still required for live use |
|---|---|---|
| Exchange document | Bounded parsing, schema and semantic checks; quarantined result | Authenticated import, recipient/export authority, mapping, lifecycle/replay state |
| Execution evidence | DEC schema, Ed25519 signatures, signed digest chain and exact run manifest | Disclosures, deterministic replay, attestation assessment, trusted runtime provenance |
| Access eligibility | Pure reference policy function using trusted input snapshots | Real authority/qualification registries, fresh trust, authenticated runtime binding, transactional final disclosure check |
A completed run certificate can support later qualification review. It cannot be required to exist before the first read of the same run. Pre-access uses prior qualification; the current run generates new minimized evidence after authorized operations.
Integrity verifier
lib/dec.mjs verifies the original upstream schema and uses Node's Ed25519 implementation. Canonicalization follows RFC 8785's ECMAScript number/string serialization and UTF-16 key ordering; invalid Unicode and duplicate keys are rejected. The signature covers the object without signature; the signed certificate digest includes it. Schema and public signed fixtures are pinned; no private key is shipped.
The verifier additionally checks contiguous positions, unique step IDs, equal run IDs, exact manifest cardinality/class/digest, final head, valid whole-second UTC times, run bounds, and level-appropriate evidence types/model presence. It rejects revoked/unknown keys, unknown status, stale operator trust, invalid signature encoding and incompatible key windows. Retired keys remain usable only for certificates issued within their explicit historic window.
This adapter intentionally supports only whole-second Zulu timestamps, a narrower subset than upstream RFC3339 syntax. Fractional/offset timestamps are rejected without changing signed bytes. This is a disclosed compatibility limit; it is not a claim to cover every valid DEC v0.1 artifact.
A positive output is integrity_verified. It says replay: not_performed, attestation: not_assessed, authorization: not_evaluated. ND0 is never relabeled replayed, and ND2/ND3 are never described as deterministic or safe. No methods, evidence URLs or imported code are executed. SHA-256 of guessable private content must not be published; evidence references should point to private, access-controlled material.
node bin/phc.mjs verify-dec \
vendor/agent-dec/examples/run.dec.json examples/dec-trust.json \
vendor/agent-dec/examples/step-s1.dec.json \
vendor/agent-dec/examples/step-s2.dec.json \
vendor/agent-dec/examples/step-s3.dec.json \
--at 2026-10-14T12:30:00Z
The example trust file is an invented operator configuration for a public test issuer and fixed clock. It is not a production trust anchor. The phc-local-trust/0.1 wrapper is PHC-local configuration, not an extension to upstream dec-trust/0.1. Live integrations must populate it from an authenticated, freshness-bounded trust distribution channel. Certificates cannot select keys or supply their own trusted status.
Qualification adapter contract
assessQualification accepts a requested tuple and separate trusted service inputs. The tuple binds exact client, release, method and runtime digests, purpose, operation, recipient, scope digest and qualification profile. The implementation returns deny unless authority, qualification and verified runtime snapshots are current and match. The integrity result carries verification time and the operator trust validity deadline; the reference seam rejects expired trust even when the stored verification was successful. The evidence digest must equal the qualification's reviewed DEC run digest, and a separate trusted assessor must have established the profile requirements. An intact signature is insufficient.
Even a passing result is eligible_for_final_service_check. It performs no disclosure. The host service must re-evaluate current session/authority, source and persona restrictions, record versions, lifecycle, trust and qualification at the transaction/publication boundary. It must bind the final result to that exact operation; asynchronous work must not reuse a stale allow.
Do not bind this function directly to a JSON API that accepts authority, qualification, runtime or verification from the client. Those inputs are trusted adapter outputs. Unit tests use invented snapshots to exercise composition; they do not implement the trusted services. The CLI exposes integrity verification only, not an authorization endpoint.
Where DEC belongs
Deterministic access decisions, selected-record projection, canonical version checks and rule evaluation can eventually produce replayable evidence when a restricted, pinned runtime and complete authorized input disclosures exist. Model extraction and synthesis remain bounded generative attestations with provenance, evaluation dimensions and freshness. PHC uses neither category as proof of truth, legitimate purpose, consent or downstream deletion.
See the implementation guide for service responsibilities. Production release still requires a complete JCS interoperability corpus, external cryptographic review, deployment binding, key custody/rotation, registry freshness and failure tests. Upstream licenses and research attribution remain separate from PHC's pending open-release terms.