# CODEBASE AUDIT RC91

## Scope
Non-video service modularization from the RC90/RC89 stable baseline.

## Counts
| Metric | Count / Status |
|---|---:|
| Base | RC90 / RC89 known-good |
| `app.js` lines | 3406 |
| Core modules | 5 |
| Renderer modules | 5 |
| Service modules | 2 |
| Service total lines | 176 |
| `NEXTProfileService` refs in `app.js` | 13 |
| `NEXTProgramService` refs in `app.js` | 6 |
| Service scripts loaded in `preview.html` | True |

## New service modules
- `profile-service.js`: 104 lines
- `program-service.js`: 72 lines

## Existing renderer modules
- `calendar-renderer.js`: 89 lines
- `dashboard-renderer.js`: 104 lines
- `overview-renderer.js`: 65 lines
- `profile-renderer.js`: 106 lines
- `program-renderer.js`: 79 lines

## What moved
- Profile normalization, labels and default settings helpers moved to `profile-service.js`.
- Program default mapping and program definition normalization moved to `program-service.js`.

## What stayed in `app.js`
- Runtime state.
- Storage read/write orchestration.
- Profile/program actions.
- Calendar actions.
- Exercise player/video logic.

## Deferred
Exercise player/video remains untouched.
