Skip to content

Publish HACP v0.3 candidate qualification evidence - #68

Merged
joefeser merged 4 commits into
mainfrom
codex/v03-candidate-publication
Sep 8, 2026
Merged

joefeser merged 4 commits into
mainfrom
codex/v03-candidate-publication

Conversation

@joefeser

@joefeser joefeser commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • adopt Joe-approved io.hacp.*.v0.3-candidate digest domains and regenerate the canonical package
  • replace the supplementary WITS bundle with independently regenerated candidate records
  • record owner acceptance, dual independent publication review, split-license clarification, and public/private provenance boundaries
  • preserve candidate status, the open WITS Task 1.3f timestamp limitation, and every existing non-claim

Validation

  • npm run hacp:doctor -- schemas/examples --manifest schemas/examples/manifest.json — 15 valid / 9 invalid
  • npm run hacp:cli-bridge-examples — 8 files
  • npm run hacp:v03-candidate — 43/43
  • npm run hacp:v03-external -- --root fixtures/supplementary/v0.3-candidate/wits — 3 bundles / 22 exact negative diagnostic sets
  • WITS disposable PostgreSQL proof — 8/8
  • git diff --check

Candidate boundaries

This publishes candidate evidence only. It does not complete WITS Task 1.3f, amend R4B, authorize runtime execution, prove distributed or external effects, or establish full-release conformance. Bidirectional production/consumption remains a later full-release gate.

Summary by Sourcery

Publish the corrected and independently validated HACP v0.3 candidate evidence package while preserving its documented scope and limitations.

New Features:

  • Publish the regenerated HACP v0.3 candidate conformance package with owner-approved candidate digest domains and independently regenerated WITS evidence.

Bug Fixes:

  • Correct candidate digest namespaces from org.hacp.* to the approved io.hacp.* values and regenerate affected records, manifests, and validation evidence.

Enhancements:

  • Document publication readiness, independent review outcomes, provenance boundaries, candidate limitations, and the distinction between HACP encoding evidence and who-decides semantic evidence.
  • Clarify split licensing for machine-readable artefacts, executable source code, and validation or generation scripts.

Documentation:

  • Update public status and source-packet documentation to describe the v0.3 candidate evidence, approvals, provenance, and retained non-claims.

Tests:

  • Validate the regenerated candidate package, independently produced WITS bundles, exact negative diagnostic corpus, and disposable PostgreSQL integration proof.

Chores:

  • Retain candidate-only status and explicitly leave WITS Task 1.3f, bidirectional production and consumption, runtime authorization, and full-release conformance as future gates.

@sourcery-ai

sourcery-ai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Reviewer's Guide

This PR publishes a regenerated HACP v0.3 candidate evidence package: it adopts owner-approved io.hacp.*.v0.3-candidate digest domains, updates and repins canonical and independently produced WITS fixtures with validation evidence, and records publication-readiness decisions, licensing scope, and explicit limits preventing interpretation as a standard, runtime authorization, or full-release conformance.

Sequence diagram for v0.3 candidate regeneration and validation

sequenceDiagram
    participant Owner as Joe Feser
    participant HACP as HACP package generator
    participant WITS as WITS producer
    participant Validator as HACP external validator
    participant Evidence as Public evidence

    Owner->>HACP: approve exact io.hacp.*.v0.3-candidate domains
    HACP->>HACP: buildConformancePackage()
    HACP-->>WITS: canonical candidate package
    WITS->>WITS: generate candidate bundles independently
    WITS-->>Validator: three external bundles
    Validator->>Validator: validateExternalBundleRoot()
    Validator-->>Evidence: publish validation receipt and public-safe bytes
Loading

Flow diagram for HACP candidate publication boundaries

flowchart TD
    Candidate[Publish v0.3 candidate evidence]
    Candidate --> Evidence[Bounded local and synthetic evidence]
    Candidate --> Interop[Independent WITS production and cross-validation]
    Candidate --> Limits[Retained candidate limitations]
    Limits --> Task[WITS Task 1.3f remains open]
    Limits --> Runtime[No runtime execution authorization]
    Limits --> Release[No standard or full-release conformance]
    Limits --> Effects[No distributed or external-effects claim]
Loading

File-Level Changes

Change Details Files
Regenerate the v0.3 candidate package with owner-approved digest domains and record the approval in a versioned manifest.
  • Replace all org.hacp.* candidate domains with the approved io.hacp.* values.
  • Upgrade the conformance manifest from v2 to v3 and move domain status into structured owner rulings.
  • Regenerate canonical records, digests, schemas, examples, fixtures, and vector tests; retain candidate-only and non-claim boundaries.
