PHC conformance plan

Draft 0.1 · 14 October 2026 · All cases below: not_run

This is a planned acceptance program for the candidate specification, not an executed harness or certificate. There are no PHC-qualified implementations established by this package. The existing 32 offline v0.4 fixtures check their existing parser contracts. Historical synthetic application, browser, PostgreSQL and container evidence has its own scope. It does not pass the new cases or the original 52 design/108 service cases, CP plan or PG plan.

1. Profiles to implement and test

Profiles compose; passing a smaller profile does not imply passing a larger one. Every claimed profile includes all applicable core authority, restriction, lifecycle and evidence requirements.

Proposed profile Scope Required evidence beyond static shape
PHC Semantic Exchange Export/import of selected records, provenance, rules and lifecycle Independently implemented exporter/importer, exact mapping report and round-trip allow/deny equivalence
PHC Governed Service Current read/contribution/review and persona behavior Direct API tests against real policy/storage boundaries, including race and isolation probes
PHC Transport Binding One exact MCP era or HTTPS binding Credential/resource/continuation checks and equivalent decisions across claimed transports
PHC Managed Custody Authorized service decryption and controlled processing routes Runtime roles, key separation, encryption handling, egress and log inspection
PHC Sensitive Qualification Policy-required exact release/runtime and current trust checks Missing/mismatched/revoked evidence denial plus verified sender constraint where required
PHC Controlled Local Local model/tools under an enforced boundary Pinned runtime, secret isolation and observed denial of hosted fallback/egress
PHC Recovery Restore/promotion without authority or content resurrection Fault-injected fencing, lifecycle/safety reconciliation and old-generation rejection
PHC Confidential or Provider-Blind Separate future custody profiles Complete threat model and key/attestation/search/recovery evidence; neither follows from managed encryption

An implementation may advertise a bounded subset, but cannot claim a feature whose required cases are absent or unsupported. A receiver that safely rejects an unknown restriction can pass that negative test while remaining unqualified to accept the restricted material.

2. Synthetic lab and evidence

Use invented Alex and Blair accounts, a distinct employer tenant, Learning and Work personas, two independent client registrations, an optional controlled local runner, a registered source and an explicitly forbidden destination. Include a confirmed reported learning goal, an unconfirmed inference, a stale observation, a disputed claim, a deleted record, a derived summary, an edge with a protected endpoint and an employer-controlled record. Seed unique forbidden-field canaries in each isolation boundary.

Implement a controlled clock where allowed, deterministic issuer/key fixtures, source resolver, identity mapper, versioned policy engine, query/disclosure recorder, lifecycle fault injector and egress sink. Test denial by direct calls that bypass model cooperation. Use a separate test database and disposable synthetic state. Keep production data and credentials out of the harness.

Each run manifest must identify repository commit and dirty state; implementation and adapter digests; exact format/schema/capability versions; test and fixture digests; identity issuer/client/resource configuration; policy and trust versions; dependency/runtime/OS/database versions; provider API/model/account/region where relevant; protocol era; custody mode; clock/fault settings; start/end times; expected and actual results; per-case evidence references; and pass/fail/blocked/not-run counts. Secret values and customer payloads are excluded. Signed results still require trusted execution/collection and an explicit reviewer assessment.

3. Planned case catalog

All rows are not_run. These scenarios require service-level evidence; local unit tests are reported separately.

