Skip to content

Draft HACP v0.3 accountable continuation source packet - #42

Merged
joefeser merged 10 commits into
devfrom
codex/hacp-v0.3-accountable-continuation
Sep 4, 2026
Merged

Draft HACP v0.3 accountable continuation source packet#42
joefeser merged 10 commits into
devfrom
codex/hacp-v0.3-accountable-continuation

Conversation

@joefeser

@joefeser joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a WITS v0-derived HACP v0.3 candidate source packet for accountable continuation and consumption receipts
  • add public-safe candidate JSON sketches for task packet, review finding, human decision, consumption receipt, agent report, and stop response
  • clarify human-origin authority wording, schema version inventory, and publication proof gates

Scope and boundaries

Docs/protocol only. This does not add runtime orchestration, hosted execution, hidden model/tool dispatch, GitHub mutation authority, billing/customer runtime, worker launch authority, or HACP.io product claims. WITS remains a private/reference implementation and is not required to use HACP.

Validation

  • npm run hacp:cli-bridge-examples
  • npm run hacp:doctor -- schemas/examples --manifest schemas/examples/manifest.json
  • git diff --check
  • jq syntax check for docs/source-packets/wits-v0/examples/*.json
  • agent-control onboard doctor --repo joefeser/hacp --base dev --lane-config .agent-control/lanes/pr-review-loop.yaml --json

External proof gate

The read-only who-decides spike commit af8dbd7 records consumption-receipt design intent, but I did not find the full accepted proof bundle for concurrent claim admission, restart readback, claim-before-decision failure, ambiguous execution reporting, and expiry/revocation ordering.

Merge recommendation before ACK: do not merge until the owner accepts that external proof gate, even if docs validation and mechanical ACK gates are otherwise clean.

Refs #39

Summary by Sourcery

Establish the HACP v0.3 accountable-continuation candidate as public source material with supporting artifact sketches and explicit proof and publication boundaries.

New Features:

  • Add a WITS-derived HACP v0.3 candidate source packet defining accountable continuation, single-consumer consumption receipts, successor evidence, and fail-closed extension handling.
  • Add public-safe candidate JSON sketches for continuation artifacts, including task packets, findings, decisions, receipts, contexts, reports, and stop responses.

Enhancements:

  • Clarify that authority originates in a human approval act and distinguish HACP v0.1, v0.2, and v0.3 candidate material and custody-chain compatibility.
  • Document candidate continuation boundaries, digest and validity expectations, stop mappings, loop ceilings, and transport/report evidence requirements.

Documentation:

  • Update repository, source-packet, schema, and publication documentation to describe HACP v0.3 as pre-release source material and define its review surface and publication constraints.

Chores:

  • Add an owner-accepted external proof gate covering concurrent admission, restart readback, claim-before-start ordering, ambiguous execution, and expiry/revocation ordering before merging the consumption-contract draft.

Note

Draft HACP v0.3 accountable continuation source packet

  • Adds the candidate v0.3 source packet document covering accountable continuation scope, human-origin authority, consumption receipts, claim-before-start admission, and fail-closed processing for unknown extensions
  • Adds six candidate JSON artifact sketches: task-packet, human-decision, consumption-receipt, agent-report, review-finding, and stop-response
  • Reclassifies HACP v0.3 as earlier source-packet candidate material rather than a released schema or conformance profile, and updates the authority invariant to state authority originates in a human approval act recorded or referenced by an authority packet
  • Adds a pre-merge gate to PUBLICATION-CHECKLIST.md requiring owner-accepted external proof for v0.3 candidate semantics before the consumption-contract draft merges
  • Risk: v0.1 and v0.2 records are now documented as not interchangeable within one custody chain without an explicit translation record in schemas/README.md

Macroscope summarized ae6254a.

@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.

Sorry @joefeser, this account has used its review budget of 1,500,000 diff characters for the last 7 days.

You can request another review in 15 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@sourcery-ai

sourcery-ai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Reviewer's Guide

This documentation-only PR introduces a public-safe HACP v0.3 candidate source packet and illustrative JSON sketches for accountable continuation, centered on immutable human decisions and separately recorded single-consumer admission receipts, while updating repository status, authority wording, publication gates, and schema-version inventory. It deliberately leaves runtime behavior and conformance claims out of scope and retains an explicit external proof gate before v0.3 semantics are promoted.

Sequence diagram for accountable continuation admission

sequenceDiagram
    participant Human
    participant Decision as HumanDecision
    participant Receipt as ConsumptionReceipt
    participant Successor
    participant Report as AgentReport
    participant Stop as StopResponse

    Human->>Decision: approve bounded scope
    Decision-->>Receipt: reference unchanged decision and digest
    Receipt->>Receipt: admit one successor claim
    alt claim accepted
        Receipt-->>Successor: successor invocation id
        Successor-->>Report: return evidence tied to receipt
    else claim or boundary cannot be proven
        Receipt-->>Stop: return canonical stop reason
    end
Loading

Flow diagram for fail-closed continuation boundaries

flowchart LR
    A[Human decision] --> B[Consumption receipt]
    B --> C{Continuation boundary proven?}
    C -->|Yes| D[One successor admitted]
    D --> E[Agent or adapter report]
    C -->|No| F[Canonical stop response]
    B -.-> G[Decision remains immutable]
    E -.-> H[Evidence is not execution completion]
Loading

File-Level Changes

Change Details Files
Adds a WITS v0-based HACP v0.3 candidate source packet defining accountable continuation around immutable human decisions and separate one-successor consumption receipts.
  • Documents artifact roles from task packet through human decision, receipt, successor report, and fail-closed stop response.
  • Defines authority-origin, receipt-binding, extension-processing, replay, expiry, revocation, and execution-ambiguity boundaries.
  • Documents candidate stop-reason mappings, CLI/HTTP report-return requirements, and RabbitMQ transport-envelope posture.
  • Lists positive and negative conformance candidates and explicitly preserves the external proof gate for concurrency, restart, ordering, and ambiguous execution.
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md
Adds public-safe JSON sketches illustrating the proposed v0.3 continuation artifact set without presenting them as conformance schemas.
  • Provides candidate examples for task packets, review findings, human decisions, consumption receipts, agent reports, and stop responses.
  • Uses placeholder identifiers and digests while documenting that deterministic digest domains and promotion to fixtures remain future work.
docs/source-packets/wits-v0/examples/task-packet.candidate.json
docs/source-packets/wits-v0/examples/review-finding.candidate.json
docs/source-packets/wits-v0/examples/human-decision.candidate.json
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json
docs/source-packets/wits-v0/examples/agent-report.candidate.json
docs/source-packets/wits-v0/examples/stop-response.candidate.json
Updates repository documentation to expose and accurately frame the v0.3 candidate material as pre-release source-packet work.
  • Links the new source packet and examples from the README and source-packets index.
  • Clarifies that human approval originates authority while packets record or reference it.
  • Adds v0.3 candidate status, scope limitations, and the publication proof gate.
README.md
docs/source-packets/README.md
PUBLICATION-CHECKLIST.md
docs/hacp-0.2.md
Expands schema documentation to inventory v0.1 and v0.2 draft artifacts and distinguish them from unpromoted v0.3 sketches.
  • Documents separate profile/version targets and JSON Schema identifier namespaces.
  • Indexes the v0.1 and v0.2 schema families.
  • Clarifies coexistence and translation requirements between draft versions and states that v0.3 examples are not schemas.
schemas/README.md

Possibly linked issues

  • Publish WITS v0 HACP source packet for protocol repo #39: The PR directly expands the requested WITS v0 HACP source packet with protocol docs, examples, boundaries, and proof gates.
  • #unknown: The PR directly supplies draft evidence artifacts and readback boundaries needed for the WITS/ACK overnight loop.

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

@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 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-03T22:50:19.638294Z 5191959 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.

@qodo-code-review

qodo-code-review Bot commented Sep 3, 2026

Copy link
Copy Markdown

PR Summary by Qodo

Draft HACP v0.3 accountable continuation packet

✨ Enhancement 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Defines candidate semantics for single-consumer, fail-closed accountable continuation.
• Adds linked JSON sketches for decisions, receipts, reports, and stop responses.
• Clarifies human-origin authority, schema inventories, and proof-before-merge requirements.
Diagram

graph TD
  A["Task Packet"] --> B["Review Finding"] --> C{"Human Decision"} -->|approved| D["Consumption Receipt"] --> E["Successor Invocation"] --> F["Agent Report"]
  C -->|missing or denied| G["Stop Response"]
  D -->|claim unverified| G
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Promote directly to schemas
  • ➕ Provides machine validation immediately
  • ➕ Creates a concrete implementation target
  • ➖ Prematurely stabilizes semantics without accepted concurrency and restart proofs
  • ➖ Could imply conformance guarantees the repository explicitly disclaims
2. Defer all public material
  • ➕ Avoids publishing concepts before external proof is complete
  • ➕ Eliminates ambiguity between candidate sketches and released schemas
  • ➖ Prevents early protocol review and independent feedback
  • ➖ Hides useful boundaries and unresolved proof requirements

Recommendation: Retain the source-packet-first approach and the separate immutable consumption receipt; it supports review without mutating closed decision schemas or claiming runtime conformance. Do not promote the sketches to schemas—and follow the packet's stated no-merge recommendation—until the owner accepts evidence for single-consumer admission, restart readback, claim-before-start ordering, ambiguous execution, and expiry/revocation behavior.

Files changed (12) +540 / -10

Enhancement (2) +318 / -0
accountable-continuation-v0.3-draft.mdDefine accountable continuation candidate semantics +269/-0

Define accountable continuation candidate semantics

• Introduces the HACP v0.3 candidate flow, immutable consumption receipts, extension processing, canonical stop mappings, report boundaries, and transport posture. It also specifies proof gates and future conformance candidates.

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

consumption-receipt.candidate.jsonSketch single-successor consumption admission +49/-0

Sketch single-successor consumption admission

• Adds a candidate immutable receipt containing decision and request digests, claimant identity, permitted scope, idempotency, trusted time, expiry, revocation, and admission evidence.

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

Documentation (10) +222 / -10
PUBLICATION-CHECKLIST.mdAdd the v0.3 external proof publication gate +5/-0

Add the v0.3 external proof publication gate

• Requires owner-accepted evidence for single-consumer admission, restart durability, claim-before-start failure, ambiguous execution, and expiry/revocation ordering before merging the consumption-contract draft.

PUBLICATION-CHECKLIST.md

README.mdDocument HACP v0.3 candidate scope and maturity +23/-4

Document HACP v0.3 candidate scope and maturity

• Links the accountable-continuation packet and examples, distinguishes candidate material from released schemas, and clarifies that human approval—not packet transport—originates authority.

README.md

hacp-0.2.mdClarify the human origin of packet authority +2/-1

Clarify the human origin of packet authority

• Reframes authority packets as records or references to bounded authority originating in a human approval act, rather than authority sources themselves.

docs/hacp-0.2.md

README.mdIndex the accountable continuation source packet +3/-0

Index the accountable continuation source packet

• Adds the HACP v0.3 candidate packet to the source-packet index with its receipt, invocation-evidence, and fail-closed boundaries.

docs/source-packets/README.md

agent-report.candidate.jsonSketch receipt-linked successor reporting +47/-0

Sketch receipt-linked successor reporting

• Adds a candidate agent report binding attempted work and evidence to the human decision, review finding, consumption receipt, and successor invocation without claiming completion authority.

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

human-decision.candidate.jsonSketch an immutable bounded human decision +34/-0

Sketch an immutable bounded human decision

• Adds a candidate human-origin approval record defining permitted successor scope and explicitly denied authority. Consumption remains external to the decision record.

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

review-finding.candidate.jsonSketch a continuation-gating review finding +23/-0

Sketch a continuation-gating review finding

• Adds a candidate finding that identifies evidence, residual risk, affected surfaces, and the need for a human decision before continuation.

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

stop-response.candidate.jsonSketch fail-closed missing-receipt handling +18/-0

Sketch fail-closed missing-receipt handling

• Adds a canonical missing-authority response for continuation attempts lacking durable accepted-receipt readback, including correction guidance and forbidden effects.

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

task-packet.candidate.jsonSketch inactive bounded continuation context +39/-0

Sketch inactive bounded continuation context

• Adds a candidate task packet defining requested scope, expected evidence, stop conditions, and forbidden effects while keeping authority inactive until human approval.

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

README.mdSeparate v0.1, v0.2, and v0.3 artifact maturity +28/-5

Separate v0.1, v0.2, and v0.3 artifact maturity

• Inventories the v0.1 and v0.2 draft schema families and namespaces, restricts cross-version custody mixing without translation, and identifies v0.3 examples as unpromoted sketches.

schemas/README.md

@qodo-code-review

qodo-code-review Bot commented Sep 3, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Receipt widens approved scope ✓ Resolved 🐞 Bug ≡ Correctness
Description
The human decision limits edits to docs/source-packets/ and explicitly requires ACK/review
evidence, but the accepted receipt replaces that with the broader docs-only edits and generic
report return. This violates the draft’s own rule that scope differences must fail with
SCOPE_CONFLICT.
Code

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[R18-21]

+    "permittedScope": [
+      "docs-only edits",
+      "validation and report return"
+    ],
Relevance

●●● Strong

Scope-boundary and vocabulary corrections are consistently accepted, especially when examples
diverge from approved authority.

PR-#8
PR-#35

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The decision approves three specific actions, including a path-limited edit and ACK/evidence return,
while the receipt admits two broader descriptions. The source packet explicitly requires the receipt
to bind permitted successor scope and maps a continuation differing from approved scope to
SCOPE_CONFLICT.

docs/source-packets/wits-v0/examples/human-decision.candidate.json[14-18]
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[18-22]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[76-87]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[134-140]

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 accepted consumption receipt does not preserve the exact successor scope authorized by the human decision. Its generalized wording widens the editable surface and drops explicit ACK/evidence requirements.

## Issue Context
The draft maps any difference from approved scope to `SCOPE_CONFLICT`, so an accepted example must either copy the approved scope exactly or demonstrate a deterministic, verifiable scope representation.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[18-22]
- docs/source-packets/wits-v0/examples/human-decision.candidate.json[14-18]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[134-140]

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



Remediation recommended

2. Stale claims can start ✓ Resolved 🐞 Bug ☼ Reliability ⭐ New
Description
The claim-before-start rule allows any previously accepted claim that remains readable to satisfy
the start gate, even if its decision or receipt expired or was revoked after acceptance. A successor
can therefore begin work under stale authority despite the draft requiring expired or revoked
records to stop with STALE_PACKET.
Code

docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[R95-98]

+Claim-before-start means that an accepted claim must be durably recorded and
+read back for the successor invocation before that invocation starts work.
+The failure case is successor start without durable readback of its accepted
+claim; that attempt must fail closed. Claiming before start is the required
Relevance

●●● Strong

Accepted history requires explicit stale/expiry handling, matching this draft’s stated expiry and
revocation proof gate.

PR-#8
PR-#26

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The new rule requires only durable readback of acceptance before work (95-99), while the same
draft says expired or revoked decisions and receipts are stale and must stop (142-150). The
example receipt carries both expiresAt and revokedAt, proving validity may change independently
of the earlier acceptance and must be checked at start.

docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[95-99]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[142-150]
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[34-40]

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 claim-before-start definition requires durable readback of an accepted claim but does not require checking its current expiry and revocation state at successor start. This permits an accepted claim read before expiry or revocation to authorize work afterward.

## Issue Context
The draft separately classifies expired or revoked decisions and receipts as stale, and the candidate receipt contains explicit expiry/revocation state. Define ordering for changes occurring between claim acceptance and successor start, and add a corresponding failure case.

## Fix Focus Areas
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[95-100]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[125-132]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[142-150]
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[34-40]

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


3. Receipt lacks custody digest ✓ Resolved 🐞 Bug ≡ Correctness
Description
The receipt declares an identity and embeds the decision digest, but it has no digest for the
receipt itself and references the requesting finding only by ID. Consequently, later records cannot
prove which immutable receipt and request contents were consumed, despite the draft requiring a
receipt digest on report return.
Code

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[R4-6]

+  "receiptId": "receipt_example_claim_successor_001",
+  "decisionId": "decision_example_approve_successor_001",
+  "decisionDigest": {
Relevance

●●● Strong

Repository precedent accepts adding explicit digest fields to make custody and idempotency evidence
implementable.

PR-#8

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The complete receipt contains only a digest of the human decision, not a digest of itself, while
decisionRequestRef carries no content digest and the referenced finding also defines none. This
conflicts with the packet’s immutable-record posture, its report requirement for a receipt digest,
and HACP 0.2’s established ID-plus-digest custody rule.

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[1-12]
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[24-33]
docs/source-packets/wits-v0/examples/review-finding.candidate.json[4-16]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[70-87]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]
docs/hacp-0.2.md[41-45]

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 candidate receipt has no top-level receipt digest, and its decision-request reference is ID-only. This leaves the receipt/request portion of the continuation chain without content-integrity binding.

## Issue Context
The packet describes the receipt as immutable, requires it to bind the request that caused the decision, and requires reports to preserve the receipt ID and digest. Existing HACP custody semantics link later records to prior records using identifiers and digests.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[4-12]
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[24-33]
- docs/source-packets/wits-v0/examples/review-finding.candidate.json[4-16]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[70-87]

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


4. Report loses authorization linkage ✓ Resolved 🐞 Bug ≡ Correctness
Description
The candidate agent report includes only the receipt ID; it omits the human-decision
reference/digest and consumption-receipt digest required by the report-return contract. A receiver
therefore cannot verify that the report came from the unchanged decision and accepted receipt that
authorized this invocation.
Code

docs/source-packets/wits-v0/examples/agent-report.candidate.json[R4-7]

+  "reportId": "report_example_successor_001",
+  "packetId": "taskpkt_example_continue_review_001",
+  "consumptionReceiptId": "receipt_example_claim_successor_001",
+  "successorInvocationId": "invoke_example_docs_worker_001",
Relevance

●●● Strong

Accepted precedent requires explicit report custody identifiers and digests for verifiable chain
linkage.

PR-#8

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The draft explicitly lists a decision reference and digest plus a consumption-receipt ID and digest
as report-return fields, but the complete example report has neither the decision binding nor either
digest. HACP 0.2 also states that later custody records reference earlier records by both
identifiers and digests.

docs/source-packets/wits-v0/examples/agent-report.candidate.json[4-21]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]
docs/hacp-0.2.md[41-45]
docs/hacp-0.2.md[222-244]

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 candidate successor report does not carry the decision reference/digest or receipt digest required by the source packet. This breaks the verifiable custody linkage between authorization, admission, and returned work.

## Issue Context
The report already carries the packet ID, receipt ID, and successor invocation ID. Extend it with digest-bearing references to the human decision and consumption receipt, using explicit digest domains and canonicalization metadata.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/agent-report.candidate.json[4-7]
- docs/source-packets/wits-v0/examples/agent-report.candidate.json[12-21]
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[4-12]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]

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


Grey Divider

Context sources
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can route each action level your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit 728dceb

Results up to commit 96220f6 ⚖️ Balanced


🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)


Action required
1. Receipt widens approved scope ✓ Resolved 🐞 Bug ≡ Correctness
Description
The human decision limits edits to docs/source-packets/ and explicitly requires ACK/review
evidence, but the accepted receipt replaces that with the broader docs-only edits and generic
report return. This violates the draft’s own rule that scope differences must fail with
SCOPE_CONFLICT.
Code

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[R18-21]

+    "permittedScope": [
+      "docs-only edits",
+      "validation and report return"
+    ],
Relevance

●●● Strong

Scope-boundary and vocabulary corrections are consistently accepted, especially when examples
diverge from approved authority.

PR-#8
PR-#35

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The decision approves three specific actions, including a path-limited edit and ACK/evidence return,
while the receipt admits two broader descriptions. The source packet explicitly requires the receipt
to bind permitted successor scope and maps a continuation differing from approved scope to
SCOPE_CONFLICT.

docs/source-packets/wits-v0/examples/human-decision.candidate.json[14-18]
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[18-22]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[76-87]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[134-140]

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 accepted consumption receipt does not preserve the exact successor scope authorized by the human decision. Its generalized wording widens the editable surface and drops explicit ACK/evidence requirements.

## Issue Context
The draft maps any difference from approved scope to `SCOPE_CONFLICT`, so an accepted example must either copy the approved scope exactly or demonstrate a deterministic, verifiable scope representation.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[18-22]
- docs/source-packets/wits-v0/examples/human-decision.candidate.json[14-18]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[134-140]

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



Remediation recommended
2. Receipt lacks custody digest ✓ Resolved 🐞 Bug ≡ Correctness
Description
The receipt declares an identity and embeds the decision digest, but it has no digest for the
receipt itself and references the requesting finding only by ID. Consequently, later records cannot
prove which immutable receipt and request contents were consumed, despite the draft requiring a
receipt digest on report return.
Code

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[R4-6]

+  "receiptId": "receipt_example_claim_successor_001",
+  "decisionId": "decision_example_approve_successor_001",
+  "decisionDigest": {
Relevance

●●● Strong

Repository precedent accepts adding explicit digest fields to make custody and idempotency evidence
implementable.

PR-#8

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The complete receipt contains only a digest of the human decision, not a digest of itself, while
decisionRequestRef carries no content digest and the referenced finding also defines none. This
conflicts with the packet’s immutable-record posture, its report requirement for a receipt digest,
and HACP 0.2’s established ID-plus-digest custody rule.

docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[1-12]
docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[24-33]
docs/source-packets/wits-v0/examples/review-finding.candidate.json[4-16]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[70-87]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]
docs/hacp-0.2.md[41-45]

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 candidate receipt has no top-level receipt digest, and its decision-request reference is ID-only. This leaves the receipt/request portion of the continuation chain without content-integrity binding.

## Issue Context
The packet describes the receipt as immutable, requires it to bind the request that caused the decision, and requires reports to preserve the receipt ID and digest. Existing HACP custody semantics link later records to prior records using identifiers and digests.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[4-12]
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[24-33]
- docs/source-packets/wits-v0/examples/review-finding.candidate.json[4-16]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[70-87]

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


3. Report loses authorization linkage ✓ Resolved 🐞 Bug ≡ Correctness
Description
The candidate agent report includes only the receipt ID; it omits the human-decision
reference/digest and consumption-receipt digest required by the report-return contract. A receiver
therefore cannot verify that the report came from the unchanged decision and accepted receipt that
authorized this invocation.
Code

docs/source-packets/wits-v0/examples/agent-report.candidate.json[R4-7]

+  "reportId": "report_example_successor_001",
+  "packetId": "taskpkt_example_continue_review_001",
+  "consumptionReceiptId": "receipt_example_claim_successor_001",
+  "successorInvocationId": "invoke_example_docs_worker_001",
Relevance

●●● Strong

Accepted precedent requires explicit report custody identifiers and digests for verifiable chain
linkage.

PR-#8

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The draft explicitly lists a decision reference and digest plus a consumption-receipt ID and digest
as report-return fields, but the complete example report has neither the decision binding nor either
digest. HACP 0.2 also states that later custody records reference earlier records by both
identifiers and digests.

docs/source-packets/wits-v0/examples/agent-report.candidate.json[4-21]
docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]
docs/hacp-0.2.md[41-45]
docs/hacp-0.2.md[222-244]

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 candidate successor report does not carry the decision reference/digest or receipt digest required by the source packet. This breaks the verifiable custody linkage between authorization, admission, and returned work.

## Issue Context
The report already carries the packet ID, receipt ID, and successor invocation ID. Extend it with digest-bearing references to the human decision and consumption receipt, using explicit digest domains and canonicalization metadata.

## Fix Focus Areas
- docs/source-packets/wits-v0/examples/agent-report.candidate.json[4-7]
- docs/source-packets/wits-v0/examples/agent-report.candidate.json[12-21]
- docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json[4-12]
- docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md[149-164]

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


Grey Divider

Qodo Logo

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

@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: 96220f68e5

ℹ️ 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 docs/source-packets/wits-v0/examples/consumption-receipt.candidate.json Outdated
Comment thread docs/source-packets/wits-v0/examples/agent-report.candidate.json
Comment thread docs/source-packets/wits-v0/examples/task-packet.candidate.json Outdated
@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

PR review loop disposition:

  • Thread: Draft HACP v0.3 accountable continuation source packet #42 (review)
  • Reason: Qodo findings were patched in commits 2b021d5 and 047ffce: the receipt now preserves exact approved successor scope, binds the decision request and receipt digests, the successor report carries decision/request/receipt digest links, and the task-packet sketch no longer labels conditional source context as active approved authority.
  • Fixing commit: 047ffce
  • Validation evidence: npm run hacp:cli-bridge-examples passed; npm run hacp:doctor -- schemas/examples --manifest schemas/examples/manifest.json passed; git diff --check passed; jq syntax check for docs/source-packets/wits-v0/examples/*.json passed.
  • Residual risk: medium: external who-decides proof gate for v0.3 semantic promotion is still owner-mediated and not satisfied by this docs PR.

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

@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Something went wrong. Try again later by commenting “@codex review”.

Provided git ref 5554061939b4bd921ae62e697a3e32dc0494b575 does not exist
ℹ️ 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 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: 5554061939

ℹ️ 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 on lines +240 to +241
Before this consumption-contract source packet is merged, maintainers must require
independent readback of pinned code, tests, and receipts showing:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Block merge until the required proof is accepted

In the merge context, this change makes independent, owner-accepted evidence a mandatory prerequisite, but the commit description states that the full accepted proof bundle was not found, and the diff contains only documentation and candidate JSON rather than the pinned code, tests, and receipts required here. Merging this commit now would therefore violate the gate it introduces; keep it blocked until the listed evidence is available and accepted.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Confirmed: this remains an unresolved merge blocker at ae6254a. The PR is being held in draft. No accepted pinned code/test/receipt proof bundle is claimed, and this thread will remain open. An earlier status note described proof as a later semantic-promotion gate; that description was incorrect and is superseded by the explicit proof-BEFORE-MERGE requirement.

The independent fresh Kiro review at 5554061 used provider-verified claude-opus-5 and returned substantive findings. It was standalone review evidence, not an ACK quorum receipt, and has not reviewed the new head. The narrow ordering correction does not resolve admitting-party authority, uniqueness policy, expiry/revocation semantics, or the other outstanding sketch findings. Those remain owner/architecture gates; no policy was invented here.

DO NOT MERGE. A clean mechanical ACK result cannot satisfy these substantive review and external-proof gates.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Status correction at 5b4f843: PR #42 is ready-for-review, not draft. The previous draft conversion was unnecessary and is not the proof gate. This thread remains unresolved and DO NOT MERGE remains the recommendation until owner-accepted pinned code/test/receipt evidence exists. No such proof is claimed.

Two bounded evidence findings were patched and validated. Current revocation/expiry freshness at successor start and the immutable revocation-record contract remain unresolved architecture decisions; the worker is not authorized to choose those policies. Kiro findings remain substantive review evidence from 5554061, not a clean review of this head and not ACK quorum evidence. Ready-for-review does not authorize merge.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Current handoff at 728dceb: Joe authorized the bounded fresh Opus review and P1/P2 repairs; those docs/example repairs are pushed (1392eb5 plus late version-specific README P2 in 728dceb). The fresh independent review covered 5191959, actual claude-opus-5 confirmed from provider evidence, 8m22s / 16.80 credits. It is advisory-only, not ACK quorum evidence and not a review of the repaired head. No second fresh review was run.

Remaining substantive gates are not waived by resolved threads: approve the profile admission issuer/trust and single-consumer uniqueness tuple; define authoritative decision/receipt status binding, freshness and start ordering; provide owner-accepted pinned code/test/receipt proof including actual concurrent admission and failure cases. The docs now fail closed when these inputs are absent and do not claim placeholder examples prove them. CN-02 (uniqueness) and CN-11 (status policy) remain partial/open at the policy/proof level. Other scoped P1/P2 record/prose defects were repaired; P3/info deferred. Validation passed: 8 CLI examples; schema corpus 15 valid/9 invalid; seven-sketch consistency and Markdown links; git diff --check. DO NOT MERGE until the external proof gate is satisfied. No merge, runtime, lane, or HACP.io changes.

Comment thread docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md Outdated
@joefeser
joefeser marked this pull request as draft September 3, 2026 21:35
@joefeser
joefeser marked this pull request as ready for review September 3, 2026 21:36

@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.

Sorry @joefeser, this account has used its review budget of 1,500,000 diff characters for the last 7 days.

You can request another review in 20 hours and 58 minutes by commenting @sourcery-ai review. Upgrade to get a review now.

@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

Comment thread docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit ae6254a

@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: ae6254a008

ℹ️ 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 docs/source-packets/wits-v0/examples/agent-report.candidate.json
Comment on lines +39 to +40
"expiresAt": "2026-09-03T19:00:00Z",
"revokedAt": null

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Represent revocation without mutating the receipt

When an accepted receipt is revoked after issuance but before successor readback or start, this immutable record remains permanently fixed at revokedAt: null, and the proposed artifact set defines no separate, digest-bound revocation record. A restarted successor can therefore read the still-accepted receipt and proceed despite the draft's fail-closed rule for revoked receipts; model revocation as a separate immutable ledger record/reference and require current revocation readback.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

This finding remains unresolved at 5b4f843. The existing immutable receipt snapshot cannot establish current revocation/expiry state at successor start. A complete fix needs an owner-approved authoritative status/revocation evidence contract, its digest binding, and ordering/freshness rule across acceptance, readback, and start. The current narrow task explicitly prohibits silently choosing new revocation policy.

The new start-evidence sketch proves neither current authority nor revocation freshness; its prose states that limitation. No acceptance/waiver or external proof is claimed. Keeping this thread open pending that owner decision; no runtime, lane, or merge change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Commit 1392eb5 addressed this comment by removing the mutable-looking revokedAt field and adding separate decision/receipt validity evidence references. The draft now requires authenticated current-status readback, digest/integrity binding, freshness, and ordering before successor start, while explicitly leaving the owner-approved policy unresolved.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Partial repair in 1392eb5: removed immutable revokedAt:null and decisionRevision; separated receiptExpiresAt, decisionValidityRef, and receiptValidityRef. Prose requires independently authenticated status evidence bound to the exact records and current at the start gate. Snapshot/URI labels explicitly cannot prove current validity. Keeping this thread unresolved: the actual approved issuer, status integrity contract, freshness and start ordering policy are not selected or externally proven. This is a precise remaining profile choice, not a claim that the example is executable. Validated CLI examples, base corpus, seven-sketch consistency, and diff whitespace. DO NOT MERGE pending the owner-approved policy and pinned external proof.

Comment thread docs/source-packets/wits-v0/examples/human-decision.candidate.json Outdated
@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: 5b4f8434ce

ℹ️ 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 docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md Outdated
Comment thread docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md
Comment thread docs/source-packets/wits-v0/examples/review-finding.candidate.json
@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: f272ca0c21

ℹ️ 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 docs/source-packets/wits-v0/accountable-continuation-v0.3-draft.md Outdated
Comment thread docs/source-packets/wits-v0/examples/agent-report.candidate.json
@joefeser

joefeser commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@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: 51919592fb

ℹ️ 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 schemas/README.md
@joefeser
joefeser merged commit 3ada8c8 into dev Sep 4, 2026
2 checks passed
@joefeser
joefeser deleted the codex/hacp-v0.3-accountable-continuation branch September 4, 2026 01:49
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