---
id: ATS-ACC-REC-015
scope: CAP-ACC-REC-015
product_area: accounting
module: reconciliation
revision: 3
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-ACC-REC-015-01
    title: Manual problems validate their subjects
    level: api
    proves:
      - BR-CAP-ACC-REC-015-01
      - BR-CAP-ACC-REC-015-02
    preconditions: A unit has a payout to investigate.
    steps: 'Create a problem, omit its title and try another unit’s subject.'
    expected: >-
      Valid creation is numbered, manual and open with navigation and undone steps; invalid subjects or
      required text fail.
    negative: true
    data_needs: Provide exception fixture for this case.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with the
        exception open, numbered, of kind manual
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers every subject
        with the console route that opens it
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers its steps, none
        done
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a body without a
        title with 400
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a subject the
        business unit does not have with 400 subject_not_found
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
        a manual exception about its subjects, answering each subject’s navigation target
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exception-subjects.table.integration.spec.js#refuses
        the same subject twice for one exception
      - TST-ACC-REC-024
      - TST-ACC-REC-066
      - TST-ACC-REC-042
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with the
      exception open, numbered, of kind manual
    category: validation
  - id: ATS-ACC-REC-015-02
    title: Condition deduplication and reopening
    level: api
    proves:
      - BR-CAP-ACC-REC-015-03
    preconditions: 'The same condition has open, accepted or resolved examples.'
    steps: Raise each and race two detector inserts.
    expected: >-
      Open and accepted conditions remain unchanged, resolved conditions reopen and concurrent detection
      yields one problem.
    negative: false
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
        nothing while the key’s exception is open
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
        nothing while the key’s exception is accepted
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
        nothing when the dedupe index already holds the key open (two detectors racing)
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#reopens
        the key’s resolved exception, recording `exception.reopened`
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
        a new exception, numbered after the tenant’s highest, with its steps and its event
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#clears
        the open exceptions of a kind about a subject, recording `exception.auto-resolved`
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exceptions.table.integration.spec.js#refuses
        a second open exception with the dedupe key of an open one
      - TST-ACC-REC-066
      - TST-ACC-REC-043
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#raises
      nothing while the key’s exception is open
    category: concurrency
  - id: ATS-ACC-REC-015-03
    title: Status and owner edit restrictions
    level: api
    proves:
      - BR-CAP-ACC-REC-015-04
    preconditions: Examples cover every exception status.
    steps: Try owner or status edits as a person and detector reopening.
    expected: Current-version active edits pass; stale or closed edits fail and reopening is reserved to detectors.
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - 'services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#allows investigating'
      - >-
        services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#refuses open as
        exception-reopen-by-detector-only
      - >-
        services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#refuses investigating
        as exception-closed
      - 'services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#allows open'
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#sets
        the owner and moves the exception to investigating, recording `exception.updated`
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        a change at a version that is not the exception’s (409, `stale_version`)
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        an owner or status change of a closed exception (409, `exception_closed`)
      - TST-ACC-REC-095
      - TST-ACC-REC-066
    provenance: test
    source: 'services-accounting:modules/reconciliation/tests/unit/rules/transitions.spec.js#allows investigating'
    category: transition
  - id: ATS-ACC-REC-015-04
    title: Append-only bounded notes
    level: api
    proves:
      - BR-CAP-ACC-REC-015-05
    preconditions: An exception already has two hundred notes.
    steps: 'Add blank, oversized and over-capacity notes, then try changing or deleting history.'
    expected: Invalid additions and history mutations are rejected.
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        the note after the 200th (409, `notes_limit`)
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a blank note with
        400
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exception-notes.table.integration.spec.js#refuses
        a body of 4001 characters
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exception-notes.table.integration.spec.js#refuses
        even the owner an UPDATE, by the append-only trigger (RHF32)
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exception-notes.table.integration.spec.js#refuses
        the owner a DELETE outside a tenant purge, by the append-only trigger (RHF32)
      - TST-ACC-REC-066
      - TST-ACC-REC-024
      - TST-ACC-REC-040
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
      the note after the 200th (409, `notes_limit`)
    category: boundary
  - id: ATS-ACC-REC-015-05
    title: Checklist completion identity
    level: api
    proves:
      - BR-CAP-ACC-REC-015-06
    preconditions: An exception has a checklist.
    steps: 'Mark done, undo and address an excessive or absent step.'
    expected: 'Completion records person and time, undo succeeds and invalid steps fail.'
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#marks
        a step done by the caller now, and undone again
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a position
        outside 1 to 20 with 400
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a step the
        exception does not have with 404
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exception-steps.table.integration.spec.js#refuses
        a done step without who did it and when
      - TST-ACC-REC-066
      - TST-ACC-REC-024
      - TST-ACC-REC-041
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#marks
      a step done by the caller now, and undone again
    category: transition
  - id: ATS-ACC-REC-015-06
    title: Resolution evaluates the requested date
    level: api
    proves:
      - BR-CAP-ACC-REC-015-07
    preconditions: An overdue item has an open exception.
    steps: 'Resolve while overdue, on an earlier late day, after claim or write-off and after closure.'
    expected: Missing-money and closed-problem cases fail; cleared or earlier-nonoverdue conditions resolve.
    negative: true
    data_needs: Provide calendar fixture for this case.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        to resolve an overdue-settlement exception while its item is still overdue and unclaimed (409,
        `condition_still_holds`)
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#resolves
        an overdue-settlement exception once its item is claimed, recording `exception.resolved`
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        to resolve as of 2026-10-06, when the item is overdue then (409, `condition_still_holds`)
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#resolves
        as of 2026-10-05, when the item is only late then, though it is overdue today
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#resolves
        an exception whose item was written off, as of a later date too (200)
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
        to resolve a closed exception (409, `exception_closed`)
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a body without a
        resolution with 400
      - TST-ACC-REC-066
      - TST-ACC-REC-024
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#refuses
      to resolve an overdue-settlement exception while its item is still overdue and unclaimed (409,
      `condition_still_holds`)
    category: validation
  - id: ATS-ACC-REC-015-07
    title: Attention publication and repair
    level: api
    proves:
      - BR-CAP-ACC-REC-015-08
    preconditions: Blocker and warning exceptions are available.
    steps: 'Raise, resolve, accept or lower severity and run attention repair.'
    expected: >-
      Open blockers produce required attention, closure removes it and repair restores missing items without
      warning attention.
    negative: false
    data_needs: Provide attention fixture for this case.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#publishes
        one open item of the blocker with every element mapped
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#publishes
        nothing for a warning
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#resolves
        a person's resolution resolved
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#resolves
        a second user's approval of the acceptance accepted
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#keeps
        a blocker whose acceptance is only requested open
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#publishes
        the blocker whose item was lost
      - >-
        services-accounting:modules/reconciliation/tests/unit/attention/reconciliation-blockers.spec.js#resolves
        a blocker lowered to a warning severity_lowered
      - TST-ACC-REC-061
      - TST-ACC-REC-079
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-blocker-items.integration.spec.js#publishes
      one open item of the blocker with every element mapped
    category: interaction
  - id: ATS-ACC-REC-015-08
    title: Exception filters and paging
    level: api
    proves:
      - BR-CAP-ACC-REC-015-09
    preconditions: 'Records vary in kind, subject and other list attributes.'
    steps: Query all supported filters and continuation pages.
    expected: Matching exceptions sort newest-number first and paginate correctly.
    negative: false
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with the
        exceptions about a subject, newest first
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#filters by severity and
        kind
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#pages by the cursor it
        answers, the last page answering none
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-exceptions.integration.spec.js#filters
        by status, severity, kind and subject type, newest number first
      - TST-ACC-REC-024
      - TST-ACC-REC-066
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with the
      exceptions about a subject, newest first
    category: rule
  - id: ATS-ACC-REC-015-09
    title: Resolution text and immutable condition
    level: api
    proves:
      - BR-CAP-ACC-REC-015-10
    preconditions: Exception records are available for constraint checks.
    steps: Close without a resolution and change kind or condition key.
    expected: All invalid writes are refused.
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exceptions.table.integration.spec.js#refuses
        a resolved exception without its resolution
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exceptions.table.integration.spec.js#refuses
        a change of kind (RHF01)
      - >-
        services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exceptions.table.integration.spec.js#refuses
        a change of dedupe_key (RHF01)
      - TST-ACC-REC-043
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/db/reconciliation-exceptions.table.integration.spec.js#refuses
      a resolved exception without its resolution
    category: invariant
  - id: ATS-ACC-REC-015-10
    title: Problem permissions and workspace isolation
    level: api
    proves:
      - BR-CAP-ACC-REC-015-11
    preconditions: A reader and two workspaces have exceptions.
    steps: 'Read and create as the reader, then request a foreign workspace’s exception.'
    expected: 'Read is permitted, creation needs update and foreign records are absent.'
    negative: true
    data_needs: Assign callers through the relevant role policies.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#lets a principal with the
        read keys alone list exceptions
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a principal
        without accounting.reconciliation-exceptions.read with 403
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a principal
        without accounting.reconciliation-exceptions.update with 403
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses tenant A’s
        exception in tenant B with 404
      - TST-ACC-REC-024
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#lets a principal with the
      read keys alone list exceptions
    category: permission
  - id: ATS-ACC-REC-015-11
    title: Acceptance request preserves investigation
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-REC-015-04
      - BR-CAP-ACC-REC-016-03
      - BR-CAP-ACC-REC-016-04
    interacts_with:
      - CAP-ACC-REC-016
    relies_on:
      - ATS-ACC-REC-015-03
      - ATS-ACC-REC-016-03
    preconditions: Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
    steps:
      - do: 'Begin investigation, request blocker acceptance, inspect status and approve independently.'
        expect: Investigation persists until approval closes the concern as accepted.
        provenance: proposed
        source:
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-016-accept-a-problem-under-policy-with-a-second-persons-approval.md
    expected: Investigation persists until approval closes the concern as accepted.
    negative: false
    data_needs: >-
      Local merchant and bank accounts, an open operational batch and distinct preparation and approval
      callers.
    bound_to: []
    provenance: proposed
    source:
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-016-accept-a-problem-under-policy-with-a-second-persons-approval.md
  - id: ATS-ACC-REC-015-12
    title: Detection preserves accepted work
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-REC-015-03
      - AS-JNY-ACC-REC-004-02
    interacts_with:
      - CAP-ACC-REC-017
    relies_on:
      - ATS-ACC-REC-015-02
      - ATS-ACC-REC-017-08
    preconditions: Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
    steps:
      - do: 'Detect missing money, accept its concern independently and rerun the same condition.'
        expect: The raiser preserves the accepted record without creating a replacement blocker.
        provenance: proposed
        source:
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md
    expected: The raiser preserves the accepted record without creating a replacement blocker.
    negative: false
    data_needs: >-
      Local merchant and bank accounts, an open operational batch and distinct preparation and approval
      callers.
    bound_to: []
    provenance: proposed
    source:
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md
  - id: ATS-ACC-REC-015-13
    title: Assessment carries a related concern once
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-REC-015-01
      - BR-CAP-ACC-REC-015-02
      - BR-CAP-ACC-REC-018-09
    interacts_with:
      - CAP-ACC-REC-018
    relies_on:
      - ATS-ACC-REC-015-01
      - ATS-ACC-REC-018-07
    preconditions: Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
    steps:
      - do: Raise a period-anchored overdue concern and assess before and after investigation.
        expect: Overdue money remains one principal finding with its related concern.
        provenance: proposed
        source:
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md
    expected: Overdue money remains one principal finding with its related concern.
    negative: false
    data_needs: >-
      Local merchant and bank accounts, an open operational batch and distinct preparation and approval
      callers.
    bound_to: []
    provenance: proposed
    source:
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md
  - id: ATS-ACC-REC-015-14
    title: Publication failure rolls back detected work
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-REC-015-08
      - BR-CAP-ACC-REC-017-02
      - BR-CAP-ACC-REC-017-03
      - BR-CAP-ACC-REC-017-10
    interacts_with:
      - CAP-ACC-REC-017
    relies_on:
      - ATS-ACC-REC-015-07
      - ATS-ACC-REC-017-02
    preconditions: Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
    steps:
      - do: Make enabled attention publication fail during detection and retry after restoring publication.
        expect: Failure commits no new concern; the successful repeat retains concern and attention together.
        provenance: proposed
        source:
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md
    expected: Failure commits no new concern; the successful repeat retains concern and attention together.
    negative: true
    data_needs: >-
      Local merchant and bank accounts, an open operational batch and distinct preparation and approval
      callers.
    bound_to: []
    provenance: proposed
    source:
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-015-raise-work-and-resolve-reconciliation-problems.md
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-017-catch-overdue-money-stale-deposits-and-drifting-totals-every.md
evidence:
  - >-
    Bindings identify existing tests at the pinned revisions; proposed cases remain unbound and describe the
    proof still needed.
