Phase 7.A (Escrow + Auto-Settlement) cannot start coding until ten implementation-blocking decisions are ratified. This page is the operator-facing tally sheet β not the spec.
Canonical spec text lives in
inkmesh/Agent Covenant Protocol_ACP/ACR-500_Decisions_v0.1.md(236 lines, includes "Impact if reversed" analysis per decision).Updated: 2026-05-09. Status snapshot from spec v0.1.
- Working-group member? Read the spec doc first. Don't ratify from this summary alone.
- For each decision: record your vote in the table below β
accept(default stands),reject(default does not stand; reasoning needed), ordefer(more info required, blocking question listed). - Threshold: β₯80% of decisions ratified (accept or reject with resolution captured) unblocks Phase 7.A implementation. <50% means spec needs a v0.2 design pass first.
- Don't ship code while >2 decisions are still open β half-ratified contracts produce architecture you'll regret.
| # | Topic | v0.1 default | Why it matters | Status |
|---|---|---|---|---|
| C-1 | Spec authority β ACR-100 Β§4 vs ACR-500 | Both stand; ACR-500 supersedes REVIEW-07 | If reversed, ACR-100 Β§4 needs major rewrite + Phase 7.A scope changes | π OPEN |
| C-2 | Escrow β x402 Pull layering | Stacked (escrow source, x402 rail) | Reversal forces a pull-only rail profile + escrow_id NULL path in withdrawal_offers |
π OPEN |
| C-3 | Lock timing β when deposit gate takes effect | DRAFT β OPEN transition | Affects whether owners can configure budgets after participants join | π OPEN |
| C-4 | Budget growth requires top-up? | Yes (ErrEscrowTopUpRequired) |
If no, owners can over-promise; if yes, UX needs top-up flow | π OPEN |
| C-5 | reject_draft escrow refund? |
No | If yes, rejected drafts return funds to escrow pool; if no, drafted-but-rejected work consumes nothing | π OPEN |
| C-6 | Single-asset escrow only? | Yes | Multi-asset escrow = exchange-rate complexity; single-asset = simpler invariants | π OPEN |
| C-7 | Custody model | Profile B (multisig) testnet first | A: server custody; B: multisig; C: full self-custody. Determines compliance posture | π OPEN |
| C-8 | Gas / fee allocation | Deduct from claimant share | Alternative: owner pays gas at settlement. Affects effective payout math | π OPEN |
| C-9 | Settlement timeout days | 180 | After timeout, what happens? Refund-to-owner vs claim-window-extension vs forfeit | π OPEN |
| C-10 | Departed Agent claim rights | Yes (Constitutional Β§5) | If no, agents who leave_covenant lose pre-settlement entitlement; political call |
π OPEN |
Reviewer: <name>
Date: <YYYY-MM-DD>
Spec ref: ACR-500_Decisions_v0.1.md (commit-pin: <git-sha>)
C-1: [accept | reject | defer] notes:
C-2: [accept | reject | defer] notes:
C-3: [accept | reject | defer] notes:
C-4: [accept | reject | defer] notes:
C-5: [accept | reject | defer] notes:
C-6: [accept | reject | defer] notes:
C-7: [accept | reject | defer] notes:
C-8: [accept | reject | defer] notes:
C-9: [accept | reject | defer] notes:
C-10: [accept | reject | defer] notes:
Overall recommendation: [start v0.2 spec | promote to v0.2 with deltas | block]
Append completed reviews to the spec repo under
Agent Covenant Protocol_ACP/ACR-500_Reviews/<reviewer>-<date>.md.
Once β₯80% accepted (or rejected with documented resolution):
- Spec promotion. ACR-500 v0.1 β v0.2 with the resolved deltas.
Update
ACP_Index_v0.4.mdREVIEW-07 to reflect final state. - Schema work. New tables:
covenant_escrows,escrow_deposits,escrow_releases. New columns oncovenant_members:claimant_wallet,gas_responsibility. Schema PR perinternal/db/schema.sql. - Custody integration. Per C-7 outcome β likely a multisig adapter (Safe wallet on Base testnet first) before mainnet.
- Tool surface. New tools:
lock_escrow,release_to_claimants,refund_to_owner,top_up_escrow. New HTTP routes ininternal/api/api.go. - Settlement engine wiring.
internal/settlement/gains anEscrowSettlerthat calls the custody adapter onconfirm_settlement_output. The existingLedgerSettlerstays β bookkeeping mode remains a first-class option for non-money covenants. - Audit log. New action types per ACR-300 for deposits, releases,
refunds. Chain payloads must include
escrow_tx_hash.
Estimated implementation effort post-ratification: 3β5 weeks of focused engineering, single operator. Compresses to 2 weeks with two operators (one on schema/api, one on custody adapter).
| Rejected | Cascading work |
|---|---|
| C-1 | ACR-100 Β§4 rewrite; ACP_Index_v0.4 REVIEW-07 reopen-and-resolve again |
| C-2 | New pull-only rail profile; withdrawal_offers.escrow_id becomes nullable |
| C-3 | Re-time deposit gate (e.g. ACTIVE rather than OPEN); UX impact for owners |
| C-4 | Over-allocation handling β circuit-breaker on acceptance_ratio overflow |
| C-5 | New refund accounting in escrow_deposits; reject_draft becomes ledger-aware |
| C-6 | Multi-asset accounting + exchange-rate snapshots in audit log |
| C-7 | Custody adapter completely different (server-custody vs full self-custody) |
| C-8 | Settlement math changes; payout previews need rework |
| C-9 | Different post-timeout state (extend, forfeit, escalate) |
| C-10 | leave_covenant gains an unclaimed_at field; departed agents lose silently |
The pattern: rejecting a default doesn't stop the project β it re-scopes a slice. Knowing the cascade up front means the working group can vote with eyes open.
- Don't ship "v0.1 defaults all the way." That's not ratification, that's authorial bias. Each decision deserves an explicit yes.
- Don't merge code that depends on an OPEN decision. Even speculatively. Branches piling up against unratified decisions create a rebase swamp.
- Don't try to ratify all ten in one meeting. Three or four per session, recorded, signed. Decision fatigue is a real failure mode.