Skip to content

Service Agent Closeout Ledger

Status: active-not-complete.

This page explains service-agent-closeout-ledger.json, the machine-readable ledger that turns service-agent handoffs into completion evidence. This ledger is not a claim that any service is complete; it exists so each spawned service owner has the same closeout bar after completing one bounded vertical slice.

Use this ledger with:

  • docs/agents/service-agent-manifest.json
  • docs/agents/service-agent-proof-ledger.json
  • docs/agents/service-agent-execution-queue.json
  • docs/agents/service-agent-next-slice-closeout-ledger.json
  • docs/agents/service-agent-accepted-handoffs.md
  • docs/agents/service-agent-spawn-packets.md
  • docs/agents/service-workflow-test-matrix.md
  • docs/agents/agent-handoff-format.md

Required Loop

Every accepted service-agent handoff must show the worker completed the loop the user requested:

Required loop terms: audit, investigate, code, test, fix.

  1. Audit the task pack, matrix, current source, and read-only legacy evidence.
  2. Investigate the concrete workflow or bug before changing code.
  3. Code only inside the delegated implementation and writable docs/contracts scope.
  4. Test with focused checks plus the row's first verification command.
  5. Fix issues found by the worker or verifier, then rerun the relevant checks.

Required Evidence

service-agent-closeout-ledger.json requires every accepted handoff to include:

  • Task ID using the Dispatch ID prefix.
  • Docs read and legacy evidence read.
  • Files changed inside the delegated writable scope.
  • Behavior implemented, or explicit none for audit-only slices.
  • Focused tests and first verification command output.
  • Route/default cutover status and rollback notes.
  • Data validation report path when data changed.
  • Remaining risks or blockers.
  • Next recommended task.

Current State

Every SVC-001 through SVC-023 row now has an accepted bounded-slice handoff, and RET-USER has an accepted retirement/quarantine handoff. The accepted handoffs are discoverable from Service Agent Accepted Handoffs.

All rows still remain not-complete because accepted bounded evidence is not the same as service or rollout completion. Public/default route promotion still needs route-specific runtime/browser proof, rollback notes, legacy response parity, and data/backfill proof where applicable. SVC-003 and SVC-004 remain cutover-gated until the IAM/Profile production-like proof bundle and offline artifact review pass. SVC-013 remains runtime-adapter-only because the Go Formula runtime is external read-only evidence, not a deployable services/ directory. The RET-USER row remains retirement-only.

Next proof-gate handoffs are tracked separately in Service Agent Next Slice Closeout Ledger. Do not overwrite the first-slice acceptedHandoff fields here when accepting a future nextTaskId handoff.

Do not move a row to a closeout-accepted-...-not-complete state until the handoff exists under docs/agents/handoffs/, follows docs/agents/agent-handoff-format.md, matches the current service-agent-execution-queue.json requiredHandoffPath, and passes:

bash
make test-service-agent-closeout-ledger

Completion Boundary

This ledger intentionally keeps spawn-ready separate from complete:

  • A service can be ready to spawn while still lacking an accepted handoff.
  • A service can have an accepted bounded-slice handoff while the overall service and rollout remain not complete.
  • A next-slice handoff belongs in docs/agents/service-agent-next-slice-closeout-ledger.json, not in the first-slice closeout row.
  • A service handoff can pass focused tests while default route promotion still remains blocked by live/browser/rollback evidence.
  • IAM/Profile promotion still needs the production-like populated target proof bundle and offline artifact review before any default-route approval.
  • Alias-only rows must not create duplicate implementation directories.

Row Summary

Dispatch IDServiceCloseout status
SVC-001api-gatewaycloseout-accepted-not-complete
SVC-002bff-servicecloseout-accepted-not-complete
SVC-003iam-servicecloseout-accepted-cutover-gated-not-complete
SVC-004profile-servicecloseout-accepted-cutover-gated-not-complete
SVC-005organization-servicecloseout-accepted-not-complete
SVC-006classroom-servicecloseout-accepted-not-complete
SVC-007course-servicecloseout-accepted-not-complete
SVC-008question-servicecloseout-accepted-not-complete
SVC-009exam-servicecloseout-accepted-not-complete
SVC-010attempt-servicecloseout-accepted-not-complete
SVC-011file-servicecloseout-accepted-not-complete
SVC-012import-servicecloseout-accepted-not-complete
SVC-013formula-docx-serviceruntime-adapter-closeout-accepted-not-complete
SVC-014search-servicecloseout-accepted-not-complete
SVC-015ai-servicecloseout-accepted-not-complete
SVC-016billing-servicecloseout-accepted-not-complete
SVC-017wallet-servicecloseout-accepted-not-complete
SVC-018usage-servicecloseout-accepted-not-complete
SVC-019payment-servicecloseout-accepted-not-complete
SVC-020notification-servicecloseout-accepted-not-complete
SVC-021audit-servicecloseout-accepted-not-complete
SVC-022analytics-servicecloseout-accepted-not-complete
SVC-023admin-servicecloseout-accepted-not-complete
RET-USERuser-service retirementretirement-closeout-accepted-not-complete

Go-platform documentation is generated from repository Markdown.