---
id: JNY-MBR-STR-004
title: Prepare a program and enrol its first member
feature: FEAT-MBR-STR-03
product_area: membership
module: structure
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - MBR-ACC-0080
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-MBR-001
goal: 'Configure a membership context and offering, then exercise them through a first enrolment.'
capabilities:
  - CAP-MBR-STR-009
  - CAP-MBR-STR-010
  - CAP-MBR-STR-011
  - CAP-MBR-STR-012
  - CAP-MBR-STR-017
  - CAP-MBR-STR-018
  - CAP-MBR-STR-015
screens: []
steps:
  - 'n': 1
    surface: createProgram
    action: Save National with affiliation-based unit binding.
    capability: CAP-MBR-STR-009
    expected: The program receives its readable reference.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - 'n': 2
    surface: replaceProgramUnitTypes
    action: Configure bounded chapter counts and unrestricted section counts.
    capability: CAP-MBR-STR-010
    expected: The program returns both category requirements.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - 'n': 3
    surface: createMembershipType
    action: Save Student and Regular classifications under National.
    capability: CAP-MBR-STR-011
    expected: Both classifications identify that program.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - 'n': 4
    surface: createMembershipPackage
    action: Extend the prepared Regular Annual product with an annual anniversary rule.
    capability: CAP-MBR-STR-012
    expected: The package returns Accounting’s shared product information.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - 'n': 5
    surface: createStatusReason
    action: Save the intended termination and cancellation explanations.
    capability: CAP-MBR-STR-017
    expected: Each reason retains its selected action category.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - 'n': 6
    surface: createMembership
    action: Establish the first Regular Annual holding.
    capability: CAP-MBR-STR-015
    expected: The term dates follow the selected offering rule.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
alternates:
  - from_step: 4
    condition: Accounting has no product corresponding to the proposed offering.
    path: Extension creation fails.
    outcome: Staff prepare the Accounting product before creating its package.
    provenance: test
    source: >-
      services-membership:tests/e2e/packages-as-products.e2e.spec.ts#packages as products, through the API ›
      refuses a package whose product Accounting does not have, 400
failures:
  - from_step: 2
    condition: Two editors update the same stored program version.
    path: The later request fails its version comparison.
    outcome: The second editor reloads and reconciles the accepted change.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0084.acceptance.ts#MBR-ACC-0084: Two
      administrators edit the Regular package at the same time: the first save wins, the second is told to
      re-read, and the grants she re-sends get new ids
rules_in_play:
  - BR-CAP-MBR-STR-009-01
  - BR-CAP-MBR-STR-010-01
  - BR-CAP-MBR-STR-010-03
  - BR-CAP-MBR-STR-011-01
  - BR-CAP-MBR-STR-012-01
  - BR-CAP-MBR-STR-012-02
  - BR-CAP-MBR-STR-017-01
  - BR-CAP-MBR-STR-018-01
  - BR-CAP-MBR-STR-018-03
  - BR-CAP-MBR-STR-015-03
assertions:
  - id: AS-JNY-MBR-STR-004-01
    statement: Newly created configuration examples can be read under their assigned references.
    provenance: test
    source: >-
      services-membership:tests/acceptance/configuration/MBR-ACC-0080.acceptance.ts#MBR-ACC-0080: An
      administrator builds an association's membership configuration from nothing and a first member is
      enrolled on it
  - id: AS-JNY-MBR-STR-004-02
    statement: Creating the extension from an absent Accounting product is rejected.
    provenance: test
    source: >-
      services-membership:tests/e2e/packages-as-products.e2e.spec.ts#packages as products, through the API ›
      refuses a package whose product Accounting does not have, 400
e2e_policy: optional
e2e_reason: >-
  Configuration acceptance runs exercise these API steps manually. The product should add browser coverage
  when administration screens make this setup workflow available.
proved_by: []
---

# Prepare a program and enrol its first member

## Story

An administrator begins with the membership program, then prepares its unit requirements and classifications. The administrator extends the product already saved in Accounting and adds suitable action reasons. A first enrolment exercises the configuration through membership administration. The saved records and resulting term provide a concrete check that the program and offering fit together.
