-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
-
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.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
-
-
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.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
-
A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
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.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
-
A hockey session with Attendance = Attended has Counts Toward Training (auto) = true.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
A non-hockey session with Status = Completed has Counts Toward Training (auto) = true.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
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.
-
A non-hockey session with Status = Planned has Counts = false; setting Status = Completed flips it to true.
-
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.
-
12.1. Create Running Shoes SHO-001 The system shall create a Running Shoes database.
-
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.
-
-
an example running shoe Total Miles = 16 (sum of Distance from the two linked runs, 11 + 5).
-
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.
-
12.1. Create Running Shoes SHO-001 The system shall create a Running Shoes database.
-
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.
-
-
Linking a new run to the shoe increases Total Miles; unlinking returns it to the prior value.
-
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.
-
2.1. Create People database PEO-001 The system shall create a People database.
-
-
5.5. Relates to People TS-005 Each Training Session shall relate to People via a Person relation.
-
5.1. Create Training Sessions TS-001 The system shall create a Training Sessions database as the central log of all training activity.
-
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.
-
-
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.
-
2.1. Create People database PEO-001 The system shall create a People database.
-
-
Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
19.2. Metrics and Nutrition relate to People REL-002 The system shall relate Metrics/Check-ins and Nutrition Log to People.
Filtering by Person = Primary User vs Secondary User returns only that person's rows.
-
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.
-
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.
-
4.1. Build automation fields in now AUTO-001 The system shall build automation fields into key databases at creation time.
-
-
A hand-created session has Source = Manual.
-
10.4. Stickhandling ball pending EQP-004 The system shall mark the stickhandling ball as pending and not currently usable.
-
10.1. Templates reflect available equipment only EQP-001 The system shall reflect currently available equipment only in workout templates and exercise library defaults.
-
-
10.5. No unavailable equipment assumptions EQP-005 The system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.
-
10.1. Templates reflect available equipment only EQP-001 The system shall reflect currently available equipment only in workout templates and exercise library defaults.
-
Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.
-
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.
-
10.5. No unavailable equipment assumptions EQP-005 The system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.
-
10.1. Templates reflect available equipment only EQP-001 The system shall reflect currently available equipment only in workout templates and exercise library defaults.
-
-
The seeded Workout Templates reference only Available equipment.
-
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.
-
8.1. Create Races database RACE-001 The system shall create a Races database.
-
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.
-
-
-
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.
-
8.1. Create Races database RACE-001 The system shall create a Races database.
-
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.
-
-
Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
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.
-
5.1. Create Training Sessions TS-001 The system shall create a Training Sessions database as the central log of all training activity.
-
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.
-
-
-
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.
-
5.1. Create Training Sessions TS-001 The system shall create a Training Sessions database as the central log of all training activity.
-
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.
-
-
11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
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.
-
5.8. Shoe and Route relations TS-008 Each Training Session shall provide a Running Shoe relation and a Running Route relation.
-
5.1. Create Training Sessions TS-001 The system shall create a Training Sessions database as the central log of all training activity.
-
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.
-
-
The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.
-
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.
-
17.1. Create Goals GOL-001 The system shall create a Goals database.
-
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.
-
-
The Sub-2:00 goal has a Race relation to the Example Half Marathon.
-
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.
A hockey session can relate to a Team A/Team B game without altering the source game DB.
-
1.2. Child of Personal Dashboard NAV-002 The system shall exist as a child page under the "Personal Dashboard" page.
-
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.
-
1.1. Personal Training OS page NAV-001 The system shall be created as a Notion page titled "Personal Training OS".
-
The Personal Training OS page is a child of Personal Dashboard, linked below Inbox.
-
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.
A session/check-in can be logged with low effort in the Notion mobile app.
-
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.
The OS data can be exported from Notion and is restorable.
-
11.3. Create Workout Templates TMP-001 The system shall create a Workout Templates database composed of exercises from the Exercise Library.
-
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.
-
-
18.1. Create Hockey Drills DRL-001 The system shall create a Hockey Drills database.
-
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.
-
At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.