schemas/v0.3-candidate/README.md
schemas/v0.3-candidate/fixtures/manifest.json
schemas/v0.3-candidate/package/conformance-manifest.schema.json
scripts/compute-vectors.mjs
scripts/compute-vectors.test.mjs
scripts/validate-external-bundle.test.mjs
schemas/v0.3-candidate/**/*.json
Replace the prior supplementary WITS evidence with independently regenerated candidate bundles and cross-validation metadata.
  • Repin provenance to the regenerated WITS producer commit and update the external manifest and emitted records.
  • Validate three bundles and compare the complete 22-case negative diagnostic corpus exactly.
  • Document public-safe emitted bytes, reproduction steps, disposable PostgreSQL proof, and the remaining Task 1.3f timestamp limitation.
fixtures/supplementary/v0.3-candidate/wits/**
docs/source-packets/wits-v0/supplementary-fixtures.md
docs/source-packets/wits-v0/supplementary-validation-receipt.json
docs/source-packets/wits-v0/examples/*.candidate.json
scripts/validate-external-bundle.test.mjs
Publish the governance and publication-readiness evidence while preserving explicit candidate and licensing boundaries.
  • Record owner acceptance, two independent reviews against a pinned package, and the bounded scope of the evidence.
  • Clarify Apache-2.0 coverage for machine-readable artefacts, executable source, and generation or validation scripts versus CC BY prose.
  • Update public status language to distinguish bounded interworking evidence from standards maturity, runtime authorization, distributed effects, and full-release conformance.
docs/v0.3-candidate-publication-readiness.md
docs/source-packets/wits-v0/qualification-decision-packet.md
PUBLICATION-CHECKLIST.md
LICENSE.md
README.md
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md
docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="scripts/validate-external-bundle.test.mjs" line_range="238-239" />
<code_context>
-  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],
</code_context>
<issue_to_address>
**issue (testing):** The updated external-bundle test no longer asserts that `diagnosticSetsComparedExactly` is true, so a validator that stops comparing the 22 canonical negative diagnostic sets can still pass this test and falsely report regenerated WITS evidence as fully cross-validated.

**Triggers:** When the negative-case comparison regresses while bundle validation and the positive bundle assertions continue to pass.

**Suggested fix:** Restore the assertion that `result.diagnosticSetsComparedExactly` is `true`.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 1 finding to address first, and the change publishes a new candidate digest-domain contract and regenerates all dependent hashes and external fixtures. If the approved strings or regenerated evidence are wrong, consumers can produce or reject incompatible records after the repository is reverted, but the bounded candidate corpus and digests can be regenerated and migrated without an irreversible production effect.

Blocking findings: scripts/validate-external-bundle.test.mjs:239


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread scripts/validate-external-bundle.test.mjs
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Publish HACP v0.3 candidate qualification evidence

🐞 Bug fix ✨ Enhancement 🧪 Tests 📝 Documentation ⚙️ Configuration changes 🕐 40+ Minutes

Grey Divider

AI Description

• Adopt owner-approved io.hacp.* digest domains and regenerate candidate artifacts.
• Publish independently regenerated WITS bundles with exact cross-validation evidence.
• Record publication approvals, licensing boundaries, residual risks, and non-claims.
Diagram

graph TD
  A["Owner Rulings"] --> B["Vector Generator"] --> C["Canonical Package"] --> D["WITS Producer"] --> E["WITS Bundles"] --> F["HACP Validator"] --> G["Readiness Evidence"]
  H["Independent Reviews"] --> G
Loading
High-Level Assessment

Full deterministic regeneration is the correct approach because digest-domain strings are hash inputs: manually patching selected values would risk broken cross-record references and unverifiable provenance. Versioning the manifest to v3 and repinning independently produced WITS evidence cleanly preserves candidate status while making owner rulings machine-verifiable.

Files changed (74) +718 / -617

Enhancement (1) +29 / -18
conformance-manifest.schema.jsonDefine conformance manifest v3 owner rulings +29/-18

Define conformance manifest v3 owner rulings

• Replaces review-required domains with a strict, ordered owner-approved domain record and advances the manifest schema version.

schemas/v0.3-candidate/package/conformance-manifest.schema.json

Bug fix (10) +50 / -47
agent-report.schema.jsonEnforce approved agent-report digest domains +6/-6

Enforce approved agent-report digest domains

• Changes the report, context, decision, receipt, and start-evidence domain constraints to 'io.hacp.*'.

schemas/v0.3-candidate/agent-report.schema.json

common-defs.schema.jsonReplace the shared digest-domain vocabulary +10/-10

Replace the shared digest-domain vocabulary

• Updates the common domain enumeration and decision-request reference constraints to the approved namespace.

schemas/v0.3-candidate/common-defs.schema.json

consumption-receipt.schema.jsonEnforce approved receipt digest domains +2/-2

Enforce approved receipt digest domains

• Updates human-decision and consumption-receipt domain constants to 'io.hacp.*'.

schemas/v0.3-candidate/consumption-receipt.schema.json

continuation-context.schema.jsonEnforce approved continuation-context domains +3/-3

Enforce approved continuation-context domains

• Updates decision, receipt, and context digest-reference constraints to the corrected namespace.

schemas/v0.3-candidate/continuation-context.schema.json

human-decision.schema.jsonEnforce approved human-decision domains +2/-2

Enforce approved human-decision domains

• Changes packet and decision digest constants to the owner-approved namespace.

schemas/v0.3-candidate/human-decision.schema.json

external-bundle-manifest.schema.jsonRequire approved domains in external bundles +8/-8

Require approved domains in external bundles

• Updates the exact ordered digest-domain list accepted from external candidate producers.

schemas/v0.3-candidate/package/external-bundle-manifest.schema.json

review-finding.schema.jsonEnforce approved review-finding domains +2/-2

Enforce approved review-finding domains

• Updates task-packet and review-finding digest constants to 'io.hacp.*'.

schemas/v0.3-candidate/review-finding.schema.json

stop-response.schema.jsonEnforce the approved stop-response domain +1/-1

Enforce the approved stop-response domain

• Changes the stop-response digest constraint to the corrected candidate namespace.

schemas/v0.3-candidate/stop-response.schema.json

task-packet.schema.jsonEnforce the approved task-packet domain +1/-1

Enforce the approved task-packet domain

• Changes the task-packet digest constraint to 'io.hacp.task-packet.v0.3-candidate'.

schemas/v0.3-candidate/task-packet.schema.json

compute-vectors.mjsGenerate manifest v3 with approved domains +15/-12

Generate manifest v3 with approved domains

• Uses the corrected namespace, emits dated digest-domain owner rulings, and reports both domain and qualification decisions as owner-ruled.

scripts/compute-vectors.mjs

Tests (53) +467 / -468
agent-report.candidate.jsonRegenerate the candidate agent-report example +14/-14

Regenerate the candidate agent-report example

• Replaces all referenced digest domains with 'io.hacp.*' values and updates the resulting canonical digests.

docs/source-packets/wits-v0/examples/agent-report.candidate.json

consumption-receipt.candidate.jsonRegenerate the candidate consumption receipt example +6/-6

Regenerate the candidate consumption receipt example

• Updates the receipt and its decision references to the approved digest namespace and recalculated hashes.

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json

continuation-context.candidate.jsonRegenerate the continuation-context example +6/-6

Regenerate the continuation-context example

• Moves decision, receipt, and context digests to the approved namespace with matching canonical values.

docs/source-packets/wits-v0/examples/continuation-context.candidate.json

human-decision.candidate.jsonRegenerate the human-decision example +6/-6

Regenerate the human-decision example

• Updates packet, finding, and decision digest domains and values for the corrected candidate package.

docs/source-packets/wits-v0/examples/human-decision.candidate.json

review-finding.candidate.jsonRegenerate the review-finding example +4/-4

Regenerate the review-finding example

• Recomputes the packet and finding digests under the 'io.hacp.*' namespace.

docs/source-packets/wits-v0/examples/review-finding.candidate.json

stop-response.candidate.jsonRegenerate the stop-response example +2/-2

Regenerate the stop-response example

• Updates the stop-response digest domain and its canonical SHA-256 value.

docs/source-packets/wits-v0/examples/stop-response.candidate.json

task-packet.candidate.jsonRegenerate the task-packet example +2/-2

Regenerate the task-packet example

• Updates the task-packet domain and digest for the corrected candidate namespace.

docs/source-packets/wits-v0/examples/task-packet.candidate.json

supplementary-validation-receipt.jsonReplace the WITS cross-validation receipt +25/-39

Replace the WITS cross-validation receipt

• Records the regenerated WITS run, corrected HACP package hashes, successful tests, exact diagnostic comparison, and explicit access and timestamp limitations.

docs/source-packets/wits-v0/supplementary-validation-receipt.json

external-bundle-manifest.jsonRepin the regenerated external WITS bundle +31/-31

Repin the regenerated external WITS bundle

• Updates package hashes, approved digest domains, producer provenance, timestamps, and every emitted fixture checksum.

fixtures/supplementary/v0.3-candidate/wits/external-bundle-manifest.json

authority-basis-decision.jsonReplace the WITS stop authority decision +11/-11

Replace the WITS stop authority decision

• Stores the independently regenerated stop-branch authority record with new identifiers, references, domains, and hashes.

fixtures/supplementary/v0.3-candidate/wits/records/stop/authority-basis-decision.json

decision-request.jsonReplace the WITS stop decision request +8/-8

Replace the WITS stop decision request

• Updates the regenerated stop-branch request identifiers, source references, and candidate digests.

fixtures/supplementary/v0.3-candidate/wits/records/stop/decision-request.json

response-decision.jsonReplace the WITS stop response decision +11/-11

Replace the WITS stop response decision

• Records the regenerated non-authorizing response with corrected domains, identifiers, references, and hashes.

fixtures/supplementary/v0.3-candidate/wits/records/stop/response-decision.json

stop-response.jsonReplace the WITS stop response +5/-5

Replace the WITS stop response

• Updates the regenerated stop record's IDs, linked decision, domain, and digest.

fixtures/supplementary/v0.3-candidate/wits/records/stop/stop-response.json

task-packet.jsonReplace the WITS stop task packet +5/-5

Replace the WITS stop task packet

• Updates the stop-branch packet with regenerated identifiers, source references, and approved digest namespace.

fixtures/supplementary/v0.3-candidate/wits/records/stop/task-packet.json

agent-report.jsonReplace the WITS success agent report +27/-27

Replace the WITS success agent report

• Stores the regenerated success report with corrected domains, linked evidence, timestamps, identifiers, and canonical hashes.

fixtures/supplementary/v0.3-candidate/wits/records/success/agent-report.json

authority-basis-decision.jsonReplace the WITS success authority decision +11/-11

Replace the WITS success authority decision

• Updates the independently generated authority record and all packet, finding, and evidence references.

fixtures/supplementary/v0.3-candidate/wits/records/success/authority-basis-decision.json

consumption-receipt.jsonReplace the WITS success consumption receipt +16/-16

Replace the WITS success consumption receipt

• Updates claim timing, authority references, expiration data, identifiers, and canonical digests from the regenerated run.

fixtures/supplementary/v0.3-candidate/wits/records/success/consumption-receipt.json

continuation-context.jsonReplace the WITS success continuation context +9/-9

Replace the WITS success continuation context

• Updates the regenerated context, decision, and receipt references with corrected digest domains and values.

fixtures/supplementary/v0.3-candidate/wits/records/success/continuation-context.json

decision-request.jsonReplace the WITS success decision request +8/-8

Replace the WITS success decision request

• Stores regenerated request identifiers, source references, and packet and finding digests.

fixtures/supplementary/v0.3-candidate/wits/records/success/decision-request.json

task-packet.jsonReplace the WITS success task packet +5/-5

Replace the WITS success task packet

• Updates the success packet's generated identifiers, source references, domain, and digest.

fixtures/supplementary/v0.3-candidate/wits/records/success/task-packet.json

agent-report.loop-counter.invalid.jsonRegenerate the invalid loop-counter report +14/-14

Regenerate the invalid loop-counter report

• Recomputes all domains and digests while retaining the intended loop-counter violation.

schemas/v0.3-candidate/fixtures/invalid/agent-report.loop-counter.invalid.json

agent-report.return-before-start.invalid.jsonRegenerate the return-before-start report +14/-14

Regenerate the return-before-start report

• Recomputes referenced hashes under the approved domains while preserving the invalid event ordering.

schemas/v0.3-candidate/fixtures/invalid/agent-report.return-before-start.invalid.json

agent-report.spliced-authority.invalid.jsonRegenerate the spliced-authority report +14/-14

Regenerate the spliced-authority report

• Updates candidate domains and hashes while preserving the unrelated packet authority splice.

schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-authority.invalid.json

agent-report.spliced-decision.invalid.jsonRegenerate the spliced-decision report +14/-14

Regenerate the spliced-decision report

• Updates the fixture's domains and canonical values while retaining its decision-linkage violation.

schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-decision.invalid.json

agent-report.spliced-request.invalid.jsonRegenerate the spliced-request report +14/-14

Regenerate the spliced-request report

• Recomputes the report and references while preserving the mismatched request condition.

schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-request.invalid.json

agent-report.spliced-start-evidence.invalid.jsonRegenerate the spliced start-evidence report +14/-14

Regenerate the spliced start-evidence report

• Updates all domains and hashes, including the intentionally unrelated start-evidence digest.

schemas/v0.3-candidate/fixtures/invalid/agent-report.spliced-start-evidence.invalid.json

agent-report.stripped-context.invalid.jsonRegenerate the stripped-context report +12/-12

Regenerate the stripped-context report

• Recomputes remaining digest references while preserving the missing continuation context.

schemas/v0.3-candidate/fixtures/invalid/agent-report.stripped-context.invalid.json

consumption-receipt.claim-after-start.invalid.jsonRegenerate the claim-after-start receipt +6/-6

Regenerate the claim-after-start receipt

• Updates domains and hashes while retaining the invalid claim and start ordering.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.claim-after-start.invalid.json

consumption-receipt.divergent-request.invalid.jsonRegenerate the divergent-request receipt +6/-6

Regenerate the divergent-request receipt

• Moves digest references to the approved namespace while retaining the mismatched stop request.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.divergent-request.invalid.json

consumption-receipt.expired-before-start.invalid.jsonRegenerate the pre-start expiry receipt +6/-6

Regenerate the pre-start expiry receipt

• Recomputes canonical digests while preserving the receipt-expired-before-start violation.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired-before-start.invalid.json

consumption-receipt.expired.invalid.jsonRegenerate the expired receipt fixture +6/-6

Regenerate the expired receipt fixture

• Updates decision, request, and receipt digest values without changing the intended expiry failure.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.expired.invalid.json

consumption-receipt.fractional-claim-order.invalid.jsonRegenerate the fractional-order receipt +6/-6

Regenerate the fractional-order receipt

• Recomputes digests under 'io.hacp.*' while retaining the fractional timestamp ordering violation.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.fractional-claim-order.invalid.json

consumption-receipt.leap-second-expiry.invalid.jsonRegenerate the leap-second expiry receipt +6/-6

Regenerate the leap-second expiry receipt

• Updates candidate hashes while preserving the invalid leap-second expiry condition.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.leap-second-expiry.invalid.json

consumption-receipt.revoked.invalid.jsonRegenerate the revoked receipt fixture +6/-6

Regenerate the revoked receipt fixture

• Moves the fixture to approved domains while retaining the manifest-driven revocation failure.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.revoked.invalid.json

consumption-receipt.scope-expansion.invalid.jsonRegenerate the scope-expansion receipt +6/-6

Regenerate the scope-expansion receipt

• Recomputes decision and receipt digests while retaining the unauthorized scope expansion.

schemas/v0.3-candidate/fixtures/invalid/consumption-receipt.scope-expansion.invalid.json

continuation-context.stale-replay.invalid.jsonRegenerate the stale continuation context +5/-5

Regenerate the stale continuation context

• Updates receipt and context domains and values while preserving stale decision replay evidence.

schemas/v0.3-candidate/fixtures/invalid/continuation-context.stale-replay.invalid.json

human-decision.digest-mismatch.invalid.jsonRegenerate the digest-mismatch decision +5/-5

Regenerate the digest-mismatch decision

• Updates valid references to the approved domains while retaining the intentionally incorrect decision hash.

schemas/v0.3-candidate/fixtures/invalid/human-decision.digest-mismatch.invalid.json

human-decision.non-approval.invalid.jsonRegenerate the non-approval decision +6/-6

Regenerate the non-approval decision

• Recomputes packet, finding, and decision digests while preserving the non-approving disposition.

schemas/v0.3-candidate/fixtures/invalid/human-decision.non-approval.invalid.json

stop-response.spliced-packet.invalid.jsonRegenerate the spliced-packet stop response +2/-2

Regenerate the spliced-packet stop response

• Updates the stop-response domain and digest while retaining its packet linkage violation.

schemas/v0.3-candidate/fixtures/invalid/stop-response.spliced-packet.invalid.json

task-packet.loop-ceiling.invalid.jsonRegenerate the invalid loop-ceiling packet +2/-2

Regenerate the invalid loop-ceiling packet

• Recomputes the task-packet digest while preserving the invalid loop ceiling.

schemas/v0.3-candidate/fixtures/invalid/task-packet.loop-ceiling.invalid.json

authority-basis-decision.valid.jsonRegenerate the valid stop authority decision +6/-6

Regenerate the valid stop authority decision

• Updates packet, finding, and decision digests to the approved namespace.

schemas/v0.3-candidate/fixtures/valid/stop/authority-basis-decision.valid.json

response-decision.valid.jsonRegenerate the valid stop response decision +6/-6

Regenerate the valid stop response decision

• Updates packet, stop-response, and response-decision digests while retaining the non-authorizing semantics.

schemas/v0.3-candidate/fixtures/valid/stop/response-decision.valid.json

review-finding.valid.jsonRegenerate the valid stop review finding +4/-4

Regenerate the valid stop review finding

• Recomputes the packet and finding digests under the corrected candidate domains.

schemas/v0.3-candidate/fixtures/valid/stop/review-finding.valid.json

stop-response.valid.jsonRegenerate the valid stop response +2/-2

Regenerate the valid stop response

• Updates the stop-response domain and canonical digest.

schemas/v0.3-candidate/fixtures/valid/stop/stop-response.valid.json

task-packet.valid.jsonRegenerate the valid stop task packet +2/-2

Regenerate the valid stop task packet

• Updates the task-packet domain and canonical digest for the stop branch.

schemas/v0.3-candidate/fixtures/valid/stop/task-packet.valid.json

agent-report.valid.jsonRegenerate the valid success agent report +14/-14

Regenerate the valid success agent report

• Updates the report and all embedded digest references to the approved domains and recalculated values.

schemas/v0.3-candidate/fixtures/valid/success/agent-report.valid.json

consumption-receipt.valid.jsonRegenerate the valid success receipt +6/-6

Regenerate the valid success receipt

• Updates the decision, request, and receipt digest domains and hashes.

schemas/v0.3-candidate/fixtures/valid/success/consumption-receipt.valid.json

continuation-context.valid.jsonRegenerate the valid success context +6/-6

Regenerate the valid success context

• Updates decision, receipt, and continuation-context digest references and values.

schemas/v0.3-candidate/fixtures/valid/success/continuation-context.valid.json

human-decision.valid.jsonRegenerate the valid human decision +6/-6

Regenerate the valid human decision

• Recomputes packet, finding, and human-decision digests under 'io.hacp.*'.

schemas/v0.3-candidate/fixtures/valid/success/human-decision.valid.json

review-finding.valid.jsonRegenerate the valid success finding +4/-4

Regenerate the valid success finding

• Updates packet and finding digest domains and canonical hashes.

schemas/v0.3-candidate/fixtures/valid/success/review-finding.valid.json

task-packet.valid.jsonRegenerate the valid success task packet +2/-2

Regenerate the valid success task packet

• Updates the task-packet domain and digest for the successful branch.

schemas/v0.3-candidate/fixtures/valid/success/task-packet.valid.json

compute-vectors.test.mjsTest manifest v3 owner rulings +16/-3

Test manifest v3 owner rulings

• Updates manifest-version assertions and verifies the exact approved digest-domain metadata and ordering.

scripts/compute-vectors.test.mjs

validate-external-bundle.test.mjsValidate regenerated WITS evidence +17/-17

Validate regenerated WITS evidence

• Uses the corrected domains, checks the new WITS source pin, and verifies all three regenerated bundle inventories.

scripts/validate-external-bundle.test.mjs

Documentation (9) +156 / -70
LICENSE.mdClarify the repository split-license boundary +8/-5

Clarify the repository split-license boundary

• Explicitly places schemas, executable source, and validation or generation scripts under Apache-2.0 while retaining narrative protocol documents under CC BY 4.0.

LICENSE.md

PUBLICATION-CHECKLIST.mdRecord completed candidate publication gates +9/-5

Record completed candidate publication gates

• Marks owner acceptance, digest-domain approval, and dual independent review as complete and links their supporting evidence.

PUBLICATION-CHECKLIST.md

README.mdDescribe bounded candidate interworking status +10/-5

Describe bounded candidate interworking status

• Updates project status to acknowledge two bounded implementations while preserving non-claims around standard maturity, distributed execution, and external effects.

README.md

accountable-continuation-v0.3-draft.mdSupersede the proposed digest namespace +6/-5

Supersede the proposed digest namespace

• Records owner approval of the 'io.hacp.*.v0.3-candidate' domains and reiterates that they remain candidate-scoped.

docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md

qualification-decision-packet.mdRecord owner qualification and publication decisions +27/-26

Record owner qualification and publication decisions

• Documents approval of the exact digest domains, regenerated implementation pins, candidate publication authorization, and the still-open WITS timestamp limitation.

docs/source-packets/wits-v0/qualification-decision-packet.md

stop-response-branch-conformance-proposal.mdClarify candidate-scoped digest status +2/-2

Clarify candidate-scoped digest status

• Reframes digest domains as approved but candidate-scoped and non-standard rather than awaiting final approval.

docs/source-packets/wits-v0/stop-response-branch-conformance-proposal.md

supplementary-fixtures.mdRepin independently regenerated WITS fixtures +12/-8

Repin independently regenerated WITS fixtures

• Updates WITS and HACP source pins, explains public/private provenance boundaries, and records owner acceptance without claiming full-release qualification.

docs/source-packets/wits-v0/supplementary-fixtures.md

v0.3-candidate-publication-readiness.mdPublish the candidate readiness synthesis +64/-0

Publish the candidate readiness synthesis

• Adds the pinned dual-review record, owner decisions, regenerated evidence chain, licensing clarification, public provenance boundary, and residual risks.

docs/v0.3-candidate-publication-readiness.md

README.mdDocument approved domains and manifest v3 +18/-14

Document approved domains and manifest v3

• Describes the owner-approved namespace, manifest v3, accepted external proof, and retained candidate-only limitations.

schemas/v0.3-candidate/README.md

Other (1) +16 / -14
manifest.jsonUpgrade the conformance manifest to v3 +16/-14

Upgrade the conformance manifest to v3

• Moves digest domains from review-required data into dated owner rulings and updates the revoked digest reference.

schemas/v0.3-candidate/fixtures/manifest.json

@qodo-code-review

qodo-code-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Final package lacks independent review ✓ Resolved 🐞 Bug ≡ Correctness
Description
docs/v0.3-candidate-publication-readiness.md binds both reviews to commit 7d896f1d..., but the
same document says those reviews identified the old namespace and that the canonical package was
regenerated after the correction. Marking the checklist gate complete therefore treats reviews of
the pre-correction package as reviews of the changed io.hacp package being published, so the exact
package required by the gate has not received two reviews.
Code

docs/v0.3-candidate-publication-readiness.md[R7-10]

+Two independent reviewers received the same 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
Relevance

●●● Strong

The checklist explicitly requires reviews of the same package; repinning after correction leaves the
final artifact unreviewed.

PR-#23

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The readiness record pins both reviews at lines 7–12, then states at lines 27–40 that a reviewer
found the old namespace and the package was corrected and regenerated afterward. The checklist at
lines 22–24 requires two independent reviews of the same pinned package before publication
readiness, so the documented reviews do not cover the final corrected artifact.

docs/v0.3-candidate-publication-readiness.md[7-12]
docs/v0.3-candidate-publication-readiness.md[27-40]
PUBLICATION-CHECKLIST.md[22-24]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The publication-readiness record cites two reviews of a repository pin that predates the namespace correction and package regeneration. Obtain two independent reviews against the same finalized corrected package, record that final pin and its results, and only then mark the checklist gate complete.

## Issue Context
The readiness synthesis records that the reviewers found the prior namespace problem and that the package was subsequently corrected and regenerated. The checklist specifically requires two reviews against the same pinned candidate package, so reviews of the earlier package cannot satisfy the gate for the corrected publication artifact.

## Fix Focus Areas
- docs/v0.3-candidate-publication-readiness.md[7-12]
- docs/v0.3-candidate-publication-readiness.md[27-40]
- PUBLICATION-CHECKLIST.md[22-24]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Readers get false implementation count ✓ Resolved 🔗 Cross-repo conflict ≡ Correctness
Description
README.md counts the Who Decides local-owner proof as an implementation of the v0.3 candidate
encoding, although that proof constructs v0.1-draft records and its artifact validator only loads
v0.1-draft schemas. Once published, this wording characterizes semantic qualification evidence from
Who Decides as production and validation of the separate v0.3 record encoding.
Code

README.md[R183-185]

+on practical implementation evidence. The v0.3 candidate encoding now has two
+bounded implementations: the local, synthetic who-decides proof and an
+independently produced WITS projection cross-validated by HACP. This is useful
Relevance

●●● Strong

Accepted precedents favor correcting documentation when claims exceed the exact evidence or schema
supported by implementations.

PR-#8
PR-#17

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The changed README explicitly calls the Who Decides proof one of two v0.3 encoding implementations,
while the pinned Who Decides source constructs hacp_version: 'v0.1-draft' records and resolves
artifact schemas exclusively from its v0.1-draft directory. The HACP source packet itself
distinguishes that narrower local-owner implementation from the separate v0.3 conformance records.

README.md[182-189]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[5-15]
External repo: joefeser/who-decides, scripts/local-owner-proof.ts [17-25]
External repo: joefeser/who-decides, src/artifacts/schemas.ts [10-30]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The status section incorrectly counts the Who Decides local-owner proof as an implementation of the HACP v0.3 candidate encoding. That proof exercises separately pinned continuation semantics using v0.1-draft records rather than producing or validating the v0.3 record encoding.

## Issue Context
Keep the accepted 44-case proof as bounded semantic qualification evidence, but count only implementations that actually produce or validate the v0.3 encoding as encoding implementations.

## Fix Focus Areas
- README.md[182-189]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
✅ Cross-repo context — repo relationships
  Explored: repo: joefeser/hacp.io (sha: 9a9f12d1)
  Explored: repo: joefeser/who-decides (sha: c318064c)
  Explored: repo: joefeser/what-is-the-spec (branch: codex/hacp-v03-domain-repin, sha: 48bac116)
Review mode: 🧠 Deep: This is a broad, high-stakes candidate publication changing schemas, digest contracts, generators, validators, manifests, fixtures, provenance, and licensing across many independent edit sites, creating substantial opportunity for subtle cross-file inconsistencies.

Grey Divider

Tip of the day
💡 Did you know, you can tweak Display preferences with a live preview to see your comment before it ships

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread docs/v0.3-candidate-publication-readiness.md Outdated
Comment thread README.md Outdated
@joefeser

joefeser commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-08T03:46:18.906715Z aef2090 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5cd7036f5b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread PUBLICATION-CHECKLIST.md
@joefeser

joefeser commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

PR review loop disposition:

  • Thread: Publish HACP v0.3 candidate qualification evidence #68 (comment)
  • Reason: Fixed: two independent reviewers inspected exact corrected package pin a865b36 with the same pinned evidence. The later documentation-only commit records their synthesis and corrections without changing schemas, fixture bytes, digests, manifest, or executable validation behavior.
  • Fixing commit: aef2090
  • Validation evidence: Both reviewers independently reran the 43/43 candidate suite and three-bundle external WITS validation. Coordinator reran 43/43, doctor 15 valid/9 invalid, CLI bridge 8 files, and git diff --check.
  • Residual risk: Candidate-only limitations remain explicit: synthetic/local evidence, shared canonicalization dependency, private WITS source access, open WITS Task 1.3f, and no distributed/external-effect/full-release claim.

This note records why the loop is not waiting indefinitely on this finding state.

@joefeser

joefeser commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

@codex review

agent-control fresh required Codex review request

  • Current head: aef2090
  • Prior reviewed head: 5cd7036
  • Reason: agent-control clean stale-review recovery: current head aef2090 has no unresolved threads, actionable bot findings, failed checks, or unacceptable merge state after patching review findings

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

Reviewed commit: aef209058b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@joefeser

joefeser commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

PR review loop disposition:

  • Thread: Publish HACP v0.3 candidate qualification evidence #68 (review)
  • Reason: The prior-head Qodo review contained two inline findings. Both are settled on the current head: two independent reviews covered exact corrected package pin a865b36 and the final synthesis/checklist record is now committed; the README and candidate package docs also distinguish WITS v0.3 encoding production from the separate who-decides semantic proof.
  • Fixing commit: aef2090
  • Validation evidence: Current-head Codex returned clean. Both independent final-package reviewers reran 43/43 and external bundle validation. Coordinator reran 43/43, doctor 15 valid/9 invalid, CLI bridge 8 files, and git diff --check.
  • Residual risk: Medium candidate-only residuals remain disclosed; Qodo is one-review-per-PR and was not retagged.

This note records why the loop is not waiting indefinitely on this finding state.

@joefeser
joefeser merged commit 671791f into main Sep 8, 2026
2 checks passed
@joefeser
joefeser deleted the codex/v03-candidate-publication branch September 8, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant