---
id: FAS-PFM-OPS-02
feature: FEAT-PFM-OPS-02
product_area: platform
module: operations
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-PFM-OPS-008
  - CAP-PFM-OPS-009
  - CAP-PFM-OPS-010
scenarios:
  - id: FAS-PFM-OPS-02-01
    title: Follow a visit into personal history
    kind: behaviour
    exercises:
      - CAP-PFM-OPS-008
      - CAP-PFM-OPS-009
      - CAP-PFM-OPS-010
    relies_on:
      - ATS-PFM-OPS-008-05
      - ATS-PFM-OPS-009-06
      - ATS-PFM-OPS-010-03
    preconditions: Two people have readable records in an isolated workspace.
    steps:
      - do: >-
          One person opens a record, reads their history, and compares it with the other person’s
          history.
        provenance: proposed
        source: ATS-PFM-OPS-008-05; ATS-PFM-OPS-009-06; ATS-PFM-OPS-010-03
    expected: Only the visiting person’s history names the recorded visit and its retained activity.
    negative: false
    data_needs: 'An isolated workspace, owned test records and caller contexts named in the preconditions.'
    bound_to: []
    provenance: proposed
    source: ATS-PFM-OPS-008-05; ATS-PFM-OPS-009-06; ATS-PFM-OPS-010-03
  - id: FAS-PFM-OPS-02-02
    title: Replay a visit without duplicating history
    kind: interaction
    exercises:
      - CAP-PFM-OPS-008
      - CAP-PFM-OPS-009
      - CAP-PFM-OPS-010
    relies_on:
      - ATS-PFM-OPS-008-05
      - ATS-PFM-OPS-009-04
      - ATS-PFM-OPS-010-05
    preconditions: A person has a recorded visit and retains its occurrence key.
    steps:
      - do: 'Replay that report, create another visit, and page the raw history.'
        provenance: proposed
        source: ATS-PFM-OPS-008-05; ATS-PFM-OPS-009-04; ATS-PFM-OPS-010-05
    expected: The replay does not create a second occurrence and both distinct visits are traversed once.
    negative: false
    data_needs: 'An isolated workspace, owned test records and caller contexts named in the preconditions.'
    bound_to: []
    provenance: proposed
    source: ATS-PFM-OPS-008-05; ATS-PFM-OPS-009-04; ATS-PFM-OPS-010-05
  - id: FAS-PFM-OPS-02-03
    title: Retain history until workspace retirement
    kind: lifecycle
    exercises:
      - CAP-PFM-OPS-008
      - CAP-PFM-OPS-009
      - CAP-PFM-OPS-010
    relies_on:
      - ATS-PFM-OPS-009-02
      - ATS-PFM-OPS-010-08
    preconditions: A recorded visit names a record that is later removed; the workspace subsequently enters deletion.
    steps:
      - do: 'Read history after record removal, then run the authorized workspace activity purge.'
        provenance: proposed
        source: ATS-PFM-OPS-009-02; ATS-PFM-OPS-010-08
    expected: Raw history retains the visit until workspace retirement removes its owned activity.
    negative: false
    data_needs: 'An isolated workspace, owned test records and caller contexts named in the preconditions.'
    bound_to: []
    provenance: proposed
    source: ATS-PFM-OPS-009-02; ATS-PFM-OPS-010-08
  - id: FAS-PFM-OPS-02-04
    title: Keep target authority separate from history authority
    kind: permission
    exercises:
      - CAP-PFM-OPS-008
      - CAP-PFM-OPS-009
      - CAP-PFM-OPS-010
    relies_on:
      - ATS-PFM-OPS-008-02
      - ATS-PFM-OPS-009-01
      - ATS-PFM-OPS-009-06
      - ATS-PFM-OPS-010-04
    preconditions: 'Readers, an administrator and a foreign workspace caller have different reach.'
    steps:
      - do: 'Report an unreadable target and request own, colleague and foreign-workspace histories.'
        provenance: proposed
        source: ATS-PFM-OPS-008-02; ATS-PFM-OPS-009-01; ATS-PFM-OPS-009-06; ATS-PFM-OPS-010-04
    expected: >-
      Refused reports create no activity; each history response follows its own permission and workspace
      boundary.
    negative: true
    data_needs: 'An isolated workspace, owned test records and caller contexts named in the preconditions.'
    bound_to: []
    provenance: proposed
    source: ATS-PFM-OPS-008-02; ATS-PFM-OPS-009-01; ATS-PFM-OPS-009-06; ATS-PFM-OPS-010-04
  - id: FAS-PFM-OPS-02-05
    title: Keep visits stable across navigation and record loss
    kind: regression
    exercises:
      - CAP-PFM-OPS-008
      - CAP-PFM-OPS-009
      - CAP-PFM-OPS-010
    relies_on:
      - ATS-PFM-OPS-008-08
      - ATS-PFM-OPS-008-09
      - ATS-PFM-OPS-009-02
    preconditions: 'A person opens a record, changes tabs and later loses the target record.'
    steps:
      - do: 'Change tabs, reload once, inject reporting failures, then remove the target and read history.'
        provenance: proposed
        source: ATS-PFM-OPS-008-08; ATS-PFM-OPS-008-09; ATS-PFM-OPS-009-02
    expected: >-
      Navigation and transport retries retain the intended visit identities while committed history
      survives target removal.
    negative: false
    data_needs: 'An isolated workspace, owned test records and caller contexts named in the preconditions.'
    bound_to: []
    provenance: proposed
    source: ATS-PFM-OPS-008-08; ATS-PFM-OPS-008-09; ATS-PFM-OPS-009-02
evidence:
  - CAP-PFM-OPS-008; its capability test specification and the workflows it crosses
  - CAP-PFM-OPS-009; its capability test specification and the workflows it crosses
  - CAP-PFM-OPS-010; its capability test specification and the workflows it crosses
---

# Record Activity: Feature Acceptance Suite

## What the Feature Must Do as a Whole

Record activity must connect successful visits with retained, authorized history. The feature cases follow visit identity, personal scope and retirement across recording, reading and storage.

## Interactions Between Capabilities

Replay a visit without duplicating history. The replay does not create a second occurrence and both distinct visits are traversed once.

Retain history until workspace retirement. Raw history retains the visit until workspace retirement removes its owned activity.

Proposed chains require an executable suite that performs the complete sequence. Separate lower-level bindings do not establish whole-feature execution.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative whole-feature proof from the landed planning and design contracts. |