Case Requirements Setup and action Required deterministic result and evidence
PHC-T01 Shape and bounds R02 Submit duplicate keys, invalid times, oversized/deep objects and ambiguous IDs Reject before activation; bounded resource use, exact parser failures and no content publication
PHC-T02 Semantic round trip R02–R05, R14–R15 Export a goal with source, confirmation, dates and rule; import and re-export through independent code Preserve meaning/restrictions or explicitly block; compare normalized meaning and decision matrix, not byte equality of local IDs
PHC-T03 Unknown mandatory rule R07–R08 Add a required unknown capability and attempt retry/downgrade No disclosure or activation; no conversion to preference text; capture compatibility report
PHC-T04 Unsupported enforceable boundary R07–R08 Require local-only processing at a receiver with hosted inference Reject activation/use despite valid syntax and consent; egress sink receives no payload
PHC-T05 Optional preference R06, R08 Receiver omits a supported-as-optional response-style preference Omission reported; access decisions and mandatory semantics unchanged
PHC-T06 Identity ambiguity R01, R09, R15 Same email/display name with different issuer/subject; import competing mappings No automatic merge or ownership transfer; quarantine and authorized mapping evidence
PHC-T07 Credential separation R09–R10 Present source token, ID token, wrong audience/issuer and another client's credential Protected operation denied; no credential echo or token forwarding
PHC-T08 Recipient, expiry and replay R02, R14–R16 Wrong recipient key/binding, expired bundle and repeated accepted bundle No duplicate activation; wrong/expired admission rejected; cryptographic and semantic outcomes recorded separately
PHC-T09 Persona laundering R06–R07 Associate employer record with Personal; copy/remove original persona Employer/export restrictions persist and forbidden transfer denied
PHC-T10 Confirmation is not sharing R04, R11 Confirm an inferred proposal inside a topic already selected by a client Inference/provenance retained; no new client read without reviewed applicable authority
PHC-T11 Independent operations R01, R10–R11 Reader proposes; contributor reads; external client confirms or exports Each missing authority denied by service; allowed control operations still work
PHC-T12 Contribution replay and races R11–R12 Duplicate idempotency key, changed payload, stale proposal version and competing correction One proposal on exact retry; changed/stale requests conflict; atomic canonical/outbox evidence
PHC-T13 Prompt/source attack R03, R09, R11 Proposal contains commands and an internal-network evidence/key URL Text is data; no tool execution or arbitrary fetch; source stays attributed/unverified
PHC-T14 Graph isolation R05 Authorized edge with hidden endpoint, hidden edge with visible endpoints; request counts/traversal No protected labels, existence, counts or unauthorized traversal in structured/text/error output
PHC-T15 Derivation intersection R05, R07 Build summary from incompatible purpose/route restrictions; omit a dependency version Ineligible derivative; no stripping restrictions or treating unknown lineage as public
PHC-T16 Correction/deletion race R05, R10, R12 Change/delete parent after retrieval starts and before output publishes No newly disclosed stale derivative; expected version and publication-boundary evidence
PHC-T17 Revocation/current-state outage R10 Revoke grant during stream/job; interrupt current-state dependency No publication beyond declared tested bound; expired lease fails closed; measured timestamps
PHC-T18 Quarantine isolation R15 Import confirmed record with unresolved classification/source identity No general search/summary/graph/count exposure; only authorized review preview; no inherited grant
PHC-T19 Credential/grant export R02, R14–R15 Seed secrets in internal credential stores and old grants in local authority state Allowlisted export contains neither; deliberately prohibited structured import rejected; limits of prose-secret detection reported
PHC-T20 Partial import closure R08, R15 Unsupported rule on one parent of an otherwise supported summary Default atomic rejection; any claimed partial mode rejects the dependent component and reports omissions
PHC-T21 Lifecycle rollback R12–R13 Apply older snapshot, missing safety interval, mismatched checkpoint namespace No resurrection; affected state closed; scoped sequence and gap evidence
PHC-T22 Notices R13, R18 Duplicate/forged/wrong-recipient deletion notice; delivery acknowledgment only Correct deduplication and denial; delivery never displayed as verified deletion completion
PHC-T23 Crypto vectors R16, R19 Cross-language canonicalization/sign/encrypt plus tamper, wrong key, algorithm confusion and critical-parameter failures Exact accepted bytes/algorithms and expected failures; no unsafe fallback; vetted library versions recorded
PHC-T24 Transport parity R10, R17–R18 Same permitted/forbidden request via each claimed MCP era and HTTPS; stale continuation Equivalent policy decisions; fallback text leaks nothing; continuation bound to original authority
PHC-T25 Qualification changes R20 Valid qualification without grant; changed release/model/method; stale/revoked issuer Denial where any required condition fails; self-declared digest cannot replace required runtime proof
PHC-T26 Custody claim R16 Inspect searchable vectors, runtime plaintext/key paths and inference egress Claim matches actual trust boundary; managed search cannot pass provider-blind profile
PHC-T27 Recovery partition R13 Lose primary connectivity with uncertain fencing and unacknowledged safety events Recovery serves no affected context; promotion only after proven barriers; old-generation credentials rejected
PHC-T28 Metadata and receipts R08, R18 Unauthenticated discovery and cross-client receipt lookup Only nonpersonal capabilities public; no hidden object existence or unrelated client activity
PHC-T29 Legacy compatibility R19 Exercise an existing format parser with its original fixtures and new PHC-only objects Original outcomes preserved; incompatible PHC objects rejected; loss map explicit
PHC-T30 Human understanding R04, R06, R13 Observe synthetic review/share/expiry/persona tasks in web and later native UI Record comprehension errors and task outcomes; no claim of accessibility or production service enforcement from this study

4. Acceptance rules

Every required deterministic case must pass for the exact claimed profile. A protected canary disclosure, wrong-subject operation, silent confirmation/sharing, unauthorized fallback or resurrection of revoked/deleted state blocks qualification. A missing test harness is not_run; unavailable mandatory capability is blocked; an executed mismatch is failed. None is counted as passed or removed from the denominator.

Generative extraction and usefulness studies require separately stated prompts, models, repetitions, samples, scoring criteria and denominators. They do not replace deterministic access tests. A successful result for one API route or model does not establish support in its consumer application. Report synthetic lab, live-provider synthetic, native/accessibility and production assurance separately.

At least two endpoints with genuinely independent implementation of import/export semantics must exercise the interchange profile. Independence and any shared libraries must be disclosed. An exporter and importer using the same serializer, or two adapters over one service, can supply useful development evidence but do not satisfy the independent interoperability gate. Independent technical/security review is a separate gate from implementer self-review.

5. First executable slice

After semantic/version review, implement schemas and fixtures for PHC-T01–T06, T08, T18–T20 and T29; use deterministic synthetic identity/policy fixtures and make their limits explicit. Then connect real governed service boundaries for authorization/lifecycle tests, followed by crypto and exact transport qualification. Recovery, stronger custody and DCER profiles follow their own prerequisites. All service integrations must preserve the same authority and confidentiality requirements.