- generic [active] [ref=e1]:
  - checkbox "Toggle sidebar ⌘B" [checked=mixed] [ref=e2]
  - navigation [ref=e3]:
    - list [ref=e4]:
      - generic "Toggle sidebar ⌘B" [ref=e5]
      - listitem [ref=e6]:
        - link "Roomfit v2 — Spec Map" [ref=e7] [cursor=pointer]:
          - /url: ./
    - generic [ref=e8]:
      - searchbox "Search" [ref=e9]
      - text: ⌘K
    - list [ref=e11]:
      - listitem [ref=e12]:
        - link "개요" [ref=e13] [cursor=pointer]:
          - /url: ./
      - listitem [ref=e14]:
        - link "화면" [ref=e15] [cursor=pointer]:
          - /url: ./screens
      - listitem [ref=e16]:
        - link "Use case" [ref=e17] [cursor=pointer]:
          - /url: ./use-cases
      - listitem [ref=e18]:
        - link "시나리오" [ref=e19] [cursor=pointer]:
          - /url: ./scenarios
      - listitem [ref=e20]:
        - link "데이터 흐름" [ref=e21] [cursor=pointer]:
          - /url: ./data-flow
  - generic [ref=e22]:
    - banner [ref=e23]: Roomfit v2 Spec — 자동 추출 + 수동 보강
    - complementary [ref=e24]:
      - navigation [ref=e25]:
        - generic [ref=e26]: Contents
        - list [ref=e27]:
          - listitem [ref=e28]:
            - link "시나리오 카탈로그" [ref=e29] [cursor=pointer]:
              - /url: "#-1"
          - listitem [ref=e30]:
            - link "시나리오 시간축" [ref=e31] [cursor=pointer]:
              - /url: "#-2"
          - listitem [ref=e32]:
            - link "화면별 커버리지" [ref=e33] [cursor=pointer]:
              - /url: "#-3"
    - main [ref=e35]:
      - heading "시나리오" [level=1] [ref=e36]:
        - link "시나리오" [ref=e37] [cursor=pointer]:
          - /url: "#"
      - paragraph [ref=e38]:
        - code [ref=e39]: integration_test/
        - text: 의 testWidgets 가 사실상 살아있는 user story. 각 시나리오의 시간축 step + 거치는 화면.
      - generic [ref=e56]:
        - generic [ref=e57]: App
        - generic [ref=e58]:
          - generic [ref=e59]:
            - radio "all" [checked] [ref=e60]
            - text: all
          - generic [ref=e61]:
            - radio "b2c" [ref=e62]
            - text: b2c
          - generic [ref=e63]:
            - radio "b2b" [ref=e64]
            - text: b2b
      - heading "시나리오 카탈로그" [level=2] [ref=e40]:
        - link "시나리오 카탈로그" [ref=e41] [cursor=pointer]:
          - /url: "#-1"
      - table [ref=e67]:
        - rowgroup [ref=e68]:
          - row "app scenario steps screens file" [ref=e69]:
            - columnheader [ref=e70]:
              - checkbox [ref=e71]
            - columnheader "app" [ref=e72]: app
            - columnheader "scenario" [ref=e73]: scenario
            - columnheader "steps" [ref=e74]: steps
            - columnheader "screens" [ref=e75]: screens
            - columnheader "file" [ref=e76]: file
        - rowgroup [ref=e77]:
          - row "b2b 8 replayed rep cycles produce 8-rep history line 12 1 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e78]:
            - cell [ref=e79]:
              - checkbox [ref=e80]
            - cell "b2b" [ref=e81]
            - cell "8 replayed rep cycles produce 8-rep history line" [ref=e82]
            - cell "12" [ref=e83]
            - cell "1" [ref=e84]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e85]
          - row "b2b DevHome 0 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e86]:
            - cell [ref=e87]:
              - checkbox [ref=e88]
            - cell "b2b" [ref=e89]
            - cell "DevHome" [ref=e90]
            - cell "0" [ref=e91]
            - cell "0" [ref=e92]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e93]
          - row "b2b S1 — SetTargetWeight projection 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e94]:
            - cell [ref=e95]:
              - checkbox [ref=e96]
            - cell "b2b" [ref=e97]
            - cell "S1 — SetTargetWeight projection" [ref=e98]
            - cell "0" [ref=e99]
            - cell "0" [ref=e100]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e101]
          - row "b2b S2 — SetWeightMode projection 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e102]:
            - cell [ref=e103]:
              - checkbox [ref=e104]
            - cell "b2b" [ref=e105]
            - cell "S2 — SetWeightMode projection" [ref=e106]
            - cell "0" [ref=e107]
            - cell "0" [ref=e108]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e109]
          - row "b2b S3 — replayRepCycle drives rep count through the UI 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e110]:
            - cell [ref=e111]:
              - checkbox [ref=e112]
            - cell "b2b" [ref=e113]
            - cell "S3 — replayRepCycle drives rep count through the UI" [ref=e114]
            - cell "0" [ref=e115]
            - cell "0" [ref=e116]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e117]
          - row "b2b S4 — replayIdle triggers RestDetector → PauseDialog 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e118]:
            - cell [ref=e119]:
              - checkbox [ref=e120]
            - cell "b2b" [ref=e121]
            - cell "S4 — replayIdle triggers RestDetector → PauseDialog" [ref=e122]
            - cell "0" [ref=e123]
            - cell "0" [ref=e124]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e125]
          - row "b2b S5 — EmergencyStop drops power + halts reporting 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e126]:
            - cell [ref=e127]:
              - checkbox [ref=e128]
            - cell "b2b" [ref=e129]
            - cell "S5 — EmergencyStop drops power + halts reporting" [ref=e130]
            - cell "0" [ref=e131]
            - cell "0" [ref=e132]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e133]
          - row "b2b S6 — ResetRange ack 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e134]:
            - cell [ref=e135]:
              - checkbox [ref=e136]
            - cell "b2b" [ref=e137]
            - cell "S6 — ResetRange ack" [ref=e138]
            - cell "0" [ref=e139]
            - cell "0" [ref=e140]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e141]
          - row "b2b S7 — DropSetStepAdvancer auto-emits SetTargetWeight 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e142]:
            - cell [ref=e143]:
              - checkbox [ref=e144]
            - cell "b2b" [ref=e145]
            - cell "S7 — DropSetStepAdvancer auto-emits SetTargetWeight" [ref=e146]
            - cell "0" [ref=e147]
            - cell "0" [ref=e148]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e149]
          - row "b2b S8 — SetModeParamCommand round-trips to MCU 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e150]:
            - cell [ref=e151]:
              - checkbox [ref=e152]
            - cell "b2b" [ref=e153]
            - cell "S8 — SetModeParamCommand round-trips to MCU" [ref=e154]
            - cell "0" [ref=e155]
            - cell "0" [ref=e156]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e157]
          - row "b2b S9 — Live preset adjust fires SetTargetWeight immediately 0 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e158]:
            - cell [ref=e159]:
              - checkbox [ref=e160]
            - cell "b2b" [ref=e161]
            - cell "S9 — Live preset adjust fires SetTargetWeight immediately" [ref=e162]
            - cell "0" [ref=e163]
            - cell "0" [ref=e164]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e165]
          - row "b2b Supervised BLE-live flow 0 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e166]:
            - cell [ref=e167]:
              - checkbox [ref=e168]
            - cell "b2b" [ref=e169]
            - cell "Supervised BLE-live flow" [ref=e170]
            - cell "0" [ref=e171]
            - cell "0" [ref=e172]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e173]
          - row "b2b autoWeight active + 6s idle → 휴식 감지 dialog appears 9 0 apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e174]:
            - cell [ref=e175]:
              - checkbox [ref=e176]
            - cell "b2b" [ref=e177]
            - cell "autoWeight active + 6s idle → 휴식 감지 dialog appears" [ref=e178]
            - cell "9" [ref=e179]
            - cell "0" [ref=e180]
            - cell "apps/b2b/integration_test/mcu_simulation_test.dart" [ref=e181]
          - row "b2b cancel exercise select aborts flow back to DevHome 2 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e182]:
            - cell [ref=e183]:
              - checkbox [ref=e184]
            - cell "b2b" [ref=e185]
            - cell "cancel exercise select aborts flow back to DevHome" [ref=e186]
            - cell "2" [ref=e187]
            - cell "0" [ref=e188]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e189]
          - row "b2b create shop — orphan user 0 0 apps/b2b/integration_test/screen_audit_test.dart" [ref=e190]:
            - cell [ref=e191]:
              - checkbox [ref=e192]
            - cell "b2b" [ref=e193]
            - cell "create shop — orphan user" [ref=e194]
            - cell "0" [ref=e195]
            - cell "0" [ref=e196]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e197]
          - row "b2b login screen — empty submit validation 0 1 apps/b2b/integration_test/screen_audit_test.dart" [ref=e198]:
            - cell [ref=e199]:
              - checkbox [ref=e200]
            - cell "b2b" [ref=e201]
            - cell "login screen — empty submit validation" [ref=e202]
            - cell "0" [ref=e203]
            - cell "1" [ref=e204]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e205]
          - row "b2b login screen — signup toggle 1 1 apps/b2b/integration_test/screen_audit_test.dart" [ref=e206]:
            - cell [ref=e207]:
              - checkbox [ref=e208]
            - cell "b2b" [ref=e209]
            - cell "login screen — signup toggle" [ref=e210]
            - cell "1" [ref=e211]
            - cell "1" [ref=e212]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e213]
          - row "b2b member — redirect screen 0 1 apps/b2b/integration_test/screen_audit_test.dart" [ref=e214]:
            - cell [ref=e215]:
              - checkbox [ref=e216]
            - cell "b2b" [ref=e217]
            - cell "member — redirect screen" [ref=e218]
            - cell "0" [ref=e219]
            - cell "1" [ref=e220]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e221]
          - row "b2b member → MemberAppRedirect 1 0 apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e222]:
            - cell [ref=e223]:
              - checkbox [ref=e224]
            - cell "b2b" [ref=e225]
            - cell "member → MemberAppRedirect" [ref=e226]
            - cell "1" [ref=e227]
            - cell "0" [ref=e228]
            - cell "apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e229]
          - row "b2b owner sees members tab populated with emails 0 0 apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e230]:
            - cell [ref=e231]:
              - checkbox [ref=e232]
            - cell "b2b" [ref=e233]
            - cell "owner sees members tab populated with emails" [ref=e234]
            - cell "0" [ref=e235]
            - cell "0" [ref=e236]
            - cell "apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e237]
          - row "b2b owner — dashboard tab 0 0 apps/b2b/integration_test/screen_audit_test.dart" [ref=e238]:
            - cell [ref=e239]:
              - checkbox [ref=e240]
            - cell "b2b" [ref=e241]
            - cell "owner — dashboard tab" [ref=e242]
            - cell "0" [ref=e243]
            - cell "0" [ref=e244]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e245]
          - row "b2b owner → MainShellScreen 0 0 apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e246]:
            - cell [ref=e247]:
              - checkbox [ref=e248]
            - cell "b2b" [ref=e249]
            - cell "owner → MainShellScreen" [ref=e250]
            - cell "0" [ref=e251]
            - cell "0" [ref=e252]
            - cell "apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e253]
          - row "b2b picker → console → set 1 live → RPE skip → back on console 5 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e254]:
            - cell [ref=e255]:
              - checkbox [ref=e256]
            - cell "b2b" [ref=e257]
            - cell "picker → console → set 1 live → RPE skip → back on console" [ref=e258]
            - cell "5" [ref=e259]
            - cell "0" [ref=e260]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e261]
          - row "b2b renders supervised entry + DEV badge 3 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e262]:
            - cell [ref=e263]:
              - checkbox [ref=e264]
            - cell "b2b" [ref=e265]
            - cell "renders supervised entry + DEV badge" [ref=e266]
            - cell "3" [ref=e267]
            - cell "0" [ref=e268]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e269]
          - row "b2b rest detected mid-set → dialog → 세트 종료 finalizes + returns to console 6 1 apps/b2b/integration_test/app_e2e_test.dart" [ref=e270]:
            - cell [ref=e271]:
              - checkbox [ref=e272]
            - cell "b2b" [ref=e273]
            - cell "rest detected mid-set → dialog → 세트 종료 finalizes + returns to console" [ref=e274]
            - cell "6" [ref=e275]
            - cell "1" [ref=e276]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e277]
          - row "b2b rest detected → WeightOn resumes same set (no new history row) 2 1 apps/b2b/integration_test/app_e2e_test.dart" [ref=e278]:
            - cell [ref=e279]:
              - checkbox [ref=e280]
            - cell "b2b" [ref=e281]
            - cell "rest detected → WeightOn resumes same set (no new history row)" [ref=e282]
            - cell "2" [ref=e283]
            - cell "1" [ref=e284]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e285]
          - row "b2b set 2 inherits preset; +2.5 stepper pushes updated target weight 3 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e286]:
            - cell [ref=e287]:
              - checkbox [ref=e288]
            - cell "b2b" [ref=e289]
            - cell "set 2 inherits preset; +2.5 stepper pushes updated target weight" [ref=e290]
            - cell "3" [ref=e291]
            - cell "0" [ref=e292]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e293]
          - row "b2b trainer sees members tab populated with emails 0 0 apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e294]:
            - cell [ref=e295]:
              - checkbox [ref=e296]
            - cell "b2b" [ref=e297]
            - cell "trainer sees members tab populated with emails" [ref=e298]
            - cell "0" [ref=e299]
            - cell "0" [ref=e300]
            - cell "apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e301]
          - row "b2b trainer — all shell tabs 1 0 apps/b2b/integration_test/screen_audit_test.dart" [ref=e302]:
            - cell [ref=e303]:
              - checkbox [ref=e304]
            - cell "b2b" [ref=e305]
            - cell "trainer — all shell tabs" [ref=e306]
            - cell "1" [ref=e307]
            - cell "0" [ref=e308]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e309]
          - row "b2b trainer — invite screen 0 0 apps/b2b/integration_test/screen_audit_test.dart" [ref=e310]:
            - cell [ref=e311]:
              - checkbox [ref=e312]
            - cell "b2b" [ref=e313]
            - cell "trainer — invite screen" [ref=e314]
            - cell "0" [ref=e315]
            - cell "0" [ref=e316]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e317]
          - row "b2b trainer — member detail 1 1 apps/b2b/integration_test/screen_audit_test.dart" [ref=e318]:
            - cell [ref=e319]:
              - checkbox [ref=e320]
            - cell "b2b" [ref=e321]
            - cell "trainer — member detail" [ref=e322]
            - cell "1" [ref=e323]
            - cell "1" [ref=e324]
            - cell "apps/b2b/integration_test/screen_audit_test.dart" [ref=e325]
          - row "b2b trainer → MainShellScreen 0 0 apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e326]:
            - cell [ref=e327]:
              - checkbox [ref=e328]
            - cell "b2b" [ref=e329]
            - cell "trainer → MainShellScreen" [ref=e330]
            - cell "0" [ref=e331]
            - cell "0" [ref=e332]
            - cell "apps/b2b/integration_test/auth_role_gate_e2e_test.dart" [ref=e333]
          - row "b2b 수업 종료 confirm dialog → SessionSummary 5 0 apps/b2b/integration_test/app_e2e_test.dart" [ref=e334]:
            - cell [ref=e335]:
              - checkbox [ref=e336]
            - cell "b2b" [ref=e337]
            - cell "수업 종료 confirm dialog → SessionSummary" [ref=e338]
            - cell "5" [ref=e339]
            - cell "0" [ref=e340]
            - cell "apps/b2b/integration_test/app_e2e_test.dart" [ref=e341]
          - row "b2c BLE Scan 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e342]:
            - cell [ref=e343]:
              - checkbox [ref=e344]
            - cell "b2c" [ref=e345]
            - cell "BLE Scan" [ref=e346]
            - cell "0" [ref=e347]
            - cell "0" [ref=e348]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e349]
          - row "b2c BLE Scan tap shows scan screen 3 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e350]:
            - cell [ref=e351]:
              - checkbox [ref=e352]
            - cell "b2c" [ref=e353]
            - cell "BLE Scan tap shows scan screen" [ref=e354]
            - cell "3" [ref=e355]
            - cell "0" [ref=e356]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e357]
          - row "b2c Back navigation from Live 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e358]:
            - cell [ref=e359]:
              - checkbox [ref=e360]
            - cell "b2c" [ref=e361]
            - cell "Back navigation from Live" [ref=e362]
            - cell "0" [ref=e363]
            - cell "0" [ref=e364]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e365]
          - row "b2c DevHome 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e366]:
            - cell [ref=e367]:
              - checkbox [ref=e368]
            - cell "b2c" [ref=e369]
            - cell "DevHome" [ref=e370]
            - cell "0" [ref=e371]
            - cell "0" [ref=e372]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e373]
          - row "b2c DevHome → Full Workout Flow → exercise select → live screen 7 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e374]:
            - cell [ref=e375]:
              - checkbox [ref=e376]
            - cell "b2c" [ref=e377]
            - cell "DevHome → Full Workout Flow → exercise select → live screen" [ref=e378]
            - cell "7" [ref=e379]
            - cell "0" [ref=e380]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e381]
          - row "b2c Exercise Select (standalone) 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e382]:
            - cell [ref=e383]:
              - checkbox [ref=e384]
            - cell "b2c" [ref=e385]
            - cell "Exercise Select (standalone)" [ref=e386]
            - cell "0" [ref=e387]
            - cell "0" [ref=e388]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e389]
          - row "b2c Full Workout Flow (with exercise select) 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e390]:
            - cell [ref=e391]:
              - checkbox [ref=e392]
            - cell "b2c" [ref=e393]
            - cell "Full Workout Flow (with exercise select)" [ref=e394]
            - cell "0" [ref=e395]
            - cell "0" [ref=e396]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e397]
          - row "b2c History 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e398]:
            - cell [ref=e399]:
              - checkbox [ref=e400]
            - cell "b2c" [ref=e401]
            - cell "History" [ref=e402]
            - cell "0" [ref=e403]
            - cell "0" [ref=e404]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e405]
          - row "b2c History tap shows empty/login state 4 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e406]:
            - cell [ref=e407]:
              - checkbox [ref=e408]
            - cell "b2c" [ref=e409]
            - cell "History tap shows empty/login state" [ref=e410]
            - cell "4" [ref=e411]
            - cell "0" [ref=e412]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e413]
          - row "b2c Next Set advances set index 8 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e414]:
            - cell [ref=e415]:
              - checkbox [ref=e416]
            - cell "b2c" [ref=e417]
            - cell "Next Set advances set index" [ref=e418]
            - cell "8" [ref=e419]
            - cell "0" [ref=e420]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e421]
          - row "b2c Quick Start flow 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e422]:
            - cell [ref=e423]:
              - checkbox [ref=e424]
            - cell "b2c" [ref=e425]
            - cell "Quick Start flow" [ref=e426]
            - cell "0" [ref=e427]
            - cell "0" [ref=e428]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e429]
          - row "b2c RPE chip selection auto-pairs RIR, save persists 15 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e430]:
            - cell [ref=e431]:
              - checkbox [ref=e432]
            - cell "b2c" [ref=e433]
            - cell "RPE chip selection auto-pairs RIR, save persists" [ref=e434]
            - cell "15" [ref=e435]
            - cell "0" [ref=e436]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e437]
          - row "b2c RPE/RIR + Session Feedback 0 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e438]:
            - cell [ref=e439]:
              - checkbox [ref=e440]
            - cell "b2c" [ref=e441]
            - cell "RPE/RIR + Session Feedback" [ref=e442]
            - cell "0" [ref=e443]
            - cell "0" [ref=e444]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e445]
          - row "b2c back button during live aborts flow 4 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e446]:
            - cell [ref=e447]:
              - checkbox [ref=e448]
            - cell "b2c" [ref=e449]
            - cell "back button during live aborts flow" [ref=e450]
            - cell "4" [ref=e451]
            - cell "0" [ref=e452]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e453]
          - row "b2c cancel exercise select exits flow back to DevHome 4 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e454]:
            - cell [ref=e455]:
              - checkbox [ref=e456]
            - cell "b2c" [ref=e457]
            - cell "cancel exercise select exits flow back to DevHome" [ref=e458]
            - cell "4" [ref=e459]
            - cell "0" [ref=e460]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e461]
          - row "b2c renders all nav cards 6 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e462]:
            - cell [ref=e463]:
              - checkbox [ref=e464]
            - cell "b2c" [ref=e465]
            - cell "renders all nav cards" [ref=e466]
            - cell "6" [ref=e467]
            - cell "0" [ref=e468]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e469]
          - row "b2c search filters the list 3 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e470]:
            - cell [ref=e471]:
              - checkbox [ref=e472]
            - cell "b2c" [ref=e473]
            - cell "search filters the list" [ref=e474]
            - cell "3" [ref=e475]
            - cell "0" [ref=e476]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e477]
          - row "b2c single-grip exercise auto-selects grip 4 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e478]:
            - cell [ref=e479]:
              - checkbox [ref=e480]
            - cell "b2c" [ref=e481]
            - cell "single-grip exercise auto-selects grip" [ref=e482]
            - cell "4" [ref=e483]
            - cell "0" [ref=e484]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e485]
          - row "b2c start → live screen shows rep counter 18 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e486]:
            - cell [ref=e487]:
              - checkbox [ref=e488]
            - cell "b2c" [ref=e489]
            - cell "start → live screen shows rep counter" [ref=e490]
            - cell "18" [ref=e491]
            - cell "0" [ref=e492]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e493]
          - row "b2c tap → select exercise → select grip → back to home + snackbar 10 0 apps/b2c/integration_test/app_e2e_test.dart" [ref=e494]:
            - cell [ref=e495]:
              - checkbox [ref=e496]
            - cell "b2c" [ref=e497]
            - cell "tap → select exercise → select grip → back to home + snackbar" [ref=e498]
            - cell "10" [ref=e499]
            - cell "0" [ref=e500]
            - cell "apps/b2c/integration_test/app_e2e_test.dart" [ref=e501]
      - heading "시나리오 시간축" [level=2] [ref=e42]:
        - link "시나리오 시간축" [ref=e43] [cursor=pointer]:
          - /url: "#-2"
      - generic [ref=e503]:
        - generic [ref=e504]: 시나리오 선택
        - combobox "시나리오 선택" [ref=e505]:
          - option "b2c.devhome" [selected]
          - option "b2c.exercise_select_standalone"
          - option "b2c.quick_start_flow"
          - option "b2c.full_workout_flow_with_exercise_select"
          - option "b2c.history"
          - option "b2c.ble_scan"
          - option "b2c.rpe_rir_session_feedback"
          - option "b2c.back_navigation_from_live"
          - option "b2c.test.renders_all_nav_cards"
          - option "b2c.test.tap_select_exercise_select_grip_back_to_home_snackbar"
          - option "b2c.test.single_grip_exercise_auto_selects_grip"
          - option "b2c.test.search_filters_the_list"
          - option "b2c.test.start_live_screen_shows_rep_counter"
          - option "b2c.test.next_set_advances_set_index"
          - option "b2c.test.devhome_full_workout_flow_exercise_select_live_screen"
          - option "b2c.test.cancel_exercise_select_exits_flow_back_to_devhome"
          - option "b2c.test.history_tap_shows_empty_login_state"
          - option "b2c.test.ble_scan_tap_shows_scan_screen"
          - option "b2c.test.rpe_chip_selection_auto_pairs_rir_save_persists"
          - option "b2c.test.back_button_during_live_aborts_flow"
          - option "b2b.devhome"
          - option "b2b.supervised_ble_live_flow"
          - option "b2b.test.renders_supervised_entry_dev_badge"
          - option "b2b.test.picker_console_set_1_live_rpe_skip_back_on_console"
          - option "b2b.test.set_2_inherits_preset_2_5_stepper_pushes_updated_target_weight"
          - option "b2b.test.rest_detected_mid_set_dialog_finalizes_returns_to_console"
          - option "b2b.test.rest_detected_weighton_resumes_same_set_no_new_history_row"
          - option "b2b.test.confirm_dialog_sessionsummary"
          - option "b2b.test.cancel_exercise_select_aborts_flow_back_to_devhome"
          - option "b2b.test.owner_mainshellscreen"
          - option "b2b.test.trainer_mainshellscreen"
          - option "b2b.test.member_memberappredirect"
          - option "b2b.test.owner_sees_members_tab_populated_with_emails"
          - option "b2b.test.trainer_sees_members_tab_populated_with_emails"
          - option "b2b.test.login_screen_empty_submit_validation"
          - option "b2b.test.login_screen_signup_toggle"
          - option "b2b.test.create_shop_orphan_user"
          - option "b2b.test.trainer_all_shell_tabs"
          - option "b2b.test.trainer_member_detail"
          - option "b2b.test.trainer_invite_screen"
          - option "b2b.test.owner_dashboard_tab"
          - option "b2b.test.member_redirect_screen"
          - option "b2b.s1_settargetweight_projection"
          - option "b2b.s2_setweightmode_projection"
          - option "b2b.s3_replayrepcycle_drives_rep_count_through_the_ui"
          - option "b2b.s4_replayidle_triggers_restdetector_pausedialog"
          - option "b2b.s5_emergencystop_drops_power_halts_reporting"
          - option "b2b.s6_resetrange_ack"
          - option "b2b.s7_dropsetstepadvancer_auto_emits_settargetweight"
          - option "b2b.s8_setmodeparamcommand_round_trips_to_mcu"
          - option "b2b.s9_live_preset_adjust_fires_settargetweight_immediately"
          - option "b2b.test.8_replayed_rep_cycles_produce_8_rep_history_line"
          - option "b2b.test.autoweight_active_6s_idle_dialog_appears"
      - generic [ref=e506]:
        - heading "거치는 화면 (0)" [level=3] [ref=e507]
        - table [ref=e509]:
          - rowgroup [ref=e510]:
            - row "app_id class_name file_path" [ref=e511]:
              - columnheader [ref=e512]:
                - checkbox [ref=e513]
              - columnheader "app_id" [ref=e514]: app_id
              - columnheader "class_name" [ref=e515]: class_name
              - columnheader "file_path" [ref=e516]: file_path
          - rowgroup [ref=e517]:
            - row "No results." [ref=e518]:
              - cell [ref=e519]
              - cell "No results." [ref=e520]
      - generic [ref=e521]:
        - heading "Step 시퀀스 (0)" [level=3] [ref=e522]
        - document [ref=e524]:
          - paragraph [ref=e534]: (step 없음)
      - heading "화면별 커버리지" [level=2] [ref=e44]:
        - link "화면별 커버리지" [ref=e45] [cursor=pointer]:
          - /url: "#-3"
      - paragraph [ref=e46]: 화면이 몇 개의 시나리오에서 등장하는지 (testWidgets 가 다루는지). 0건 = 회귀 위험.
      - table [ref=e537]:
        - rowgroup [ref=e538]:
          - row "app screen is_dev in_scenarios" [ref=e539]:
            - columnheader [ref=e540]:
              - checkbox [ref=e541]
            - columnheader "app" [ref=e542]: app
            - columnheader "screen" [ref=e543]: screen
            - columnheader "is_dev" [ref=e544]: is_dev
            - columnheader "in_scenarios" [ref=e545]: in_scenarios
        - rowgroup [ref=e546]:
          - row "b2c DevLabScreen false 0" [ref=e547]:
            - cell [ref=e548]:
              - checkbox [ref=e549]
            - cell "b2c" [ref=e550]
            - cell "DevLabScreen" [ref=e551]
            - cell "false" [ref=e552]
            - cell "0" [ref=e553]
          - row "b2b ExerciseSelectScreen false 0" [ref=e554]:
            - cell [ref=e555]:
              - checkbox [ref=e556]
            - cell "b2b" [ref=e557]
            - cell "ExerciseSelectScreen" [ref=e558]
            - cell "false" [ref=e559]
            - cell "0" [ref=e560]
          - row "b2c ExerciseSelectScreen false 0" [ref=e561]:
            - cell [ref=e562]:
              - checkbox [ref=e563]
            - cell "b2c" [ref=e564]
            - cell "ExerciseSelectScreen" [ref=e565]
            - cell "false" [ref=e566]
            - cell "0" [ref=e567]
          - row "b2c HistoryScreen false 0" [ref=e568]:
            - cell [ref=e569]:
              - checkbox [ref=e570]
            - cell "b2c" [ref=e571]
            - cell "HistoryScreen" [ref=e572]
            - cell "false" [ref=e573]
            - cell "0" [ref=e574]
          - row "b2b LiveWorkoutFlowScreen false 0" [ref=e575]:
            - cell [ref=e576]:
              - checkbox [ref=e577]
            - cell "b2b" [ref=e578]
            - cell "LiveWorkoutFlowScreen" [ref=e579]
            - cell "false" [ref=e580]
            - cell "0" [ref=e581]
          - row "b2c LogViewerScreen true 0" [ref=e582]:
            - cell [ref=e583]:
              - checkbox [ref=e584]
            - cell "b2c" [ref=e585]
            - cell "LogViewerScreen" [ref=e586]
            - cell "true" [ref=e587]
            - cell "0" [ref=e588]
          - row "b2b LogViewerScreen true 0" [ref=e589]:
            - cell [ref=e590]:
              - checkbox [ref=e591]
            - cell "b2b" [ref=e592]
            - cell "LogViewerScreen" [ref=e593]
            - cell "true" [ref=e594]
            - cell "0" [ref=e595]
          - row "b2c LoginScreen false 0" [ref=e596]:
            - cell [ref=e597]:
              - checkbox [ref=e598]
            - cell "b2c" [ref=e599]
            - cell "LoginScreen" [ref=e600]
            - cell "false" [ref=e601]
            - cell "0" [ref=e602]
          - row "b2b MemberDetailScreen false 0" [ref=e603]:
            - cell [ref=e604]:
              - checkbox [ref=e605]
            - cell "b2b" [ref=e606]
            - cell "MemberDetailScreen" [ref=e607]
            - cell "false" [ref=e608]
            - cell "0" [ref=e609]
          - row "b2b OwnerDashboardScreen false 0" [ref=e610]:
            - cell [ref=e611]:
              - checkbox [ref=e612]
            - cell "b2b" [ref=e613]
            - cell "OwnerDashboardScreen" [ref=e614]
            - cell "false" [ref=e615]
            - cell "0" [ref=e616]
          - row "b2c RemoteScreen false 0" [ref=e617]:
            - cell [ref=e618]:
              - checkbox [ref=e619]
            - cell "b2c" [ref=e620]
            - cell "RemoteScreen" [ref=e621]
            - cell "false" [ref=e622]
            - cell "0" [ref=e623]
          - row "b2b ScanScreen false 0" [ref=e624]:
            - cell [ref=e625]:
              - checkbox [ref=e626]
            - cell "b2b" [ref=e627]
            - cell "ScanScreen" [ref=e628]
            - cell "false" [ref=e629]
            - cell "0" [ref=e630]
          - row "b2c ScanScreen false 0" [ref=e631]:
            - cell [ref=e632]:
              - checkbox [ref=e633]
            - cell "b2c" [ref=e634]
            - cell "ScanScreen" [ref=e635]
            - cell "false" [ref=e636]
            - cell "0" [ref=e637]
          - row "b2b SessionConsoleScreen false 0" [ref=e638]:
            - cell [ref=e639]:
              - checkbox [ref=e640]
            - cell "b2b" [ref=e641]
            - cell "SessionConsoleScreen" [ref=e642]
            - cell "false" [ref=e643]
            - cell "0" [ref=e644]
          - row "b2c SessionSummaryScreen false 0" [ref=e645]:
            - cell [ref=e646]:
              - checkbox [ref=e647]
            - cell "b2c" [ref=e648]
            - cell "SessionSummaryScreen" [ref=e649]
            - cell "false" [ref=e650]
            - cell "0" [ref=e651]
          - row "b2b SessionSummaryScreen false 0" [ref=e652]:
            - cell [ref=e653]:
              - checkbox [ref=e654]
            - cell "b2b" [ref=e655]
            - cell "SessionSummaryScreen" [ref=e656]
            - cell "false" [ref=e657]
            - cell "0" [ref=e658]
          - row "b2b SetSummaryScreen false 0" [ref=e659]:
            - cell [ref=e660]:
              - checkbox [ref=e661]
            - cell "b2b" [ref=e662]
            - cell "SetSummaryScreen" [ref=e663]
            - cell "false" [ref=e664]
            - cell "0" [ref=e665]
          - row "b2c SetSummaryScreen false 0" [ref=e666]:
            - cell [ref=e667]:
              - checkbox [ref=e668]
            - cell "b2c" [ref=e669]
            - cell "SetSummaryScreen" [ref=e670]
            - cell "false" [ref=e671]
            - cell "0" [ref=e672]
          - row "b2b SupervisedWorkoutScreen false 0" [ref=e673]:
            - cell [ref=e674]:
              - checkbox [ref=e675]
            - cell "b2b" [ref=e676]
            - cell "SupervisedWorkoutScreen" [ref=e677]
            - cell "false" [ref=e678]
            - cell "0" [ref=e679]
          - row "b2c WorkoutFlowScreen false 0" [ref=e680]:
            - cell [ref=e681]:
              - checkbox [ref=e682]
            - cell "b2c" [ref=e683]
            - cell "WorkoutFlowScreen" [ref=e684]
            - cell "false" [ref=e685]
            - cell "0" [ref=e686]
          - row "b2c WorkoutLiveScreen false 0" [ref=e687]:
            - cell [ref=e688]:
              - checkbox [ref=e689]
            - cell "b2c" [ref=e690]
            - cell "WorkoutLiveScreen" [ref=e691]
            - cell "false" [ref=e692]
            - cell "0" [ref=e693]
          - row "b2c WorkoutScreen false 0" [ref=e694]:
            - cell [ref=e695]:
              - checkbox [ref=e696]
            - cell "b2c" [ref=e697]
            - cell "WorkoutScreen" [ref=e698]
            - cell "false" [ref=e699]
            - cell "0" [ref=e700]
          - row "b2b InviteMemberScreen false 1" [ref=e701]:
            - cell [ref=e702]:
              - checkbox [ref=e703]
            - cell "b2b" [ref=e704]
            - cell "InviteMemberScreen" [ref=e705]
            - cell "false" [ref=e706]
            - cell "1" [ref=e707]
          - row "b2b LoginScreen false 1" [ref=e708]:
            - cell [ref=e709]:
              - checkbox [ref=e710]
            - cell "b2b" [ref=e711]
            - cell "LoginScreen" [ref=e712]
            - cell "false" [ref=e713]
            - cell "1" [ref=e714]
          - row "b2b CreateShopScreen false 2" [ref=e715]:
            - cell [ref=e716]:
              - checkbox [ref=e717]
            - cell "b2b" [ref=e718]
            - cell "CreateShopScreen" [ref=e719]
            - cell "false" [ref=e720]
            - cell "2" [ref=e721]
          - row "b2b LiveWorkoutScreen false 3" [ref=e722]:
            - cell [ref=e723]:
              - checkbox [ref=e724]
            - cell "b2b" [ref=e725]
            - cell "LiveWorkoutScreen" [ref=e726]
            - cell "false" [ref=e727]
            - cell "3" [ref=e728]
    - contentinfo [ref=e47]:
      - navigation [ref=e48]:
        - link "Previous page Use case" [ref=e49] [cursor=pointer]:
          - /url: ./use-cases
          - text: Previous page
          - generic [ref=e50]: Use case
        - link "Next page 데이터 흐름" [ref=e51] [cursor=pointer]:
          - /url: ./data-flow
          - text: Next page
          - generic [ref=e52]: 데이터 흐름
      - generic [ref=e53]:
        - text: "Source: /Volumes/WorkSSD/Projects/RoomfitV2 · build via"
        - code [ref=e54]: make extract && npm run build