Untitled Project
Personal Training OS — Design Elements
1. Schema design elements
  • ARCH-001
    3.1. Create all databases up front ARCH-001

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

  • ARCH-003
    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.

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

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

DES-ARCH
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.

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

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

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

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

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

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

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

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

  • NAV-004
    1.4. Entry points to all databases NAV-004

    The system shall present, from its top-level page, entry points to every database.

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

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

  • ARCH-002
    3.2. Linked references to existing game databases ARCH-002

    The system shall provide linked or embedded references to the existing Team A games and Team B games databases without recreating them.

  • HOK-001
    9.1. Both teams equal HOK-001

    The system shall treat both teams, Team A and Team B, equally.

  • HOK-003
    9.3. Linked views for both teams HOK-003

    The system shall present linked views for both teams on the dashboard.

    • HOK-001
      9.1. Both teams equal HOK-001

      The system shall treat both teams, Team A and Team B, equally.

DES-VIEWS
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.

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

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

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

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

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

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

  • AUTO-003
    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.

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

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

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

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

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

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

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

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

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

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

  • AUTO-005
    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.

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

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

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

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

  • AUTO-006
    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.

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

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

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

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

  • AUTO-007
    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.

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

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

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

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

DES-AUTO
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.

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

    The system shall create a People database.

  • PEO-002
    2.2. People as primary identity model PEO-002

    The system shall use People as the primary identity model for the entire system.

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

      The system shall create a People database.

  • PEO-003
    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.

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

      The system shall create a People database.

  • PEO-004
    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.

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

      The system shall create a People database.

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

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

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

      The system shall create a People database.

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

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

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

      The system shall create a People database.

DES-PEOPLE
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.

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

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

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

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

  • TS-002
    5.2. Automation fields on sessions TS-002

    Each Training Session shall carry the standard automation fields.

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

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

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

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

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

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

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

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

  • TS-003
    5.3. Session Type TS-003

    Each Training Session shall provide a Session Type such as Run, Race, Workout, or Hockey Game.

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

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

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

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

  • TS-004
    5.4. Status TS-004

    Each Training Session shall provide a Status such as Planned or Completed.

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

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

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

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

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

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

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

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

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

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

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

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

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

        The system shall create a People database.

  • TS-006
    5.6. Distance field TS-006

    Each running Training Session shall provide a Distance field.

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

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

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

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

  • TS-007
    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.

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

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

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

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

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

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

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

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

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

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

  • REL-001
    19.1. Session relationships REL-001

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

DES-TS
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.

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

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

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

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

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

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

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

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

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

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

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

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

DES-HIST
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.

  • CAL-001
    6.1. Calendar is source of planned runs CAL-001

    The system shall use calendar events as the source for planned running sessions.

  • CAL-002
    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.

    • CAL-001
      6.1. Calendar is source of planned runs CAL-001

      The system shall use calendar events as the source for planned running sessions.

  • CAL-003
    6.3. Source is Calendar CAL-003

    When a Training Session is created from a calendar event, the system shall set Source to Calendar.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-004
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-005
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-006
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-007
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-008
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-009
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

  • CAL-010
    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.

    • CAL-002
      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.

      • CAL-001
        6.1. Calendar is source of planned runs CAL-001

        The system shall use calendar events as the source for planned running sessions.

DES-CAL
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.

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

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

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

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

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

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

  • HOK-005
    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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DES-HOCKEY
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.

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

    The system shall create a Races database.

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

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

  • RACE-002
    8.2. Person and automation fields on races RACE-002

    Each Race shall relate to People and carry the standard automation fields where meaningful.

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

      The system shall create a Races database.

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

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

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

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

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

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

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

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

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

      The system shall create a Races database.

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

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

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

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

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

      The system shall create a Races database.

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

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

  • RACE-005
    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.

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

      The system shall create a Races database.

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

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

