diff --git a/LICENSE.md b/LICENSE.md index a5509c1..0292f53 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -5,13 +5,16 @@ Copyright (c) 2026 Joe Feser. The HACP draft text in this repository is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0). -Machine-readable artefacts, examples, and validation fixtures in this -repository are licensed under the Apache License, Version 2.0. +Machine-readable artefacts, schemas, examples, validation fixtures, executable +source code, and validation or generation scripts in this repository are +licensed under the Apache License, Version 2.0. This split is intended to make the prose specification easy to review and cite -while allowing schemas, examples, and fixtures to be copied into implementation -test suites. If a file contains a different SPDX identifier or license notice, -that file's notice controls. +while allowing schemas, examples, fixtures, and their supporting code to be +copied into implementation test suites. Markdown and other narrative protocol +documents are prose unless explicitly identified as machine-readable data or +code. If a file contains a different SPDX identifier or license notice, that +file's notice controls. License references: diff --git a/PUBLICATION-CHECKLIST.md b/PUBLICATION-CHECKLIST.md index 14abf60..0061d2e 100644 --- a/PUBLICATION-CHECKLIST.md +++ b/PUBLICATION-CHECKLIST.md @@ -8,16 +8,23 @@ Use this before making the repository public. - [ ] Confirm README links resolve from the repository root. - [ ] Confirm RFC drafts still say HACP is a working draft, not a standard. - [ ] Confirm schemas and examples validate against the current draft intent. -- [ ] For HACP v0.3 candidate material, confirm owner-accepted external proof +- [x] For HACP v0.3 candidate material, confirm owner-accepted external proof exists for single-consumer admission, restart readback, claim-before-start failure (reject successor start without durable readback of its accepted claim), ambiguous execution reporting, and expiry/revocation ordering before merging the consumption-contract draft. -- [ ] Before publishing the executable v0.3 candidate conformance package, + Joe accepted the pinned who-decides 44-case proof on 2026-09-07 with its + closed-world, local, synthetic, and no-external-effect limitations. +- [x] Before publishing the executable v0.3 candidate conformance package, record Joe's approval of every exact digest-domain string and the - second-implementation qualification rule. -- [ ] Require two independent reviews against the same pinned v0.3 candidate - package before treating its contracts as publication-ready. + second-implementation qualification rule. The exact `io.hacp.*` domains + and issue #47 Option 1 rule are recorded in the v3 manifest. +- [x] Require two independent reviews against the same pinned v0.3 candidate + package before treating its contracts as publication-ready. Two reviewers + independently reviewed exact package pin + `a865b36b371f8f49033fb3b05ebbb1f28fabbaa0`; their synthesis and the bounded + documentation corrections are recorded in + [the publication-readiness record](docs/v0.3-candidate-publication-readiness.md). - [ ] Confirm issue templates or discussion settings are ready for public review. - [ ] Decide whether to publish as a personal repo first or move under an diff --git a/README.md b/README.md index c89bf50..bf97c88 100644 --- a/README.md +++ b/README.md @@ -179,10 +179,15 @@ and matrix drift. ## Status -HACP is not a standard yet. It is a working draft based on practical experience -building and dogfooding one implementation. Vendor-neutrality is a design goal; -achieving it requires independent implementations and feedback from tool owners -who did not inherit the original implementation context. +HACP is not a standard yet. It is a working draft and candidate protocol based +on practical implementation evidence. WITS independently produces the seven +v0.3 candidate record kinds and HACP cross-validates that encoding. The pinned +who-decides 44-case proof supplies separate bounded evidence for the underlying +one-use continuation semantics; it does not produce or validate the v0.3 record +encoding. Together these are useful candidate evidence, not a claim of +distributed execution, external effects, bidirectional production, or standard +maturity. Vendor-neutrality remains a design goal and needs feedback from +implementers who did not inherit the original project context. This repository is intended for public review of the draft contracts. Do not describe an implementation as "HACP compliant" yet; use narrower labels such as @@ -204,7 +209,8 @@ checked. ### Experimental Or Product-Proven But Not Standardized - product-specific UX/readback and governance workflows; -- cross-vendor interoperability claims without independent implementations; +- interoperability claims beyond the two bounded candidate implementations and + their published limitations; - any claim that schema validation alone proves operational safety; - any maturity framing that implies a finalized or ratified standard. @@ -386,8 +392,10 @@ executable candidate package: [schemas/v0.3-candidate/](schemas/v0.3-candidate/). Implementation-specific trial artefacts are not required to review this public -draft. Future releases may add public evidence bundles, conformance test -fixtures, and independent implementation reports. +draft. The v0.3 candidate package includes bounded public evidence, conformance +fixtures, and an independent-implementation report. Future work may add other +implementations, distributed-effect evidence, and the bidirectional evidence +required for full-release consideration. ## Reviewer Packet @@ -482,8 +490,9 @@ and see [CONTRIBUTING.md](CONTRIBUTING.md) for contribution expectations. ## License See [LICENSE.md](LICENSE.md). The draft prose is offered under CC BY 4.0, and -machine-readable artefacts, examples, and validation fixtures are offered under -Apache-2.0 unless a file states otherwise. +machine-readable artefacts, schemas, examples, validation fixtures, executable +source code, and validation or generation scripts are offered under Apache-2.0 +unless a file states otherwise. ## Machine-Readable Draft Artefacts diff --git a/docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md b/docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md index de2f810..b3b7c35 100644 --- a/docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md +++ b/docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md @@ -131,11 +131,12 @@ Digest objects use `sha256` and the [HACP 0.2 canonicalization rules](../../hacp omit a record's own top-level `digest` when hashing its JCS representation; retain embedded reference digests, which bind their referenced records in their own domains. This applies also to the separately referenced start-evidence -record, not to its display copy inside a report. The proposed -`org.hacp.*.v0.3-candidate` domains remain REVIEW-REQUIRED: consumers must -reject them unless an approved profile declares their coverage and -interpretation. The executable package supplies reproducible computed -candidate values without finalizing those domain strings as a standard. +record, not to its display copy inside a report. This source packet originally +proposed `org.hacp.*.v0.3-candidate` domains. That proposal is superseded by +Joe Feser's 2026-09-07 approval of the exact `io.hacp.*.v0.3-candidate` set +recorded in the executable package's v3 manifest. The approved strings remain +candidate-scoped and do not become standard or full-release domains merely +because they are reproducible. Accepting a consumption claim proves only that one successor invocation was admitted under the profile's concurrency rule. It does not prove provider @@ -382,8 +383,10 @@ record is still required before marking work complete. ## Candidate Conformance Fixtures The executable candidate package promotes the seven example shapes into -closed schemas and computed vectors. Its exact digest-domain identifiers -remain an explicit owner review gate. Issue +closed schemas and computed vectors. Joe approved its exact eight +`io.hacp.*.v0.3-candidate` digest-domain identifiers on 2026-09-07 for this +candidate package only; a changed identifier or full-release namespace remains +a separate owner review gate. Issue [#47](https://github.com/joefeser/hacp/issues/47) records independent production plus cross-validation as the second-implementation criterion for candidate promotion; bidirectional production and consumption remains a diff --git a/docs/source-packets/wits-v0/examples/agent-report.candidate.json b/docs/source-packets/wits-v0/examples/agent-report.candidate.json index 9ef0fef..2125a2e 100644 --- a/docs/source-packets/wits-v0/examples/agent-report.candidate.json +++ b/docs/source-packets/wits-v0/examples/agent-report.candidate.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "8883d823cdb11f94ab09163922cdf5d1a02b8f7a5f685491250a33ef1ee58840" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "11485a2f6ae984c39774a8552ddd54a67cf9fbce7488ef1fd7dbdef49f666e0d" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json b/docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json index 31e03ce..fafc7a8 100644 --- a/docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json +++ b/docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/docs/source-packets/wits-v0/examples/continuation-context.candidate.json b/docs/source-packets/wits-v0/examples/continuation-context.candidate.json index 71fb39a..f8c7813 100644 --- a/docs/source-packets/wits-v0/examples/continuation-context.candidate.json +++ b/docs/source-packets/wits-v0/examples/continuation-context.candidate.json @@ -12,8 +12,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "consumptionReceipt": { @@ -21,16 +21,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" } }, "successorInvocationId": "invoke_example_docs_worker_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" }, "boundaryStatement": "Illustrative required input, not active authority. The consumer must authenticate the context integrity through its independently trusted human-approved profile; a self-supplied digest is insufficient. Revocation/current-status policy and external proof remain unresolved." } diff --git a/docs/source-packets/wits-v0/examples/human-decision.candidate.json b/docs/source-packets/wits-v0/examples/human-decision.candidate.json index 95cc5de..a83fcf0 100644 --- a/docs/source-packets/wits-v0/examples/human-decision.candidate.json +++ b/docs/source-packets/wits-v0/examples/human-decision.candidate.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "actor": { @@ -50,8 +50,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "boundaryStatement": "This decision is immutable source evidence. Consumption is recorded in a separate receipt." } diff --git a/docs/source-packets/wits-v0/examples/review-finding.candidate.json b/docs/source-packets/wits-v0/examples/review-finding.candidate.json index 1e78f1d..8e572b9 100644 --- a/docs/source-packets/wits-v0/examples/review-finding.candidate.json +++ b/docs/source-packets/wits-v0/examples/review-finding.candidate.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "severity": "medium", "summary": "Returned evidence is actionable, but continuation would consume a human decision and start a successor invocation.", @@ -23,7 +23,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } } diff --git a/docs/source-packets/wits-v0/examples/stop-response.candidate.json b/docs/source-packets/wits-v0/examples/stop-response.candidate.json index e7cb828..35eecc4 100644 --- a/docs/source-packets/wits-v0/examples/stop-response.candidate.json +++ b/docs/source-packets/wits-v0/examples/stop-response.candidate.json @@ -17,7 +17,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", - "value": "0233f83463eea76bce60acd0de145c232e70e0524df3e02fa3aee546b4913868" + "digestDomain": "io.hacp.stop-response.v0.3-candidate", + "value": "64a590fc29e8e0969771dbfeab58d3b59bf9bcfdab8a338cccd10ea826a8745e" } } diff --git a/docs/source-packets/wits-v0/examples/task-packet.candidate.json b/docs/source-packets/wits-v0/examples/task-packet.candidate.json index a06f600..7f068b1 100644 --- a/docs/source-packets/wits-v0/examples/task-packet.candidate.json +++ b/docs/source-packets/wits-v0/examples/task-packet.candidate.json @@ -5,8 +5,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "sourceContext": { "humanRequest": "Review the returned finding and continue only if the owner approves the bounded follow-up.", diff --git a/docs/source-packets/wits-v0/qualification-decision-packet.md b/docs/source-packets/wits-v0/qualification-decision-packet.md index 04719b8..bfbb5f9 100644 --- a/docs/source-packets/wits-v0/qualification-decision-packet.md +++ b/docs/source-packets/wits-v0/qualification-decision-packet.md @@ -1,29 +1,38 @@ # WITS v0.3 candidate qualification decision packet -Status: Joe accepted the pinned WITS proof as Option 1 evidence on 2026-09-07. -Domain approval, publication, and WITS Task 1.3f remain open. +Status: Joe accepted the pinned WITS proof as Option 1 evidence and approved +the exact candidate digest domains and bounded candidate publication work on +2026-09-07. WITS Task 1.3f remains open. ## Pinned evidence | Evidence | Exact ref | | --- | --- | -| WITS implementation, PR #1367 | `9fa658f7faf2522de6ea12408c784bb987223f00` | -| WITS handoff record, PR #1368 | `5402baf4ba851bf989d7253574af6695e05d02f0` | -| HACP published external validator, PR #55 | `b6c6bf35640515045252803cfe49d75e223a12d9` | -| HACP merged WITS fixtures, PR #56 | `5f65c7e439b9b636e1ac7fd6c2d2500762518380` | +| Historical WITS implementation, PR #1367 | `9fa658f7faf2522de6ea12408c784bb987223f00` | +| Historical WITS handoff record, PR #1368 | `5402baf4ba851bf989d7253574af6695e05d02f0` | +| Historical HACP external validator, PR #55 | `b6c6bf35640515045252803cfe49d75e223a12d9` | +| Historical HACP WITS-fixture merge, PR #56 | `5f65c7e439b9b636e1ac7fd6c2d2500762518380` | +| Regenerated HACP candidate package | `6393cd893296c7566059ca95347d82b9454fc2a7` | +| Regenerated WITS producer, PR #1369 | `48bac116b1077a81dc7adf8e34c78cc3da17c7b2` | PRs [#56](https://github.com/joefeser/hacp/pull/56) and -[WITS #1368](https://github.com/joefeser/what-is-the-spec/pull/1368) are merged. -The producer commit remains the implementation merge; the later documentation -merge does not change the source of the fixture records. - -From HACP's fixture merge, the published external validator accepts all three -WITS bundles and compares the 22 canonical negative diagnostic sets exactly. -The candidate test suite passes 43/43, including the committed WITS fixture -check. The [receipt](supplementary-validation-receipt.json) and -[reproduction note](supplementary-fixtures.md) preserve the original generation -and HACP-side validation. A fresh validation of the merged fixtures reproduced -the receipt's validation result exactly. +[WITS #1368](https://github.com/joefeser/what-is-the-spec/pull/1368) preserve +the historical proof and approval context. The corrected domains required a +new HACP package and a new WITS producer commit; those regenerated refs are the +current candidate-publication evidence and do not retroactively change the +refs Joe reviewed for the earlier Option 1 decision. + +The regenerated HACP validator accepts all three regenerated WITS bundles and +compares the 22 canonical negative diagnostic sets exactly. The candidate test +suite passes 43/43, including the committed WITS fixture check. HACP PR #68 is +the publication vehicle for those corrected fixtures. WITS PR #1369 preserves +the independently generated source and repin evidence, but its merge is not a +prerequisite for validating the public fixture bytes committed in HACP. The +[receipt](supplementary-validation-receipt.json) and +[reproduction note](supplementary-fixtures.md) identify the regenerated WITS +producer and corrected HACP validator explicitly. Fresh validation reproduced +that corrected receipt exactly; the earlier fixture history remains available +in the merged commits above. ## Decision 1: qualification evidence under #47 @@ -56,28 +65,28 @@ Joe replied: > yes i approve -This return applies to Decision 1 and the exact evidence refs above. It does +This return applies to Decision 1 and the four historical evidence refs above. It does not approve Decision 2, publication, closure of Task 1.3f, or merge of PR #57. ## Decision 2: exact candidate digest domains -Owner status: **pending; normative approval not established by this packet**. +Owner status: **approved by Joe Feser on 2026-09-07**. The published [candidate README](../../../schemas/v0.3-candidate/README.md) requires Joe's approval of the exact set before candidate publication: -1. `org.hacp.task-packet.v0.3-candidate` -2. `org.hacp.human-decision.v0.3-candidate` -3. `org.hacp.consumption-receipt.v0.3-candidate` -4. `org.hacp.continuation-context.v0.3-candidate` -5. `org.hacp.agent-report.v0.3-candidate` -6. `org.hacp.review-finding.v0.3-candidate` -7. `org.hacp.stop-response.v0.3-candidate` -8. `org.hacp.successor-start-evidence.v0.3-candidate` (supporting record) +1. `io.hacp.task-packet.v0.3-candidate` +2. `io.hacp.human-decision.v0.3-candidate` +3. `io.hacp.consumption-receipt.v0.3-candidate` +4. `io.hacp.continuation-context.v0.3-candidate` +5. `io.hacp.agent-report.v0.3-candidate` +6. `io.hacp.review-finding.v0.3-candidate` +7. `io.hacp.stop-response.v0.3-candidate` +8. `io.hacp.successor-start-evidence.v0.3-candidate` (supporting record) -Approval must identify this exact set and its candidate scope. A changed string -requires a contract change and regeneration of affected digests; this packet -makes no such change. Qualification acceptance does not imply domain approval. +The canonical package and the WITS producer were regenerated against this +exact set. A future changed string remains a contract change requiring another +versioned regeneration and owner disposition. ## WITS residual requiring separate disposition @@ -88,9 +97,9 @@ from a prior post-lock database observation, then rechecks time and expiry in the final atomic CTE. The prior observation does not satisfy the final expiry predicate. The stronger common-time provenance assertion remains unproven. -An Option 1 decision can record this limitation as part of the conformance -evidence. It cannot silently amend WITS R4B, mark Task 1.3f complete, accept -operational risk on Joe's behalf, or enable a runtime. Closing that task needs +Joe accepts this mismatch only as a disclosed v0.3-candidate limitation. That +acceptance does not amend WITS R4B, mark Task 1.3f complete, authorize runtime +execution, or establish full-release conformance. Closing that task needs an explicit owner disposition and, if requirements or architecture change, Kiro-governed reconciliation with the required independent review. This packet does not propose or implement a replacement architecture. @@ -98,15 +107,13 @@ does not propose or implement a replacement architecture. ## Publication and release gates still separate The [publication checklist](../../../PUBLICATION-CHECKLIST.md) requires two -independent reviews against the same pinned v0.3 candidate package before -publication readiness. This packet does not certify that gate: prior WITS spec -reviews and a merged fixture PR are not evidence of two reviews of this exact -merged package. It does not schedule another WITS spec review round. - -The checklist's owner-accepted external proofs and other publication items also -retain their existing status. A later publication-readiness pass must bind each -claimed gate to its own evidence and owner decisions; two approvals alone do -not complete the checklist. There is no release or publication action here. +independent reviews against the same pinned v0.3 candidate package. That gate +is recorded in the +[publication-readiness synthesis](../../v0.3-candidate-publication-readiness.md). +Joe authorized the bounded HACP and WITS regeneration, repinning, +documentation corrections, validation, and governed PRs needed to publish the +candidate. The authorization does not permit runtime execution or promote the +candidate to a standard or full release. Bidirectional production/consumption is the later full-release criterion under #47. [HACP #52](https://github.com/joefeser/hacp/issues/52), synthetic identity diff --git a/docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md b/docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md index d70664d..76d6438 100644 --- a/docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md +++ b/docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md @@ -267,8 +267,8 @@ The revised package must add committed or test-generated cases that prove: bundle-scoped tests; no helper may reconstruct the retired union implicitly. - The required negative evidence above passes with exact diagnostics. - `npm run hacp:v03-candidate` proves committed vectors are byte-reproducible. -- Candidate status, non-final digest-domain status, split licensing, and the - Option 1 qualification rule remain unchanged. +- Candidate status, candidate-scoped/non-standard digest-domain status, split + licensing, and the Option 1 qualification rule remain unchanged. The package README must also disclose that a stopped `successorInvocationId` is an assertion made by the stop record, not a positive diff --git a/docs/source-packets/wits-v0/supplementary-fixtures.md b/docs/source-packets/wits-v0/supplementary-fixtures.md index 914246c..0bc0fcc 100644 --- a/docs/source-packets/wits-v0/supplementary-fixtures.md +++ b/docs/source-packets/wits-v0/supplementary-fixtures.md @@ -1,7 +1,7 @@ # WITS candidate supplementary fixtures -These eleven records were emitted by the merged WITS implementation at -`9fa658f7faf2522de6ea12408c784bb987223f00` ([WITS #1367](https://github.com/joefeser/what-is-the-spec/pull/1367)). +These eleven records were emitted by the regenerated WITS implementation at +`48bac116b1077a81dc7adf8e34c78cc3da17c7b2` ([WITS #1369](https://github.com/joefeser/what-is-the-spec/pull/1369)). They form three branch bundles: successful continuation (6 records), pre-start stop (4), and stop with a distinct non-authorizing human response (5). The stop branches share their four antecedents. They were generated through WITS's native @@ -11,8 +11,10 @@ without importing who-decides runtime code. The [external manifest](../../../fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json) pins the exact bytes and HACP package. The [validation receipt](supplementary-validation-receipt.json) records the HACP-side result, source pin, manifest digest, and limitations. -HACP's validator at `b6c6bf35640515045252803cfe49d75e223a12d9` accepted all three +HACP's validator at `6393cd893296c7566059ca95347d82b9454fc2a7` accepted all three bundles after comparing the complete 22-case canonical negative corpus exactly. +The WITS repository and PR may require access; the complete public-safe emitted +bytes and their HACP-side validation evidence are retained in this public repo. From the HACP repository root: @@ -30,7 +32,7 @@ implementation remain the published package. The WITS integration suite at the source pin generated these files with `RUN_HACP_V03_CANDIDATE_INTEGRATION=true`, -`HACP_V03_CANDIDATE_SOURCE_COMMIT=9fa658f7faf2522de6ea12408c784bb987223f00`, and +`HACP_V03_CANDIDATE_SOURCE_COMMIT=48bac116b1077a81dc7adf8e34c78cc3da17c7b2`, and `HACP_V03_CANDIDATE_CANARY_OUTPUT` pointing at an empty output directory. Run `npx vitest run -c vitest.integration.config.ts tests/integration/hacp-v03-candidate-interworking.integration.test.ts` with `TEST_DATABASE_URL` set to a disposable local test database: the suite resets @@ -48,7 +50,9 @@ common-mode library risk. WITS Task 1.3f remains open: digest-bearing records us an immediately prior post-lock database time, while the final atomic CTE rechecks time and expiry; single-read timestamp provenance is unproven. -This is evidence for owner reconciliation under [HACP #47](https://github.com/joefeser/hacp/issues/47), -not candidate promotion or full-release qualification. Bidirectional production -and consumption remains a separate future gate. [HACP #52](https://github.com/joefeser/hacp/issues/52) -and non-final digest domains retain their existing status. +Joe accepted the pinned who-decides 44-case proof and this regenerated WITS +production/cross-validation evidence for candidate publication under +[HACP #47](https://github.com/joefeser/hacp/issues/47). This is not full-release +qualification. Bidirectional production and consumption remains a separate +future gate, and [HACP #52](https://github.com/joefeser/hacp/issues/52) retains +its existing status. diff --git a/docs/source-packets/wits-v0/supplementary-validation-receipt.json b/docs/source-packets/wits-v0/supplementary-validation-receipt.json index 129ede8..be55042 100644 --- a/docs/source-packets/wits-v0/supplementary-validation-receipt.json +++ b/docs/source-packets/wits-v0/supplementary-validation-receipt.json @@ -1,15 +1,12 @@ { "schemaId": "hacp.wits_supplementary_cross_validation_receipt.v1", - "recordedAt": "2026-09-07T16:16:32.359569+00:00", - "witsSourceCommit": "9fa658f7faf2522de6ea12408c784bb987223f00", - "witsPullRequest": "https://github.com/joefeser/what-is-the-spec/pull/1367", - "hacpValidatorCommit": "b6c6bf35640515045252803cfe49d75e223a12d9", + "recordedAt": "2026-09-08T03:06:36Z", + "witsSourceCommit": "48bac116b1077a81dc7adf8e34c78cc3da17c7b2", + "witsPullRequest": "https://github.com/joefeser/what-is-the-spec/pull/1369", + "hacpValidatorCommit": "6393cd893296c7566059ca95347d82b9454fc2a7", "bundleRoot": "fixtures/supplementary/v0.3-candidate/wits", - "externalManifestSha256": "44742d3b6a8700534b18884474bef09a2850bd15d837306a309feec077ca00d1", - "witsIntegrationTests": { - "passed": 8, - "failed": 0 - }, + "externalManifestSha256": "1a5f8171e075120341e3f5d39f75ba83e7ecc4ced01e7cef6e5a5db293a53465", + "witsIntegrationTests": { "passed": 8, "failed": 0 }, "validationCommand": "node scripts/validate-external-bundle.mjs --root fixtures/supplementary/v0.3-candidate/wits", "validationResult": { "ok": true, @@ -18,49 +15,38 @@ "producer": { "implementationId": "wits.hacp-v03-candidate-interworking-proof.v0", "sourceRepository": "https://github.com/joefeser/what-is-the-spec", - "sourceCommit": "9fa658f7faf2522de6ea12408c784bb987223f00", - "generatedAt": "2026-09-07T16:15:15.047Z" + "sourceCommit": "48bac116b1077a81dc7adf8e34c78cc3da17c7b2", + "generatedAt": "2026-09-08T03:01:42.030Z" }, "conformancePackage": { - "manifestSha256": "18bdd29c2e5347411a0598964224b8674bd0962628cffbc6bac2f0e107cb1d92", + "manifestSha256": "b794afa184761792d7a5c682ea8eed5a94f49d65289b429d747afc51d595d33c", "recordSchemaSha256": { - "common-defs.schema.json": "be18915465d8db45712a3f08f0cc2eac236565051b639dddaa243c9da36ed759", - "task-packet.schema.json": "9bc15332a03e71b9cb2594066928dd99c4c50477cf8004be301c0bc83c9267a7", - "review-finding.schema.json": "3e6ed24e06995e89cafa65140e80cb13f44c47dcbc80245711135aa1cffcb1ff", - "human-decision.schema.json": "fc5e254e848c2d7c87fb03fa42c45abf4f7b884e4de88c31666b15acf2298675", - "consumption-receipt.schema.json": "54a02f5ef6254a5ad001e0ffd214e1e97f5ec6dec455d497dbaae2bbdf1e7954", - "continuation-context.schema.json": "73b006a3edef340ffd61d08e3cbc59ac12eb29d8ad1c3e87965cb8dbadc41b29", - "agent-report.schema.json": "39344a10f31d5f9d200debe524277e2dcca59fc3cfcc2385913b54532a13f2db", - "stop-response.schema.json": "e820499cdd1d1658024d584e6b6178866ef2af7754b41f4cd385447661d33aaa" + "common-defs.schema.json": "702ce603cf2a3f5bde62296fde230f3a80545a8bcbb61acde853dff784804621", + "task-packet.schema.json": "9b7447bac08afcdb88ca5c275d1f897d6aff8a83f41e068bb79480f185da3dea", + "review-finding.schema.json": "d125d9278f752e8da50ec466cf0d8c8cea4600a84b304640307a236c9ff71918", + "human-decision.schema.json": "ff7dd8031589a91857a10b6b84d82ca6091b9040c17aab52c4002ebe103b5af0", + "consumption-receipt.schema.json": "f03c6a4169146def1e0194bb657f8c59bcd9659e1d8a2eb807399d982bc4c226", + "continuation-context.schema.json": "0a950f2c212f0c0b3340cb83e250f24d9dde8893f6aa2e8895d9712739a5c83a", + "agent-report.schema.json": "7a901c27e18e9992a4a69b0b1a4e9a73d20b6de4bd050ab9c43b176d32bd5599", + "stop-response.schema.json": "99dabeac273a0be54a8dbb5ffdb764d156d1af4622f0dd9402feaa81bfc4f972" }, - "semanticValidatorSha256": "b6fccb52ea78af9b335c3702110a6c630f84d0a93f00548c1a0f30e4e7cf3b89", + "semanticValidatorSha256": "c858af0bdc6c017cbf3dcbccc1e32567b8500985c38aff27606d04d28a08c598", "canonicalNegativeCases": 22, "diagnosticSetsComparedExactly": true }, "bundles": [ - { - "id": "successful_continuation", - "kind": "successful_continuation", - "records": 6 - }, - { - "id": "pre_start_stop", - "kind": "pre_start_stop", - "records": 4 - }, - { - "id": "stop_decision_response", - "kind": "stop_decision_response", - "records": 5 - } + { "id": "successful_continuation", "kind": "successful_continuation", "records": 6 }, + { "id": "pre_start_stop", "kind": "pre_start_stop", "records": 4 }, + { "id": "stop_decision_response", "kind": "stop_decision_response", "records": 5 } ] }, "limitations": [ "Synthetic local PostgreSQL proof; authentication references describe seeded test identities, not live external identity verification.", - "Candidate-only evidence; owner reconciliation under HACP #47 remains separate from conformance validation.", + "Candidate-only evidence; full-release qualification remains separate from conformance validation.", "No provider/model invocation, dispatch, deployment, or external-effect proof.", "WITS and HACP share canonicalize, so agreement retains common-mode JCS library risk.", - "Digest-bearing timestamps use the prior post-lock database observation; the final atomic CTE rechecks time and expiry. The stronger single-read provenance assertion remains unproven.", - "Fixture timestamps and UUIDs vary on fresh database generation; the committed manifest pins this run byte-for-byte." + "Digest-bearing timestamps use the prior post-lock database observation; the final atomic CTE rechecks time and expiry. WITS Task 1.3f and the stronger single-read provenance assertion remain open.", + "Fixture timestamps and UUIDs vary on fresh database generation; the committed manifest pins this run byte-for-byte.", + "The WITS repository may be private; the complete public-safe fixture bytes and this HACP-side validation receipt are public evidence." ] } diff --git a/docs/v0.3-candidate-publication-readiness.md b/docs/v0.3-candidate-publication-readiness.md new file mode 100644 index 0000000..ea99cfa --- /dev/null +++ b/docs/v0.3-candidate-publication-readiness.md @@ -0,0 +1,103 @@ +# HACP v0.3-candidate publication readiness + +Status: two independent final-package reviews completed; their bounded +documentation findings are corrected. Publication remains governed by PR #68 +and its terminal review state. + +## Preliminary review packet + +Two independent reviewers received the same pre-correction HACP repository pin +`7d896f1d476d6fc9430514a7099e42acec9b7543`, the publication checklist, the +candidate conformance package, the WITS qualification packet, and the exact +owner decisions still required. Reviewer A used `gpt-6-astra` with high +reasoning. Reviewer B used `gpt-5.6-sol` with high reasoning. Neither reviewer +was shown the other's findings before returning its own pass. + +These preliminary reviews concluded that the pinned who-decides 44-case proof satisfies the +candidate publication checklist's external-proof requirement within its stated +local, synthetic, closed-world, and no-external-effect limits. Both also agreed +that WITS Task 1.3f's two-clock timestamp provenance mismatch may be disclosed +as a candidate limitation but may not be marked complete or treated as +full-release conformance. + +They do not satisfy the publication checklist's final-package review gate: the +namespace correction and regenerated fixtures changed the package after those +reviews. + +## Final-package independent reviews + +Two independent reviewers then received the same finalized corrected package +pin `a865b36b371f8f49033fb3b05ebbb1f28fabbaa0`, based on +`7d896f1d476d6fc9430514a7099e42acec9b7543`. Reviewer A ran in the +coordinator-recorded `gpt-6-astra` high-reasoning session. Reviewer B ran in +the separately launched `gpt-5.6-sol` high-reasoning session. Each reviewed +without receiving the other's final-package findings. The reviewer runtimes +identified themselves only as Codex/GPT-5-family and did not expose a more +specific self-attested model slug; the exact session-model names therefore +come from coordinator launch evidence rather than model self-report. + +Both reviewers found no P1 schema, digest, fixture, authority, or maturity +defect. Both independently reran the 43/43 candidate suite and the three-bundle +external WITS validation. Both concluded the package is suitable only for +`v0.3-candidate`, subject to correcting stale documentation. + +They agreed that qualification prose must keep the evidence split explicit: +WITS produces the v0.3 encoding, HACP validates it, and who-decides supplies a +separate owner-accepted 44-case semantic proof. They also agreed that the +qualification packet must distinguish historical pre-regeneration evidence +from the current corrected package and producer. Reviewer B additionally found +one source-packet sentence still described the exact domains as awaiting owner +approval, plus three stale advisory descriptions of the approved start-evidence +domain, future evidence, and license scope. All named documentation findings +were corrected after the reviews without changing schemas, fixture bytes, +digests, the canonical manifest, or executable validation behavior. + +The reviews therefore satisfy the final-package independent-review gate for +the exact package pin above. The later documentation-only commit records their +synthesis and corrections; it does not substitute a new package or extend the +reviewed candidate claims. + +## Preliminary findings and synthesis + +The reviews agreed that publication was blocked until Joe approved the exact +digest domains and expressly accepted the external proof. Joe supplied both +decisions on 2026-09-07. + +Reviewer B additionally found that the prior `org.hacp.*` reverse-DNS strings +did not identify a project-controlled namespace, that public documentation +needed to explain that WITS source links may be private, and that the split +license needed to classify executable scripts and source code explicitly. +Reviewer A did not identify those items as blockers. The synthesis accepts the +more conservative findings: this package uses Joe's exact `io.hacp.*` domains, +the public HACP fixture and receipt are sufficient for review without WITS +repository access, and `LICENSE.md` now expressly covers executable source and +scripts under Apache-2.0. + +## Evidence and limits + +The canonical package was regenerated after the domain correction. WITS then +vendored that exact package, independently produced all three candidate bundle +branches from its native Product Decision services, passed its eight-test +restart/authority/negative integration proof, and emitted a closed external +bundle. HACP accepted all three bundles and compared all 22 canonical negative +diagnostic sets exactly. + +The WITS source repository and its pull-request links may require access. The +complete public-safe emitted bytes live in +`fixtures/supplementary/v0.3-candidate/wits`, and the public reproduction and +validation evidence lives in `docs/source-packets/wits-v0`. Review of the +candidate encoding does not require access to private WITS implementation code. + +Residual risk remains explicit: + +- WITS Task 1.3f is open; two database clock observations do not prove the + stronger single-read timestamp provenance required by R4B. +- who-decides and WITS proofs are synthetic and local. +- HACP and WITS use the same Apache-2.0 canonicalization library, retaining a + common-mode dependency risk. +- no proof claims distributed trust, provider execution, external effects, + settled cost, or exactly-once external effects. +- bidirectional production and consumption remains a future full-release gate. + +These limits are compatible with publication as `v0.3-candidate`. They would +not support describing HACP as a final standard or full release. diff --git a/fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json b/fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json index 7b34a4d..59dac88 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json +++ b/fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json @@ -3,91 +3,91 @@ "candidateStatus": true, "qualificationIntent": "independent_production_plus_cross_validation", "conformancePackage": { - "manifestSha256": "18bdd29c2e5347411a0598964224b8674bd0962628cffbc6bac2f0e107cb1d92", + "manifestSha256": "b794afa184761792d7a5c682ea8eed5a94f49d65289b429d747afc51d595d33c", "schemaBaseUri": "https://hacp.example/schemas/v0.3-candidate/", "recordSchemaSha256": { - "common-defs.schema.json": "be18915465d8db45712a3f08f0cc2eac236565051b639dddaa243c9da36ed759", - "task-packet.schema.json": "9bc15332a03e71b9cb2594066928dd99c4c50477cf8004be301c0bc83c9267a7", - "review-finding.schema.json": "3e6ed24e06995e89cafa65140e80cb13f44c47dcbc80245711135aa1cffcb1ff", - "human-decision.schema.json": "fc5e254e848c2d7c87fb03fa42c45abf4f7b884e4de88c31666b15acf2298675", - "consumption-receipt.schema.json": "54a02f5ef6254a5ad001e0ffd214e1e97f5ec6dec455d497dbaae2bbdf1e7954", - "continuation-context.schema.json": "73b006a3edef340ffd61d08e3cbc59ac12eb29d8ad1c3e87965cb8dbadc41b29", - "agent-report.schema.json": "39344a10f31d5f9d200debe524277e2dcca59fc3cfcc2385913b54532a13f2db", - "stop-response.schema.json": "e820499cdd1d1658024d584e6b6178866ef2af7754b41f4cd385447661d33aaa" + "common-defs.schema.json": "702ce603cf2a3f5bde62296fde230f3a80545a8bcbb61acde853dff784804621", + "task-packet.schema.json": "9b7447bac08afcdb88ca5c275d1f897d6aff8a83f41e068bb79480f185da3dea", + "review-finding.schema.json": "d125d9278f752e8da50ec466cf0d8c8cea4600a84b304640307a236c9ff71918", + "human-decision.schema.json": "ff7dd8031589a91857a10b6b84d82ca6091b9040c17aab52c4002ebe103b5af0", + "consumption-receipt.schema.json": "f03c6a4169146def1e0194bb657f8c59bcd9659e1d8a2eb807399d982bc4c226", + "continuation-context.schema.json": "0a950f2c212f0c0b3340cb83e250f24d9dde8893f6aa2e8895d9712739a5c83a", + "agent-report.schema.json": "7a901c27e18e9992a4a69b0b1a4e9a73d20b6de4bd050ab9c43b176d32bd5599", + "stop-response.schema.json": "99dabeac273a0be54a8dbb5ffdb764d156d1af4622f0dd9402feaa81bfc4f972" }, - "semanticValidatorSha256": "b6fccb52ea78af9b335c3702110a6c630f84d0a93f00548c1a0f30e4e7cf3b89", + "semanticValidatorSha256": "c858af0bdc6c017cbf3dcbccc1e32567b8500985c38aff27606d04d28a08c598", "digestDomains": [ - "org.hacp.task-packet.v0.3-candidate", - "org.hacp.human-decision.v0.3-candidate", - "org.hacp.consumption-receipt.v0.3-candidate", - "org.hacp.continuation-context.v0.3-candidate", - "org.hacp.agent-report.v0.3-candidate", - "org.hacp.review-finding.v0.3-candidate", - "org.hacp.stop-response.v0.3-candidate", - "org.hacp.successor-start-evidence.v0.3-candidate" + "io.hacp.task-packet.v0.3-candidate", + "io.hacp.human-decision.v0.3-candidate", + "io.hacp.consumption-receipt.v0.3-candidate", + "io.hacp.continuation-context.v0.3-candidate", + "io.hacp.agent-report.v0.3-candidate", + "io.hacp.review-finding.v0.3-candidate", + "io.hacp.stop-response.v0.3-candidate", + "io.hacp.successor-start-evidence.v0.3-candidate" ] }, "producer": { "implementationId": "wits.hacp-v03-candidate-interworking-proof.v0", "sourceRepository": "https://github.com/joefeser/what-is-the-spec", - "sourceCommit": "9fa658f7faf2522de6ea12408c784bb987223f00", - "generatedAt": "2026-09-07T16:15:15.047Z" + "sourceCommit": "48bac116b1077a81dc7adf8e34c78cc3da17c7b2", + "generatedAt": "2026-09-08T03:01:42.030Z" }, "fixtureInventory": [ { "path": "records/success/task-packet.json", "schema": "task-packet.schema.json", - "sha256": "c5d820713d2f4e4cd81fce3956e85680def283e4b958718ae916aeb0ac28fe53" + "sha256": "cec64bab912f1881cf2b653843804c3f63ffcc6135217bad4aea0cfa9e2e7098" }, { "path": "records/success/decision-request.json", "schema": "review-finding.schema.json", - "sha256": "9a7063e937552e4695fb7e0fc24b8194cb4857f970318ae20b142c7f73b98ec9" + "sha256": "270f7ac26660c49c247e5d4af2c83e4c70ea3ae63816f9c75f43c605b1864b8e" }, { "path": "records/success/authority-basis-decision.json", "schema": "human-decision.schema.json", - "sha256": "7ca5a11d5cc4623ac4d4d9f7319a2f73de0b50564b7f801988e9fc6c512cd55f" + "sha256": "d7237564d16245048287517673e87c929a88ddfcf56b2e3ce1831dd06fe5252d" }, { "path": "records/success/consumption-receipt.json", "schema": "consumption-receipt.schema.json", - "sha256": "c45b5b633bbdb8ba07b23b000baaeb5a77856921c28bd5d5378a65cb33d6e49c" + "sha256": "f84749ac953164b5335add6add06211fc5613ac2355ba5acbb0393ba688fd10f" }, { "path": "records/success/continuation-context.json", "schema": "continuation-context.schema.json", - "sha256": "171199ceb043802233284da7d19e94717c9820ebcc5ef7e85fc46e058b2199f9" + "sha256": "4380cff013702870c412df0e4184d025a3780541a3bd1715c814ed8b9ce7ffcf" }, { "path": "records/success/agent-report.json", "schema": "agent-report.schema.json", - "sha256": "564fc5e66e0850c6eca259034eab3800f23b1a4a0d41ba9d3c1bdec16313a7a7" + "sha256": "b08c3377ddfbf4c2806ece51178b125b638c196e231940a9ec96f6bf5a123e31" }, { "path": "records/stop/task-packet.json", "schema": "task-packet.schema.json", - "sha256": "7e86f3fd5b374abb62b2b24e50f22036bd3c554f3cc4fd712e1fb06baf052c3a" + "sha256": "3dd8e92131daac2d043faf38881526ebf6c6d451b9a5ceaf23ceb0c2d849c874" }, { "path": "records/stop/decision-request.json", "schema": "review-finding.schema.json", - "sha256": "396c85250f8d789391ef22fe660565dbc9dadd237eba34e46c1cbd6c4710aa9c" + "sha256": "06836a60619cc9342208a87c6bb276e86f143f7ccd38b25f5261864be5865ebe" }, { "path": "records/stop/authority-basis-decision.json", "schema": "human-decision.schema.json", - "sha256": "a278bd06371904e296a998628ba0fa45e9b38e0bef5872eecb9a30ccfeb242b2" + "sha256": "b0b8b5bafb3119fd75d3fec978d2adf1ddb42008febd103e766c4c6620c5fa92" }, { "path": "records/stop/stop-response.json", "schema": "stop-response.schema.json", - "sha256": "2c924128c6f2b388e42d5fb8e53e539762462f409cb5a90cbadb7e7174bf29fe" + "sha256": "ea4bbb58a989017d0d5a23a40ae35d25f3780c0b39c24f86cace6188b3949e7d" }, { "path": "records/stop/response-decision.json", "schema": "human-decision.schema.json", - "sha256": "4501c44ce20d401bf57ffe5917d55e1c2040391402e08090e3e2c08f92a48622" + "sha256": "2493bf81d9166e931e5849726e4514c1307c638c73a7e54eebc773dc75e5571e" } ], "bundles": [ diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/stop/authority-basis-decision.json b/fixtures/supplementary/v0.3-candidate/wits/records/stop/authority-basis-decision.json index 51d2800..2d4f043 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/stop/authority-basis-decision.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/stop/authority-basis-decision.json @@ -5,34 +5,34 @@ "verificationSource": "authenticated_wits_case_principal" }, "digest": { - "value": "76e453b297c9bb5036e17bf7ff9cec92e63f1568ece78069ee1af065f56e17ce", + "value": "76629d936e22b5504f8101cb9c8157c509ecd22fe022a878bcd5691e03132c36", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "decision": "approve_bounded_successor", - "packetId": "taskpkt_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", - "createdAt": "2026-09-07T16:15:10.825Z", - "decisionId": "decision_wits_01a07ca6_f1e9_7c52_a75c_c3f4f2ad696c", + "packetId": "taskpkt_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", + "createdAt": "2026-09-08T03:01:38.074Z", + "decisionId": "decision_wits_01a07ef6_ca9a_70c2_98df_a396cab43c51", "recordKind": "hacp.v0_3_candidate.human_decision", "evidenceRefs": [ - "wits://product-decision-action/01a07ca6-f17e-7915-8171-5e6c2c74a460" + "wits://product-decision-action/01a07ef6-ca37-71eb-baef-9a23af371b20" ], "packetDigest": { - "value": "f7bbef605580b9e9bbc16eac5079b4001be9227d28ff7cca396c9d0dad28b8a2", + "value": "29e597dd82fb7a3316ce99ccc61596abfeae6b4bec959034b21a6e3aa9706794", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "schemaVersion": "hacp-0.3-candidate", "decisionReason": "The owner approved this exact bounded one-use successor scope.", "decisionRequest": { - "id": "finding_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", + "id": "finding_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", "kind": "review_finding", "digest": { - "value": "ef00b748a395e9f55c950c0e0ce415eb044183767ea3207cd4186d58e17523f0", + "value": "971d2b834d788d6baa0d9f432d3c38630db3d97802bb229450729734238f7226", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/stop/decision-request.json b/fixtures/supplementary/v0.3-candidate/wits/records/stop/decision-request.json index 4c479ce..65bbadb 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/stop/decision-request.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/stop/decision-request.json @@ -1,28 +1,28 @@ { "digest": { - "value": "ef00b748a395e9f55c950c0e0ce415eb044183767ea3207cd4186d58e17523f0", + "value": "971d2b834d788d6baa0d9f432d3c38630db3d97802bb229450729734238f7226", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "summary": "A successor may continue only after a separate bounded human authority action is admitted.", - "packetId": "taskpkt_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", + "packetId": "taskpkt_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", "severity": "medium", - "findingId": "finding_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", + "findingId": "finding_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", "recordKind": "hacp.v0_3_candidate.review_finding", "evidenceRefs": [ - "wits://product-decision-action/01a07ca6-f17e-7915-8171-5e6c2c74a460" + "wits://product-decision-action/01a07ef6-ca37-71eb-baef-9a23af371b20" ], "packetDigest": { - "value": "f7bbef605580b9e9bbc16eac5079b4001be9227d28ff7cca396c9d0dad28b8a2", + "value": "29e597dd82fb7a3316ce99ccc61596abfeae6b4bec959034b21a6e3aa9706794", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "residualRisk": "This candidate proof establishes local one-use continuation only; it does not prove external effects or standard maturity.", "schemaVersion": "hacp-0.3-candidate", "affectedSurfaces": [ - "wits://case/b6f39923-586d-4885-8992-3ec58bcfb2af" + "wits://case/d953db75-f022-447a-9c28-a2022daada34" ], "humanDecisionRequired": true, "recommendedDisposition": "request_human_decision" diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/stop/response-decision.json b/fixtures/supplementary/v0.3-candidate/wits/records/stop/response-decision.json index 783588b..5d8db21 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/stop/response-decision.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/stop/response-decision.json @@ -5,34 +5,34 @@ "verificationSource": "authenticated_wits_case_principal" }, "digest": { - "value": "06689b1364bbdcce2c712d4440428d24ffafc4a841e24bbf7630bd6d1824af08", + "value": "ddff864d858330ee74879e168f1c5d521cbf3cc4cdc11893dc23928ed9438a95", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "decision": "defer", - "packetId": "taskpkt_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", - "createdAt": "2026-09-07T16:15:10.899Z", - "decisionId": "decision_wits_stop_response_01a07ca6_f233_7843_9d05_94747859461f", + "packetId": "taskpkt_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", + "createdAt": "2026-09-08T03:01:38.141Z", + "decisionId": "decision_wits_stop_response_01a07ef6_cadd_7645_bba4_f59b2a3817be", "recordKind": "hacp.v0_3_candidate.human_decision", "evidenceRefs": [ - "wits://candidate-stop/01a07ca6-f1fa-73ed-907d-6fdb5d95a921" + "wits://candidate-stop/01a07ef6-caa9-774f-a850-6cfbf2232ad3" ], "packetDigest": { - "value": "f7bbef605580b9e9bbc16eac5079b4001be9227d28ff7cca396c9d0dad28b8a2", + "value": "29e597dd82fb7a3316ce99ccc61596abfeae6b4bec959034b21a6e3aa9706794", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "schemaVersion": "hacp-0.3-candidate", "decisionReason": "Wait for a fresh authority action.", "decisionRequest": { - "id": "stop_wits_01a07ca6_f1fa_74d5_bf3c_279d125a04fa", + "id": "stop_wits_01a07ef6_caa9_7c00_915a_8680dbf683a2", "kind": "stop_response", "digest": { - "value": "749d402f6ed6cb02e2913f51c1a8e68b444f636c8d4e8d9aeafd666c733a3c9c", + "value": "2644163b5a576bd67c5861f42a2f58c601d94d374f84eef831bd6546b75852dd", "algorithm": "sha256", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", + "digestDomain": "io.hacp.stop-response.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/stop/stop-response.json b/fixtures/supplementary/v0.3-candidate/wits/records/stop/stop-response.json index 4580991..02829ef 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/stop/stop-response.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/stop/stop-response.json @@ -1,14 +1,14 @@ { "digest": { - "value": "749d402f6ed6cb02e2913f51c1a8e68b444f636c8d4e8d9aeafd666c733a3c9c", + "value": "2644163b5a576bd67c5861f42a2f58c601d94d374f84eef831bd6546b75852dd", "algorithm": "sha256", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", + "digestDomain": "io.hacp.stop-response.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, - "stopId": "stop_wits_01a07ca6_f1fa_74d5_bf3c_279d125a04fa", - "packetId": "taskpkt_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", + "stopId": "stop_wits_01a07ef6_caa9_7c00_915a_8680dbf683a2", + "packetId": "taskpkt_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", "profileId": "hacp-accountable-continuation-v0.3-candidate", - "decisionId": "decision_wits_01a07ca6_f1e9_7c52_a75c_c3f4f2ad696c", + "decisionId": "decision_wits_01a07ef6_ca9a_70c2_98df_a396cab43c51", "recordKind": "hacp.v0_3_candidate.stop_response", "stopReason": "STALE_PACKET", "evidenceRefs": [ diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/stop/task-packet.json b/fixtures/supplementary/v0.3-candidate/wits/records/stop/task-packet.json index 4ae0311..71f614c 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/stop/task-packet.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/stop/task-packet.json @@ -1,11 +1,11 @@ { "digest": { - "value": "f7bbef605580b9e9bbc16eac5079b4001be9227d28ff7cca396c9d0dad28b8a2", + "value": "29e597dd82fb7a3316ce99ccc61596abfeae6b4bec959034b21a6e3aa9706794", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, - "packetId": "taskpkt_wits_01a07ca6_f17e_7915_8171_5e6c2c74a460", + "packetId": "taskpkt_wits_01a07ef6_ca37_71eb_baef_9a23af371b20", "loopPolicy": { "mode": "single_pass", "ceiling": 0, @@ -22,8 +22,8 @@ "schemaVersion": "hacp-0.3-candidate", "sourceContext": { "sourceRefs": [ - "wits://case/b6f39923-586d-4885-8992-3ec58bcfb2af/product-decisions/01a07ca6-f170-75f3-bbc7-c316775e69ac", - "wits://product-decision-action/01a07ca6-f17e-7915-8171-5e6c2c74a460" + "wits://case/d953db75-f022-447a-9c28-a2022daada34/product-decisions/01a07ef6-ca2b-7b6b-9e95-a07c4ffd3834", + "wits://product-decision-action/01a07ef6-ca37-71eb-baef-9a23af371b20" ], "humanRequest": "May one public-safe conformance successor begin?" }, diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/agent-report.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/agent-report.json index 0f99a1f..d99c901 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/agent-report.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/agent-report.json @@ -2,63 +2,63 @@ "recordKind": "hacp.v0_3_candidate.agent_report", "schemaVersion": "hacp-0.3-candidate", "reportId": "report_wits_hacp_v03_success", - "returnedAt": "2026-09-07T16:15:10.088Z", + "returnedAt": "2026-09-08T03:01:37.401Z", "continuationContext": { - "id": "context_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "id": "context_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "digest": { - "value": "5108f76e74fa6e9f1b929088f0daebfe9c1a48cadc6f92cba38545922b946f1b", + "value": "1ba9c337c060cfc41779200f613f7640b7cffa22d52eda98a0594fc596ad0b39", "algorithm": "sha256", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, - "packetId": "taskpkt_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "packetId": "taskpkt_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "decision": { - "id": "decision_wits_01a07ca6_ee6a_73a6_aa44_41f2e4298d05", + "id": "decision_wits_01a07ef6_c769_77ed_8e3e_ee694f1a8054", "digest": { - "value": "b7261e0f87fb97852bb5e1d4f8d9c6d89eaa049164626b79b00a3bed915325e9", + "value": "c98d362964b87981a1e1e5a035f7484dc8d97d17472f89b1561af45bd2d3f879", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, "decisionRequest": { "kind": "review_finding", - "id": "finding_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "id": "finding_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "digest": { - "value": "9952f87b684f3e9c9a56e223c29a254cbd7f44185d2584c98b575d1c044096fa", + "value": "da8ee20af9c6c63c2a266ceef6ece477ea819572dca7e6bea0aa32e633550059", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, - "consumptionReceiptId": "receipt_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "consumptionReceiptId": "receipt_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "consumptionReceiptDigest": { - "value": "e7dfce443ebbc087b8d246bc2077b54ccee74fd39acc45d3fbc19020b830042f", + "value": "7ff4055a74cf3905acadddbeb46efd94ef259014da83ae791bf22968a94e122d", "algorithm": "sha256", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "successorInvocationId": "invoke_wits_hacp_v03_success_001", "startEvidence": { "digest": { - "value": "e15b49b34e92e28081a54ec6ef73d6b0d327324bd624494affb4b584d3300279", + "value": "0d7dc6dd164d81f438120d26da95ab018043718d46320a16bf840b854eb072cd", "algorithm": "sha256", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, - "recordId": "start_evidence_wits_01a07ca6_ee9f_7b0a_a066_4e280d96f64c", + "recordId": "start_evidence_wits_01a07ef6_c79c_7df8_869a_e7b6f9542c36", "timeSource": "wits-postgresql-clock-timestamp", - "evidenceRef": "wits://candidate-start/01a07ca6-ee9f-7b0a-a066-4e280d96f64c", - "workStartedAt": "2026-09-07T16:15:09.983Z", - "validityReadbackRef": "wits://candidate-admission/01a07ca6-ee9f-73d6-be33-eb8a3aa2e07a", - "consumptionReceiptId": "receipt_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "evidenceRef": "wits://candidate-start/01a07ef6-c79c-7df8-869a-e7b6f9542c36", + "workStartedAt": "2026-09-08T03:01:37.308Z", + "validityReadbackRef": "wits://candidate-admission/01a07ef6-c79c-7e65-9180-409d631fb27d", + "consumptionReceiptId": "receipt_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "successorInvocationId": "invoke_wits_hacp_v03_success_001", - "acceptedClaimReadBackAt": "2026-09-07T16:15:09.983Z", + "acceptedClaimReadBackAt": "2026-09-08T03:01:37.308Z", "consumptionReceiptDigest": { - "value": "e7dfce443ebbc087b8d246bc2077b54ccee74fd39acc45d3fbc19020b830042f", + "value": "7ff4055a74cf3905acadddbeb46efd94ef259014da83ae791bf22968a94e122d", "algorithm": "sha256", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, @@ -73,12 +73,12 @@ ], "loopCounter": 0, "loopOutcome": "completed", - "requestedNextHumanDecision": "decision_request_wits_01a07ca6_ef08_7145_98b1_0088c15be2e5", + "requestedNextHumanDecision": "decision_request_wits_01a07ef6_c7f9_737f_8e23_2fbbf01d1512", "boundaryStatement": "This report is immutable evidence for human review. It grants no merge, deployment, provider, or standard authority.", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "a9862ac39018d6f9df996327d14e5fcc29a27bf4d0f34beeb5056760a9593b9d" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "d99a734ada23eff4fd83f493e67dc51f53e713c231cc0d11a00b51c9e6bd4179" } } diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/authority-basis-decision.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/authority-basis-decision.json index 05159af..5054550 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/authority-basis-decision.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/authority-basis-decision.json @@ -5,34 +5,34 @@ "verificationSource": "authenticated_wits_case_principal" }, "digest": { - "value": "b7261e0f87fb97852bb5e1d4f8d9c6d89eaa049164626b79b00a3bed915325e9", + "value": "c98d362964b87981a1e1e5a035f7484dc8d97d17472f89b1561af45bd2d3f879", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "decision": "approve_bounded_successor", - "packetId": "taskpkt_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", - "createdAt": "2026-09-07T16:15:09.930Z", - "decisionId": "decision_wits_01a07ca6_ee6a_73a6_aa44_41f2e4298d05", + "packetId": "taskpkt_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", + "createdAt": "2026-09-08T03:01:37.257Z", + "decisionId": "decision_wits_01a07ef6_c769_77ed_8e3e_ee694f1a8054", "recordKind": "hacp.v0_3_candidate.human_decision", "evidenceRefs": [ - "wits://product-decision-action/01a07ca6-edb8-7b3e-8765-7833962903aa" + "wits://product-decision-action/01a07ef6-c6e4-7efb-b147-f1647b6070ed" ], "packetDigest": { - "value": "21cc7b195d12d4556c3756b186cbd520ea2964e7f58ebbc9c958c81c170974f9", + "value": "4a1b49eceb3f70a5c5b48819c8c536b79c22e161f5819eaf6be0bc49a03110b9", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "schemaVersion": "hacp-0.3-candidate", "decisionReason": "The owner approved this exact bounded one-use successor scope.", "decisionRequest": { - "id": "finding_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "id": "finding_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "kind": "review_finding", "digest": { - "value": "9952f87b684f3e9c9a56e223c29a254cbd7f44185d2584c98b575d1c044096fa", + "value": "da8ee20af9c6c63c2a266ceef6ece477ea819572dca7e6bea0aa32e633550059", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/consumption-receipt.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/consumption-receipt.json index 81188b2..97c51e6 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/consumption-receipt.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/consumption-receipt.json @@ -1,8 +1,8 @@ { "claim": { - "claimId": "claim_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "claimId": "claim_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "claimant": "agent:wits-conformance@local", - "claimedAt": "2026-09-07T16:15:09.983Z", + "claimedAt": "2026-09-08T03:01:37.308Z", "permittedScope": [ "produce seven public-safe candidate records", "run local conformance validation" @@ -11,33 +11,33 @@ "successorInvocationId": "invoke_wits_hacp_v03_success_001" }, "digest": { - "value": "e7dfce443ebbc087b8d246bc2077b54ccee74fd39acc45d3fbc19020b830042f", + "value": "7ff4055a74cf3905acadddbeb46efd94ef259014da83ae791bf22968a94e122d", "algorithm": "sha256", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, - "receiptId": "receipt_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "receiptId": "receipt_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "admittedBy": "wits:native-candidate-admission", - "decisionId": "decision_wits_01a07ca6_ee6a_73a6_aa44_41f2e4298d05", + "decisionId": "decision_wits_01a07ef6_c769_77ed_8e3e_ee694f1a8054", "recordKind": "hacp.v0_3_candidate.consumption_receipt", "evidenceRefs": [ - "wits://product-decision-action/01a07ca6-edb8-7b3e-8765-7833962903aa", - "wits://candidate-authority/01a07ca6-ee6a-73a6-aa44-41f2e4298d05" + "wits://product-decision-action/01a07ef6-c6e4-7efb-b147-f1647b6070ed", + "wits://candidate-authority/01a07ef6-c769-77ed-8e3e-ee694f1a8054" ], "schemaVersion": "hacp-0.3-candidate", "decisionDigest": { - "value": "b7261e0f87fb97852bb5e1d4f8d9c6d89eaa049164626b79b00a3bed915325e9", + "value": "c98d362964b87981a1e1e5a035f7484dc8d97d17472f89b1561af45bd2d3f879", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "decisionRequest": { - "id": "finding_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "id": "finding_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "kind": "review_finding", "digest": { - "value": "9952f87b684f3e9c9a56e223c29a254cbd7f44185d2584c98b575d1c044096fa", + "value": "da8ee20af9c6c63c2a266ceef6ece477ea819572dca7e6bea0aa32e633550059", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, @@ -45,10 +45,10 @@ "singleConsumerBasis": { "profileId": "hacp-accountable-continuation-v0.3-candidate", "idempotencyKey": "hacp-v03:consume:success", - "receiptExpiresAt": "2026-09-07T16:30:09.764Z", + "receiptExpiresAt": "2026-09-08T03:16:37.133Z", "trustedTimeSource": "wits-postgresql-clock-timestamp", - "receiptValidityRef": "wits://candidate-consumption/01a07ca6-ee9f-73d6-be33-eb8a3aa2e07a", - "decisionValidityRef": "wits://candidate-authority/01a07ca6-ee6a-73a6-aa44-41f2e4298d05", + "receiptValidityRef": "wits://candidate-consumption/01a07ef6-c79c-7e65-9180-409d631fb27d", + "decisionValidityRef": "wits://candidate-authority/01a07ef6-c769-77ed-8e3e-ee694f1a8054", "uniquenessRuleStatus": "requires_owner_approved_profile_definition" } } diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/continuation-context.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/continuation-context.json index 8b00923..cf8ee0b 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/continuation-context.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/continuation-context.json @@ -1,20 +1,20 @@ { "digest": { - "value": "5108f76e74fa6e9f1b929088f0daebfe9c1a48cadc6f92cba38545922b946f1b", + "value": "1ba9c337c060cfc41779200f613f7640b7cffa22d52eda98a0594fc596ad0b39", "algorithm": "sha256", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "decision": { - "id": "decision_wits_01a07ca6_ee6a_73a6_aa44_41f2e4298d05", + "id": "decision_wits_01a07ef6_c769_77ed_8e3e_ee694f1a8054", "digest": { - "value": "b7261e0f87fb97852bb5e1d4f8d9c6d89eaa049164626b79b00a3bed915325e9", + "value": "c98d362964b87981a1e1e5a035f7484dc8d97d17472f89b1561af45bd2d3f879", "algorithm": "sha256", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, - "contextId": "context_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "contextId": "context_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "recordKind": "hacp.v0_3_candidate.continuation_context", "schemaVersion": "hacp-0.3-candidate", "boundaryStatement": "Required candidate context only. It does not independently create authority or permit replay.", @@ -24,11 +24,11 @@ "extensionAwareProcessingRequired": true }, "consumptionReceipt": { - "id": "receipt_wits_01a07ca6_ee9f_73d6_be33_eb8a3aa2e07a", + "id": "receipt_wits_01a07ef6_c79c_7e65_9180_409d631fb27d", "digest": { - "value": "e7dfce443ebbc087b8d246bc2077b54ccee74fd39acc45d3fbc19020b830042f", + "value": "7ff4055a74cf3905acadddbeb46efd94ef259014da83ae791bf22968a94e122d", "algorithm": "sha256", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" } }, diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/decision-request.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/decision-request.json index fa10701..e47369a 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/decision-request.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/decision-request.json @@ -1,28 +1,28 @@ { "digest": { - "value": "9952f87b684f3e9c9a56e223c29a254cbd7f44185d2584c98b575d1c044096fa", + "value": "da8ee20af9c6c63c2a266ceef6ece477ea819572dca7e6bea0aa32e633550059", "algorithm": "sha256", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", + "digestDomain": "io.hacp.review-finding.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "summary": "A successor may continue only after a separate bounded human authority action is admitted.", - "packetId": "taskpkt_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "packetId": "taskpkt_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "severity": "medium", - "findingId": "finding_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "findingId": "finding_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "recordKind": "hacp.v0_3_candidate.review_finding", "evidenceRefs": [ - "wits://product-decision-action/01a07ca6-edb8-7b3e-8765-7833962903aa" + "wits://product-decision-action/01a07ef6-c6e4-7efb-b147-f1647b6070ed" ], "packetDigest": { - "value": "21cc7b195d12d4556c3756b186cbd520ea2964e7f58ebbc9c958c81c170974f9", + "value": "4a1b49eceb3f70a5c5b48819c8c536b79c22e161f5819eaf6be0bc49a03110b9", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, "residualRisk": "This candidate proof establishes local one-use continuation only; it does not prove external effects or standard maturity.", "schemaVersion": "hacp-0.3-candidate", "affectedSurfaces": [ - "wits://case/3348032a-cade-40e2-a167-69d1b2d5001e" + "wits://case/1f922fd8-4b31-4221-bbf3-18457362461f" ], "humanDecisionRequired": true, "recommendedDisposition": "request_human_decision" diff --git a/fixtures/supplementary/v0.3-candidate/wits/records/success/task-packet.json b/fixtures/supplementary/v0.3-candidate/wits/records/success/task-packet.json index 1680a88..3dc2676 100644 --- a/fixtures/supplementary/v0.3-candidate/wits/records/success/task-packet.json +++ b/fixtures/supplementary/v0.3-candidate/wits/records/success/task-packet.json @@ -1,11 +1,11 @@ { "digest": { - "value": "21cc7b195d12d4556c3756b186cbd520ea2964e7f58ebbc9c958c81c170974f9", + "value": "4a1b49eceb3f70a5c5b48819c8c536b79c22e161f5819eaf6be0bc49a03110b9", "algorithm": "sha256", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", + "digestDomain": "io.hacp.task-packet.v0.3-candidate", "canonicalization": "json-rfc8785-jcs" }, - "packetId": "taskpkt_wits_01a07ca6_edb8_7b3e_8765_7833962903aa", + "packetId": "taskpkt_wits_01a07ef6_c6e4_7efb_b147_f1647b6070ed", "loopPolicy": { "mode": "single_pass", "ceiling": 0, @@ -22,8 +22,8 @@ "schemaVersion": "hacp-0.3-candidate", "sourceContext": { "sourceRefs": [ - "wits://case/3348032a-cade-40e2-a167-69d1b2d5001e/product-decisions/01a07ca6-ed98-799c-94fd-5108d7ac4680", - "wits://product-decision-action/01a07ca6-edb8-7b3e-8765-7833962903aa" + "wits://case/1f922fd8-4b31-4221-bbf3-18457362461f/product-decisions/01a07ef6-c6ca-72a4-ae93-fcf80cf1bad3", + "wits://product-decision-action/01a07ef6-c6e4-7efb-b147-f1647b6070ed" ], "humanRequest": "May one public-safe conformance successor begin?" }, diff --git a/schemas/v0.3-candidate/README.md b/schemas/v0.3-candidate/README.md index 10397b0..05f228e 100644 --- a/schemas/v0.3-candidate/README.md +++ b/schemas/v0.3-candidate/README.md @@ -54,7 +54,7 @@ the UTF-8 serialization of: Embedded reference digests remain present and therefore bind the exact records they reference. The start-evidence display record uses the same envelope rule -with its separate proposed supporting domain. +with its separate owner-approved supporting domain. ## Fixtures @@ -75,7 +75,7 @@ context. Missing-record cases are omission-only manifest instructions; they do not retain byte-identical files that would misleadingly appear to be invalid records. A receipt URI or self-asserted field does not prove revocation. -The v2 manifest is validated before fixture content is trusted. Its +The v3 manifest is validated before fixture content is trusted. Its `fixtureInventory` is a non-chain inventory, and `expectedValidBundles` is the only positive semantic input. Unknown manifest versions, unsafe paths, undeclared JSON fixtures, ambiguous negative selectors, unexpected roles, and @@ -111,7 +111,7 @@ in this directory are the conformance corpus. Issue [#54](https://github.com/joefeser/hacp/issues/54) adds a separate, closed admission boundary for independently produced candidate bundles. It -does not loosen the canonical v2 manifest or allow executable provider code. +does not loosen the canonical v3 manifest or allow executable provider code. An external producer supplies a directory containing exactly: @@ -149,30 +149,32 @@ promotion by itself, authority, approval, proof of independent production, proof of execution, or proof of exactly-once external effects. Qualification still requires owner reconciliation under issue #47. -## REVIEW-REQUIRED: candidate digest domains +## Owner-approved candidate digest domains -The following exact strings are proposed and deliberately **not finalized** by -this implementation PR: +Joe Feser approved the following exact candidate-scoped strings on 2026-09-07. +They use the reverse-DNS form of the project-controlled `hacp.io` domain: -- `org.hacp.task-packet.v0.3-candidate` -- `org.hacp.human-decision.v0.3-candidate` -- `org.hacp.consumption-receipt.v0.3-candidate` -- `org.hacp.continuation-context.v0.3-candidate` -- `org.hacp.agent-report.v0.3-candidate` -- `org.hacp.review-finding.v0.3-candidate` -- `org.hacp.stop-response.v0.3-candidate` -- supporting record: `org.hacp.successor-start-evidence.v0.3-candidate` +- `io.hacp.task-packet.v0.3-candidate` +- `io.hacp.human-decision.v0.3-candidate` +- `io.hacp.consumption-receipt.v0.3-candidate` +- `io.hacp.continuation-context.v0.3-candidate` +- `io.hacp.agent-report.v0.3-candidate` +- `io.hacp.review-finding.v0.3-candidate` +- `io.hacp.stop-response.v0.3-candidate` +- supporting record: `io.hacp.successor-start-evidence.v0.3-candidate` -Joe must approve the exact normative domain set before candidate publication. Changing a domain changes every affected digest and is a contract change. ## Owner-Ruled Second-Implementation Qualification Issue [#47](https://github.com/joefeser/hacp/issues/47) records the owner ruling for candidate promotion: a second implementation must independently -produce candidate records and cross-validate them with who-decides against this -conformance package, including its negative fixtures, without importing -who-decides runtime code. +produce candidate records and cross-validate them against this conformance +package, including its negative fixtures, without importing the first +implementation's runtime code. WITS supplies that independent v0.3 encoding +production evidence and HACP validates it. The pinned who-decides proof is +separate evidence for the candidate's one-use continuation semantics; +who-decides does not produce or validate the v0.3 encoding. Bidirectional production and consumption with who-decides is reserved as a future full-release criterion. Passing this package alone is not a second @@ -204,3 +206,8 @@ not establish distributed trust, cross-store atomicity, provider effects, or exactly-once external effects. These schemas validate record shape; the corpus also validates a bounded set of cross-record relationships. Neither grants authority or executes work. + +Joe Feser accepted the pinned who-decides 44-case receipt-bound proof on +2026-09-07 as the external proof required by the candidate publication +checklist. That acceptance retains the proof's local, synthetic, closed-world, +and no-external-effect limits; it is not full-release evidence. diff --git a/schemas/v0.3-candidate/agent-report.schema.json b/schemas/v0.3-candidate/agent-report.schema.json index 514c7bb..65e8f93 100644 --- a/schemas/v0.3-candidate/agent-report.schema.json +++ b/schemas/v0.3-candidate/agent-report.schema.json @@ -13,20 +13,20 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.agent-report.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.agent-report.v0.3-candidate" } } } ] }, "continuationContext": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digestRef" }, - { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.continuation-context.v0.3-candidate" } } } } } + { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.continuation-context.v0.3-candidate" } } } } } ] }, "packetId": { "$ref": "common-defs.schema.json#/$defs/identifier" }, "decision": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digestRef" }, - { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.human-decision.v0.3-candidate" } } } } } + { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.human-decision.v0.3-candidate" } } } } } ] }, "decisionRequest": { "$ref": "common-defs.schema.json#/$defs/decisionRequestRef" }, @@ -34,7 +34,7 @@ "consumptionReceiptDigest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.consumption-receipt.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.consumption-receipt.v0.3-candidate" } } } ] }, "successorInvocationId": { "$ref": "common-defs.schema.json#/$defs/identifier" }, @@ -48,7 +48,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.successor-start-evidence.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.successor-start-evidence.v0.3-candidate" } } } ] }, "successorInvocationId": { "$ref": "common-defs.schema.json#/$defs/identifier" }, @@ -56,7 +56,7 @@ "consumptionReceiptDigest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.consumption-receipt.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.consumption-receipt.v0.3-candidate" } } } ] }, "acceptedClaimReadBackAt": { "$ref": "common-defs.schema.json#/$defs/timestamp" }, diff --git a/schemas/v0.3-candidate/common-defs.schema.json b/schemas/v0.3-candidate/common-defs.schema.json index f6f1ee6..151d08f 100644 --- a/schemas/v0.3-candidate/common-defs.schema.json +++ b/schemas/v0.3-candidate/common-defs.schema.json @@ -42,14 +42,14 @@ "canonicalization": { "const": "json-rfc8785-jcs" }, "digestDomain": { "enum": [ - "org.hacp.task-packet.v0.3-candidate", - "org.hacp.human-decision.v0.3-candidate", - "org.hacp.consumption-receipt.v0.3-candidate", - "org.hacp.continuation-context.v0.3-candidate", - "org.hacp.agent-report.v0.3-candidate", - "org.hacp.review-finding.v0.3-candidate", - "org.hacp.stop-response.v0.3-candidate", - "org.hacp.successor-start-evidence.v0.3-candidate" + "io.hacp.task-packet.v0.3-candidate", + "io.hacp.human-decision.v0.3-candidate", + "io.hacp.consumption-receipt.v0.3-candidate", + "io.hacp.continuation-context.v0.3-candidate", + "io.hacp.agent-report.v0.3-candidate", + "io.hacp.review-finding.v0.3-candidate", + "io.hacp.stop-response.v0.3-candidate", + "io.hacp.successor-start-evidence.v0.3-candidate" ] }, "value": { @@ -83,7 +83,7 @@ "digest": { "allOf": [ { "$ref": "#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.review-finding.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.review-finding.v0.3-candidate" } } } ] } } @@ -94,7 +94,7 @@ "digest": { "allOf": [ { "$ref": "#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.stop-response.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.stop-response.v0.3-candidate" } } } ] } } diff --git a/schemas/v0.3-candidate/consumption-receipt.schema.json b/schemas/v0.3-candidate/consumption-receipt.schema.json index 873f98e..2e19b75 100644 --- a/schemas/v0.3-candidate/consumption-receipt.schema.json +++ b/schemas/v0.3-candidate/consumption-receipt.schema.json @@ -13,7 +13,7 @@ "decisionDigest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.human-decision.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.human-decision.v0.3-candidate" } } } ] }, "decisionRequest": { "$ref": "common-defs.schema.json#/$defs/decisionRequestRef" }, @@ -49,7 +49,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.consumption-receipt.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.consumption-receipt.v0.3-candidate" } } } ] }, "boundaryStatement": { "$ref": "common-defs.schema.json#/$defs/text" } diff --git a/schemas/v0.3-candidate/continuation-context.schema.json b/schemas/v0.3-candidate/continuation-context.schema.json index 783a9d0..912de09 100644 --- a/schemas/v0.3-candidate/continuation-context.schema.json +++ b/schemas/v0.3-candidate/continuation-context.schema.json @@ -22,20 +22,20 @@ "decision": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digestRef" }, - { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.human-decision.v0.3-candidate" } } } } } + { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.human-decision.v0.3-candidate" } } } } } ] }, "consumptionReceipt": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digestRef" }, - { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.consumption-receipt.v0.3-candidate" } } } } } + { "type": "object", "properties": { "digest": { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.consumption-receipt.v0.3-candidate" } } } } } ] }, "successorInvocationId": { "$ref": "common-defs.schema.json#/$defs/identifier" }, "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.continuation-context.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.continuation-context.v0.3-candidate" } } } ] }, "boundaryStatement": { "$ref": "common-defs.schema.json#/$defs/text" } diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.loop-counter.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.loop-counter.invalid.json index 7faedd3..b6ecbb0 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.loop-counter.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.loop-counter.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "b12ee410cfc6869bd51c3b6ca5af1c4a1e853af55e56d533607f3c80537fec7e" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "ffc08f84f2e2504685e10731c5bd55130bbf048181dfa3fb9f9f2672c323dc76" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.return-before-start.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.return-before-start.invalid.json index b36e6b7..7b1a404 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.return-before-start.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.return-before-start.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "77ea34ace1e8cde2eb8fb56584f354bbbd731e84a82c59f79b54d68fe04e7fce" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "d6d73be4699f6bda560532369c5f24c2e19a72985bc4c188f50c61207fed2d6c" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-authority.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-authority.invalid.json index 4f057b0..cfc88be 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-authority.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-authority.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "18d9f65ec652f105e2af55d24852cbd3c31e9a6f0828ba8c227fcc2478d0d03b" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "1c4a240fe9164e185e186e079e5c7cb58cd03a5843f91938a4e8ef062a83748d" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_unrelated_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-decision.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-decision.invalid.json index 2e8db93..cd6a4c8 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-decision.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-decision.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "5de0a34f8bb5c8b31a816132e561eae83d892e0b244e95bc1107ba72fc3b4725" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "91856133922ff5d8530551933a6f35c4a2b4074a61e515be0e6482ddd2def43b" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-request.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-request.invalid.json index e631f5b..16f3b76 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-request.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-request.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "d92fb9cf7ad42fbc0638c6a9f7d876a81461d64d02e51b849296ace5b57fed04" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "c5a8c189b9cb49093fd634ccfec9f9a41ab47c3ca18e12d83eb8952dfec5427f" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-start-evidence.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-start-evidence.invalid.json index 82f0baf..2f069ae 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-start-evidence.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-start-evidence.invalid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "5461462ff45a8944f8c41201509a8341e432afddccb059a19c698273c0b0842f" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "7fe66632c832e981f1e8066375e97495790c64537e696734308d1a0cd054df20" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "704d2d56a55e6c5bc697dfc5b1dbc107c1b182c90fe814e70041c9bb89a95a47" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bacba077ab700bfd768918f7000d43c4a6b97ff325b78333da9e487e4fe0a06e" }, "successorInvocationId": "invoke_unrelated_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/agent-report.stripped-context.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/agent-report.stripped-context.invalid.json index 0b25f31..1e39ffd 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/agent-report.stripped-context.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/agent-report.stripped-context.invalid.json @@ -6,8 +6,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "861e2843cfe461207054e91d24b0e69fe63fb2bfdc11ddaac4970edf9b9a44cb" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "0d70853575117a0c191666918dd8a11ad63fa147341b384325a6457c2a133f35" }, "packetId": "taskpkt_example_continue_review_001", "decision": { @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -25,16 +25,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -43,16 +43,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.claim-after-start.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.claim-after-start.invalid.json index 0f6c490..bffc37c 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.claim-after-start.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.claim-after-start.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "a17e335d50b118dfa892267c52a39ba0aaa313b04dbe2382ff0c0dba7a91341a" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "6b29a9d898800e2f21e9b9f86174f7a9be1b48b87485d0c8c66197bdca0c668f" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.divergent-request.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.divergent-request.invalid.json index de0a1d7..966e117 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.divergent-request.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.divergent-request.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "stop_response", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", - "value": "0233f83463eea76bce60acd0de145c232e70e0524df3e02fa3aee546b4913868" + "digestDomain": "io.hacp.stop-response.v0.3-candidate", + "value": "64a590fc29e8e0969771dbfeab58d3b59bf9bcfdab8a338cccd10ea826a8745e" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "3134ee2f9e2501aa35d0fb8bf9ac34a3e45c91d9d9bc429d705f1b34fa934d9b" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "cf27f01465f35ca8bfc10c9fbe642c96875851cc90452f941f52864cb6fea3b2" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired-before-start.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired-before-start.invalid.json index ee2f384..926ded4 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired-before-start.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired-before-start.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "d52a92878a347db19232927f3e80abde1b5144badc99fee7318a4c0d5a7ab3b3" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "ec1c6db03e05d0d46effb4e3d43c995217f978a454e4fd28704aa08d99be460c" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired.invalid.json index e4db20d..2cb8f63 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "4f3efbecb569614ba84b24f5a144642b408da51113f8ed63cc5e606d6e1a7865" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "48d5b9718337cd2b866e369caa100845674c56805b6049db86e1b92a4d1cf804" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.fractional-claim-order.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.fractional-claim-order.invalid.json index 015ca0a..ae4d0a2 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.fractional-claim-order.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.fractional-claim-order.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "e548d4bab15972c83d2c972d710dfbf485d1be95204cc09eee5fe1d2877f5c77" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "77321be8ae197d1aa799e58b4fc4f8f8bbf5a4409e96218202778e8940a1f458" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.leap-second-expiry.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.leap-second-expiry.invalid.json index d0e0b7b..cd5b770 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.leap-second-expiry.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.leap-second-expiry.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "4f50246d12501abc8b65d367fd7fc0d44c7f788e98776270c16542a243b64815" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "9a589c4feaab082d291a9e1bffccc04bc4cbb9fffdbbc530d5c61ddbee480486" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.revoked.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.revoked.invalid.json index 31e03ce..fafc7a8 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.revoked.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.revoked.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.scope-expansion.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.scope-expansion.invalid.json index a9a67df..37395e9 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.scope-expansion.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.scope-expansion.invalid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -49,8 +49,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "9255d74cc0858aaf777bb694de01634d1448720b58ebc157decd51f5907f491d" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "c930fb37559a964c16b580d65d267b514db1e52c7ddeed8146d07b6a2ca6ff94" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/continuation-context.stale-replay.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/continuation-context.stale-replay.invalid.json index 58c80a9..8df72c3 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/continuation-context.stale-replay.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/continuation-context.stale-replay.invalid.json @@ -12,7 +12,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "value": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" } }, @@ -21,16 +21,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" } }, "successorInvocationId": "invoke_example_docs_worker_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "eec3b1a91fc06c557548f45be13025e109ebed53140fb08cab2b8ccdf55f078d" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "feaf9d074224a6e1555e3aa1e0c5cf8c6a08f8d9335ebd2cee93d42d7a6fb4b5" }, "boundaryStatement": "Illustrative required input, not active authority. The consumer must authenticate the context integrity through its independently trusted human-approved profile; a self-supplied digest is insufficient. Revocation/current-status policy and external proof remain unresolved." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/human-decision.digest-mismatch.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/human-decision.digest-mismatch.invalid.json index d4b57f7..0cff72c 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/human-decision.digest-mismatch.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/human-decision.digest-mismatch.invalid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "actor": { @@ -50,7 +50,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", + "digestDomain": "io.hacp.human-decision.v0.3-candidate", "value": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, "boundaryStatement": "This decision is immutable source evidence. Consumption is recorded in a separate receipt." diff --git a/schemas/v0.3-candidate/fixtures/invalid/human-decision.non-approval.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/human-decision.non-approval.invalid.json index 90d06a6..5737aa6 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/human-decision.non-approval.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/human-decision.non-approval.invalid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "actor": { @@ -50,8 +50,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "1b39c5d4552b1a17f6b198ebfc34b776532e3006ad0485ad5765c5a65f90ec6c" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "0c8af9c916f5430cc5c93e22d1f62629addaede63b5d4da63f812e6356cd508a" }, "boundaryStatement": "This decision is immutable source evidence. Consumption is recorded in a separate receipt." } diff --git a/schemas/v0.3-candidate/fixtures/invalid/stop-response.spliced-packet.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/stop-response.spliced-packet.invalid.json index 59b6b33..e2bd32d 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/stop-response.spliced-packet.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/stop-response.spliced-packet.invalid.json @@ -17,7 +17,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", - "value": "0967c26f9577b911212deeaeefbc20190e86c65f8f10b82ad09f0ac75d62cfbe" + "digestDomain": "io.hacp.stop-response.v0.3-candidate", + "value": "88a5729153dc924dcb315dccd39ebc6dcc02d8088a2ede615e76973371392e2c" } } diff --git a/schemas/v0.3-candidate/fixtures/invalid/task-packet.loop-ceiling.invalid.json b/schemas/v0.3-candidate/fixtures/invalid/task-packet.loop-ceiling.invalid.json index c634098..3d1564c 100644 --- a/schemas/v0.3-candidate/fixtures/invalid/task-packet.loop-ceiling.invalid.json +++ b/schemas/v0.3-candidate/fixtures/invalid/task-packet.loop-ceiling.invalid.json @@ -5,8 +5,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "08d54c0aef3db9e919e99311dca85076fad63b0b98ea1cc0baf2dd9cedaa5923" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "037fb3a60da8eddd62df9dd3982e9e649c06961c4cef06d37927be099de8267e" }, "sourceContext": { "humanRequest": "Review the returned finding and continue only if the owner approves the bounded follow-up.", diff --git a/schemas/v0.3-candidate/fixtures/manifest.json b/schemas/v0.3-candidate/fixtures/manifest.json index a1ed538..1518a74 100644 --- a/schemas/v0.3-candidate/fixtures/manifest.json +++ b/schemas/v0.3-candidate/fixtures/manifest.json @@ -1,5 +1,5 @@ { - "schema": "hacp.v0_3_candidate.conformance_manifest.v2", + "schema": "hacp.v0_3_candidate.conformance_manifest.v3", "candidateStatus": true, "sourcePacketCommit": "db47da2118355683f34fd955083c2b3c38769fe4", "regenerationBaseCommit": "73056a53fd87ce20d6a40f8c2188d2fb0a07ce7f", @@ -8,19 +8,21 @@ "mergeCommit": "c6677da198c166079132ac2a23a39afeade26af3", "inspectedMainAtPreparation": "04a89f5509035b3299bb3786da1e9909a4e78dc0" }, - "reviewRequired": { - "digestDomains": [ - "org.hacp.task-packet.v0.3-candidate", - "org.hacp.human-decision.v0.3-candidate", - "org.hacp.consumption-receipt.v0.3-candidate", - "org.hacp.continuation-context.v0.3-candidate", - "org.hacp.agent-report.v0.3-candidate", - "org.hacp.review-finding.v0.3-candidate", - "org.hacp.stop-response.v0.3-candidate", - "org.hacp.successor-start-evidence.v0.3-candidate" - ] - }, "ownerRulings": { + "digestDomains": { + "approvedBy": "Joe Feser", + "approvedOn": "2026-09-07", + "values": [ + "io.hacp.task-packet.v0.3-candidate", + "io.hacp.human-decision.v0.3-candidate", + "io.hacp.consumption-receipt.v0.3-candidate", + "io.hacp.continuation-context.v0.3-candidate", + "io.hacp.agent-report.v0.3-candidate", + "io.hacp.review-finding.v0.3-candidate", + "io.hacp.stop-response.v0.3-candidate", + "io.hacp.successor-start-evidence.v0.3-candidate" + ] + }, "secondImplementationQualification": { "sourceIssue": "https://github.com/joefeser/hacp/issues/47", "candidatePromotion": "independent_production_plus_cross_validation", @@ -258,7 +260,7 @@ "replaceRecordPath": "valid/success/consumption-receipt.valid.json", "context": { "revokedDecisionDigests": [ - "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" ] } }, diff --git a/schemas/v0.3-candidate/fixtures/valid/stop/authority-basis-decision.valid.json b/schemas/v0.3-candidate/fixtures/valid/stop/authority-basis-decision.valid.json index faeae92..46f0ef9 100644 --- a/schemas/v0.3-candidate/fixtures/valid/stop/authority-basis-decision.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/stop/authority-basis-decision.valid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "647e2639c22dfeff4145b83842d6fb8519b9dd1040c3f48dc5d1f1d8277b072f" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "399ad944ac1ead3047090a783422d3ff2628e3d5f02d77576951137d35ee2664" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "26a5710c788fb1cc5717bbc12c150a40e92c4165b941ce2dc9164730113163e4" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "d7a89ae1767442b8e6c7276a3924df3defdab507fa4cd928fc9840acdc7aa5b9" } }, "actor": { @@ -50,8 +50,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "c2c448ecef9d7da10335120309cd0043bf9937c10a6c178215967a4038fd21e1" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "b3c8c8d1f6be90df3fa7bdbf547d0114e0971b6df7c2106c7c855a3a1dcdcf0a" }, "boundaryStatement": "This decision is immutable source evidence. Consumption is recorded in a separate receipt." } diff --git a/schemas/v0.3-candidate/fixtures/valid/stop/response-decision.valid.json b/schemas/v0.3-candidate/fixtures/valid/stop/response-decision.valid.json index 9b83ec9..9b98cac 100644 --- a/schemas/v0.3-candidate/fixtures/valid/stop/response-decision.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/stop/response-decision.valid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "647e2639c22dfeff4145b83842d6fb8519b9dd1040c3f48dc5d1f1d8277b072f" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "399ad944ac1ead3047090a783422d3ff2628e3d5f02d77576951137d35ee2664" }, "decisionRequest": { "kind": "stop_response", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", - "value": "0233f83463eea76bce60acd0de145c232e70e0524df3e02fa3aee546b4913868" + "digestDomain": "io.hacp.stop-response.v0.3-candidate", + "value": "64a590fc29e8e0969771dbfeab58d3b59bf9bcfdab8a338cccd10ea826a8745e" } }, "actor": { @@ -50,8 +50,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "ce2ef6691b7673fdb131873ee50038f03f4fcb7bfe6f594781ab174308182898" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "460950335a5de32b4a27dd8b582b96c0ea86da59732417619205b485f4761838" }, "boundaryStatement": "This response records a human deferral only. It grants no successor authority and consumes no decision." } diff --git a/schemas/v0.3-candidate/fixtures/valid/stop/review-finding.valid.json b/schemas/v0.3-candidate/fixtures/valid/stop/review-finding.valid.json index a988ac9..e031dd0 100644 --- a/schemas/v0.3-candidate/fixtures/valid/stop/review-finding.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/stop/review-finding.valid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "647e2639c22dfeff4145b83842d6fb8519b9dd1040c3f48dc5d1f1d8277b072f" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "399ad944ac1ead3047090a783422d3ff2628e3d5f02d77576951137d35ee2664" }, "severity": "medium", "summary": "Returned evidence is actionable, but continuation would consume a human decision and start a successor invocation.", @@ -23,7 +23,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "26a5710c788fb1cc5717bbc12c150a40e92c4165b941ce2dc9164730113163e4" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "d7a89ae1767442b8e6c7276a3924df3defdab507fa4cd928fc9840acdc7aa5b9" } } diff --git a/schemas/v0.3-candidate/fixtures/valid/stop/stop-response.valid.json b/schemas/v0.3-candidate/fixtures/valid/stop/stop-response.valid.json index e7cb828..35eecc4 100644 --- a/schemas/v0.3-candidate/fixtures/valid/stop/stop-response.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/stop/stop-response.valid.json @@ -17,7 +17,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.stop-response.v0.3-candidate", - "value": "0233f83463eea76bce60acd0de145c232e70e0524df3e02fa3aee546b4913868" + "digestDomain": "io.hacp.stop-response.v0.3-candidate", + "value": "64a590fc29e8e0969771dbfeab58d3b59bf9bcfdab8a338cccd10ea826a8745e" } } diff --git a/schemas/v0.3-candidate/fixtures/valid/stop/task-packet.valid.json b/schemas/v0.3-candidate/fixtures/valid/stop/task-packet.valid.json index 4703d59..a062b1d 100644 --- a/schemas/v0.3-candidate/fixtures/valid/stop/task-packet.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/stop/task-packet.valid.json @@ -5,8 +5,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "647e2639c22dfeff4145b83842d6fb8519b9dd1040c3f48dc5d1f1d8277b072f" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "399ad944ac1ead3047090a783422d3ff2628e3d5f02d77576951137d35ee2664" }, "sourceContext": { "humanRequest": "Review the returned finding and continue only if the owner approves the bounded follow-up.", diff --git a/schemas/v0.3-candidate/fixtures/valid/success/agent-report.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/agent-report.valid.json index 9ef0fef..2125a2e 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/agent-report.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/agent-report.valid.json @@ -6,16 +6,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.agent-report.v0.3-candidate", - "value": "8883d823cdb11f94ab09163922cdf5d1a02b8f7a5f685491250a33ef1ee58840" + "digestDomain": "io.hacp.agent-report.v0.3-candidate", + "value": "11485a2f6ae984c39774a8552ddd54a67cf9fbce7488ef1fd7dbdef49f666e0d" }, "continuationContext": { "id": "context_example_successor_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" } }, "packetId": "taskpkt_example_continue_review_001", @@ -24,8 +24,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "decisionRequest": { @@ -34,16 +34,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "successorInvocationId": "invoke_example_docs_worker_001", "startEvidence": { @@ -52,16 +52,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.successor-start-evidence.v0.3-candidate", - "value": "b0dd85bf66139e05657234d7acf590d479eebbef2818dd17400752db8356fced" + "digestDomain": "io.hacp.successor-start-evidence.v0.3-candidate", + "value": "bca53a6750b9b15d0fc5d29caf00557aef93c8bcfb48c419e3a4816231543d4c" }, "successorInvocationId": "invoke_example_docs_worker_001", "consumptionReceiptId": "receipt_example_claim_successor_001", "consumptionReceiptDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "acceptedClaimReadBackAt": "2026-09-03T18:05:01Z", "workStartedAt": "2026-09-03T18:05:02Z", diff --git a/schemas/v0.3-candidate/fixtures/valid/success/consumption-receipt.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/consumption-receipt.valid.json index 31e03ce..fafc7a8 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/consumption-receipt.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/consumption-receipt.valid.json @@ -6,8 +6,8 @@ "decisionDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "claim": { @@ -48,8 +48,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" }, "boundaryStatement": "Illustrative acceptance only: issuer trust, uniqueness, and current-status policy require an independently approved profile. These hypothetical evidence references prove no actual admission. Accepted admission does not prove provider execution, external side effects, merge readiness, or exactly-once downstream completion." } diff --git a/schemas/v0.3-candidate/fixtures/valid/success/continuation-context.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/continuation-context.valid.json index 71fb39a..f8c7813 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/continuation-context.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/continuation-context.valid.json @@ -12,8 +12,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" } }, "consumptionReceipt": { @@ -21,16 +21,16 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.consumption-receipt.v0.3-candidate", - "value": "7e55396c6535614bb09c431cb34f26967ae7a5c8f75dc1718107bb68e35e81bd" + "digestDomain": "io.hacp.consumption-receipt.v0.3-candidate", + "value": "826e13a192113d89e805ecd906d004cbe55e018e55721871d8c95a8a8f3d5bc1" } }, "successorInvocationId": "invoke_example_docs_worker_001", "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.continuation-context.v0.3-candidate", - "value": "92dfe026bee268300467761ad158a672bd3012331c56799bef6effa666b97993" + "digestDomain": "io.hacp.continuation-context.v0.3-candidate", + "value": "004fdf803d6bfe61a18f71ae8f350013ae5232d866352ec83387d9ff6114d3e1" }, "boundaryStatement": "Illustrative required input, not active authority. The consumer must authenticate the context integrity through its independently trusted human-approved profile; a self-supplied digest is insufficient. Revocation/current-status policy and external proof remain unresolved." } diff --git a/schemas/v0.3-candidate/fixtures/valid/success/human-decision.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/human-decision.valid.json index 95cc5de..a83fcf0 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/human-decision.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/human-decision.valid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "decisionRequest": { "kind": "review_finding", @@ -15,8 +15,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } }, "actor": { @@ -50,8 +50,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.human-decision.v0.3-candidate", - "value": "fcdc44811249a82aa110a64b4a0100612bcf8f80fb45f63a1f0e000b4df2d45a" + "digestDomain": "io.hacp.human-decision.v0.3-candidate", + "value": "545b43ca3c706c47090d953189d984506e6009a5efe5cfe03400edc0abcc0e0b" }, "boundaryStatement": "This decision is immutable source evidence. Consumption is recorded in a separate receipt." } diff --git a/schemas/v0.3-candidate/fixtures/valid/success/review-finding.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/review-finding.valid.json index 1e78f1d..8e572b9 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/review-finding.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/review-finding.valid.json @@ -6,8 +6,8 @@ "packetDigest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "severity": "medium", "summary": "Returned evidence is actionable, but continuation would consume a human decision and start a successor invocation.", @@ -23,7 +23,7 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.review-finding.v0.3-candidate", - "value": "9109eca466f076597196f4a043c5b09dc5d657c5771d99530974f7b038f9e769" + "digestDomain": "io.hacp.review-finding.v0.3-candidate", + "value": "eb4f41e53bcbe6a6f8bada28db2b4397996c7b3e2dc4d9349e35d42c40f95c95" } } diff --git a/schemas/v0.3-candidate/fixtures/valid/success/task-packet.valid.json b/schemas/v0.3-candidate/fixtures/valid/success/task-packet.valid.json index a06f600..7f068b1 100644 --- a/schemas/v0.3-candidate/fixtures/valid/success/task-packet.valid.json +++ b/schemas/v0.3-candidate/fixtures/valid/success/task-packet.valid.json @@ -5,8 +5,8 @@ "digest": { "algorithm": "sha256", "canonicalization": "json-rfc8785-jcs", - "digestDomain": "org.hacp.task-packet.v0.3-candidate", - "value": "93d2671faf60e66f1011130da23c39df6d949fb7a6eba8c65c38089c8303e9d8" + "digestDomain": "io.hacp.task-packet.v0.3-candidate", + "value": "c330d201bd02c7176542740377ea5be9f9b0621b3ea67f7e8e520464a10d58a4" }, "sourceContext": { "humanRequest": "Review the returned finding and continue only if the owner approves the bounded follow-up.", diff --git a/schemas/v0.3-candidate/human-decision.schema.json b/schemas/v0.3-candidate/human-decision.schema.json index 3d73b1a..7d83420 100644 --- a/schemas/v0.3-candidate/human-decision.schema.json +++ b/schemas/v0.3-candidate/human-decision.schema.json @@ -13,7 +13,7 @@ "packetDigest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.task-packet.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.task-packet.v0.3-candidate" } } } ] }, "decisionRequest": { "$ref": "common-defs.schema.json#/$defs/decisionRequestRef" }, @@ -46,7 +46,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.human-decision.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.human-decision.v0.3-candidate" } } } ] }, "boundaryStatement": { "$ref": "common-defs.schema.json#/$defs/text" } diff --git a/schemas/v0.3-candidate/package/conformance-manifest.schema.json b/schemas/v0.3-candidate/package/conformance-manifest.schema.json index 4a33d12..9fa0489 100644 --- a/schemas/v0.3-candidate/package/conformance-manifest.schema.json +++ b/schemas/v0.3-candidate/package/conformance-manifest.schema.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://hacp.example/schemas/v0.3-candidate/package/conformance-manifest.schema.json", - "title": "HACP v0.3 Candidate Conformance Manifest v2", + "title": "HACP v0.3 Candidate Conformance Manifest v3", "type": "object", "additionalProperties": false, "required": [ @@ -10,7 +10,6 @@ "sourcePacketCommit", "regenerationBaseCommit", "whoDecidesEvidence", - "reviewRequired", "ownerRulings", "nonChainInventory", "fixtureInventory", @@ -18,7 +17,7 @@ "expectedInvalid" ], "properties": { - "schema": { "const": "hacp.v0_3_candidate.conformance_manifest.v2" }, + "schema": { "const": "hacp.v0_3_candidate.conformance_manifest.v3" }, "candidateStatus": { "const": true }, "sourcePacketCommit": { "$ref": "#/$defs/commit" }, "regenerationBaseCommit": { "$ref": "#/$defs/commit" }, @@ -32,25 +31,37 @@ "inspectedMainAtPreparation": { "$ref": "#/$defs/commit" } } }, - "reviewRequired": { - "type": "object", - "additionalProperties": false, - "required": ["digestDomains"], - "properties": { - "digestDomains": { - "type": "array", - "minItems": 8, - "maxItems": 8, - "uniqueItems": true, - "items": { "type": "string", "minLength": 1 } - } - } - }, "ownerRulings": { "type": "object", "additionalProperties": false, - "required": ["secondImplementationQualification"], + "required": ["digestDomains", "secondImplementationQualification"], "properties": { + "digestDomains": { + "type": "object", + "additionalProperties": false, + "required": ["approvedBy", "approvedOn", "values"], + "properties": { + "approvedBy": { "const": "Joe Feser" }, + "approvedOn": { "const": "2026-09-07" }, + "values": { + "type": "array", + "minItems": 8, + "maxItems": 8, + "uniqueItems": true, + "prefixItems": [ + { "const": "io.hacp.task-packet.v0.3-candidate" }, + { "const": "io.hacp.human-decision.v0.3-candidate" }, + { "const": "io.hacp.consumption-receipt.v0.3-candidate" }, + { "const": "io.hacp.continuation-context.v0.3-candidate" }, + { "const": "io.hacp.agent-report.v0.3-candidate" }, + { "const": "io.hacp.review-finding.v0.3-candidate" }, + { "const": "io.hacp.stop-response.v0.3-candidate" }, + { "const": "io.hacp.successor-start-evidence.v0.3-candidate" } + ], + "items": false + } + } + }, "secondImplementationQualification": { "type": "object", "additionalProperties": false, diff --git a/schemas/v0.3-candidate/package/external-bundle-manifest.schema.json b/schemas/v0.3-candidate/package/external-bundle-manifest.schema.json index f159579..5d9f996 100644 --- a/schemas/v0.3-candidate/package/external-bundle-manifest.schema.json +++ b/schemas/v0.3-candidate/package/external-bundle-manifest.schema.json @@ -55,14 +55,14 @@ "maxItems": 8, "uniqueItems": true, "prefixItems": [ - { "const": "org.hacp.task-packet.v0.3-candidate" }, - { "const": "org.hacp.human-decision.v0.3-candidate" }, - { "const": "org.hacp.consumption-receipt.v0.3-candidate" }, - { "const": "org.hacp.continuation-context.v0.3-candidate" }, - { "const": "org.hacp.agent-report.v0.3-candidate" }, - { "const": "org.hacp.review-finding.v0.3-candidate" }, - { "const": "org.hacp.stop-response.v0.3-candidate" }, - { "const": "org.hacp.successor-start-evidence.v0.3-candidate" } + { "const": "io.hacp.task-packet.v0.3-candidate" }, + { "const": "io.hacp.human-decision.v0.3-candidate" }, + { "const": "io.hacp.consumption-receipt.v0.3-candidate" }, + { "const": "io.hacp.continuation-context.v0.3-candidate" }, + { "const": "io.hacp.agent-report.v0.3-candidate" }, + { "const": "io.hacp.review-finding.v0.3-candidate" }, + { "const": "io.hacp.stop-response.v0.3-candidate" }, + { "const": "io.hacp.successor-start-evidence.v0.3-candidate" } ], "items": false } diff --git a/schemas/v0.3-candidate/review-finding.schema.json b/schemas/v0.3-candidate/review-finding.schema.json index b494e32..617484f 100644 --- a/schemas/v0.3-candidate/review-finding.schema.json +++ b/schemas/v0.3-candidate/review-finding.schema.json @@ -13,7 +13,7 @@ "packetDigest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.task-packet.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.task-packet.v0.3-candidate" } } } ] }, "severity": { "enum": ["blocker", "high", "medium", "low"] }, @@ -26,7 +26,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.review-finding.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.review-finding.v0.3-candidate" } } } ] } } diff --git a/schemas/v0.3-candidate/stop-response.schema.json b/schemas/v0.3-candidate/stop-response.schema.json index 26b5c2f..e3e307b 100644 --- a/schemas/v0.3-candidate/stop-response.schema.json +++ b/schemas/v0.3-candidate/stop-response.schema.json @@ -24,7 +24,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.stop-response.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.stop-response.v0.3-candidate" } } } ] }, "boundaryStatement": { "$ref": "common-defs.schema.json#/$defs/text" } diff --git a/schemas/v0.3-candidate/task-packet.schema.json b/schemas/v0.3-candidate/task-packet.schema.json index a83b9af..3f6fecb 100644 --- a/schemas/v0.3-candidate/task-packet.schema.json +++ b/schemas/v0.3-candidate/task-packet.schema.json @@ -12,7 +12,7 @@ "digest": { "allOf": [ { "$ref": "common-defs.schema.json#/$defs/digest" }, - { "type": "object", "properties": { "digestDomain": { "const": "org.hacp.task-packet.v0.3-candidate" } } } + { "type": "object", "properties": { "digestDomain": { "const": "io.hacp.task-packet.v0.3-candidate" } } } ] }, "sourceContext": { diff --git a/scripts/compute-vectors.mjs b/scripts/compute-vectors.mjs index 3fd471b..6b0309e 100644 --- a/scripts/compute-vectors.mjs +++ b/scripts/compute-vectors.mjs @@ -30,14 +30,14 @@ const recordKinds = Object.freeze([ ]); const domains = Object.freeze({ - 'task-packet': 'org.hacp.task-packet.v0.3-candidate', - 'human-decision': 'org.hacp.human-decision.v0.3-candidate', - 'consumption-receipt': 'org.hacp.consumption-receipt.v0.3-candidate', - 'continuation-context': 'org.hacp.continuation-context.v0.3-candidate', - 'agent-report': 'org.hacp.agent-report.v0.3-candidate', - 'review-finding': 'org.hacp.review-finding.v0.3-candidate', - 'stop-response': 'org.hacp.stop-response.v0.3-candidate', - 'successor-start-evidence': 'org.hacp.successor-start-evidence.v0.3-candidate' + 'task-packet': 'io.hacp.task-packet.v0.3-candidate', + 'human-decision': 'io.hacp.human-decision.v0.3-candidate', + 'consumption-receipt': 'io.hacp.consumption-receipt.v0.3-candidate', + 'continuation-context': 'io.hacp.continuation-context.v0.3-candidate', + 'agent-report': 'io.hacp.agent-report.v0.3-candidate', + 'review-finding': 'io.hacp.review-finding.v0.3-candidate', + 'stop-response': 'io.hacp.stop-response.v0.3-candidate', + 'successor-start-evidence': 'io.hacp.successor-start-evidence.v0.3-candidate' }); const kindFromRecord = Object.freeze({ @@ -256,7 +256,7 @@ async function buildConformancePackage() { const invalidRecords = buildInvalidFixtures(success, stop); const expectedInvalid = buildInvalidManifest(success, stop, invalidRecords, bundles); const manifest = { - schema: 'hacp.v0_3_candidate.conformance_manifest.v2', + schema: 'hacp.v0_3_candidate.conformance_manifest.v3', candidateStatus: true, sourcePacketCommit: 'db47da2118355683f34fd955083c2b3c38769fe4', regenerationBaseCommit: '73056a53fd87ce20d6a40f8c2188d2fb0a07ce7f', @@ -265,8 +265,12 @@ async function buildConformancePackage() { mergeCommit: 'c6677da198c166079132ac2a23a39afeade26af3', inspectedMainAtPreparation: '04a89f5509035b3299bb3786da1e9909a4e78dc0' }, - reviewRequired: { digestDomains: Object.values(domains) }, ownerRulings: { + digestDomains: { + approvedBy: 'Joe Feser', + approvedOn: '2026-09-07', + values: Object.values(domains) + }, secondImplementationQualification: { sourceIssue: 'https://github.com/joefeser/hacp/issues/47', candidatePromotion: 'independent_production_plus_cross_validation', @@ -1052,8 +1056,7 @@ async function validateCorpus(manifest) { digestAlgorithm: 'sha256', canonicalization: 'RFC 8785 JCS', candidateOnly: true, - reviewRequired: ['digest domains'], - ownerRuled: ['second-implementation qualification'] + ownerRuled: ['digest domains', 'second-implementation qualification'] }; } diff --git a/scripts/compute-vectors.test.mjs b/scripts/compute-vectors.test.mjs index 48bd0b1..18bf5c6 100644 --- a/scripts/compute-vectors.test.mjs +++ b/scripts/compute-vectors.test.mjs @@ -33,9 +33,9 @@ async function rejectsManifest(edit, pattern) { await assert.rejects(() => validateManifest(cloneManifest(edit)), pattern); } -test('manifest v2 preserves candidate status and owner-ruled qualification', async () => { +test('manifest v3 preserves candidate status and owner rulings', async () => { await validateManifest(manifest); - assert.equal(manifest.schema, 'hacp.v0_3_candidate.conformance_manifest.v2'); + assert.equal(manifest.schema, 'hacp.v0_3_candidate.conformance_manifest.v3'); assert.equal(manifest.candidateStatus, true); assert.equal(manifest.nonChainInventory, true); assert.deepEqual(manifest.ownerRulings.secondImplementationQualification, { @@ -43,7 +43,20 @@ test('manifest v2 preserves candidate status and owner-ruled qualification', asy candidatePromotion: 'independent_production_plus_cross_validation', fullRelease: 'bidirectional_production_and_consumption' }); - assert.equal(Object.hasOwn(manifest.reviewRequired, 'qualificationRule'), false); + assert.deepEqual(manifest.ownerRulings.digestDomains, { + approvedBy: 'Joe Feser', + approvedOn: '2026-09-07', + values: [ + 'io.hacp.task-packet.v0.3-candidate', + 'io.hacp.human-decision.v0.3-candidate', + 'io.hacp.consumption-receipt.v0.3-candidate', + 'io.hacp.continuation-context.v0.3-candidate', + 'io.hacp.agent-report.v0.3-candidate', + 'io.hacp.review-finding.v0.3-candidate', + 'io.hacp.stop-response.v0.3-candidate', + 'io.hacp.successor-start-evidence.v0.3-candidate' + ] + }); }); test('all three declared bundles validate independently', async () => { diff --git a/scripts/validate-external-bundle.test.mjs b/scripts/validate-external-bundle.test.mjs index 5307582..23aeadf 100644 --- a/scripts/validate-external-bundle.test.mjs +++ b/scripts/validate-external-bundle.test.mjs @@ -26,14 +26,14 @@ const schemaFiles = [ 'stop-response.schema.json' ]; const digestDomains = [ - 'org.hacp.task-packet.v0.3-candidate', - 'org.hacp.human-decision.v0.3-candidate', - 'org.hacp.consumption-receipt.v0.3-candidate', - 'org.hacp.continuation-context.v0.3-candidate', - 'org.hacp.agent-report.v0.3-candidate', - 'org.hacp.review-finding.v0.3-candidate', - 'org.hacp.stop-response.v0.3-candidate', - 'org.hacp.successor-start-evidence.v0.3-candidate' + 'io.hacp.task-packet.v0.3-candidate', + 'io.hacp.human-decision.v0.3-candidate', + 'io.hacp.consumption-receipt.v0.3-candidate', + 'io.hacp.continuation-context.v0.3-candidate', + 'io.hacp.agent-report.v0.3-candidate', + 'io.hacp.review-finding.v0.3-candidate', + 'io.hacp.stop-response.v0.3-candidate', + 'io.hacp.successor-start-evidence.v0.3-candidate' ]; function sha256(bytes) { @@ -228,17 +228,18 @@ test('external paths reject traversal, absolute paths, backslashes, and symlinks }); }); -// This is independently emitted WITS evidence, not a copy of the canonical corpus. -test('committed WITS supplementary bundles retain their merged-source provenance', async () => { - const result = await validateExternalBundleRoot(path.join(repoRoot, 'fixtures/supplementary/v0.3-candidate/wits')); +test('validates the independently regenerated WITS supplementary bundles', async () => { + const result = await validateExternalBundleRoot( + path.join(repoRoot, 'fixtures/supplementary/v0.3-candidate/wits'), + ); assert.equal(result.ok, true); assert.equal(result.candidateOnly, true); - assert.equal(result.producer.sourceCommit, '9fa658f7faf2522de6ea12408c784bb987223f00'); + assert.equal(result.producer.sourceCommit, '48bac116b1077a81dc7adf8e34c78cc3da17c7b2'); assert.equal(result.conformancePackage.canonicalNegativeCases, 22); assert.equal(result.conformancePackage.diagnosticSetsComparedExactly, true); - assert.deepEqual(result.bundles.map(({ kind, records }) => [kind, records]), [ - ['successful_continuation', 6], - ['pre_start_stop', 4], - ['stop_decision_response', 5] + assert.deepEqual(result.bundles.map(({ id, records }) => ({ id, records })), [ + { id: 'successful_continuation', records: 6 }, + { id: 'pre_start_stop', records: 4 }, + { id: 'stop_decision_response', records: 5 }, ]); });