---
id: ATS-PFM-CSH-004
scope: CAP-PFM-CSH-004
product_area: platform
module: console-shell
revision: 2
status: proposed
approved_by: null
approved_at: null
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
scenarios:
  - id: ATS-PFM-CSH-004-01
    title: Customer landing uses the remembered workspace
    level: browser
    proves:
      - BR-CAP-PFM-CSH-004-04
      - AS-JNY-PFM-CSH-001-02
      - AS-JNY-PFM-CSH-004-03
    preconditions: The customer session remembers a workspace.
    steps: Open Rhythm at the starting address.
    expected: The remembered workspace home becomes the destination.
    negative: false
    data_needs: Mock customer workspaces.
    bound_to:
      - >-
        react-console:e2e/mock/url-architecture.mock.spec.ts#the bare root opens the remembered
        tenant's home
    provenance: test
    source: >-
      react-console:e2e/mock/url-architecture.mock.spec.ts#the bare root opens the remembered
      tenant's home
  - id: ATS-PFM-CSH-004-02
    title: Dashboard failure does not remove attention work
    level: browser
    proves:
      - BR-CAP-PFM-CSH-004-02
    preconditions: The dashboard summary read fails while attention is available.
    steps: Open the workspace home.
    expected: Attention items remain visible beside the dashboard failure state.
    negative: true
    data_needs: An intercepted dashboard failure and available attention data.
    bound_to: []
    provenance: proposed
    source: 'react-console:app/(console)/console/[tenantId]/page.tsx:HomePage'
  - id: ATS-PFM-CSH-004-03
    title: Dashboard errors retain distinct explanations
    level: unit
    proves:
      - BR-CAP-PFM-CSH-004-07
    preconditions: 'Dashboard inputs cover an absent route, a server failure and missing configuration.'
    steps: Render the dashboard error view for each input.
    expected: 'Each input receives its corresponding unavailable, failure or configuration explanation.'
    negative: true
    data_needs: Dashboard error variants.
    bound_to:
      - >-
        react-console:components/console/home/__tests__/dashboard-state.test.tsx#shows a calm note
        when the dashboard does not exist on the backend
      - >-
        react-console:components/console/home/__tests__/dashboard-state.test.tsx#keeps the error
        state for a real failure
      - >-
        react-console:components/console/home/__tests__/dashboard-state.test.tsx#keeps the
        not-configured state
    provenance: test
    source: 'react-console:components/console/home/__tests__/dashboard-state.test.tsx'
  - id: ATS-PFM-CSH-004-04
    title: Live home suppresses the unavailable summary request
    level: browser
    proves:
      - BR-CAP-PFM-CSH-004-06
    preconditions: Live and mock modes are available.
    steps: Open the live home and then repeat in mock mode while observing requests.
    expected: The live home makes no dashboard summary request; mock mode requests its summary.
    negative: false
    data_needs: Live and mock sessions.
    bound_to: []
    provenance: proposed
    source: 'react-console:lib/api/dashboard.ts:useDashboardSummary'
  - id: ATS-PFM-CSH-004-05
    title: Mock dashboard arithmetic has explicit boundary inputs
    level: unit
    proves:
      - BR-CAP-PFM-CSH-004-08
    preconditions: Mock dashboard figures include regular and zero-denominator cases.
    steps: 'Render falling dues, ordinary amounts, regional shares and event fill, including zero totals.'
    expected: >-
      Formatting and whole-percent calculations follow the current arithmetic; zero totals expose
      the unresolved unreadable result.
    negative: true
    data_needs: Mock dashboard boundary figures.
    bound_to: []
    provenance: proposed
    source: >-
      react-console:components/console/home/dashboard-panels.tsx:RegionBreakdown, EventsPanel;
      components/console/home/kpi-cards.tsx:KpiCards
evidence:
  - >-
    react-console at baf6dae: app/(console)/console/[tenantId]/page.tsx, app/(console)/page.tsx,
    components/console/legacy-redirect.tsx, components/console/site-header.tsx,
    e2e/mock/url-architecture.mock.spec.ts.
---

# Begin work from the workspace home — acceptance

## Coverage

The table separates scenarios with test bindings from proposed proof. A binding records a static examination of the test; it does not record a passing product test run.

| Rule | Acceptance scenario |
|---|---|
| `BR-CAP-PFM-CSH-004-02` | `ATS-PFM-CSH-004-02` (proposed) |
| `BR-CAP-PFM-CSH-004-04` | `ATS-PFM-CSH-004-01` (bound) |
| `BR-CAP-PFM-CSH-004-06` | `ATS-PFM-CSH-004-04` (proposed) |
| `BR-CAP-PFM-CSH-004-07` | `ATS-PFM-CSH-004-03` (bound) |
| `BR-CAP-PFM-CSH-004-08` | `ATS-PFM-CSH-004-05` (proposed) |
