Untitled Project
Personal Training OS — Test Cases
1. Verification test cases
  • HOK-004
    9.4. Count only after Attended HOK-004

    The system shall only count a hockey game toward training after it is marked Attended.

    • HOK-002
      9.2. Existing game databases are source of truth HOK-002

      The system shall keep the existing hockey game databases as the source of truth for game data.

  • HOK-006
    9.6. Default not counted until Attended HOK-006

    By default the system shall set a hockey game to not count toward training until it is marked Attended.

    • HOK-004
      9.4. Count only after Attended HOK-004

      The system shall only count a hockey game toward training after it is marked Attended.

      • HOK-002
        9.2. Existing game databases are source of truth HOK-002

        The system shall keep the existing hockey game databases as the source of truth for game data.

  • HOK-008
    9.8. Not attended excluded from load HOK-008

    If a hockey game is not marked Attended, then the system shall exclude it from training-load calculations.

    • HOK-004
      9.4. Count only after Attended HOK-004

      The system shall only count a hockey game toward training after it is marked Attended.

      • HOK-002
        9.2. Existing game databases are source of truth HOK-002

        The system shall keep the existing hockey game databases as the source of truth for game data.

TC-01
1.1. Hockey not-attended does not count TC-01

A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.

  • HOK-007
    9.7. Attended marks it counting HOK-007

    When a hockey Game Training Session is marked Attended, the system shall set Counts Toward Training? to true.

    • HOK-004
      9.4. Count only after Attended HOK-004

      The system shall only count a hockey game toward training after it is marked Attended.

      • HOK-002
        9.2. Existing game databases are source of truth HOK-002

        The system shall keep the existing hockey game databases as the source of truth for game data.

TC-02
1.2. Hockey attended counts TC-02

A hockey session with Attendance = Attended has Counts Toward Training (auto) = true.

  • HOK-004
    9.4. Count only after Attended HOK-004

    The system shall only count a hockey game toward training after it is marked Attended.

    • HOK-002
      9.2. Existing game databases are source of truth HOK-002

      The system shall keep the existing hockey game databases as the source of truth for game data.

TC-03
1.3. Completed run counts TC-03

A non-hockey session with Status = Completed has Counts Toward Training (auto) = true.

  • HOK-004
    9.4. Count only after Attended HOK-004

    The system shall only count a hockey game toward training after it is marked Attended.

    • HOK-002
      9.2. Existing game databases are source of truth HOK-002

      The system shall keep the existing hockey game databases as the source of truth for game data.

TC-04
1.4. Planned session does not count TC-04

A non-hockey session with Status = Planned has Counts = false; setting Status = Completed flips it to true.

  • SHO-004
    12.4. Total mileage rollup SHO-004

    The system shall compute total mileage per shoe via a rollup or formula that sums Distance across the Training Sessions related to that shoe.

    • SHO-001
      12.1. Create Running Shoes SHO-001

      The system shall create a Running Shoes database.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-05
1.5. Shoe mileage rollup equals 16 TC-05

an example running shoe Total Miles = 16 (sum of Distance from the two linked runs, 11 + 5).

  • SHO-004
    12.4. Total mileage rollup SHO-004

    The system shall compute total mileage per shoe via a rollup or formula that sums Distance across the Training Sessions related to that shoe.

    • SHO-001
      12.1. Create Running Shoes SHO-001

      The system shall create a Running Shoes database.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-06
1.6. Rollup updates on new run TC-06

Linking a new run to the shoe increases Total Miles; unlinking returns it to the prior value.

  • PEO-005
    2.5. Secondary User first-class across areas PEO-005

    The system shall allow Secondary User to be referenced from Goals, Races, Metrics/Check-ins, Nutrition Log, and future training structures, not solely as a placeholder.

    • PEO-001
      2.1. Create People database PEO-001

      The system shall create a People database.

  • TS-005
    5.5. Relates to People TS-005

    Each Training Session shall relate to People via a Person relation.

    • TS-001
      5.1. Create Training Sessions TS-001

      The system shall create a Training Sessions database as the central log of all training activity.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

    • PEO-006
      2.6. Person relation on attributable databases PEO-006

      Every database that records person-attributable data shall relate to People via a Person relation rather than free text.

      • PEO-001
        2.1. Create People database PEO-001

        The system shall create a People database.

TC-07
1.7. Secondary User is first-class TC-07

Secondary User exists in People and is selectable as Person on sessions/goals/metrics.

  • REL-002
    19.2. Metrics and Nutrition relate to People REL-002

    The system shall relate Metrics/Check-ins and Nutrition Log to People.

TC-08
1.8. Person filter isolates data TC-08

Filtering by Person = Primary User vs Secondary User returns only that person's rows.

  • AUTO-004
    4.4. Manual default source AUTO-004

    When a record is created by hand rather than an integration, the system shall default its Source to Manual.

    • AUTO-002
      4.2. Standard automation field set AUTO-002

      Each key database shall include Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, and Raw Data/Notes where meaningful.

      • AUTO-001
        4.1. Build automation fields in now AUTO-001

        The system shall build automation fields into key databases at creation time.

TC-09
1.9. Manual source default TC-09

