---
title: Batch Management design examination
examined_at: '2026-10-23'
examiner: codex
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
branch: agent/accounting-batches-desi-exam-1
planning_baseline: >-
  specs/accounting/batches/planning/**; specs/accounting/batches/MODULE.md;
  specs/accounting/batches/reports/EXAMINATION-2026-10-22.md
brief: briefs/design/accounting-batches.brief.md (absent; FND-ACC-BAT-047)
implementation_evidence: observed
approval: No artifact approval or design-intent value was granted or changed.
evidence:
  - >-
    services-accounting:modules/batches/aws/api/*.routes.ts, *.schemas.ts;
    aws/batches.module.ts; aws/logic/*.ts; aws/lambda/*.ts
  - >-
    services-accounting:modules/batches/db/*.table.ts, *.view.ts;
    metadata/*.object.ts; queries/**; export/*.ts
  - >-
    services-accounting:modules/batches/services/persistence/**, rules/**,
    engine/**, jobs/**, roll/**, auto-close/**, auto-post/**, close/**,
    assignment/**, attention/**, lifecycle/**
  - >-
    services-accounting:modules/batches/tests/** (source and assertions
    inspected, not runtime execution)
  - >-
    services-accounting:docs/accounting/batches.md, recurring-batches.md,
    revenue-schedules.md; docs/migrations/batch-posting/DESIGN.md, README.md;
    docs/migrations/transaction-processing/batches/README.md;
    docs/architecture/accounting-2.0/02-decisions.md, 08-batch-posting.md;
    docs/architecture/realignment-2026-10-22/ownership.md
  - >-
    services-accounting:aws/accounting.service.ts, accounting.metadata.ts,
    accounting.export-datasets.ts, cdk.json; lib/attention.ts;
    db/migrations/0025_subledger_entries.sql (cited by the ledger declaration)
  - >-
    react-console:app/(console)/console/[tenantId]/accounting/batches/**;
    components/accounting/batches/**;
    components/configuration/recurring-batches/**;
    components/configuration/batch-assignment/**;
    lib/configuration/recurring-batches.ts;
    lib/accounting/configuration/client.ts; lib/accounting/transactions/http/**;
    lib/authz/backend-aliases.ts
  - >-
    rhythm-v2-docs:AGENTS.md; specs/CONVENTIONS.md; specs/templates/*;
    specs/accounting/batches/planning/**, FINDINGS.md, ID_REGISTRY.md;
    specs/accounting/RESPONSIBILITIES.md; specs/PRODUCT-AREAS.md
protected_metadata_changes:
  - artifact: SVC-ACC-BAT-batches
    field: operations.34.operation_id
    before: not present
    after: defaultBatchFor
  - artifact: SVC-ACC-BAT-batches
    field: operations.34.permission
    before: not present
    after: >-
      none: document callers authorize their own operation before in-process
      selection
  - artifact: DOM-ACC-BAT-001
    field: invariants.2.enforced_at
    before:
      - service
      - database
    after:
      - service
  - artifact: DOM-ACC-BAT-001
    field: invariants.2.source
    before: >-
      services-accounting:modules/batches/tests/integration/services/persistence/batches.integration.spec.js#refuses
      a date no fiscal year of the unit holds
    after: >-
      services-accounting:modules/batches/tests/integration/services/persistence/batches.integration.spec.js#refuses
      a date no fiscal year of the unit holds;
      services-accounting:modules/batches/services/persistence/batches.ts:settledFields
  - artifact: DOM-ACC-BAT-004
    field: attributes.2.required
    before: true
    after: false
  - artifact: DOM-ACC-BAT-005
    field: attributes.2.computed
    before: false
    after: true
  - artifact: DOM-ACC-BAT-005
    field: attributes.3.required
    before: true
    after: false
  - artifact: DOM-ACC-BAT-005
    field: attributes.7.computed
    before: false
    after: true
  - artifact: SCR-ACC-BAT-001
    field: displays.2.source
    before: >-
      listBatches query parameters; the accounting state is composed by the
      console
    after: >-
      listBatches; lib/accounting/transactions/http/batches.ts performs text,
      multiple-status and date filtering locally
  - artifact: SCR-ACC-BAT-002
    field: permission
    before: >-
      accounting.batches.create (the console's batches create alias), inside the
      batches area's read requirement
    after: >-
      accounting.batches.read is enforced by the shared layout. The list gates
      entry with accounting.batches.create; the direct creation route and form
      have no additional create guard, although the API requires that key.
  - artifact: STATE-ACC-BAT-001
    field: transitions.4.source
    before: >-
      services-accounting:modules/batches/services/rules/batch-posting-rules.ts:43
    after: >-
      services-accounting:modules/batches/services/rules/batch-posting-rules.ts:ensureBatchesCanBePosted
  - artifact: STATE-ACC-BAT-001
    field: transitions.19.from
    before: not present
    after: verified
  - artifact: STATE-ACC-BAT-001
    field: transitions.19.to
    before: not present
    after: deleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.19.provenance
    before: not present
    after: observed
  - artifact: STATE-ACC-BAT-001
    field: transitions.19.source
    before: not present
    after: >-
      services-accounting:modules/batches/services/persistence/batches.ts:deleteBatch;
      services-accounting:modules/batches/services/rules/batch-rules.ts:assertBatchCanBeDeleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.20.from
    before: not present
    after: error
  - artifact: STATE-ACC-BAT-001
    field: transitions.20.to
    before: not present
    after: deleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.20.provenance
    before: not present
    after: observed
  - artifact: STATE-ACC-BAT-001
    field: transitions.20.source
    before: not present
    after: >-
      services-accounting:modules/batches/services/persistence/batches.ts:deleteBatch;
      services-accounting:modules/batches/services/rules/batch-rules.ts:assertBatchCanBeDeleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.21.from
    before: not present
    after: archived
  - artifact: STATE-ACC-BAT-001
    field: transitions.21.to
    before: not present
    after: deleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.21.provenance
    before: not present
    after: observed
  - artifact: STATE-ACC-BAT-001
    field: transitions.21.source
    before: not present
    after: >-
      services-accounting:modules/batches/services/persistence/batches.ts:deleteBatch;
      services-accounting:modules/batches/services/rules/batch-rules.ts:assertBatchCanBeDeleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.22.from
    before: not present
    after: posting
  - artifact: STATE-ACC-BAT-001
    field: transitions.22.to
    before: not present
    after: deleted
  - artifact: STATE-ACC-BAT-001
    field: transitions.22.provenance
    before: not present
    after: observed
  - artifact: STATE-ACC-BAT-001
    field: transitions.22.source
    before: not present
    after: >-
      services-accounting:modules/batches/services/persistence/batches.ts:deleteBatch;
      services-accounting:modules/batches/services/rules/batch-rules.ts:assertBatchCanBeDeleted
  - artifact: STATE-ACC-BAT-003
    field: states.0.name
    before: submitted
    after: pending
  - artifact: STATE-ACC-BAT-003
    field: transitions.0.from
    before: submitted
    after: pending
  - artifact: STATE-ACC-BAT-003
    field: transitions.3.from
    before: submitted
    after: pending
  - artifact: STATE-ACC-BAT-003
    field: transitions.4.from
    before: not present
    after: running
  - artifact: STATE-ACC-BAT-003
    field: transitions.4.to
    before: not present
    after: failed
  - artifact: STATE-ACC-BAT-003
    field: transitions.4.provenance
    before: not present
    after: inferred
  - artifact: STATE-ACC-BAT-003
    field: transitions.4.source
    before: not present
    after: >-
      services-accounting:modules/batches/services/jobs/batch-posting-job-tasks.ts:postBatchesOperation;
      FND-ACC-BAT-039
  - artifact: STATE-ACC-BAT-003
    field: invalid.2.to
    before: submitted
    after: pending
  - artifact: WF-ACC-BAT-001
    field: hops.1.provenance
    before: test
    after: observed
  - artifact: WF-ACC-BAT-001
    field: hops.1.source
    before: >-
      services-accounting:modules/batches/tests/integration/services/persistence/batches.integration.spec.js#removes
      the schedule and the time when the batch is closed
    after: >-
      services-accounting:modules/batches/services/persistence/batches.ts:insertBatch,
      changeBatch, closeBatchOnSchedule, saveBatches
  - artifact: WF-ACC-BAT-005
    field: hops.0.provenance
    before: test
    after: observed
  - artifact: WF-ACC-BAT-005
    field: hops.0.source
    before: >-
      services-accounting:modules/batches/tests/integration/services/jobs/submission-identity.integration.spec.js#answers
      a colleague's retry under another key, after the posting finished, with
      the job that posted (DEF-ACT-0514)
    after: >-
      services-accounting:modules/batches/aws/api/batch-postings.schemas.ts:MAX_BATCHES_PER_REQUEST;
      services-accounting:modules/batches/services/jobs/batch-posting-jobs.ts:createBatchPostingJob
  - artifact: WF-ACC-BAT-009
    field: hops.1.provenance
    before: test
    after: observed
  - artifact: WF-ACC-BAT-009
    field: hops.1.source
    before: >-
      services-accounting:modules/batches/tests/integration/services/persistence/batch-attention-items.integration.spec.js#publishes
      one open item of the batch with every element mapped
    after: >-
      services-accounting:modules/batches/services/attention/batches-awaiting-posting-sweep.ts:sweepBatchesAwaitingPosting
  - artifact: WF-ACC-BAT-011
    field: hops.1.source
    before: >-
      services-accounting:docs/accounting/batches.md#Unposting deletes the
      entries (purge_tenant_ledger_rows)
    after: >-
      services-accounting:docs/accounting/batches.md#Unposting deletes the
      entries
rewrite_commits:
  - artifact: ADR-ACC-BAT-001
    commit: 5ead97f550f7b38145cbd4e4a98f40bc15e04121
  - artifact: ADR-ACC-BAT-002
    commit: d19d46fa155fee7e1af6e4d0bd1990f744ea7435
  - artifact: ADR-ACC-BAT-003
    commit: 0ebc99417a0fa1a5a2501a43c6c9b7f1920def8a
  - artifact: ADR-ACC-BAT-004
    commit: 6100323c8fcb9dde91e7161dc4cc5c925c65ed46
  - artifact: ADR-ACC-BAT-005
    commit: cc7988514b0349baf5f0078c2e9bd4f7ff480d00
  - artifact: ADR-ACC-BAT-006
    commit: 8dc9f76b2946a7d2374ffc4901dc017f945ba487
  - artifact: ADR-ACC-BAT-007
    commit: 886f96cb624a40eca914b0c9ead77bbcfcb6cf45
  - artifact: ADR-ACC-BAT-008
    commit: f8e0e1a6933585aaddc6bd95e1a28adde6241984
  - artifact: ADR-ACC-BAT-009
    commit: eb8a51c90e3ea98df86c7265033b2fda70d0e05e
  - artifact: ADR-ACC-BAT-010
    commit: 3da2db66e177b0be6e25657de9b551dce126ffce
  - artifact: ADR-ACC-BAT-011
    commit: e5f6aa01bda2bc236ae5aa624536e0f783669752
  - artifact: ADR-ACC-BAT-012
    commit: 919845b7b697bfc05f4933636c3c5d73e1652d5e
  - artifact: ADR-ACC-BAT-013
    commit: c033d2c567c3d4467062529bd267d03527d65ae9
  - artifact: ADR-ACC-BAT-014
    commit: 87da9d5ab496219606698cf5df905b4c1014f8ed
  - artifact: DOM-ACC-BAT-001
    commit: 512fcfe99f522d6f4044613a4f383bfd211fd087
  - artifact: DOM-ACC-BAT-003
    commit: 1ca1482a8dcc8bd173f7fcf3b9cc504e0e611f95
  - artifact: DOM-ACC-BAT-004
    commit: 5eff9e4d297b122d115a654efe30ebc63651b20d
  - artifact: DOM-ACC-BAT-005
    commit: 5471cba816d0a8a20be3c9d3d1d6a613aef4e111
  - artifact: RESP-ACC
    commit: a335ac91dc22d89983546d83cd2e343409b3c2f9
  - artifact: SCR-ACC-BAT-001
    commit: 476fcc2b45b8a931255af84b6867f162ddd10041
  - artifact: SCR-ACC-BAT-002
    commit: 0502e1ed2f9212c785efb54cd5c5d9c57d91dab1
  - artifact: SCR-ACC-BAT-003
    commit: f3b1ce221a33612d96358cdd2868b5ab40a6a41b
  - artifact: SCR-ACC-BAT-004
    commit: 15f86432f6a4b40b164cd40a51fea7b2b638e68e
  - artifact: SCR-ACC-BAT-005
    commit: 258e1f7e9b3e25ed2a8a5f32b5d2df3f4bc5f752
  - artifact: SCR-ACC-BAT-006
    commit: cca2a1dc69f4e3d4784ddac518d6d53c1febafef
  - artifact: STATE-ACC-BAT-001
    commit: 5541594e4c6675dfe0fe0f696b05a44d044ccf64
  - artifact: STATE-ACC-BAT-002
    commit: 2bda8469df35d5b1a62a431d77c4b183ac841705
  - artifact: STATE-ACC-BAT-003
    commit: a0f0e90798f862a741aa9afe21962059322b63db
  - artifact: STATE-ACC-BAT-004
    commit: ba59552c6376d8d9ef7706e0824897cf4efbbd72
  - artifact: STATE-ACC-BAT-005
    commit: bb2d7967556da57af308060a746f3517b8866337
  - artifact: SVC-ACC-BAT-batches
    commit: f6981fa23f699d3e4539a7fd7ff909b878b29365
  - artifact: WF-ACC-BAT-001
    commit: 36aa7befcaa329d8a824f1f872e0361a39858477
  - artifact: WF-ACC-BAT-002
    commit: 650ad665c8a221d188266e0dd2e2b1f6ecd31439
  - artifact: WF-ACC-BAT-003
    commit: b993ddc539a910a164356c243ab20b01afa898a2
  - artifact: WF-ACC-BAT-004
    commit: 9095106f364a95b613998993deb8c599315e8a4d
  - artifact: WF-ACC-BAT-005
    commit: 05cabbbaa1cffde52edb79155cd81dc1ce654773
  - artifact: WF-ACC-BAT-006
    commit: 683ffcb83d573c197f39f4cf5d866e4caf048189
  - artifact: WF-ACC-BAT-007
    commit: 613dc6c77f8e82c93658e6299d259b586b448f57
  - artifact: WF-ACC-BAT-008
    commit: c1a02d171232962c6358477d6890c24db07a7a39
  - artifact: WF-ACC-BAT-009
    commit: 9da9424be6f00e5cd2dd96e58027a8dc4b679d83
  - artifact: WF-ACC-BAT-010
    commit: 0a0d03973b9af3deb6d72879217254d7907f66e0
  - artifact: WF-ACC-BAT-011
    commit: 137f3f0779dbab74795f72e5953513b50c45313e
verification_commits:
  - >-
    a6ac1be93e7ff1dfa8b8fe5be2800c92224ed498 Qualify automatic close cleanup
    across direct posting and planning
  - >-
    9f8f47238489ac8a8e2aa48811da4a7c972908f1 Record planning disagreement on
    cross-generation reversal uniqueness
  - >-
    d7e8f3670a012484f83f24e2b0cb001131d91fe6 Align routing operation exposure
    across contract and responsibilities
  - >-
    e472a1801c9f49028a2266b5b7bd0cc896a35651 Qualify recovery and export
    guarantees and record examination gaps
  - >-
    d9e823f25b06c4c11e181d1a5b896fe440c8632b Verify batch design against pinned
    services and console behavior
validation:
  install: 'npm ci: passed'
  conformance: 'npm run check: zero errors'
  tests: 'npm test: four passed, zero failed'
  source_runtime_tests: Not run; examination uses pinned implementation and test-source evidence.
---

# Batch Management Design Examination

## Scope and Method

The examination covers every design artifact and the Batch Management responsibility section. Sources were inspected at the supplied commits, including literal anchors, route declarations, implementation branches, database declarations and cited test assertions. Evidence from test source identifies what those tests assert; it does not claim their runtime execution here.

The requested brief is absent, and the available planning corpus retains draft and proposed statuses. Individual recorded product decisions supplied confirmed direction where cited; the examination did not manufacture blanket planning approval or change any approval, intent or source-pin value. Original Platform standards were unavailable, so imported scheduling, jobs and lifecycle behavior remains qualified by the available Accounting documentation.

## Counts Examined

| Measure | Count |
|---|---|
| Design artifacts | 41 |
| Responsibility sections rewritten | 1 |
| Domain attribute / relationship / invariant rows | 56 / 11 / 32 |
| State models / states / transition rows / invalid rows | 5 / 23 / 40 / 16 |
| Workflow hops | 47 |
| Service operations after alignment | 35 |
| Screen displays / actions | 25 / 23 |
| Decision records | 14 |
| Baseline source and anchor fields inspected | 186: 161 explicit repository references and 25 display-source expressions |
| Distinct cited test anchors inspected | 51 |
| New findings allocated | 8 |
| Model tasks / inference operations required | 0 / 0 |

## Coverage

Covered means the source has a contract or object home, not that its intended behavior is approved or all its failure paths have runtime proof.

| Source surface | Contract coverage | Home |
|---|---|---|
| Business HTTP operation declarations | 29 / 29 | `SVC-ACC-BAT-batches` |
| Imported infrastructure health route | 1 / 1 | `getBatchesHealth`; name follows the shared helper convention |
| Internal fiscal and default-selection seams | 5 / 5 | Service contract and responsibility map |
| Physical tables in ten table declaration files | 16 / 16 | `DOM-ACC-BAT-001`, `003`, `004`, `005` |
| Read projections | 3 / 3 | The corresponding domain objects |
| Hosted screen groups, with recurring list and editor variants | 6 / 6 | `SCR-ACC-BAT-001` through `006` |
| Posting and unposting state machines | 2 / 2 | `WF-ACC-BAT-005`, `006` |
| Fiscal state machines co-hosted by the task deployment | 2 / 2 accounting integration; orchestration remains owned by Close | `WF-ACC-BAT-008` |
| Automatic close, recurring roll and hourly attention schedules | 3 / 3 | `WF-ACC-BAT-002`, `003`, `009` |
| Module-local queues | 0 / 0; registration explicitly declares none | Schedule dispatch is imported maintenance infrastructure |
| Shared scheduled-consumer delivery seam | 1 / 1, documented boundary | Automatic-close and roll workflows |
| Custom-field registrations | No `capabilities.customFields` declaration in the module object registrations | Four domain objects declare none |
| Inference declarations | 18 / 18 empty lists across service, workflows and screens | No model call by task name found in module runtime code |

## Changes by Artifact

Every artifact below received an independent final-text rewrite commit. The earlier verification commits and subsequent evidence corrections are recorded in frontmatter, along with protected metadata changes; unchanged permission keys, origins, intent values and source pins remain intact. Literal UI labels and evidence identifiers were retained where they identify the implementation.

| Artifact | Examination result |
|---|---|
| `DOM-ACC-BAT-001` | Separated ordinary calendar enforcement from database reference enforcement; corrected lock modes, response-only first refusal, transient Posting and engine close-cleanup limits. |
| `DOM-ACC-BAT-003` | Separated HTTP and internal limits; qualified dependent refusal by successful reads and explained job versus accounting completion. |
| `DOM-ACC-BAT-004` | Made document context optional in stored headers, narrowed fixture traceability and generation-scoped duplicate protection, and qualified historical export. |
| `DOM-ACC-BAT-005` | Removed claims of persisted total and truncation-method columns; made nullable header accounts explicit and retained recognition recovery questions. |
| `STATE-ACC-BAT-001` | Added four eligible direct-delete transitions; distinguished ordinary creation, scheduled-close schedule retention and transient engine state. |
| `STATE-ACC-BAT-002` | Separated activity, scheduler pause and intake state; corrected first refusal to response-only and qualified occurrence concurrency. |
| `STATE-ACC-BAT-003` | Changed the initial state to Pending and added post-commit failure; removed the assertion that every failed job leaves accounting unchanged. |
| `STATE-ACC-BAT-004` | Rewrote generation retirement while retaining the ordinary deletion and fiscal mirror distinction. |
| `STATE-ACC-BAT-005` | Removed the assumption that fully recognised plans imply a closed originating period; explained retained entry statuses. |
| `WF-ACC-BAT-001` | Scoped schedule synchronization to ordinary persistence, with scheduled and engine exceptions. |
| `WF-ACC-BAT-002` | Rewrote retirement, savepoint preparation, start failure and imported scheduler retry boundaries. |
| `WF-ACC-BAT-003` | Corrected the already-Closed predecessor posting branch and clarified occurrence deduplication. |
| `WF-ACC-BAT-004` | Corrected first-refusal visibility and distinguished savepoint refusal from other transactional failure. |
| `WF-ACC-BAT-005` | Separated request limits and admission timing, qualified settlement recovery and removed a backwards commit-versus-job timing claim. |
| `WF-ACC-BAT-006` | Removed invented dependent-row locking and qualified failed reads, recognised revenue and post-commit recovery. |
| `WF-ACC-BAT-007` | Rewrote preview limits, shared period locks and the missing full-admission guarantee. |
| `WF-ACC-BAT-008` | Rewrote transaction-required recognition and system generation without transferring fiscal orchestration ownership. |
| `WF-ACC-BAT-009` | Corrected failed-page handling to abort the workspace pass while retaining earlier commits; separated resolution and outer completion stamping. |
| `WF-ACC-BAT-010` | Qualified the unused native order hook, no-choice return and document-caller responsibility. |
| `WF-ACC-BAT-011` | Corrected the documentation heading anchor and qualified step-level removal versus whole-workspace atomicity. |
| `SVC-ACC-BAT-batches` | Added the actual default-selection internal function, retained exact route permissions and capability homes, rewrote all intents and integration text, and qualified export and settlement guarantees. |
| `SCR-ACC-BAT-001` | Replaced invented accounting-state filtering with date-range filtering and explained local capped reads. |
| `SCR-ACC-BAT-002` | Corrected direct-route create gating and distinguished form validation from API permission enforcement. |
| `SCR-ACC-BAT-003` | Rewrote displays and actions with document and ledger read limits, delivery placeholders and missing history qualified. |
| `SCR-ACC-BAT-004` | Corrected the form payload to resubmitted fields without a version and clarified action presence versus enabled state. |
| `SCR-ACC-BAT-005` | Removed invented refusal and pause-reason displays and named the actual list and editor widths. |
| `SCR-ACC-BAT-006` | Specified full layout width and example evaluation against saved rather than draft settings. |
| `ADR-ACC-BAT-001` | Rewrote the existing posting-resolution ruling and alternatives; did not make a new approval. |
| `ADR-ACC-BAT-002` | Corrected request-size boundaries and qualified the job label as evidence of accounting outcome. |
| `ADR-ACC-BAT-003` | Rewrote the recorded deletion policy and retained recognition limits. |
| `ADR-ACC-BAT-004` | Scoped Open creation to ordinary HTTP and described named lifecycle commands. |
| `ADR-ACC-BAT-005` | Qualified post-commit starts and retained the unanswered reactivation-policy question. |
| `ADR-ACC-BAT-006` | Preserved proposed module ownership separately from the confirmed area realignment. |
| `ADR-ACC-BAT-007` | Corrected blanket unknown-property refusal: ordinary record schemas reject, posting schemas strip. |
| `ADR-ACC-BAT-008` | Preserved proposed absence of publication without inventing future intake bindings. |
| `ADR-ACC-BAT-009` | Followed existing concept supersession without re-deciding the object count. |
| `ADR-ACC-BAT-010` | Rewrote money and immutable-ledger direction with guarded-removal qualification. |
| `ADR-ACC-BAT-011` | Kept replacement completeness unresolved and described current versionless form submission. |
| `ADR-ACC-BAT-012` | Distinguished gated Platform work from continued Accounting sweep reads. |
| `ADR-ACC-BAT-013` | Rewrote deployed task isolation and synchronous preview without claiming preview performs no generation. |
| `ADR-ACC-BAT-014` | Removed wording that could authorize the observed accounting-date choice; kept the disagreement open. |
| `RESP-ACC / MOD-ACC-BAT` | Aligned default selection with the service operation, rewrote ownership and delegation text, and qualified generic job reconciliation. |

## Open Disagreements

| Finding or question | What remains unresolved |
|---|---|
| `FND-ACC-BAT-047` | Missing brief and absent blanket planning approval record. |
| `FND-ACC-BAT-048` | Different external and internal batch limits. |
| `FND-ACC-BAT-049` | Recurring configuration omits first-refusal and pause explanations. |
| `FND-ACC-BAT-050` | Batch and document reads silently cap visible results. |
| `FND-ACC-BAT-051` | Dependent unposting admission suppresses read failures and lacks explicit external-dependent row locks. |
| `FND-ACC-BAT-052` | Historical export claims cannot be fulfilled from surviving current rows alone. |
| `FND-ACC-BAT-053` | Planning claims global reversal uniqueness beyond the observed generation-scoped constraint. |
| `FND-ACC-BAT-054` | Direct posting bypasses the ordinary close-configuration cleanup claimed in planning. |
| `OQ-ACC-BAT-001`, `003`, `004` | Accounting placement, tax-inclusive release amounts and differing count definitions. |
| `OQ-ACC-BAT-002`, `006` | Reactivation posting and replacement completeness policy. |
| `FND-ACC-BAT-013`, `037`, `039`, `042`, `043`, `046` | Missing reconciliation, retained bypasses, post-commit failure, disabled production attention, unavailable original standards and recognition recovery. |

Planning files were not edited. Correcting an account of implementation does not settle the product disagreements in this table.

## Validation

Dependency installation and corpus conformance passed with zero errors, and all four corpus tests passed. Conformance also passed before each artifact rewrite commit. Accounting and console runtime suites were not executed; their pinned source and relevant assertions were inspected.

## Verdict for Andrew

The revised design is a faithful static account of the available pinned implementation, with observed exceptions separated from recorded product direction and unknown imported guarantees. Its weakest area is recovery across dependent batches, fiscal recognition, job settlement and historical export, where incomplete proof or state retained across boundaries prevents unconditional guarantees. Before implementation preparation, reconcile accounting-date and recognised-revenue policy, choose reliable dependency and export semantics, resolve the planning constraint mismatches, and establish the intended approval baseline.