coverage:
  rule: covered
  transition: covered
  validation: covered
  permission: covered
  boundary: covered
  concurrency: covered
  invariant: covered
  interaction: covered
  edge: 'gap: FND-ACC-REC-060'
  failure: 'gap: FND-ACC-REC-060'
coverage_notes:
  design_completeness: >-
    Covered categories count specified cases, including proposed cases. Exhaustive state-transition,
    permission-key and domain-invariant traceability remains a separate proof gap.
---

# Investigate and resolve reconciliation concerns: Capability Test Specification

## Coverage

| Rule | Proved by |
|---|---|
| `BR-CAP-ACC-REC-015-01` | `ATS-ACC-REC-015-01` |
| `BR-CAP-ACC-REC-015-02` | `ATS-ACC-REC-015-01` |
| `BR-CAP-ACC-REC-015-03` | `ATS-ACC-REC-015-02` |
| `BR-CAP-ACC-REC-015-04` | `ATS-ACC-REC-015-03` |
| `BR-CAP-ACC-REC-015-05` | `ATS-ACC-REC-015-04` |
| `BR-CAP-ACC-REC-015-06` | `ATS-ACC-REC-015-05` |
| `BR-CAP-ACC-REC-015-07` | `ATS-ACC-REC-015-06` |
| `BR-CAP-ACC-REC-015-08` | `ATS-ACC-REC-015-07` |
| `BR-CAP-ACC-REC-015-09` | `ATS-ACC-REC-015-08` |
| `BR-CAP-ACC-REC-015-10` | `ATS-ACC-REC-015-09` |
| `BR-CAP-ACC-REC-015-11` | `ATS-ACC-REC-015-10` |

## Interactions With Related Capabilities

Attention publication and repair. Acceptance request preserves investigation. Detection preserves accepted work. Assessment carries a related concern once. Publication failure rolls back detected work. Proposed interaction cases require executable proof.