DES-RACES
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.

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

    The system shall create a Running Shoes database.

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

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

  • SHO-002
    12.2. Seed an example running shoe SHO-002

    When the Running Shoes database is created, the system shall seed an example running shoe.

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

      The system shall create a Running Shoes database.

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

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

  • SHO-003
    12.3. Session to Shoe relation SHO-003

    Each Training Session shall provide a Running Shoe relation.

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

      The system shall create a Running Shoes database.

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

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

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

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

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

      The system shall create a Running Shoes database.

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

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

  • SHO-005
    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.

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

      The system shall create a Running Shoes database.

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

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

  • REL-003
    19.3. Rollups for mileage and load REL-003

    The system shall provide rollups such that shoe mileage and hockey training load are derivable without manual tallying.

DES-SHOES
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.

  • RTE-001
    13.1. Create Running Routes RTE-001

    The system shall create a Running Routes database.

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

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

  • RTE-002
    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.

    • RTE-001
      13.1. Create Running Routes RTE-001

      The system shall create a Running Routes database.

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

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

  • RTE-003
    13.3. Session to Route relation RTE-003

    Each running Training Session shall provide a Running Route relation.

    • RTE-001
      13.1. Create Running Routes RTE-001

      The system shall create a Running Routes database.

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

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

DES-ROUTES
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.

  • BLK-001
    17.4. Create Training Blocks BLK-001

    The system shall create a Training Blocks database representing multi-week training phases.

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

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

  • BLK-002
    17.5. Sessions relate to Block BLK-002

    The system shall allow Training Sessions to relate to a Training Block.

    • BLK-001
      17.4. Create Training Blocks BLK-001

      The system shall create a Training Blocks database representing multi-week training phases.

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

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

DES-BLOCKS
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.

  • GOL-001
    17.1. Create Goals GOL-001

    The system shall create a Goals database.

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

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

  • GOL-002
    17.2. Goals relate to People including Secondary User GOL-002

    Each Goal shall relate to People, including Secondary User.

    • GOL-001
      17.1. Create Goals GOL-001

      The system shall create a Goals database.

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

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

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

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

    • GOL-001
      17.1. Create Goals GOL-001

      The system shall create a Goals database.

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

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

DES-GOALS
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.

  • LIB-001
    11.1. Create Exercise Library LIB-001

    The system shall create an Exercise Library database cataloguing individual exercises and drills.

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

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

  • LIB-002
    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.

    • LIB-001
      11.1. Create Exercise Library LIB-001

      The system shall create an Exercise Library database cataloguing individual exercises and drills.

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

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

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

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

  • EQP-002
    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.

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

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

  • EQP-003
    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.

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

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

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

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

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

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

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

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

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

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

DES-EXLIB
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.

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

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

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

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

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

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

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

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

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

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

DES-TEMPLATES
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.

  • TMP-002
    11.4. Create Exercise Log TMP-002

    The system shall create an Exercise Log database recording performed exercises, relatable to Training Sessions and People.

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

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

DES-EXLOG
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.

  • MET-001
    14.1. Create Metrics/Check-ins MET-001

    The system shall create a Metrics/Check-ins database up front.

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

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

  • MET-002
    14.2. Automation fields on metrics MET-002

    Each Metrics/Check-ins record shall carry the standard automation fields.

    • MET-001
      14.1. Create Metrics/Check-ins MET-001

      The system shall create a Metrics/Check-ins database up front.

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

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

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

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

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

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

  • MET-003
    14.3. Metrics sources MET-003

    The Metrics/Check-ins database shall be automation-ready for Garmin, Apple Health, Apple Watch, and Manual.

    • MET-001
      14.1. Create Metrics/Check-ins MET-001

      The system shall create a Metrics/Check-ins database up front.

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

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

  • MET-004
    14.4. Metrics relate to People MET-004

    Each Metrics/Check-ins record shall relate to People.

    • MET-001
      14.1. Create Metrics/Check-ins MET-001

      The system shall create a Metrics/Check-ins database up front.

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

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

