---
id: ATS-MBR-MEM-001
scope: CAP-MBR-MEM-001
product_area: membership
module: memberships
revision: 2
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-MBR-MEM-001-01
    title: Invalid creation leaves no membership
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-01
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Submit requests with missing owner, reason or initial period,
          incompatible owner categories and inactive programs, then submit a
          valid request.
        expect: >-
          Invalid requests return validation failures identifying their
          problems; the successful request finds no residue from earlier
          failures.
        provenance: proposed
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0162.acceptance.ts#MBR-ACC-0162
    expected: >-
      Invalid requests return validation failures identifying their problems;
      the successful request finds no residue from earlier failures.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0162.acceptance.ts#MBR-ACC-0162
    category: validation
  - id: ATS-MBR-MEM-001-02
    title: A duplicate principal holding is rejected
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-02
      - INV-DOM-MBR-MEM-001-01
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Create a principal membership and repeat creation for the same owner
          and program.
        expect: >-
          Only the first membership remains, and the duplicate refusal directs
          the caller to add a term.
        provenance: test
        source:
          - >-
            services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses
            a second principal membership of the same owner in the program
    expected: >-
      Only the first membership remains, and the duplicate refusal directs the
      caller to add a term.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-028
    provenance: test
    source: >-
      services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses
      a second principal membership of the same owner in the program
    category: invariant
    binding_evidence:
      - suite: TST-MBR-MEM-028
        source: >-
          services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses
          a second principal membership of the same owner in the program
  - id: ATS-MBR-MEM-001-03
    title: Identity binding accepts only the required unit type
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-02
      - BR-CAP-MBR-MEM-001-03
      - INV-DOM-MBR-MEM-001-06
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Create holdings for the same person in two different chapters, retry
          one chapter, then attempt an incompatible unit type and an absent
          identity unit.
        expect: >-
          Both distinct chapter holdings succeed; the duplicate chapter is
          refused as an existing holding, and incompatible or missing units fail
          validation.
        provenance: test
        source:
          - >-
            services-membership:tests/acceptance/memberships/MBR-ACC-0187.acceptance.ts#MBR-ACC-0187:
            A chapter sells its own membership bound to the chapter: one per
            person per chapter, refused for a unit of the wrong type, invisible
            to another chapter's officer, and absent from the as-of answer's
            organizational units
    expected: >-
      Both distinct chapter holdings succeed; the duplicate chapter is refused
      as an existing holding, and incompatible or missing units fail validation.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-206
    provenance: test
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0187.acceptance.ts#MBR-ACC-0187:
      A chapter sells its own membership bound to the chapter: one per person
      per chapter, refused for a unit of the wrong type, invisible to another
      chapter's officer, and absent from the as-of answer's organizational units
    category: validation
    binding_evidence:
      - suite: TST-MBR-MEM-206
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0187.acceptance.ts#MBR-ACC-0187:
          A chapter sells its own membership bound to the chapter: one per
          person per chapter, refused for a unit of the wrong type, invisible to
          another chapter's officer, and absent from the as-of answer's
          organizational units
  - id: ATS-MBR-MEM-001-04
    title: Creation rejects inactive or incompatible term configuration
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-04
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Attempt initial terms using an inactive type, an inactive package and
          a package attached to another type.
        expect: >-
          Each creation fails validation and identifies its type or package
          problem.
        provenance: proposed
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0180.acceptance.ts#MBR-ACC-0180
    expected: Each creation fails validation and identifies its type or package problem.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0180.acceptance.ts#MBR-ACC-0180
    category: validation
  - id: ATS-MBR-MEM-001-05
    title: Package rules calculate omitted dates
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-05
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Create package-based initial terms without dates, supplying an
          effective date in one request and omitting it in another.
        expect: >-
          Each saved period matches the package calculation for the supplied
          effective date or workspace business date.
        provenance: proposed
        source: >-
          services-membership:modules/memberships/services/operations/staff-operations.ts:datesOf
    expected: >-
      Each saved period matches the package calculation for the supplied
      effective date or workspace business date.
    negative: false
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:modules/memberships/services/operations/staff-operations.ts:datesOf
    category: rule
  - id: ATS-MBR-MEM-001-06
    title: Concurrent overlap is rejected in both service and database
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-06
      - INV-DOM-MBR-MEM-002-01
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Submit overlapping periods through two connections simultaneously,
          then insert an overlap directly without the service guard.
        expect: >-
          One concurrent write commits; the other identifies the winning term as
          its overlap, and the direct insert fails the database exclusion.
        provenance: test
        source:
          - >-
            services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#commits
            exactly one of the two terms
          - >-
            services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#refuses
            the other with term_overlap, naming the term the first committed
          - >-
            services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#is
            backed by the migration’s exclusion when the persistence check is
            bypassed
    expected: >-
      One concurrent write commits; the other identifies the winning term as its
      overlap, and the direct insert fails the database exclusion.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-030
    provenance: test
    source: >-
      services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#commits
      exactly one of the two terms
    category: concurrency
    binding_evidence:
      - suite: TST-MBR-MEM-030
        source: >-
          services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#commits
          exactly one of the two terms
      - suite: TST-MBR-MEM-030
        source: >-
          services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#refuses
          the other with term_overlap, naming the term the first committed
      - suite: TST-MBR-MEM-030
        source: >-
          services-membership:modules/memberships/tests/integration/services/term-concurrency.integration.spec.ts#is
          backed by the migration’s exclusion when the persistence check is
          bypassed
  - id: ATS-MBR-MEM-001-07
    title: Exclusive programs accept adjacency but reject shared days
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-07
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Give Kim a National membership; attempt overlapping Premium, adjacent
          Premium and membership in an unrelated Section.
        expect: >-
          The overlap identifies the conflicting holding and fails; the adjacent
          and unrelated holdings succeed.
        provenance: test
        source:
          - >-
            services-membership:tests/acceptance/memberships/MBR-ACC-0171.acceptance.ts#MBR-ACC-0171:
            An owner never holds two tiers at once: overlapping programs of one
            exclusivity group are refused, adjacent and ungrouped ones allowed,
            pending terms count, and two simultaneous adds probe the lock
    expected: >-
      The overlap identifies the conflicting holding and fails; the adjacent and
      unrelated holdings succeed.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-190
    provenance: test
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0171.acceptance.ts#MBR-ACC-0171:
      An owner never holds two tiers at once: overlapping programs of one
      exclusivity group are refused, adjacent and ungrouped ones allowed,
      pending terms count, and two simultaneous adds probe the lock
    category: boundary
    binding_evidence:
      - suite: TST-MBR-MEM-190
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0171.acceptance.ts#MBR-ACC-0171:
          An owner never holds two tiers at once: overlapping programs of one
          exclusivity group are refused, adjacent and ungrouped ones allowed,
          pending terms count, and two simultaneous adds probe the lock
  - id: ATS-MBR-MEM-001-08
    title: Creation uses the configured numbering source
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-08
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Create holdings under workspace, program and CRM numbering, including
          an owner without a CRM number.
        expect: >-
          The assigned number follows the selected source, and CRM numbering
          refuses the owner lacking a number.
        provenance: test
        source:
          - >-
            services-membership:tests/acceptance/memberships/MBR-ACC-0186.acceptance.ts#MBR-ACC-0186:
            Membership numbers come from the program's numbering scope: one
            sequence for the workspace, a program's own sequence, or the owner's
            CRM number, which refuses an owner without one and repeats across
            programs
    expected: >-
      The assigned number follows the selected source, and CRM numbering refuses
      the owner lacking a number.
    negative: false
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-205
    provenance: test
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0186.acceptance.ts#MBR-ACC-0186:
      Membership numbers come from the program's numbering scope: one sequence
      for the workspace, a program's own sequence, or the owner's CRM number,
      which refuses an owner without one and repeats across programs
    category: rule
    binding_evidence:
      - suite: TST-MBR-MEM-205
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0186.acceptance.ts#MBR-ACC-0186:
          Membership numbers come from the program's numbering scope: one
          sequence for the workspace, a program's own sequence, or the owner's
          CRM number, which refuses an owner without one and repeats across
          programs
  - id: ATS-MBR-MEM-001-09
    title: Enrolment preserves the reason and join-date origin
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-09
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Create one membership with an inferred join date and another with an
          explicit staff date.
        expect: >-
          Each saves a committed first term and enrolment reason; the join date
          and its origin distinguish the inferred date from the staff choice.
        provenance: proposed
        source: >-
          services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#creates
          a membership with its committed term, its enrolment and its cache
    expected: >-
      Each saves a committed first term and enrolment reason; the join date and
      its origin distinguish the inferred date from the staff choice.
    negative: false
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#creates
      a membership with its committed term, its enrolment and its cache
    category: transition
  - id: ATS-MBR-MEM-001-10
    title: Import insertion and update have distinct event behavior
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-10
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Load memberships before periods after configuration, including a
          granting package and an organization owner; then upsert an existing
          period.
        expect: >-
          Insertion records an imported event; update adds no new imported
          event; status is refreshed without generating grants or organizational
          children.
        provenance: proposed
        source: >-
          services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#orders
          the loads as 10 §1 does: configuration, then memberships, then terms
    expected: >-
      Insertion records an imported event; update adds no new imported event;
      status is refreshed without generating grants or organizational children.
    negative: false
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#orders
      the loads as 10 §1 does: configuration, then memberships, then terms
    category: interaction
  - id: ATS-MBR-MEM-001-11
    title: Import failures identify the affected item
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-11
    preconditions: >-
      A prepared workspace contains the FAA membership configuration and the
      records needed for this case.
    steps:
      - do: >-
          Prevalidate a malformed term field and attempt a period overlapping an
          existing term.
        expect: >-
          The invalid field is identified before writing, and the overlap
          receives an item-level conflict classification.
        provenance: test
        source:
          - >-
            services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#rejects
            a malformed item at prevalidation, naming its field
          - >-
            services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#classifies
            an overlapping term as that item’s conflict, term_overlap
    expected: >-
      The invalid field is identified before writing, and the overlap receives
      an item-level conflict classification.
    negative: true
    data_needs: >-
      FAA program, package, unit and membership fixtures from the integration
      setup.
    bound_to:
      - TST-MBR-MEM-019
    provenance: test
    source: >-
      services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#rejects
      a malformed item at prevalidation, naming its field
    category: failure
    binding_evidence:
      - suite: TST-MBR-MEM-019
        source: >-
          services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#rejects
          a malformed item at prevalidation, naming its field
      - suite: TST-MBR-MEM-019
        source: >-
          services-membership:modules/memberships/tests/integration/data-operations/membership-data-operations.integration.spec.ts#classifies
          an overlapping term as that item’s conflict, term_overlap
  - id: ATS-MBR-MEM-001-12
    title: Extend the holding after duplicate creation is refused
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-02
      - BR-CAP-MBR-MEM-002-02
    interacts_with:
      - CAP-MBR-MEM-002
    workflows: []
    relies_on:
      - ATS-MBR-MEM-001-02
      - ATS-MBR-MEM-002-02
    preconditions: One person already holds a principal membership.
    steps:
      - do: >-
          Repeat creation, then add an undated staff renewal to the existing
          holding.
        expect: >-
          The refused creation adds no holding; the renewal adds a period to the
          original holding.
        provenance: proposed
        source: &ref_0
          - >-
            services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#refuses
            a second principal membership of the same owner in the program
          - >-
            services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#adds
            a renewal continuing the latest term when no dates are given
    expected: >-
      The refused creation adds no holding; the renewal adds a period to the
      original holding.
    negative: true
    data_needs: >-
      An isolated workspace with the specified membership, package, chapter and
      partner-port fixtures.
    bound_to: []
    provenance: proposed
    source: *ref_0
  - id: ATS-MBR-MEM-001-13
    title: Keep enrolment and package grants in one commit
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-09
      - BR-CAP-MBR-MEM-006-01
    interacts_with:
      - CAP-MBR-MEM-006
    workflows:
      - WF-MBR-MEM-001
    relies_on:
      - ATS-MBR-MEM-001-09
      - ATS-MBR-MEM-006-01
    preconditions: A new person selects a granting package.
    steps:
      - do: >-
          Create the source membership, then inspect the source and granted
          holdings after commit; repeat with a refused creation.
        expect: >-
          The successful save contains source and grant periods; the refused
          save contains neither.
        provenance: proposed
        source: &ref_1
          - >-
            services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#creates
            a membership with its committed term, its enrolment and its cache
          - >-
            services-membership:modules/memberships/tests/integration/services/staff-operations.integration.spec.ts#creates
            the granted membership and term of a package grant in the same
            transaction
    expected: >-
      The successful save contains source and grant periods; the refused save
      contains neither.
    negative: false
    data_needs: >-
      An isolated workspace with the specified membership, package, chapter and
      partner-port fixtures.
    bound_to: []
    provenance: proposed
    source: *ref_1
  - id: ATS-MBR-MEM-001-14
    title: Refuse enrolment when its chapter selection is invalid
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-01
      - BR-CAP-MBR-MEM-007-03
    interacts_with:
      - CAP-MBR-MEM-007
    workflows: []
    relies_on:
      - ATS-MBR-MEM-001-01
      - ATS-MBR-MEM-007-03
    preconditions: A new person selects a package requiring one chapter.
    steps:
      - do: >-
          Create without a chapter, then create with an allowed chapter and
          inspect holdings and affiliations.
        expect: >-
          The first attempt leaves no holding; the second produces one holding
          with the selected chapter.
        provenance: proposed
        source: &ref_2
          - >-
            services-membership:tests/acceptance/memberships/MBR-ACC-0162.acceptance.ts#MBR-ACC-0162
          - >-
            services-membership:modules/memberships/tests/unit/unit-rules.spec.ts#refuses
            fewer affiliations of a type than its minimum from the day the
            operation takes effect
    expected: >-
      The first attempt leaves no holding; the second produces one holding with
      the selected chapter.
    negative: true
    data_needs: >-
      An isolated workspace with the specified membership, package, chapter and
      partner-port fixtures.
    bound_to: []
    provenance: proposed
    source: *ref_2
  - id: ATS-MBR-MEM-001-15
    title: Require the staff creation grant
    category: permission
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-01
    permissions:
      - membership.memberships.create
    preconditions: Staff and a read-only colleague submit the same valid enrolment.
    steps:
      - do: >-
          Create as staff, repeat as the read-only colleague, then count the
          contact’s memberships.
        expect: >-
          Staff creation succeeds; the colleague receives a missing-permission
          refusal and only one holding exists.
        provenance: test
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
    expected: >-
      Staff creation succeeds; the colleague receives a missing-permission
      refusal and only one holding exists.
    negative: true
    data_needs: >-
      Suite-owned workspaces, annual membership fixtures, signed staff and
      restricted contexts.
    bound_to:
      - TST-MBR-MEM-191
    binding_evidence:
      - suite: TST-MBR-MEM-191
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
    provenance: test
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
  - id: ATS-MBR-MEM-001-16
    title: Confine enrolment to the caller’s workspace
    category: boundary
    level: api
    proves:
      - BR-CAP-MBR-MEM-001-01
    permissions: []
    preconditions: >-
      Two isolated workspaces contain signed administrators and a holding in the
      first workspace.
    steps:
      - do: >-
          Use the second administrator against the first workspace, then read
          the first holding through the second workspace path.
        expect: >-
          The cross-workspace write is refused at the workspace boundary, the
          foreign read is not found, and the second workspace receives no
          holding.
        provenance: test
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
    expected: >-
      The cross-workspace write is refused at the workspace boundary, the
      foreign read is not found, and the second workspace receives no holding.
    negative: true
    data_needs: >-
      Suite-owned workspaces, annual membership fixtures, signed staff and
      restricted contexts.
    bound_to:
      - TST-MBR-MEM-191
    binding_evidence:
      - suite: TST-MBR-MEM-191
        source: >-
          services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
    provenance: test
    source: >-
      services-membership:tests/acceptance/memberships/MBR-ACC-0172.acceptance.ts
