The system shall be created as a Notion page titled "Personal Training OS".
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
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.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
1.17. Page placement TC-17 The Personal Training OS page is a child of Personal Dashboard, linked below Inbox.
-
-
1.4. Entry points to all databases NAV-004 The system shall present, from its top-level page, entry points to every database.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
The system shall exist as a child page under the "Personal Dashboard" page.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
1.17. Page placement TC-17 The Personal Training OS page is a child of Personal Dashboard, linked below Inbox.
-
1.1. Personal Training OS page NAV-001 The system shall be created as a Notion page titled "Personal Training OS".
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.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
1.17. Page placement TC-17 The Personal Training OS page is a child of Personal Dashboard, linked below Inbox.
-
1.1. Personal Training OS page NAV-001 The system shall be created as a Notion page titled "Personal Training OS".
The system shall present, from its top-level page, entry points to every database.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
The system shall create a People database.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
2.2. People as primary identity model PEO-002 The system shall use People as the primary identity model for the entire system.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
-
2.3. Seed Primary User and Secondary User PEO-003 When the People database is created, the system shall seed two people, Primary User and Secondary User.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
-
2.4. Optional Notion User and external IDs PEO-004 Where a person record supports automation, the People database shall provide optional Notion User and external ID fields for that person.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
-
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.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
-
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.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
1.22. Relationship map and rollups DES-RELATIONS Ownership and cardinality of all relations, ensuring Metrics and Nutrition relate to People and that shoe mileage and hockey load are derivable via rollups rather than manual tally. See design-schema section 17.
-
5.5. Relates to People TS-005 Each Training Session shall relate to People via a Person relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
-
-
2.1. Create People database PEO-001 The system shall create a People database.
The system shall use People as the primary identity model for the entire system.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
2.1. Create People database PEO-001 The system shall create a People database.
When the People database is created, the system shall seed two people, Primary User and Secondary User.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
2.1. Create People database PEO-001 The system shall create a People database.
Where a person record supports automation, the People database shall provide optional Notion User and external ID fields for that person.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
2.1. Create People database PEO-001 The system shall create a People database.
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.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
2.1. Create People database PEO-001 The system shall create a People database.
Every database that records person-attributable data shall relate to People via a Person relation rather than free text.
-
1.4. People identity hub DES-PEOPLE People database with Person title, Active, optional Notion User and External IDs, and Role. Seeded with Primary User and Secondary User both as Athlete so Secondary User is selectable everywhere. Every person-attributable database relates to People by relation, not free text. See design-schema section 3.
-
1.22. Relationship map and rollups DES-RELATIONS Ownership and cardinality of all relations, ensuring Metrics and Nutrition relate to People and that shoe mileage and hockey load are derivable via rollups rather than manual tally. See design-schema section 17.
-
5.5. Relates to People TS-005 Each Training Session shall relate to People via a Person relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
The system shall create the full set of databases at build time regardless of immediate use.
-
1.1. Full architecture created up front DES-ARCH Create all fifteen databases at build time with schema in place, regardless of immediate use. See design-schema section 3.
-
3.3. Create even if used later ARCH-003 Where a database will be used later but not immediately, the system shall still create it now with its schema in place.
-
1.1. Full architecture created up front DES-ARCH Create all fifteen databases at build time with schema in place, regardless of immediate use. See design-schema section 3.
-
-
5.1. Create Training Sessions TS-001 The system shall create a Training Sessions database as the central log of all training activity.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
5.2. Automation fields on sessions TS-002 Each Training Session shall carry the standard automation fields.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.3. Session Type TS-003 Each Training Session shall provide a Session Type such as Run, Race, Workout, or Hockey Game.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.4. Status TS-004 Each Training Session shall provide a Status such as Planned or Completed.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.5. Relates to People TS-005 Each Training Session shall relate to People via a Person relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
-
5.6. Distance field TS-006 Each running Training Session shall provide a Distance field.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.7. Run Type field TS-007 Each running Training Session shall provide a Run Type field such as easy, very easy, long, tempo, intervals, or 5K pace.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.8. Shoe and Route relations TS-008 Each Training Session shall provide a Running Shoe relation and a Running Route relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.14. Session relationships wired TC-14 The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.
-
-
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.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
-
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.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
-
-
8.1. Create Races database RACE-001 The system shall create a Races database.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
8.2. Person and automation fields on races RACE-002 Each Race shall relate to People and carry the standard automation fields where meaningful.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.2. Times stored as text with optional numeric seconds DES-D2 Notion has no duration type, so Goal Time / Result Time are text H:MM:SS with an optional numeric seconds field where math is needed.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
-
8.5. Runs relate to Race RACE-005 Where a Race has associated training runs, the system shall allow those Training Sessions to relate to the Race.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
-
11.1. Create Exercise Library LIB-001 The system shall create an Exercise Library database cataloguing individual exercises and drills.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
11.2. Record required equipment LIB-002 Where an exercise requires equipment, the Exercise Library shall record the required equipment drawn from the available set.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
-
-
11.3. Create Workout Templates TMP-001 The system shall create a Workout Templates database composed of exercises from the Exercise Library.
-
1.15. Workout Templates doable by construction DES-TEMPLATES Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8.
-
1.20. Training materials present TC-20 At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.
-
-
11.4. Create Exercise Log TMP-002 The system shall create an Exercise Log database recording performed exercises, relatable to Training Sessions and People.
-
1.16. Exercise Log DES-EXLOG Exercise Log relating to Training Sessions and Exercise Library, with Person and Date rolled up from the session, plus sets/reps/weight/distance/duration/RPE. See design-schema section 9.
-
-
12.1. Create Running Shoes SHO-001 The system shall create a Running Shoes database.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
12.2. Seed an example running shoe SHO-002 When the Running Shoes database is created, the system shall seed an example running shoe.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
12.3. Session to Shoe relation SHO-003 Each Training Session shall provide a Running Shoe relation.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
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.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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).
-
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.
-
-
12.5. Garmin gear can improve mileage SHO-005 Where Garmin gear data becomes available later, the system shall allow that data to improve or override shoe mileage.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
-
13.1. Create Running Routes RTE-001 The system shall create a Running Routes database.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
13.2. Seed generic routes RTE-002 When the Running Routes database is created, the system shall seed generic routes Outdoor Run, Treadmill Run, Race Route, and Unknown/To Assign.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
-
13.3. Session to Route relation RTE-003 Each running Training Session shall provide a Running Route relation.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
-
-
14.1. Create Metrics/Check-ins MET-001 The system shall create a Metrics/Check-ins database up front.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
2.4. Metrics as daily-wide rows DES-D4 Metrics/Check-ins are one wide row per person per day, optimized for manual entry; high-frequency wearable streams would use a long-format companion added when an integration lands.
-
14.2. Automation fields on metrics MET-002 Each Metrics/Check-ins record shall carry the standard automation fields.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
14.3. Metrics sources MET-003 The Metrics/Check-ins database shall be automation-ready for Garmin, Apple Health, Apple Watch, and Manual.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
14.4. Metrics relate to People MET-004 Each Metrics/Check-ins record shall relate to People.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
-
15.1. Create Nutrition Log NUT-001 The system shall create a Nutrition Log database up front.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
15.2. Automation fields on nutrition NUT-002 Each Nutrition Log record shall carry the standard automation fields.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.3. Nutrition sources NUT-003 The Nutrition Log database shall be automation-ready for MyFitnessPal and Manual.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.4. CSV and API import later NUT-004 Where bulk historical data exists, the system shall support later CSV or API imports into the Nutrition Log.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.5. Nutrition relates to People NUT-005 Each Nutrition Log record shall relate to People.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
-
16.1. Create Weekly Reviews WKR-001 The system shall create a Weekly Reviews database now.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
16.2. Manual at first WKR-002 The system shall allow Weekly Reviews to be filled in manually initially.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
-
16.3. Automatable later WKR-003 Where automation is added later, the system shall allow Weekly Reviews to be populated automatically.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
-
-
17.1. Create Goals GOL-001 The system shall create a Goals database.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
17.2. Goals relate to People including Secondary User GOL-002 Each Goal shall relate to People, including Secondary User.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
-
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.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
1.15. Goal linked to Race TC-15 The Sub-2:00 goal has a Race relation to the Example Half Marathon.
-
-
-
17.4. Create Training Blocks BLK-001 The system shall create a Training Blocks database representing multi-week training phases.
-
1.12. Training Blocks DES-BLOCKS Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5.
-
17.5. Sessions relate to Block BLK-002 The system shall allow Training Sessions to relate to a Training Block.
-
1.12. Training Blocks DES-BLOCKS Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5.
-
-
-
18.1. Create Hockey Drills DRL-001 The system shall create a Hockey Drills database.
-
1.20. Hockey Drills DES-DRILLS Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16.
-
18.2. Drill equipment excludes net DRL-002 Where a Hockey Drill requires equipment, the system shall reference only available equipment such as stick, shooting pad, cones, and balance boards, and not a net.
-
1.20. Hockey Drills DES-DRILLS Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16.
-
-
1.20. Training materials present TC-20 At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.
-
-
18.3. Create Resources RES-001 The system shall create a Resources database for reference material.
-
1.21. Resources DES-RESOURCES Resources reference database with Type, URL, Topic, and Notes. See design-schema section 16.
-
The system shall provide linked or embedded references to the existing Team A games and Team B games databases without recreating them.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
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.
Where a database will be used later but not immediately, the system shall still create it now with its schema in place.
-
1.1. Full architecture created up front DES-ARCH Create all fifteen databases at build time with schema in place, regardless of immediate use. See design-schema section 3.
The system shall build automation fields into key databases at creation time.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
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.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
4.3. Source vocabulary AUTO-003 The Source field shall be a select whose options include Garmin, MyFitnessPal, Apple Health, Apple Watch, Strava, Calendar, Manual, Notion, and Hockey DB.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
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.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
1.9. Manual source default TC-09 A hand-created session has Source = Manual.
-
-
4.5. Manual override blocks overwrite AUTO-005 While a record's Manual Override is set, the system shall not permit an automated sync to overwrite that record's fields.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
4.6. Sync populates provenance fields AUTO-006 When an automated import creates or updates a record, the system shall populate Source, Source ID, Imported At, and Last Synced At for that record.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
4.7. Failure surfaces in Sync Status AUTO-007 If an automated sync fails or is incomplete for a record, then the system shall reflect the failure in that record's Sync Status.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
5.2. Automation fields on sessions TS-002 Each Training Session shall carry the standard automation fields.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
8.2. Person and automation fields on races RACE-002 Each Race shall relate to People and carry the standard automation fields where meaningful.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
14.2. Automation fields on metrics MET-002 Each Metrics/Check-ins record shall carry the standard automation fields.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
15.2. Automation fields on nutrition NUT-002 Each Nutrition Log record shall carry the standard automation fields.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
-
4.1. Build automation fields in now AUTO-001 The system shall build automation fields into key databases at creation time.
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.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
4.3. Source vocabulary AUTO-003 The Source field shall be a select whose options include Garmin, MyFitnessPal, Apple Health, Apple Watch, Strava, Calendar, Manual, Notion, and Hockey DB.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
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.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
1.9. Manual source default TC-09 A hand-created session has Source = Manual.
-
-
4.5. Manual override blocks overwrite AUTO-005 While a record's Manual Override is set, the system shall not permit an automated sync to overwrite that record's fields.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
4.6. Sync populates provenance fields AUTO-006 When an automated import creates or updates a record, the system shall populate Source, Source ID, Imported At, and Last Synced At for that record.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
4.7. Failure surfaces in Sync Status AUTO-007 If an automated sync fails or is incomplete for a record, then the system shall reflect the failure in that record's Sync Status.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
-
5.2. Automation fields on sessions TS-002 Each Training Session shall carry the standard automation fields.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
8.2. Person and automation fields on races RACE-002 Each Race shall relate to People and carry the standard automation fields where meaningful.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
14.2. Automation fields on metrics MET-002 Each Metrics/Check-ins record shall carry the standard automation fields.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
15.2. Automation fields on nutrition NUT-002 Each Nutrition Log record shall carry the standard automation fields.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
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.
-
The Source field shall be a select whose options include Garmin, MyFitnessPal, Apple Health, Apple Watch, Strava, Calendar, Manual, Notion, and Hockey DB.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
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.
-
When a record is created by hand rather than an integration, the system shall default its Source to Manual.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
1.9. Manual source default TC-09 A hand-created session has Source = 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.
-
While a record's Manual Override is set, the system shall not permit an automated sync to overwrite that record's fields.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
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.
-
When an automated import creates or updates a record, the system shall populate Source, Source ID, Imported At, and Last Synced At for that record.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
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.
-
If an automated sync fails or is incomplete for a record, then the system shall reflect the failure in that record's Sync Status.
-
1.3. Standard Automation Block DES-AUTO A shared eight-field automation block (Source, Source ID, External URL, Imported At, Last Synced At, Sync Status, Manual Override, Raw Data/Notes) applied to every integration-fed database, plus the sync contract that a set Manual Override blocks automated overwrite and failures surface in Sync Status. See design-schema section 2.
-
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 system shall create a Training Sessions database as the central log of all training activity.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
5.2. Automation fields on sessions TS-002 Each Training Session shall carry the standard automation fields.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.3. Session Type TS-003 Each Training Session shall provide a Session Type such as Run, Race, Workout, or Hockey Game.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.4. Status TS-004 Each Training Session shall provide a Status such as Planned or Completed.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.5. Relates to People TS-005 Each Training Session shall relate to People via a Person relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
-
5.6. Distance field TS-006 Each running Training Session shall provide a Distance field.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.7. Run Type field TS-007 Each running Training Session shall provide a Run Type field such as easy, very easy, long, tempo, intervals, or 5K pace.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
-
5.8. Shoe and Route relations TS-008 Each Training Session shall provide a Running Shoe relation and a Running Route relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.14. Session relationships wired TC-14 The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.
-
-
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.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
-
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.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
-
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.
-
-
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.
-
Each Training Session shall carry the standard automation fields.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
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.
-
Each Training Session shall provide a Session Type such as Run, Race, Workout, or Hockey Game.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
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.
-
Each Training Session shall provide a Status such as Planned or Completed.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
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.
-
Each Training Session shall relate to People via a Person relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.7. Secondary User is first-class TC-07 Secondary User exists in People and is selectable as Person on sessions/goals/metrics.
-
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.
-
Each running Training Session shall provide a Distance field.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
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.
-
Each running Training Session shall provide a Run Type field such as easy, very easy, long, tempo, intervals, or 5K pace.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
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.
-
Each Training Session shall provide a Running Shoe relation and a Running Route relation.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.14. Session relationships wired TC-14 The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.
The system shall use calendar events as the source for planned running sessions.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.3. Source is Calendar CAL-003 When a Training Session is created from a calendar event, the system shall set Source to Calendar.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.4. Source ID is event ID CAL-004 When a Training Session is created from a calendar event, the system shall set Source ID to the calendar event ID.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.5. External URL from event link CAL-005 Where the calendar event provides a link, the system shall set External URL to the calendar event link.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.6. Future events are Planned CAL-006 When a calendar event is a future event, the system shall set the Training Session Status to Planned.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.7. Session Type Run or Race CAL-007 When creating a Training Session from a calendar event, the system shall set Session Type to Run or Race as appropriate.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.8. Distance from title when obvious CAL-008 Where the distance is obvious from the event title, the system shall populate the Training Session Distance.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.9. Run Type when explicit CAL-009 Where the run type is explicitly stated in the event, the system shall set Run Type accordingly.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.10. No inference when implicit CAL-010 If the run type is not explicitly stated in the event, then the system shall leave Run Type unset.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
When a calendar event represents a run or race, the system shall create a Training Session for it.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.3. Source is Calendar CAL-003 When a Training Session is created from a calendar event, the system shall set Source to Calendar.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.4. Source ID is event ID CAL-004 When a Training Session is created from a calendar event, the system shall set Source ID to the calendar event ID.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.5. External URL from event link CAL-005 Where the calendar event provides a link, the system shall set External URL to the calendar event link.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.6. Future events are Planned CAL-006 When a calendar event is a future event, the system shall set the Training Session Status to Planned.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.7. Session Type Run or Race CAL-007 When creating a Training Session from a calendar event, the system shall set Session Type to Run or Race as appropriate.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.8. Distance from title when obvious CAL-008 Where the distance is obvious from the event title, the system shall populate the Training Session Distance.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.9. Run Type when explicit CAL-009 Where the run type is explicitly stated in the event, the system shall set Run Type accordingly.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.10. No inference when implicit CAL-010 If the run type is not explicitly stated in the event, then the system shall leave Run Type unset.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
When a Training Session is created from a calendar event, the system shall set Source to Calendar.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
When a Training Session is created from a calendar event, the system shall set Source ID to the calendar event ID.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
Where the calendar event provides a link, the system shall set External URL to the calendar event link.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
When a calendar event is a future event, the system shall set the Training Session Status to Planned.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
When creating a Training Session from a calendar event, the system shall set Session Type to Run or Race as appropriate.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
Where the distance is obvious from the event title, the system shall populate the Training Session Distance.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
Where the run type is explicitly stated in the event, the system shall set Run Type accordingly.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
6.2. Event creates a Training Session CAL-002 When a calendar event represents a run or race, the system shall create a Training Session for it.
-
6.1. Calendar is source of planned runs CAL-001 The system shall use calendar events as the source for planned running sessions.
-
If the run type is not explicitly stated in the event, then the system shall leave Run Type unset.
-
1.7. Calendar import mapping DES-CAL Calendar run/race events map to Training Sessions with Source Calendar, Source ID as event ID, External URL from event link, Status Planned for future events, Session Type Run or Race, Distance parsed from title when obvious, and Run Type set only when explicit else left unset. See design-schema section 4.1.
-
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 system shall add a completed Training Session for the 5-mile hill repeats run on an example date.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
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 system shall add a completed Training Session for the 11-mile long run on an example date.
-
1.6. Historical run seeds DES-HIST Two completed Training Session seed rows: 5-mile hill repeats and 11-mile long run. See design-schema section 4.
-
1.13. Historical runs correct TC-13 11-mile long run = 11 mi / Long; 5-mile hill repeats = 5 mi / Hills.
-
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 system shall create a Races database.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
8.2. Person and automation fields on races RACE-002 Each Race shall relate to People and carry the standard automation fields where meaningful.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.2. Times stored as text with optional numeric seconds DES-D2 Notion has no duration type, so Goal Time / Result Time are text H:MM:SS with an optional numeric seconds field where math is needed.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
-
8.5. Runs relate to Race RACE-005 Where a Race has associated training runs, the system shall allow those Training Sessions to relate to the Race.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
-
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.
-
-
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.
-
Each Race shall relate to People and carry the standard automation fields where meaningful.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
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.
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.2. Times stored as text with optional numeric seconds DES-D2 Notion has no duration type, so Goal Time / Result Time are text H:MM:SS with an optional numeric seconds field where math is needed.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
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.
-
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.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
-
2.5. Compound seed statuses kept literal DES-D5 The compound seed statuses Training/Registered and Registered/Planned are preserved as literal select options alongside atomic options so the seeds match the requirements exactly.
-
1.12. Race seeds correct TC-12 Example Half Marathon = Half Marathon / Goal 2:00:00; Example 5K = 5K.
-
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.
-
Where a Race has associated training runs, the system shall allow those Training Sessions to relate to the Race.
-
1.9. Races schema and seeds DES-RACES Races database with Person, Date, Type, Goal, Goal Time, Status, Days Out formula, relations to Training Blocks/Goals/Training Sessions, and the Standard Automation Block. Seeded with Example Half Marathon and Example 5K. See design-schema section 13.
The system shall treat both teams, Team A and Team B, equally.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
9.3. Linked views for both teams HOK-003 The system shall present linked views for both teams on the dashboard.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
The system shall keep the existing hockey game databases as the source of truth for game data.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
2.3. Two hockey-game relations (Team A, Team B) DES-D3 Notion relations are single-target and the two game databases are separate sources of truth, so Training Sessions carry two relation properties disambiguated by Team.
-
9.4. Count only after Attended HOK-004 The system shall only count a hockey game toward training after it is marked Attended.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.2. Hockey attended counts TC-02 A hockey session with Attendance = Attended has Counts Toward Training (auto) = true.
-
-
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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
1.3. Completed run counts TC-03 A non-hockey session with Status = Completed has Counts Toward Training (auto) = true.
-
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.
-
-
9.5. Game Training Session fields HOK-005 A hockey Game Training Session shall provide Attendance Status, Counts Toward Training?, Team, linked source game, RPE, Notes, and Recovery notes.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
-
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.
-
9.1. Both teams equal HOK-001 The system shall treat both teams, Team A and Team B, equally.
The system shall present linked views for both teams on the dashboard.
-
1.2. Dashboard page and linked views DES-VIEWS A Personal Training OS page under Personal Dashboard, linked directly below Inbox, presenting linked views for every database and side-by-side equal linked views of the external Team A and Team B game databases. See design-schema section 18.
-
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.
The system shall only count a hockey game toward training after it is marked Attended.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.2. Hockey attended counts TC-02 A hockey session with Attendance = Attended has Counts Toward Training (auto) = true.
-
-
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.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
1.3. Completed run counts TC-03 A non-hockey session with Status = Completed has Counts Toward Training (auto) = true.
-
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.
-
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 Game Training Session shall provide Attendance Status, Counts Toward Training?, Team, linked source game, RPE, Notes, and Recovery notes.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
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.
-
By default the system shall set a hockey game to not count toward training until it is marked Attended.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
-
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.
-
When a hockey Game Training Session is marked Attended, the system shall set Counts Toward Training? to true.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.2. Hockey attended counts TC-02 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.
-
If a hockey game is not marked Attended, then the system shall exclude it from training-load calculations.
-
1.8. Hockey game session and counts formula DES-HOCKEY Hockey Game sessions carry Attendance Status, Team, RPE, Notes, Recovery notes, and relations to the external game databases. A Counts Toward Training? formula returns true only when a hockey game is Attended, so unplayed games never inflate training load. See design-schema section 4.
-
1.1. Hockey not-attended does not count TC-01 A hockey session with Attendance = Did Not Attend has Counts Toward Training (auto) = false.
The system shall reflect currently available equipment only in workout templates and exercise library defaults.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
10.2. Available equipment set EQP-002 The system shall treat bodyweight, outdoor running, dumbbells, resistance bands, treadmill, stationary bike, foam roller, yoga mat, hockey stick, balance boards, shooting pad, cones, bench, and gym access as available.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
-
10.3. Treadmill constraints EQP-003 Where the treadmill is referenced, the system shall record its constraints of no incline and fastest pace 8:00 per mile.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
-
10.4. Stickhandling ball pending EQP-004 The system shall mark the stickhandling ball as pending and not currently usable.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
1.10. Equipment availability correct TC-10 Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.
-
-
10.5. No unavailable equipment assumptions EQP-005 The system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
2.1. Equipment as constrained multi-select, not a database DES-D1 Availability is enforced by restricting Exercise Library / Hockey Drills equipment option lists rather than modeling an Equipment database, since the requirements mandate exactly fifteen databases and Equipment is not one.
-
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.
-
1.15. Workout Templates doable by construction DES-TEMPLATES Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8.
-
1.11. Templates use available gear only TC-11 The seeded Workout Templates reference only Available equipment.
-
-
1.10. Equipment availability correct TC-10 Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.
-
-
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 system shall treat bodyweight, outdoor running, dumbbells, resistance bands, treadmill, stationary bike, foam roller, yoga mat, hockey stick, balance boards, shooting pad, cones, bench, and gym access as available.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
10.1. Templates reflect available equipment only EQP-001 The system shall reflect currently available equipment only in workout templates and exercise library defaults.
Where the treadmill is referenced, the system shall record its constraints of no incline and fastest pace 8:00 per mile.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
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 system shall mark the stickhandling ball as pending and not currently usable.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
1.10. Equipment availability correct TC-10 Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.
-
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 system shall not assume availability of kettlebells, net, barbell, or medicine ball in any template.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
2.1. Equipment as constrained multi-select, not a database DES-D1 Availability is enforced by restricting Exercise Library / Hockey Drills equipment option lists rather than modeling an Equipment database, since the requirements mandate exactly fifteen databases and Equipment is not one.
-
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.
-
1.15. Workout Templates doable by construction DES-TEMPLATES Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8.
-
1.11. Templates use available gear only TC-11 The seeded Workout Templates reference only Available equipment.
-
-
1.10. Equipment availability correct TC-10 Kettlebells, Net, Barbell, Medicine ball = Not available; Stickhandling ball = Pending; the rest Available.
-
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.
-
If a Workout Template would require unavailable equipment, then the system shall not present it as a currently-doable template.
-
1.15. Workout Templates doable by construction DES-TEMPLATES Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8.
-
1.11. Templates use available gear only TC-11 The seeded Workout Templates reference only Available equipment.
-
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 system shall create an Exercise Library database cataloguing individual exercises and drills.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
11.2. Record required equipment LIB-002 Where an exercise requires equipment, the Exercise Library shall record the required equipment drawn from the available set.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
-
11.1. Create Exercise Library LIB-001 The system shall create an Exercise Library database cataloguing individual exercises and drills.
-
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.
-
Where an exercise requires equipment, the Exercise Library shall record the required equipment drawn from the available set.
-
1.14. Exercise Library with constrained equipment DES-EXLIB Exercise Library with Category, Movement Pattern, and an Equipment Required multi-select whose options are restricted to the available-plus-pending set only, so unavailable gear is not selectable. The treadmill option label carries its no-incline and 8:00/mi limits. See design-schema section 7.
-
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 system shall create a Workout Templates database composed of exercises from the Exercise Library.
-
1.15. Workout Templates doable by construction DES-TEMPLATES Workout Templates composed of Exercise Library exercises via an Exercises relation (satisfying TMP-001's "composed of exercises"), plus a Drills relation to Hockey Drills for hockey templates and an Equipment relation; because the equipment set excludes unavailable gear, no template can require it, satisfying the no-unavailable-equipment rule by construction. See design-schema section 8.
-
1.20. Training materials present TC-20 At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.
-
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 system shall create an Exercise Log database recording performed exercises, relatable to Training Sessions and People.
-
1.16. Exercise Log DES-EXLOG Exercise Log relating to Training Sessions and Exercise Library, with Person and Date rolled up from the session, plus sets/reps/weight/distance/duration/RPE. See design-schema section 9.
-
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 system shall create a Running Shoes database.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
12.2. Seed an example running shoe SHO-002 When the Running Shoes database is created, the system shall seed an example running shoe.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
12.3. Session to Shoe relation SHO-003 Each Training Session shall provide a Running Shoe relation.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
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.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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).
-
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.
-
-
12.5. Garmin gear can improve mileage SHO-005 Where Garmin gear data becomes available later, the system shall allow that data to improve or override shoe mileage.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
-
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.
-
When the Running Shoes database is created, the system shall seed an example running shoe.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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.
-
Each Training Session shall provide a Running Shoe relation.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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.
-
The system shall compute total mileage per shoe via a rollup or formula that sums Distance across the Training Sessions related to that shoe.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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).
-
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.
-
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.
-
Where Garmin gear data becomes available later, the system shall allow that data to improve or override shoe mileage.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
-
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 system shall create a Running Routes database.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
13.2. Seed generic routes RTE-002 When the Running Routes database is created, the system shall seed generic routes Outdoor Run, Treadmill Run, Race Route, and Unknown/To Assign.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
-
13.3. Session to Route relation RTE-003 Each running Training Session shall provide a Running Route relation.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
-
13.1. Create Running Routes RTE-001 The system shall create a Running Routes 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.
-
When the Running Routes database is created, the system shall seed generic routes Outdoor Run, Treadmill Run, Race Route, and Unknown/To Assign.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
13.1. Create Running Routes RTE-001 The system shall create a Running Routes 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.
-
Each running Training Session shall provide a Running Route relation.
-
1.11. Running Routes DES-ROUTES Running Routes database with Type, Distance, Description, and a back-relation to Training Sessions. Seeded with four generic routes. See design-schema section 15.
-
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 system shall create a Metrics/Check-ins database up front.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
2.4. Metrics as daily-wide rows DES-D4 Metrics/Check-ins are one wide row per person per day, optimized for manual entry; high-frequency wearable streams would use a long-format companion added when an integration lands.
-
14.2. Automation fields on metrics MET-002 Each Metrics/Check-ins record shall carry the standard automation fields.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
14.3. Metrics sources MET-003 The Metrics/Check-ins database shall be automation-ready for Garmin, Apple Health, Apple Watch, and Manual.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
14.4. Metrics relate to People MET-004 Each Metrics/Check-ins record shall relate to People.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
-
14.1. Create Metrics/Check-ins MET-001 The system shall create a Metrics/Check-ins database up front.
-
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.
-
-
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.
-
Each Metrics/Check-ins record shall carry the standard automation fields.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
14.1. Create Metrics/Check-ins MET-001 The system shall create a Metrics/Check-ins database up front.
-
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 Metrics/Check-ins database shall be automation-ready for Garmin, Apple Health, Apple Watch, and Manual.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
14.1. Create Metrics/Check-ins MET-001 The system shall create a Metrics/Check-ins database up front.
-
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.
-
Each Metrics/Check-ins record shall relate to People.
-
1.17. Metrics / Check-ins (daily wide) DES-METRICS Metrics/Check-ins as daily wide rows per person with weight, resting HR, HRV, sleep, readiness, soreness, mood, steps, VO2max, the Standard Automation Block, and sources Garmin/Apple Health/Apple Watch/Manual. See design-schema section 10.
-
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 system shall create a Nutrition Log database up front.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
15.2. Automation fields on nutrition NUT-002 Each Nutrition Log record shall carry the standard automation fields.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.3. Nutrition sources NUT-003 The Nutrition Log database shall be automation-ready for MyFitnessPal and Manual.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.4. CSV and API import later NUT-004 Where bulk historical data exists, the system shall support later CSV or API imports into the Nutrition Log.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.5. Nutrition relates to People NUT-005 Each Nutrition Log record shall relate to People.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
-
15.1. Create Nutrition Log NUT-001 The system shall create a Nutrition Log database up front.
-
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.
-
-
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.
-
Each Nutrition Log record shall carry the standard automation fields.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
15.1. Create Nutrition Log NUT-001 The system shall create a Nutrition Log database up front.
-
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 Nutrition Log database shall be automation-ready for MyFitnessPal and Manual.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
15.1. Create Nutrition Log NUT-001 The system shall create a Nutrition Log database up front.
-
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.
-
Where bulk historical data exists, the system shall support later CSV or API imports into the Nutrition Log.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
15.1. Create Nutrition Log NUT-001 The system shall create a Nutrition Log database up front.
-
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.
-
Each Nutrition Log record shall relate to People.
-
1.18. Nutrition Log DES-NUTRITION Nutrition Log per person with Date, Meal, macros, the Standard Automation Block, sources MyFitnessPal/Manual, and support for later CSV/API import. See design-schema section 11.
-
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 system shall create a Weekly Reviews database now.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
16.2. Manual at first WKR-002 The system shall allow Weekly Reviews to be filled in manually initially.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
-
16.3. Automatable later WKR-003 Where automation is added later, the system shall allow Weekly Reviews to be populated automatically.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
-
16.1. Create Weekly Reviews WKR-001 The system shall create a Weekly Reviews database now.
-
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 system shall allow Weekly Reviews to be filled in manually initially.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
16.1. Create Weekly Reviews WKR-001 The system shall create a Weekly Reviews database now.
-
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.
-
Where automation is added later, the system shall allow Weekly Reviews to be populated automatically.
-
1.19. Weekly Reviews DES-WEEKLY Weekly Reviews per person, manual numeric fields at first with narrative Wins/Challenges/Focus, automatable later. See design-schema section 12.
-
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 system shall create a Goals database.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
17.2. Goals relate to People including Secondary User GOL-002 Each Goal shall relate to People, including Secondary User.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
-
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.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
1.15. Goal linked to Race TC-15 The Sub-2:00 goal has a Race relation to the Example Half Marathon.
-
-
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.
-
Each Goal shall relate to People, including Secondary User.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
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.
-
Where a Goal is tied to a race, the system shall allow it to relate to a Race.
-
1.13. Goals DES-GOALS Goals database relating to People (including Secondary User) with Type, Target, Target Date, optional Race relation, and Status. See design-schema section 6.
-
1.15. Goal linked to Race TC-15 The Sub-2:00 goal has a Race relation to the Example Half Marathon.
-
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 system shall create a Training Blocks database representing multi-week training phases.
-
1.12. Training Blocks DES-BLOCKS Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5.
-
17.5. Sessions relate to Block BLK-002 The system shall allow Training Sessions to relate to a Training Block.
-
1.12. Training Blocks DES-BLOCKS Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5.
-
-
17.4. Create Training Blocks BLK-001 The system shall create a Training Blocks database representing multi-week training phases.
-
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 system shall allow Training Sessions to relate to a Training Block.
-
1.12. Training Blocks DES-BLOCKS Training Blocks database with date range, Focus, Status, relations to Goals/Races, and rollups over related Training Sessions. See design-schema section 5.
-
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 system shall create a Hockey Drills database.
-
1.20. Hockey Drills DES-DRILLS Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16.
-
18.2. Drill equipment excludes net DRL-002 Where a Hockey Drill requires equipment, the system shall reference only available equipment such as stick, shooting pad, cones, and balance boards, and not a net.
-
1.20. Hockey Drills DES-DRILLS Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16.
-
-
1.20. Training materials present TC-20 At least one running, one strength, and one hockey Workout Template exist, plus Hockey Drills.
-
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.
-
Where a Hockey Drill requires equipment, the system shall reference only available equipment such as stick, shooting pad, cones, and balance boards, and not a net.
-
1.20. Hockey Drills DES-DRILLS Hockey Drills with Category and an Equipment Required multi-select limited to stick, shooting pad, cones, balance boards, and pending stickhandling ball, with no net option. See design-schema section 16.
-
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 system shall create a Resources database for reference material.
-
1.21. Resources DES-RESOURCES Resources reference database with Type, URL, Topic, and Notes. See design-schema section 16.
The system shall relate Training Sessions to People, Training Blocks, Races, Running Shoes, Running Routes, Exercise Log, and the source game for hockey.
-
1.5. Training Sessions core schema DES-TS Central activity log with Person, Session Type, Status, Date, Distance, Run Type, and relations to Training Blocks, Races, Running Shoes, Running Routes, and Exercise Log, carrying the Standard Automation Block. See design-schema section 4.
-
1.14. Session relationships wired TC-14 The 11-mile run relates to Person, Running Shoe, Running Route, and Training Block.
The system shall relate Metrics/Check-ins and Nutrition Log to People.
-
1.22. Relationship map and rollups DES-RELATIONS Ownership and cardinality of all relations, ensuring Metrics and Nutrition relate to People and that shoe mileage and hockey load are derivable via rollups rather than manual tally. See design-schema section 17.
-
1.8. Person filter isolates data TC-08 Filtering by Person = Primary User vs Secondary User returns only that person's rows.
The system shall provide rollups such that shoe mileage and hockey training load are derivable without manual tallying.
-
1.10. Running Shoes with mileage rollup DES-SHOES Running Shoes database with Retirement Threshold, a Total Mileage rollup summing related Training Session Distance, and % of Life Used / Status formulas. Seeded with an example running shoe. Garmin gear data can override later. See design-schema section 14.
The system shall keep personal health and fitness data for Primary User and Secondary User within the private Notion workspace and shall not expose it publicly.
-
3.1. Privacy - private workspace and least scope DES-NFR-PRIV Data lives in the private Notion workspace (not public); integrations request only the minimum scopes. See design-schema automation contract.
Where a third-party integration is added, the system shall request only the minimum data scopes required for that integration.
-
3.1. Privacy - private workspace and least scope DES-NFR-PRIV Data lives in the private Notion workspace (not public); integrations request only the minimum scopes. See design-schema automation contract.
The system shall support periodic export of its data so that training records are recoverable after accidental loss.
-
3.2. Backup, portability, retention DES-NFR-DATA Periodic Notion export provides backup and recovery; data stays API-accessible and exportable for portability; no automatic deletion so history is retained indefinitely.
-
1.19. Backup and recovery TC-19 The OS data can be exported from Notion and is restorable.
The system shall keep its data API-accessible and exportable so it can be migrated off Notion if required.
-
3.2. Backup, portability, retention DES-NFR-DATA Periodic Notion export provides backup and recovery; data stays API-accessible and exportable for portability; no automatic deletion so history is retained indefinitely.
The dashboard and key rollups shall remain responsive at the expected single-user data volume of low hundreds of records.
-
3.3. Performance and mobile usability DES-NFR-UX Single-user, low-hundreds data volume keeps rollups responsive; the Notion mobile apps provide low-effort cross-device capture.
The system shall be usable on the Notion mobile apps so that data capture is low-effort across devices.
-
3.3. Performance and mobile usability DES-NFR-UX Single-user, low-hundreds data volume keeps rollups responsive; the Notion mobile apps provide low-effort cross-device capture.
-
1.18. Mobile capture TC-18 A session/check-in can be logged with low effort in the Notion mobile app.
The system shall retain historical training data indefinitely, with no automatic deletion, to preserve long-term trends.
-
3.2. Backup, portability, retention DES-NFR-DATA Periodic Notion export provides backup and recovery; data stays API-accessible and exportable for portability; no automatic deletion so history is retained indefinitely.