---
id: WF-CMT-MTG-014
title: Apply Submissions Review Outcomes
trigger: >-
  The Submissions consumer delivers versioned review documents to the remote
  owner handler.
product_area: committees
module: meetings
revision: 2
status: draft
design_intent: proposed
implementation_evidence: partially-observed
inference: []
source_sha:
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
implements:
  - CAP-CMT-MTG-019
  - CAP-CMT-MTG-014
  - CAP-CMT-MTG-018
moves:
  - STATE-CMT-MTG-007
  - STATE-CMT-MTG-009
crosses:
  - SVC-CMT-MTG-recruitment
  - SVC-CMT-MTG-decisions
idempotency: >-
  The seen-decision ledger makes committed redelivery a no-op. A competing
  insert rolls back the losing consequence transaction; sourced appointments
  also recognize their review origin.
concurrency: >-
  Each document applies in one workspace transaction. Acknowledgement leases
  last two minutes and have no settlement token, so a slow drain may overlap
  another claim.
hops:
  - 'n': 1
    actor_or_service: Submission-decisions handler
    action: >-
      Validate the delivery envelope and each document’s version and required
      links.
    anchor: >-
      services-committees:modules/recruitment/services/submissions/handle-submission-decisions.ts:handleSubmissionDecisions
    seam: event
    on_failure: Reject a malformed envelope or return the invalid document as failed.
    left_inconsistent: No business consequence is applied.
    observer: Remote handler execution logs.
    provenance: observed
    source: >-
      services-committees:modules/recruitment/services/submissions/handle-submission-decisions.ts:handleSubmissionDecisions
  - 'n': 2
    actor_or_service: Submission-decisions handler
    action: >-
      When needed, read disclosure answers from the revision before beginning
      the consequence transaction.
    anchor: >-
      services-committees:modules/recruitment/ports/submissions-engine.ts:submissionsEngine
    seam: sync
    on_failure: >-
      Unavailable answers supply no new summary; an unexpected exception escapes
      this stage.
    left_inconsistent: An accepted disclosure can retain an old summary or have no summary.
    observer: No dedicated observer is implemented.
    provenance: observed
    source: >-
      services-committees:modules/recruitment/ports/submissions-engine.ts:submissionsEngine
  - 'n': 3
    actor_or_service: Submission-decisions handler
    action: >-
      Skip a seen decision; otherwise reverse supported supersession, apply the
      owner consequence, insert the ledger row and enqueue acknowledgement
      together.
    anchor: >-
      services-committees:modules/recruitment/services/submissions/handle-submission-decisions.ts:applySubmissionDecision
    seam: sync
    on_failure: >-
      Record a business refusal in a separate transaction with rejection; retry
      other failed consequences.
    left_inconsistent: >-
      Submissions can retain a reviewer outcome that Committees refused to
      enact.
    observer: 'Handler logs, with errors for irreversible supersession.'
    provenance: observed
    source: >-
      services-committees:modules/recruitment/services/submissions/handle-submission-decisions.ts:applySubmissionDecision
  - 'n': 4
    actor_or_service: Submission-decisions handler
    action: Send queued owner acknowledgements after commit.
    anchor: >-
      services-committees:modules/recruitment/services/submissions/acknowledgements.ts:drainAcknowledgements
    seam: queue
    on_failure: Retain unsuccessful rows for a later delivery or hourly drain.
    left_inconsistent: The reviewer system waits for reconciliation.
    observer: Error entries in the function log.
    provenance: observed
    source: >-
      services-committees:modules/recruitment/services/submissions/acknowledgements.ts:drainAcknowledgements
branches: []
waits: []
evidence:
  - >-
    services-committees at 36129c24:
    modules/recruitment/services/submissions/*.ts;
    services/rules/submission-consequences.ts;
    services/persistence/submission-decisions.ts; ports/submissions-engine.ts;
    aws/committees.submissions.ts
controls:
  - TC-IAM-006
  - TC-AZ-001
  - TC-AZ-002
  - TC-AZ-003
  - TC-AZ-004
  - TC-AZ-006
  - TC-TEN-001
  - TC-TEN-002
  - TC-TEN-003
  - TC-TEN-004
  - TC-SEC-001
  - TC-SEC-004
  - TC-DAT-001
  - TC-DAT-002
  - TC-DAT-003
  - TC-LOG-001
  - TC-LOG-002
  - TC-LOG-003
  - TC-LOG-004
  - TC-LOG-005
  - TC-AVL-004
  - TC-MON-001
  - TC-MON-002
  - TC-PI-001
  - TC-PI-002
  - TC-PI-003
  - TC-PI-004
  - TC-PI-005
  - TC-PRV-001
  - TC-PRV-002
  - TC-PRV-004
---
# Apply Submissions Review Outcomes

## What It Does

The Submissions consumer delivers versioned review documents to the remote owner handler. Supersession is conditional on what can still be reversed. An irreversible effect is refused rather than silently contradicted. Staff visibility is limited to logs, and operation-binding publication remains a proposed boundary decision.

## The Flow

```mermaid
flowchart TD
  H1["Validate the delivery envelope and each document’s version and required links."]

  H2["When needed, read disclosure answers from the revision before beginning the consequence transaction."]
  H3["Skip a seen decision"]
  H4["Send queued owner acknowledgements after commit."]
  H1 --> H2
  H2 --> H3
  H3 --> H4
```

Validate the delivery envelope and each document’s version and required links. When needed, read disclosure answers from the revision before beginning the consequence transaction. Skip a seen decision; otherwise reverse supported supersession, apply the owner consequence, insert the ledger row and enqueue acknowledgement together. Send queued owner acknowledgements after commit.

## When Something Fails

Reject a malformed envelope or return the invalid document as failed. No business consequence is applied. Unavailable answers supply no new summary; an unexpected exception escapes this stage. An accepted disclosure can retain an old summary or have no summary. Record a business refusal in a separate transaction with rejection; retry other failed consequences. Submissions can retain a reviewer outcome that Committees refused to enact. Retain unsuccessful rows for a later delivery or hourly drain. The reviewer system waits for reconciliation.

## Open Design Questions

Supersession is conditional on what can still be reversed. An irreversible effect is refused rather than silently contradicted. Staff visibility is limited to logs, and operation-binding publication remains a proposed boundary decision.
