- 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 "흐름" [ref=e17] [cursor=pointer]:
          - /url: ./flow
      - listitem [ref=e18]:
        - link "Use case" [ref=e19] [cursor=pointer]:
          - /url: ./use-cases
      - listitem [ref=e20]:
        - link "시나리오" [ref=e21] [cursor=pointer]:
          - /url: ./scenarios
      - listitem [ref=e22]:
        - link "데이터 흐름" [ref=e23] [cursor=pointer]:
          - /url: ./data-flow
  - generic [ref=e24]:
    - banner [ref=e25]: Roomfit v2 Spec — 자동 추출 + 수동 보강
    - complementary [ref=e26]:
      - navigation [ref=e27]:
        - generic [ref=e28]: Contents
        - list [ref=e29]:
          - listitem [ref=e30]:
            - link "화면 그래프" [ref=e31] [cursor=pointer]:
              - /url: "#-1"
          - listitem [ref=e32]:
            - link "미커버 transition (회귀 위험)" [ref=e33] [cursor=pointer]:
              - /url: "#transition"
          - listitem [ref=e34]:
            - link "트레이너 시나리오 reconstruct" [ref=e35] [cursor=pointer]:
              - /url: "#reconstruct"
          - listitem [ref=e36]:
            - link "모든 transition 표" [ref=e37] [cursor=pointer]:
              - /url: "#transition-1"
    - main [ref=e39]:
      - heading "흐름" [level=1] [ref=e40]:
        - link "흐름" [ref=e41] [cursor=pointer]:
          - /url: "#"
      - paragraph [ref=e42]:
        - text: 화면 → 화면 transition (Navigator.push 추출). 각 엣지 색이
        - strong [ref=e43]: 테스트 커버 여부
        - text: ":"
      - list [ref=e44]:
        - listitem [ref=e45]:
          - text: 🟢
          - strong [ref=e46]: 초록 실선
          - text: — 같은 시나리오에서 from·to 둘 다 등장 = 테스트가 이 흐름을 거침
        - listitem [ref=e47]:
          - text: 🔴
          - strong [ref=e48]: 빨강 점선
          - text: — production code 에 있지만 어떤 시나리오도 안 거침 = 회귀 위험 / spec 갭
      - generic [ref=e49]:
        - generic [ref=e50]:
          - generic [ref=e51]: App
          - generic [ref=e52]:
            - generic [ref=e53]:
              - radio "b2c" [ref=e54]
              - text: b2c
            - generic [ref=e55]:
              - radio "b2b" [checked] [ref=e56]
              - text: b2b
        - generic [ref=e57]:
          - generic [ref=e58]: dev 진입점 포함
          - checkbox "dev 진입점 포함" [checked] [ref=e59]
      - heading "화면 그래프" [level=2] [ref=e60]:
        - link "화면 그래프" [ref=e61] [cursor=pointer]:
          - /url: "#-1"
      - document [ref=e86]:
        - generic [ref=e88]:
          - generic [ref=e99]:
            - paragraph [ref=e105]: ⚠ 0
            - paragraph [ref=e111]: ⚠ 0
            - paragraph [ref=e117]: ⚠ 0
            - paragraph [ref=e123]: ⚠ 0
            - paragraph [ref=e129]: "4"
            - paragraph [ref=e135]: "4"
            - paragraph [ref=e141]: "4"
            - paragraph [ref=e147]: "4"
            - paragraph [ref=e153]: "1"
            - paragraph [ref=e159]: ⚠ 0
            - paragraph [ref=e165]: "1"
            - paragraph [ref=e171]: "4"
          - generic [ref=e172]:
            - paragraph [ref=e179]: ScanScreen
            - paragraph [ref=e186]: LogViewerScreen
            - paragraph [ref=e193]: DevHomeScreen
            - paragraph [ref=e200]: MainShellScreen
            - paragraph [ref=e207]: MemberDetailScreen
            - paragraph [ref=e214]: FirmwareDfuScreen
            - paragraph [ref=e221]: SupervisedWorkoutScreen
            - paragraph [ref=e228]: LiveWorkoutFlowScreen
            - paragraph [ref=e235]: ExerciseSelectScreen
            - paragraph [ref=e242]: SessionSummaryScreen
            - paragraph [ref=e249]: LiveWorkoutScreen
      - heading "미커버 transition (회귀 위험)" [level=2] [ref=e62]:
        - link "미커버 transition (회귀 위험)" [ref=e63] [cursor=pointer]:
          - /url: "#transition"
      - paragraph [ref=e64]: 테스트가 거치지 않는 production 흐름. 우선순위 1.
      - table [ref=e252]:
        - rowgroup [ref=e253]:
          - row "from to from_is_dev to_is_dev" [ref=e254]:
            - columnheader [ref=e255]:
              - checkbox [ref=e256]
            - columnheader "from" [ref=e257]: from
            - columnheader "to" [ref=e258]: to
            - columnheader "from_is_dev" [ref=e259]: from_is_dev
            - columnheader "to_is_dev" [ref=e260]: to_is_dev
        - rowgroup [ref=e261]:
          - row "ScanScreen LogViewerScreen false true" [ref=e262]:
            - cell [ref=e263]:
              - checkbox [ref=e264]
            - cell "ScanScreen" [ref=e265]
            - cell "LogViewerScreen" [ref=e266]
            - cell "false" [ref=e267]
            - cell "true" [ref=e268]
          - row "DevHomeScreen MainShellScreen true false" [ref=e269]:
            - cell [ref=e270]:
              - checkbox [ref=e271]
            - cell "DevHomeScreen" [ref=e272]
            - cell "MainShellScreen" [ref=e273]
            - cell "true" [ref=e274]
            - cell "false" [ref=e275]
          - row "MemberDetailScreen ScanScreen false false" [ref=e276]:
            - cell [ref=e277]:
              - checkbox [ref=e278]
            - cell "MemberDetailScreen" [ref=e279]
            - cell "ScanScreen" [ref=e280]
            - cell "false" [ref=e281]
            - cell "false" [ref=e282]
          - row "DevHomeScreen FirmwareDfuScreen true false" [ref=e283]:
            - cell [ref=e284]:
              - checkbox [ref=e285]
            - cell "DevHomeScreen" [ref=e286]
            - cell "FirmwareDfuScreen" [ref=e287]
            - cell "true" [ref=e288]
            - cell "false" [ref=e289]
          - row "DevHomeScreen ScanScreen true false" [ref=e290]:
            - cell [ref=e291]:
              - checkbox [ref=e292]
            - cell "DevHomeScreen" [ref=e293]
            - cell "ScanScreen" [ref=e294]
            - cell "true" [ref=e295]
            - cell "false" [ref=e296]
      - heading "트레이너 시나리오 reconstruct" [level=2] [ref=e65]:
        - link "트레이너 시나리오 reconstruct" [ref=e66] [cursor=pointer]:
          - /url: "#reconstruct"
      - paragraph [ref=e67]:
        - code [ref=e68]: MemberDetailScreen
        - text: 부터 시작하는 production path 두 갈래 (단일 testWidgets 가 아니라 코드 trace 로 합성).
      - document [ref=e299]:
        - generic [ref=e301]:
          - generic [ref=e308]:
            - paragraph [ref=e314]: 매뉴얼 기록
            - paragraph [ref=e320]: 운동 완료
            - paragraph [ref=e326]: BLE-live
            - paragraph [ref=e332]: 페어링 후 pushReplacement
            - paragraph [ref=e338]: Set N 시작
            - paragraph [ref=e344]: 세트 완료
            - paragraph [ref=e350]: 수업 종료
          - generic [ref=e351]:
            - paragraph [ref=e358]: LoginScreen
            - paragraph [ref=e365]: MainShellScreen
            - paragraph [ref=e372]: "[멤버 리스트]"
            - paragraph [ref=e379]: MemberDetailScreen
            - paragraph [ref=e386]: SupervisedWorkoutScreen
            - paragraph [ref=e393]: SessionSummaryScreen
            - paragraph [ref=e400]: ScanScreen
            - paragraph [ref=e407]: LiveWorkoutFlowScreen
            - paragraph [ref=e414]: ExerciseSelectScreen
            - paragraph [ref=e421]: SessionConsoleScreen
            - paragraph [ref=e428]: LiveWorkoutScreen
            - paragraph [ref=e435]: SessionSummaryScreen
      - blockquote [ref=e69]:
        - paragraph [ref=e70]:
          - strong [ref=e71]: 🟢 초록
          - text: =
          - code [ref=e72]: Supervised BLE-live flow
          - text: group의 testWidgets 가 커버. dev 진입점부터.
          - strong [ref=e73]: 🔴 빨강
          - text: = production path 인데 testWidgets 0건. 멤버 선택 단계 전체 + Stage1 매뉴얼 path.
      - heading "모든 transition 표" [level=2] [ref=e74]:
        - link "모든 transition 표" [ref=e75] [cursor=pointer]:
          - /url: "#transition-1"
      - table [ref=e438]:
        - rowgroup [ref=e439]:
          - row "from to covered is_dev_path" [ref=e440]:
            - columnheader [ref=e441]:
              - checkbox [ref=e442]
            - columnheader "from" [ref=e443]: from
            - columnheader "to" [ref=e444]: to
            - columnheader "covered" [ref=e445]: covered
            - columnheader "is_dev_path" [ref=e446]: is_dev_path
        - rowgroup [ref=e447]:
          - row "ScanScreen LogViewerScreen — dev" [ref=e448]:
            - cell [ref=e449]:
              - checkbox [ref=e450]
            - cell "ScanScreen" [ref=e451]
            - cell "LogViewerScreen" [ref=e452]
            - cell "—" [ref=e453]
            - cell "dev" [ref=e454]
          - row "DevHomeScreen MainShellScreen — dev" [ref=e455]:
            - cell [ref=e456]:
              - checkbox [ref=e457]
            - cell "DevHomeScreen" [ref=e458]
            - cell "MainShellScreen" [ref=e459]
            - cell "—" [ref=e460]
            - cell "dev" [ref=e461]
          - row "MemberDetailScreen ScanScreen —" [ref=e462]:
            - cell [ref=e463]:
              - checkbox [ref=e464]
            - cell "MemberDetailScreen" [ref=e465]
            - cell "ScanScreen" [ref=e466]
            - cell "—" [ref=e467]
            - cell [ref=e468]
          - row "DevHomeScreen FirmwareDfuScreen — dev" [ref=e469]:
            - cell [ref=e470]:
              - checkbox [ref=e471]
            - cell "DevHomeScreen" [ref=e472]
            - cell "FirmwareDfuScreen" [ref=e473]
            - cell "—" [ref=e474]
            - cell "dev" [ref=e475]
          - row "MemberDetailScreen SupervisedWorkoutScreen ✓ 4" [ref=e476]:
            - cell [ref=e477]:
              - checkbox [ref=e478]
            - cell "MemberDetailScreen" [ref=e479]
            - cell "SupervisedWorkoutScreen" [ref=e480]
            - cell "✓ 4" [ref=e481]
            - cell [ref=e482]
          - row "LiveWorkoutFlowScreen ExerciseSelectScreen ✓ 4" [ref=e483]:
            - cell [ref=e484]:
              - checkbox [ref=e485]
            - cell "LiveWorkoutFlowScreen" [ref=e486]
            - cell "ExerciseSelectScreen" [ref=e487]
            - cell "✓ 4" [ref=e488]
            - cell [ref=e489]
          - row "LiveWorkoutFlowScreen SessionSummaryScreen ✓ 4" [ref=e490]:
            - cell [ref=e491]:
              - checkbox [ref=e492]
            - cell "LiveWorkoutFlowScreen" [ref=e493]
            - cell "SessionSummaryScreen" [ref=e494]
            - cell "✓ 4" [ref=e495]
            - cell [ref=e496]
          - row "LiveWorkoutFlowScreen LiveWorkoutScreen ✓ 4" [ref=e497]:
            - cell [ref=e498]:
              - checkbox [ref=e499]
            - cell "LiveWorkoutFlowScreen" [ref=e500]
            - cell "LiveWorkoutScreen" [ref=e501]
            - cell "✓ 4" [ref=e502]
            - cell [ref=e503]
          - row "DevHomeScreen LiveWorkoutFlowScreen ✓ 1 dev" [ref=e504]:
            - cell [ref=e505]:
              - checkbox [ref=e506]
            - cell "DevHomeScreen" [ref=e507]
            - cell "LiveWorkoutFlowScreen" [ref=e508]
            - cell "✓ 1" [ref=e509]
            - cell "dev" [ref=e510]
          - row "DevHomeScreen ScanScreen — dev" [ref=e511]:
            - cell [ref=e512]:
              - checkbox [ref=e513]
            - cell "DevHomeScreen" [ref=e514]
            - cell "ScanScreen" [ref=e515]
            - cell "—" [ref=e516]
            - cell "dev" [ref=e517]
          - row "DevHomeScreen ExerciseSelectScreen ✓ 1 dev" [ref=e518]:
            - cell [ref=e519]:
              - checkbox [ref=e520]
            - cell "DevHomeScreen" [ref=e521]
            - cell "ExerciseSelectScreen" [ref=e522]
            - cell "✓ 1" [ref=e523]
            - cell "dev" [ref=e524]
          - row "MemberDetailScreen LiveWorkoutFlowScreen ✓ 4" [ref=e525]:
            - cell [ref=e526]:
              - checkbox [ref=e527]
            - cell "MemberDetailScreen" [ref=e528]
            - cell "LiveWorkoutFlowScreen" [ref=e529]
            - cell "✓ 4" [ref=e530]
            - cell [ref=e531]
    - contentinfo [ref=e76]:
      - navigation [ref=e77]:
        - link "Previous page 화면" [ref=e78] [cursor=pointer]:
          - /url: ./screens
          - text: Previous page
          - generic [ref=e79]: 화면
        - link "Next page Use case" [ref=e80] [cursor=pointer]:
          - /url: ./use-cases
          - text: Next page
          - generic [ref=e81]: Use case
      - generic [ref=e82]:
        - text: "Source: /Volumes/WorkSSD/Projects/RoomfitV2 · build via"
        - code [ref=e83]: make extract && npm run build