A hand-created session has Source = Manual.

  • EQP-004
    10.4. Stickhandling ball pending EQP-004

    The system shall mark the stickhandling ball as pending and not currently usable.

    • EQP-001
      10.1. Templates reflect available equipment only EQP-001

      The system shall reflect currently available equipment only in workout templates and exercise library defaults.

  • EQP-005
    10.5. No unavailable equipment assumptions EQP-005

    The system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.

    • EQP-001
      10.1. Templates reflect available equipment only EQP-001

      The system shall reflect currently available equipment only in workout templates and exercise library defaults.

TC-10
1.10. Equipment availability correct TC-10

Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.

  • EQP-006
    10.6. No template requires unavailable equipment EQP-006

    If a Workout Template would require unavailable equipment, then the system shall not present it as a currently-doable template.

    • EQP-005
      10.5. No unavailable equipment assumptions EQP-005

      The system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.

      • EQP-001
        10.1. Templates reflect available equipment only EQP-001

        The system shall reflect currently available equipment only in workout templates and exercise library defaults.

TC-11
1.11. Templates use available gear only TC-11

The seeded Workout Templates reference only Available equipment.

  • RACE-003
    8.3. Seed Example Half Marathon RACE-003

    When the Races database is created, the system shall seed the Example Half Marathon on an example date for Primary User, Type Half Marathon, Goal sub-2 ideal finish strong acceptable, Goal Time 2:00:00, Status Training/Registered.

    • RACE-001
      8.1. Create Races database RACE-001

      The system shall create a Races database.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

  • RACE-004
    8.4. Seed Example 5K RACE-004

    When the Races database is created, the system shall seed the Example 5K on an example date for Primary User, Type 5K, Status Registered/Planned.

    • RACE-001
      8.1. Create Races database RACE-001

      The system shall create a Races database.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-12
1.12. Race seeds correct TC-12

Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.

  • HIST-001
    7.1. Seed 5-mile hill repeats HIST-001

    The system shall add a completed Training Session for the 5-mile hill repeats run on an example date.

    • TS-001
      5.1. Create Training Sessions TS-001

      The system shall create a Training Sessions database as the central log of all training activity.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

  • HIST-002
    7.2. Seed 11-mile long run HIST-002

    The system shall add a completed Training Session for the 11-mile long run on an example date.

    • TS-001
      5.1. Create Training Sessions TS-001

      The system shall create a Training Sessions database as the central log of all training activity.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-13
1.13. Historical runs correct TC-13

11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.

  • REL-001
    19.1. Session relationships REL-001

    The system shall relate Training Sessions to People, Training Blocks, Races, Running Shoes, Running Routes, Exercise Log, and the source game for hockey.

  • TS-008
    5.8. Shoe and Route relations TS-008

    Each Training Session shall provide a Running Shoe relation and a Running Route relation.

    • TS-001
      5.1. Create Training Sessions TS-001

      The system shall create a Training Sessions database as the central log of all training activity.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-14
1.14. Session relationships wired TC-14

The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.

  • GOL-003
    17.3. Goal to Race relation GOL-003

    Where a Goal is tied to a race, the system shall allow it to relate to a Race.

    • GOL-001
      17.1. Create Goals GOL-001

      The system shall create a Goals database.

      • ARCH-001
        3.1. Create all databases up front ARCH-001

        The system shall create the full set of databases at build time regardless of immediate use.

TC-15
1.15. Goal linked to Race TC-15

The Sub-2:00 goal has a Race relation to the Example Half Marathon.

  • HOK-002
    9.2. Existing game databases are source of truth HOK-002

    The system shall keep the existing hockey game databases as the source of truth for game data.

TC-16
1.16. Source-of-truth game link TC-16

A hockey session can relate to a Team A/Team B game without altering the source game DB.

  • NAV-002
    1.2. Child of Personal Dashboard NAV-002

    The system shall exist as a child page under the "Personal Dashboard" page.

  • NAV-003
    1.3. Link below Inbox NAV-003

    When the Personal Training OS page is created, the system shall place a link to it directly below the "Inbox" link on the Personal Dashboard.

    • NAV-001
      1.1. Personal Training OS page NAV-001

      The system shall be created as a Notion page titled "Personal Training OS".

TC-17
1.17. Page placement TC-17

The Personal Training OS page is a child of Personal Dashboard, linked below Inbox.

  • NFR-USE-001
    20.6. Mobile low-effort capture NFR-USE-001

    The system shall be usable on the Notion mobile apps so that data capture is low-effort across devices.

TC-18
1.18. Mobile capture TC-18

A session/check-in can be logged with low effort in the Notion mobile app.

  • NFR-BKP-001
    20.3. Backup and recovery NFR-BKP-001

    The system shall support periodic export of its data so that training records are recoverable after accidental loss.

TC-19
1.19. Backup and recovery TC-19

The OS data can be exported from Notion and is restorable.

  • TMP-001
    11.3. Create Workout Templates TMP-001

    The system shall create a Workout Templates database composed of exercises from the Exercise Library.

    • ARCH-001
      3.1. Create all databases up front ARCH-001

      The system shall create the full set of databases at build time regardless of immediate use.

  • DRL-001
    18.1. Create Hockey Drills DRL-001

    The system shall create a Hockey Drills database.

    • ARCH-001
      3.1. Create all databases up front ARCH-001

      The system shall create the full set of databases at build time regardless of immediate use.

TC-20
1.20. Training materials present TC-20

At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.