evidence:
  - >-
    services-membership at 5994c270e8a37a30f848e99ba5b5ee6b87c08893: the
    capability sources and the bound test files.
  - >-
    rhythm-v2-docs:specs/membership/memberships/design/: domain objects, state
    models and workflows reviewed for coverage.
coverage:
  rule: 'gap: FND-MBR-MEM-083'
  transition: 'gap: FND-MBR-MEM-083'
  validation: covered
  permission: covered
  edge: 'gap: FND-MBR-MEM-083'
  failure: covered
  boundary: covered
  concurrency: covered
  invariant: 'gap: FND-MBR-MEM-083'
  interaction: covered
coverage_notes:
  transition: >-
    The scenarios do not enumerate every applicable object transition; the
    finding preserves the remaining transition matrix.
  permission: >-
    The signed API acceptance case asserts allowed staff work and
    missing-permission refusals for every named key.
  invariant: >-
    Existing invariant examples do not cover every applicable domain-object
    constraint.
  interaction: >-
    Every related capability and each cross-capability workflow has an explicit
    composite scenario. Unbound composites remain proposed.
---

# Record a membership and its first term without a purchase: Capability Test Specification

## Coverage

| Rule | Scenario or Finding |
|---|---|
| `BR-CAP-MBR-MEM-001-01` | `ATS-MBR-MEM-001-01`, `ATS-MBR-MEM-001-14`, `ATS-MBR-MEM-001-15`, `ATS-MBR-MEM-001-16` |
| `BR-CAP-MBR-MEM-001-02` | `ATS-MBR-MEM-001-02`, `ATS-MBR-MEM-001-03`, `ATS-MBR-MEM-001-12` |
| `BR-CAP-MBR-MEM-001-03` | `ATS-MBR-MEM-001-03` |
| `BR-CAP-MBR-MEM-001-04` | `ATS-MBR-MEM-001-04` |
| `BR-CAP-MBR-MEM-001-05` | `ATS-MBR-MEM-001-05` |
| `BR-CAP-MBR-MEM-001-06` | `ATS-MBR-MEM-001-06` |
| `BR-CAP-MBR-MEM-001-07` | `ATS-MBR-MEM-001-07` |
| `BR-CAP-MBR-MEM-001-08` | `ATS-MBR-MEM-001-08` |
| `BR-CAP-MBR-MEM-001-09` | `ATS-MBR-MEM-001-09`, `ATS-MBR-MEM-001-13` |
| `BR-CAP-MBR-MEM-001-10` | `ATS-MBR-MEM-001-10` |
| `BR-CAP-MBR-MEM-001-11` | `ATS-MBR-MEM-001-11` |
| `BR-CAP-MBR-MEM-001-12` | no scenario: `FND-MBR-MEM-017` |
| `BR-CAP-MBR-MEM-001-13` | no scenario: `FND-MBR-MEM-016` |

## Interactions With Related Capabilities

The interaction cases test how a shared holding, period, chapter connection or recorded change affects related work. Each case names its related capabilities and workflows in frontmatter. A composite case remains proposed until executable assertions establish every part of its expected outcome.