DES-METRICS
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.

  • NUT-001
    15.1. Create Nutrition Log NUT-001

    The system shall create a Nutrition Log database up front.

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

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

  • NUT-002
    15.2. Automation fields on nutrition NUT-002

    Each Nutrition Log record shall carry the standard automation fields.

    • NUT-001
      15.1. Create Nutrition Log NUT-001

      The system shall create a Nutrition Log database up front.

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

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

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

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

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

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

  • NUT-003
    15.3. Nutrition sources NUT-003

    The Nutrition Log database shall be automation-ready for MyFitnessPal and Manual.

    • NUT-001
      15.1. Create Nutrition Log NUT-001

      The system shall create a Nutrition Log database up front.

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

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

  • NUT-004
    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.

    • NUT-001
      15.1. Create Nutrition Log NUT-001

      The system shall create a Nutrition Log database up front.

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

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

  • NUT-005
    15.5. Nutrition relates to People NUT-005

    Each Nutrition Log record shall relate to People.

    • NUT-001
      15.1. Create Nutrition Log NUT-001

      The system shall create a Nutrition Log database up front.

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

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

DES-NUTRITION
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.

  • WKR-001
    16.1. Create Weekly Reviews WKR-001

    The system shall create a Weekly Reviews database now.

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

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

  • WKR-002
    16.2. Manual at first WKR-002

    The system shall allow Weekly Reviews to be filled in manually initially.

    • WKR-001
      16.1. Create Weekly Reviews WKR-001

      The system shall create a Weekly Reviews database now.

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

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

  • WKR-003
    16.3. Automatable later WKR-003

    Where automation is added later, the system shall allow Weekly Reviews to be populated automatically.

    • WKR-001
      16.1. Create Weekly Reviews WKR-001

      The system shall create a Weekly Reviews database now.

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

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

DES-WEEKLY
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.

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

    The system shall create a Hockey Drills database.

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

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

  • DRL-002
    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.

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

      The system shall create a Hockey Drills database.

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

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

DES-DRILLS
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.

  • RES-001
    18.3. Create Resources RES-001

    The system shall create a Resources database for reference material.

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

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

DES-RESOURCES
1.21. Resources DES-RESOURCES

Resources reference database with Type, URL, Topic, and Notes. See design-schema section 16.

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

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

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

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

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

      The system shall create a People database.

DES-RELATIONS
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.

2. Design decisions (candidate change requests)
  • EQP-005
    10.5. No unavailable equipment assumptions EQP-005

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

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

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

DES-D1
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.

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

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

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

      The system shall create a Races database.

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

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

DES-D2
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.

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

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

DES-D3
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.

  • MET-001
    14.1. Create Metrics/Check-ins MET-001

    The system shall create a Metrics/Check-ins database up front.

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

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

DES-D4
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.

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

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

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

      The system shall create a Races database.

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

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

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

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

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

      The system shall create a Races database.

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

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

DES-D5
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.

3. Non-functional design
  • NFR-PRIV-001
    20.1. Health data kept private NFR-PRIV-001

    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.

  • NFR-PRIV-002
    20.2. Least-scope integrations NFR-PRIV-002

    Where a third-party integration is added, the system shall request only the minimum data scopes required for that integration.

DES-NFR-PRIV
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.

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

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

  • NFR-PORT-001
    20.4. Data portability NFR-PORT-001

    The system shall keep its data API-accessible and exportable so it can be migrated off Notion if required.

  • NFR-RET-001
    20.7. Indefinite history retention NFR-RET-001

    The system shall retain historical training data indefinitely, with no automatic deletion, to preserve long-term trends.

DES-NFR-DATA
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.

  • NFR-PERF-001
    20.5. Responsive rollups at expected volume NFR-PERF-001

    The dashboard and key rollups shall remain responsive at the expected single-user data volume of low hundreds of records.

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

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

DES-NFR-UX
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.