---
id: FAS-ACC-CLS-01
title: Period Calendar and Posting Protection acceptance
feature: FEAT-ACC-CLS-01
product_area: accounting
module: close
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-ACC-CLS-001
  - CAP-ACC-CLS-002
  - CAP-ACC-CLS-003
scenarios:
  - id: FAS-ACC-CLS-01-01
    title: Advance the calendar and action choices together
    kind: behaviour
    exercises:
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-002
    relies_on:
      - ATS-ACC-CLS-001-01
      - ATS-ACC-CLS-002-03
    preconditions: A clean ended current month is viewed by a closer.
    steps: 'Read its calendar and actions, close it, then read both again.'
    expected: >-
      The completed month is no longer current, the following month becomes
      current and the completed month can be considered for reopening.
    negative: false
    data_needs: A clean ended current month is viewed by a closer.
    bound_to:
      - TST-ACC-CLS-001
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0613.spec.ts#ACT-ACC-0613
  - id: FAS-ACC-CLS-01-02
    title: Direct late work without changing the closed month
    kind: interaction
    exercises:
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-003
    relies_on:
      - ATS-ACC-CLS-003-01
    preconditions: A unit has a closed month and a following open month.
    steps: >-
      Try posting an ordinary batch with the closed date, move it to the
      following month, post it, then finalize a reconciliation dated in the
      closed month.
    expected: >-
      The ordinary refusal leaves no ledger entries; moving the batch permits
      posting and eligible reconciliation carries a late marker into the
      following month.
    negative: true
    data_needs: A unit has a closed month and a following open month.
    bound_to: []
    provenance: proposed
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0621.spec.ts#ACT-ACC-0621
    finding: FND-ACC-CLS-077
    binding_note: >-
      The source journey contains the intended assertions, but an earlier
      expectation conflicts with the pinned service; the complete chain is not
      established.
  - id: FAS-ACC-CLS-01-03
    title: Restore a month for correction without losing its calendar story
    kind: lifecycle
    exercises:
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-002
      - CAP-ACC-CLS-003
    relies_on:
      - ATS-ACC-CLS-001-03
      - ATS-ACC-CLS-002-02
      - ATS-ACC-CLS-003-02
    preconditions: The latest month is closed and its successor remains open.
    steps: >-
      Reopen the eligible month, inspect its calendar, then post a correction
      using its restored open date.
    expected: >-
      The month is current and open with cleared close stamps and an incremented
      correction count; ordinary correction work can now post.
    negative: false
    data_needs: The latest month is closed and its successor remains open.
    bound_to:
      - TST-ACC-CLS-002
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0614.spec.ts#ACT-ACC-0614
  - id: FAS-ACC-CLS-01-04
    title: Show the calendar without granting closing actions
    kind: permission
    exercises:
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-002
    relies_on:
      - ATS-ACC-CLS-001-04
      - ATS-ACC-CLS-002-05
    preconditions: >-
      A reader and closer share a clean month and the reader lacks both action
      grants.
    steps: >-
      Read the month as each caller and inspect console actions; submit reader
      close and reopen commands.
    expected: >-
      The reader can inspect the calendar but has no usable close or reopen
      action; direct reader commands are denied.
    negative: true
    data_needs: >-
      A reader and closer share a clean month and the reader lacks both action
      grants.
    bound_to:
      - TST-ACC-CLS-007
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0619.spec.ts#ACT-ACC-0619
  - id: FAS-ACC-CLS-01-05
    title: Keep sequence checks consistent at the year boundary
    kind: regression
    exercises:
      - CAP-ACC-CLS-001
      - CAP-ACC-CLS-002
      - CAP-ACC-CLS-003
    relies_on:
      - ATS-ACC-CLS-001-01
      - ATS-ACC-CLS-002-01
      - ATS-ACC-CLS-002-02
      - ATS-ACC-CLS-003-05
    preconditions: >-
      A previous year’s final month is unfinished and the following year’s first
      month is open.
    steps: >-
      Read the current selection and available actions; try closing the
      following month, then complete the earlier month and reevaluate.
    expected: >-
      The outstanding earlier month controls selection and refusal; after its
      completion, the following month becomes the eligible subject.
    negative: true
    data_needs: >-
      A previous year’s final month is unfinished and the following year’s first
      month is open.
    bound_to: []
    provenance: proposed
    source:
      - ATS-ACC-CLS-001-01
      - ATS-ACC-CLS-002-01
      - ATS-ACC-CLS-002-02
      - ATS-ACC-CLS-003-05
    finding: FND-ACC-CLS-075
evidence:
  - >-
    Testing hierarchy: Andrew ruling of 2026-10-23,
    rhythm-v2-docs:specs/CONVENTIONS.md#5.3 Feature Acceptance Suite.
  - >-
    react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0613.spec.ts#ACT-ACC-0613
  - >-
    react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0621.spec.ts#ACT-ACC-0621
  - >-
    react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0614.spec.ts#ACT-ACC-0614
  - >-
    react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0619.spec.ts#ACT-ACC-0619
  - ATS-ACC-CLS-001-01
  - ATS-ACC-CLS-002-01
  - ATS-ACC-CLS-002-02
  - ATS-ACC-CLS-003-05
---
# Period Calendar and Posting Protection: Feature Acceptance Suite

## What the Feature Must Do as a Whole

This suite follows a controller’s calendar from review through completion and correction. It brings period selection and action eligibility into the same acceptance sequence, while keeping posting protection visible at the boundary with ledger work. The bound browser cases provide assertion evidence; they have no recorded result in this register.

## Interactions Between Capabilities

Calendar selection and action choices change together when a month closes or reopens. The correction case also checks whether restored dates support ordinary posting. Late-work forwarding and the year-boundary regression remain proposed because their complete chains lack usable executable evidence. Reader cases distinguish access to the calendar from authority to change it.

## Regression Record

| Revision | Change | Scenarios | Why |
|---|---|---|---|
| 1 | initial | all | Specify the feature’s combined outcomes and distinguish executable assertions from proposed chains. |
