diff --git a/.circleci/config.yml b/.circleci/config.yml index 3d59edc97..163ed7b16 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -215,7 +215,7 @@ jobs: # Required env vars in CircleCI project settings: # VERCEL_TOKEN, VERCEL_PROJECT_ID, (optional) VERCEL_TEAM_ID lighthouse-preview: - executor: node + executor: node-large steps: - checkout - install-node-deps @@ -228,10 +228,19 @@ jobs: name: Wait for Vercel preview to be READY command: | URL=$(bash .circleci/scripts/wait-for-vercel-preview.sh) - echo "export PREVIEW_URL='${URL}'" >> "$BASH_ENV" + if [ -z "${URL}" ]; then + echo "No Vercel preview URL available; skipping advisory Lighthouse run." + echo "export SKIP_LIGHTHOUSE=1" >> "$BASH_ENV" + else + echo "export PREVIEW_URL='${URL}'" >> "$BASH_ENV" + fi - run: name: Run Lighthouse CI command: | + if [ "${SKIP_LIGHTHOUSE:-0}" = "1" ]; then + echo "Skipping Lighthouse CI because preview credentials are not configured." + exit 0 + fi npx lhci autorun --config=lighthouserc.cjs - store_artifacts: path: .lighthouseci/ diff --git a/.circleci/scripts/wait-for-vercel-preview.sh b/.circleci/scripts/wait-for-vercel-preview.sh index d385c0c39..31b0f7d9a 100755 --- a/.circleci/scripts/wait-for-vercel-preview.sh +++ b/.circleci/scripts/wait-for-vercel-preview.sh @@ -14,7 +14,9 @@ # finish in 1-3 min # POLL_INTERVAL_S — default 10 # -# Exits non-zero with a useful message on timeout or API error. +# Exits non-zero with a useful message on timeout or API error. If CircleCI is +# not configured with Vercel credentials yet, exits zero with no stdout so the +# caller can skip the advisory Lighthouse run without blocking the PR. # Designed to be source'd OR run with `eval $(...)` to set # PREVIEW_URL in the calling shell. Standalone use: `bash this | tail -1`. # @@ -23,9 +25,15 @@ set -euo pipefail -: "${VERCEL_TOKEN:?VERCEL_TOKEN env var is required}" -: "${VERCEL_PROJECT_ID:?VERCEL_PROJECT_ID env var is required}" -: "${CIRCLE_SHA1:?CIRCLE_SHA1 env var is required (CircleCI provides this)}" +if [[ -z "${VERCEL_TOKEN:-}" || -z "${VERCEL_PROJECT_ID:-}" ]]; then + echo "Skipping Lighthouse preview: VERCEL_TOKEN or VERCEL_PROJECT_ID is not configured in CircleCI." >&2 + exit 0 +fi + +if [[ -z "${CIRCLE_SHA1:-}" ]]; then + echo "Skipping Lighthouse preview: CIRCLE_SHA1 is not set." >&2 + exit 0 +fi POLL_TIMEOUT_S="${POLL_TIMEOUT_S:-600}" POLL_INTERVAL_S="${POLL_INTERVAL_S:-10}" diff --git a/.claude/README.md b/.claude/README.md index 6ff8a0268..d259f9538 100644 --- a/.claude/README.md +++ b/.claude/README.md @@ -1,220 +1,36 @@ -# 🎯 Production Audit Commands for Claude Code +# Claude Agent Workspace -## ✅ SIMPLE 2-STEP PROCESS +This folder contains Claude-facing agents, commands, and older audit material. -### Step 1: Generate Agent Prompts +## Current Agents -```bash -# For GolfHelm -python3 .claude/run_audit.py audit-golf 1 +Use `.claude/agents/` for focused review and handoff work: -# For BaseballHelm -python3 .claude/run_audit.py audit-baseball 1 +- `triage-captain.md`: turns broad requests into scoped, issue-ready work. +- `ci-doctor.md`: investigates failing checks and local verification gaps. +- `db-rls-auditor.md`: reviews Supabase migrations, policies, and RLS tests. +- `test-writer.md`: adds focused unit, integration, or smoke coverage. +- `docs-keeper.md`: keeps current docs and memory routing synchronized. +- `pr-reviewer.md`: reviews changes for regressions and missing verification. +- `ui-polish-reviewer.md`: reviews UI polish and visual consistency. -# For Both Platforms -python3 .claude/run_audit.py audit-both 1 -``` +## Current Rules -This creates a file: `RUN_IN_CLAUDE_CODE.md` +Read these before treating older generated prompts as current: -### Step 2: Copy & Paste Into Claude Code +- `../AGENTS.md` +- `../CLAUDE.md` +- `../docs/current/README.md` +- `../docs/operations/GATE_MATRIX.md` +- `../docs/operations/CI_RUNBOOK.md` -```bash -# Open the generated file -open .production-team/GOLFHELM_AUDIT_ROUND_01/RUN_IN_CLAUDE_CODE.md +## Legacy Material -# Copy the message -# Paste into Claude Code -# Done! -``` +Older files in this folder may describe prompt-generation systems or one-off audit runs. Keep them as historical evidence, not as the primary workflow. ---- +For new work, prefer: -## 🎭 What Happens - -### When You Run the Command: - -1. **Loads ALL agent personalities** from `.production-team/` -2. **Loads ALL agent memories** from `.production-team/memory/` -3. **Applies platform scope** (Golf, Baseball, or Both) -4. **Generates complete prompts** with full intelligence -5. **Creates RUN_IN_CLAUDE_CODE.md** with everything Claude Code needs - -### The Three Genius Agents: - -**🛡️ Database Sentinel** -- Full personality + methodology loaded -- Memory from past rounds loaded -- Scoped to platform (golf tables only, etc.) -- Queries live database via Supabase MCP - -**🎯 Feature Maestro** ⭐ **(SUPER IMPORTANT)** -- Full personality + methodology loaded -- Memory from past rounds loaded -- Tests all features with edge cases -- Checks completeness systematically - -**✨ Experience Architect** -- Full personality + methodology loaded -- Memory from past rounds loaded -- Enforces Da Vinci philosophy -- Verifies glassmorphism + kelly green - ---- - -## 📁 Output Structure - -**After running `audit-golf`:** -``` -.production-team/GOLFHELM_AUDIT_ROUND_01/ -├── PROMPT_DATABASE_SENTINEL.md .......... Full agent prompt -├── PROMPT_FEATURE_MAESTRO.md ............ Full agent prompt -├── PROMPT_EXPERIENCE_ARCHITECT.md ....... Full agent prompt -├── RUN_IN_CLAUDE_CODE.md ................ Copy this into Claude Code -├── 01_DATABASE_SENTINEL_FINDINGS.md ..... (Created by Claude Code) -├── 02_FEATURE_MAESTRO_FINDINGS.md ....... (Created by Claude Code) -├── 03_EXPERIENCE_ARCHITECT_FINDINGS.md .. (Created by Claude Code) -├── 04_CROSS_AGENT_SYNTHESIS.md .......... (Created by Claude Code) -└── 05_PRIORITY_ACTION_ITEMS.md .......... (Created by Claude Code) -``` - ---- - -## 🚀 Complete Workflow - -```bash -# 1. Generate prompts for GolfHelm -python3 .claude/run_audit.py audit-golf 1 - -# 2. Open the instruction file -cat .production-team/GOLFHELM_AUDIT_ROUND_01/RUN_IN_CLAUDE_CODE.md - -# 3. Copy the message from that file - -# 4. Open Claude Code (in Cursor or standalone) - -# 5. Paste the message - -# 6. Claude Code executes all 3 agents autonomously - -# 7. Review findings -cat .production-team/GOLFHELM_AUDIT_ROUND_01/05_PRIORITY_ACTION_ITEMS.md - -# 8. Fix issues - -# 9. Run Round 2 -python3 .claude/run_audit.py audit-golf 2 -``` - ---- - -## 💡 Why This Works - -### Before (Didn't Work): -❌ You had to manually combine agent files -❌ No memory loaded -❌ Platform scope unclear -❌ Confusing to execute - -### Now (Works Perfectly): -✅ **One command** generates everything -✅ **Full agent intelligence** loaded -✅ **Memory automatically** loaded and applied -✅ **Platform scope** built-in -✅ **Simple copy/paste** into Claude Code -✅ **Agents run autonomously** with full capabilities - ---- - -## 🎯 Available Commands - -```bash -# GolfHelm only -python3 .claude/run_audit.py audit-golf 1 - -# BaseballHelm only -python3 .claude/run_audit.py audit-baseball 1 - -# Both platforms -python3 .claude/run_audit.py audit-both 1 - -# Round 2 (after fixes) -python3 .claude/run_audit.py audit-golf 2 -``` - ---- - -## 🧠 Memory System - -**First Run:** -- Agents have no memory -- Establish baseline findings -- Create memory files - -**Second Run:** -- Agents load memory from Round 1 -- Skip re-reporting fixed issues -- Go deeper on edge cases -- Update memory with new learnings - -**Round 3+:** -- Agents have deep knowledge -- Predict issues based on patterns -- Expert-level auditing - ---- - -## 📊 Example Usage - -```bash -$ python3 .claude/run_audit.py audit-golf 1 - -====================================================================== -🎭 PRODUCTION AUDIT - GOLFHELM - ROUND 01 -====================================================================== - -📁 Output: .production-team/GOLFHELM_AUDIT_ROUND_01 - -🛡️ DATABASE SENTINEL -────────────────────────────────────────────────────────────────────── -✅ Generated prompt: .production-team/GOLFHELM_AUDIT_ROUND_01/PROMPT_DATABASE_SENTINEL.md - Memory loaded: No (first run) - Platform scope: GolfHelm - -🎯 FEATURE MAESTRO -────────────────────────────────────────────────────────────────────── -✅ Generated prompt: .production-team/GOLFHELM_AUDIT_ROUND_01/PROMPT_FEATURE_MAESTRO.md - Memory loaded: No (first run) - Platform scope: GolfHelm - -✨ EXPERIENCE ARCHITECT -────────────────────────────────────────────────────────────────────── -✅ Generated prompt: .production-team/GOLFHELM_AUDIT_ROUND_01/PROMPT_EXPERIENCE_ARCHITECT.md - Memory loaded: No (first run) - Platform scope: GolfHelm - -====================================================================== -✨ PROMPTS GENERATED! -====================================================================== - -📄 Next: Open and copy: .production-team/GOLFHELM_AUDIT_ROUND_01/RUN_IN_CLAUDE_CODE.md -📋 Paste into Claude Code -🚀 Agents will execute with full intelligence + memory -``` - -Then just: -1. Open `RUN_IN_CLAUDE_CODE.md` -2. Copy the message -3. Paste into Claude Code -4. Watch the genius agents work! - ---- - -## ✨ That's It! - -**One command. One copy/paste. Full intelligent agents with memory.** - -Start now: -```bash -python3 .claude/run_audit.py audit-golf 1 -``` +1. GitHub Issues for the task. +2. `memory/registry.yml` for feature routing. +3. The relevant current docs under `docs/current/` and `docs/operations/`. +4. The smallest useful verification command before declaring completion. diff --git a/.claude/agents/ci-doctor.md b/.claude/agents/ci-doctor.md new file mode 100644 index 000000000..619024736 --- /dev/null +++ b/.claude/agents/ci-doctor.md @@ -0,0 +1,17 @@ +# CI Doctor + +Purpose: diagnose failing CI and propose the smallest safe fix. + +## Responsibilities + +- Read the failed job logs before suggesting code changes. +- Use `docs/operations/GATE_MATRIX.md` to classify hard blockers versus advisory checks. +- Prefer fixing root causes over relaxing gates. +- Do not make unrelated code, docs, or baseline changes. + +## Done Means + +- Root cause is named. +- Minimal fix is identified. +- Required verification command is listed. +- Any advisory-only failure is clearly labeled advisory. diff --git a/.claude/agents/db-rls-auditor.md b/.claude/agents/db-rls-auditor.md new file mode 100644 index 000000000..c0bed0c21 --- /dev/null +++ b/.claude/agents/db-rls-auditor.md @@ -0,0 +1,18 @@ +# DB / RLS Auditor + +Purpose: review Supabase migrations, RLS policies, security-definer functions, and data access paths. + +## Responsibilities + +- Treat database and security mistakes as high risk. +- Check new tables for RLS enablement and policies in the same migration. +- Check `SECURITY DEFINER` functions for explicit `search_path`. +- Verify data access paths use authenticated user context. +- Require migration lint, RLS tests, database type drift checks, and ledger checks when relevant. + +## Required References + +- `memory/context/golfhelm-database.md` +- `memory/glossary.md` +- `docs/operations/GATE_MATRIX.md` +- `docs/operations/HOT_FILES.md` diff --git a/.claude/agents/docs-keeper.md b/.claude/agents/docs-keeper.md new file mode 100644 index 000000000..ef90b7807 --- /dev/null +++ b/.claude/agents/docs-keeper.md @@ -0,0 +1,19 @@ +# Docs Keeper + +Purpose: keep current-state docs, feature docs, and registry mappings aligned with behavior. + +## Responsibilities + +- Keep current docs concise and present-tense. +- Move old plans and audits to historical locations instead of letting them look current. +- Update `memory/registry.yml` when feature ownership or path routing changes. +- Do not manually edit generated blocks marked with AUTOGEN comments. + +## Source Of Truth + +- GitHub Issues: current work. +- GitHub Project: current priority. +- `memory/registry.yml`: feature routing. +- `docs/operations/`: runbooks and incident history. +- `docs/audits/`: historical audits. +- `.helm/`: archive only. diff --git a/.claude/agents/pr-reviewer.md b/.claude/agents/pr-reviewer.md new file mode 100644 index 000000000..f135d32ed --- /dev/null +++ b/.claude/agents/pr-reviewer.md @@ -0,0 +1,17 @@ +# PR Reviewer + +Purpose: review a PR diff for scope, missing tests, missing docs, risky files, and incomplete acceptance criteria. + +## Responsibilities + +- Lead with bugs, regressions, security issues, and test gaps. +- Check whether changed files map through `memory/registry.yml`. +- Verify hot-file rules in `docs/operations/HOT_FILES.md`. +- Distinguish hard blockers from advisory checks using `docs/operations/GATE_MATRIX.md`. +- Avoid style-only comments unless they hide a real maintenance or user risk. + +## Output Shape + +- Findings ordered by severity with file and line references. +- Open questions. +- Brief verification summary. diff --git a/.claude/agents/test-writer.md b/.claude/agents/test-writer.md new file mode 100644 index 000000000..ba54eed0b --- /dev/null +++ b/.claude/agents/test-writer.md @@ -0,0 +1,19 @@ +# Test Writer + +Purpose: add or repair tests for a scoped Helm feature. + +## Responsibilities + +- Prefer invariant tests around past bugs. +- Keep tests scoped to the feature and risk. +- Do not refactor production code unless required for testability. +- Use Vitest lanes intentionally: + - `npm run test:run` for unit tests. + - `npm run test:integration` for slower integration tests. + - `npm run test:rls` for Vitest RLS tests. +- Use Playwright smoke only for critical browser entry points. + +## Done Means + +- The failing or missing behavior is covered. +- The narrow relevant test command passes or the blocker is documented. diff --git a/.claude/agents/triage-captain.md b/.claude/agents/triage-captain.md new file mode 100644 index 000000000..edf905ab2 --- /dev/null +++ b/.claude/agents/triage-captain.md @@ -0,0 +1,21 @@ +# Triage Captain + +Purpose: convert a request, issue, or CI failure into a scoped work order. Do not edit code. + +## Responsibilities + +- Identify product area, feature registry key, likely files, risks, required docs, and required tests. +- Use `memory/registry.yml` as the routing source of truth. +- Call out missing registry coverage instead of guessing silently. +- Produce allowed paths, forbidden paths, acceptance criteria, and done checks. + +## Output Shape + +- Objective +- Feature registry key +- Likely files +- Required docs +- Risks +- Required commands +- Acceptance criteria +- Out of scope diff --git a/.cleanup/reports/ARCHITECTURE_TANGLES.md b/.cleanup/reports/ARCHITECTURE_TANGLES.md new file mode 100644 index 000000000..07fea34c5 --- /dev/null +++ b/.cleanup/reports/ARCHITECTURE_TANGLES.md @@ -0,0 +1,50 @@ +# Architecture Tangles + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Circular Dependencies + +| Cycle | Files | Risk | Proposed Fix | +|---|---|---|---| +| 1 | `app/golf/(dashboard)/dashboard/stats/team/page.tsx > app/golf/(dashboard)/dashboard/stats/team/team-stats-table.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 2 | `app/golf/actions/admin-data.ts > app/golf/actions/admin/rollup-c.shared.ts` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 3 | `app/golf/actions/admin-data.ts > app/golf/actions/admin/rollup-c.ts` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 4 | `app/golf/admin/crm/components/CoachFilters.tsx > app/golf/admin/crm/components/segments/SaveSegmentDialog.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 5 | `components/baseball/stat-visuals/StatVisualsSection.tsx > components/baseball/stat-visuals/index.ts` | DEFERRED_BASEBALLHELM | Split barrels/shared helpers only after approval. | +| 6 | `components/baseball/stat-visuals/StatVisualsSection.tsx > components/baseball/stat-visuals/index.ts > components/baseball/stat-visuals/use-stat-visual-views.ts` | DEFERRED_BASEBALLHELM | Split barrels/shared helpers only after approval. | +| 7 | `components/fairway/pages/coachhelm/index.ts > components/fairway/pages/coachhelm/FairwayBrief.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 8 | `components/fairway/pages/rounds/FairwayRoundCard.tsx > components/fairway/pages/rounds/FairwayRoundsLibrary.tsx > components/fairway/pages/rounds/FairwayRoundRow.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 9 | `components/fairway/pages/rounds/FairwayRoundsLibrary.tsx > components/fairway/pages/rounds/FairwayRoundRow.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 10 | `components/fairway/pages/rounds/FairwayRoundsLibrary.tsx > components/fairway/pages/rounds/FairwayUnfinishedBanner.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 11 | `components/fairway/pages/tasks/FairwayCreateFromTemplateModal.tsx > components/fairway/pages/tasks/FairwayTasks.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 12 | `components/fairway/pages/tasks/FairwayTasks.tsx > components/fairway/pages/tasks/FairwayCreateTaskModal.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 13 | `components/golf/calendar/CalendarFeedManager.tsx > components/golf/calendar/CreateFeedSection.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 14 | `components/golf/coachhelm/insights/DiagnosisPanel.tsx > components/golf/coachhelm/insights/EvidencePanel.tsx` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | +| 15 | `lib/golf/sg-benchmarks.ts > lib/golf/strokes-gained.ts` | ARCHITECTURE_REVIEW | Split barrels/shared helpers only after approval. | + +## Layering Violations + +| File | Violation | Risk | +|---|---|---| +| `src/components/fairway/pages/coachhelm/index.ts` -> `FairwayBrief.tsx` | Barrel/component circular import | ARCHITECTURE_REVIEW | +| `src/app/golf/actions/admin-data.ts` -> admin rollups | Server action and rollup circularity | DATABASE_REVIEW | +| `src/components/fairway/pages/tasks/*` | Modal/page mutual imports | MANUAL_REVIEW | + +## Server/Client Boundary Concerns + +| File | Concern | Risk | +|---|---|---| +| `src/app/golf/actions/*.ts` | Very large server-action files mix queries, business logic, and formatting. | ARCHITECTURE_REVIEW | +| `src/components/fairway/pages/coachhelm/*` | Large UI components with domain logic. | MANUAL_REVIEW | + +## Product Boundary Violations + +| File | Issue | Risk | +|---|---|---| +| Shared UI/hooks | Potential BaseballHelm consumers must be proven before edits. | HIGH_RISK_DO_NOT_TOUCH | + +## Deferred BaseballHelm Architecture Findings + +| Finding | Reason Deferred | +|---|---| +| Madge cycles #5 and #6 in `components/baseball/stat-visuals` | DEFERRED_BASEBALLHELM. | diff --git a/.cleanup/reports/BASELINE_HEALTH.md b/.cleanup/reports/BASELINE_HEALTH.md new file mode 100644 index 000000000..a121d8f13 --- /dev/null +++ b/.cleanup/reports/BASELINE_HEALTH.md @@ -0,0 +1,28 @@ +# Baseline Health + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +| Check | Status | Notes | +|---|---|---| +| npm install | Pass | Installed existing dependencies, then audit tooling. npm reported 52 vulnerabilities after audit-tool install. | +| typecheck | Pass | `npm run typecheck` completed with no reported TypeScript errors. | +| lint | Pass with warnings | ESLint completed with 0 errors and 2415 warnings; many BaseballHelm warnings are deferred. | +| build | Pass | `npm run build` completed successfully. | +| unit tests | Pass | 292 passed | 1 skipped (293). | +| e2e tests | Not Run | Playbook says run if supported; first pass used unit and coverage commands. | +| coverage | Pass | 38.25% ( 18250/47701 ). | +| bundle analyze | Fail | `npm run analyze` hit Node heap OOM during analyzed build. | +| Supabase db lint | Fail / Environment | Local Postgres on 127.0.0.1:54322 was not running. | +| Supabase db diff | Fail / Environment | Docker daemon was not available. | + +## Existing Failures + +- SECURITY_REVIEW: npm audit reports 52 vulnerabilities after installing audit tooling. No dependency updates were made. +- BUNDLE_REVIEW: analyzed build fails with Node out-of-memory. Normal build passes. +- DATABASE_REVIEW: Supabase CLI checks could not run locally because local Postgres/Docker were unavailable. +- ARCHITECTURE_REVIEW: dependency-cruiser could not run because no config exists and the playbook did not pass `--no-config`. +- Lint baseline has 2415 warnings but 0 errors. BaseballHelm warnings are deferred. + +## Important Rule + +Do not blame cleanup for failures that already existed at baseline, but do not make them worse. diff --git a/.cleanup/reports/BUNDLE_BLOAT_REPORT.md b/.cleanup/reports/BUNDLE_BLOAT_REPORT.md new file mode 100644 index 000000000..b878f0090 --- /dev/null +++ b/.cleanup/reports/BUNDLE_BLOAT_REPORT.md @@ -0,0 +1,32 @@ +# Bundle Bloat Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Largest Client Bundles + +| Route/Chunk | Size | Suspected Cause | +|---|---|---| +| Not available | Analyze build failed with Node heap OOM | Analyzer could not complete. Normal build passes. | + +## Suspicious Client-Side Packages + +| Package | Why Suspicious | Recommendation | +|---|---|---| +| Mapbox | Playbook calls out map libraries imported too high; Knip also flags mapbox as unused. | BUNDLE_REVIEW before removal or dynamic import changes. | +| PDF/import tooling | Heavy parsing can leak into client bundles if imported through UI. | Audit import boundaries before changes. | +| Chart libraries / Visx | depcheck reports mixed umbrella/granular package issues. | Confirm usage and dynamic boundaries. | +| Large icon imports | Not quantified because analyzer failed. | Inspect after analyzer memory issue is solved. | + +## Easy Wins + +| Fix | Expected Impact | Risk | +|---|---|---| +| Make analyzer runnable with higher Node heap or smaller stats output | Enables real bundle report | Low | +| Exclude generated artifacts from analysis/report scans | Faster audit tooling | Low | + +## Manual Review + +| Item | Reason | +|---|---| +| `npm run analyze` OOM | Need rerun with memory limit or analyzer config before claiming bundle sizes. | +| Any BaseballHelm bundle finding | DEFERRED_BASEBALLHELM. | diff --git a/.cleanup/reports/CODEBASE_CLEANUP_MASTER_REPORT.md b/.cleanup/reports/CODEBASE_CLEANUP_MASTER_REPORT.md new file mode 100644 index 000000000..95de0852c --- /dev/null +++ b/.cleanup/reports/CODEBASE_CLEANUP_MASTER_REPORT.md @@ -0,0 +1,112 @@ +# Helm Codebase Cleanup Master Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Executive Summary + +- Total estimated app code: 691,135 LOC. +- Repo LOC excluding configured junk: 1,386,031 LOC; this is inflated by generated bundles, docs, reports, screenshots, and archives. +- Biggest bloat source: local/generated artifacts, especially `.next` at 28G and `ds-bundle` source output. +- Safest cleanup wins: generated artifact policy, raw report gitignore, analyzer command hardening, test-fixture dedupe. +- Highest-risk areas: BaseballHelm, migrations/RLS/service-role code, auth/security, stats calculations, CoachHelm engine outputs. +- BaseballHelm status: 1348 matching files/findings deferred; do not touch. +- Database-adjacent risk: Supabase CLI checks could not run locally; service-role and RLS surfaces need explicit review. +- Bundle risk: normal build passes, but `npm run analyze` OOMs. +- Architecture risk: madge found 15 circular dependency groups. + +## Key Metrics + +| Metric | Value | +|---|---| +| App LOC | 691,135 | +| Repo LOC excluding junk | 1,386,031 | +| Largest file | `supabase/migrations/20260527000000_prod_public_baseline.sql` by source lines | +| Largest folder | `.next` at 28G | +| Duplicate percentage | 3.03% standard; 3.61% strict | +| Knip issue entries | 634 | +| Knip files | 49 | +| Depcheck unused dependencies | 9 runtime, 12 dev | +| Circular dependency count | 15 | +| Bundle bloat concern | Analyze build OOM | +| BaseballHelm deferred findings | 1348 file matches plus explicit deferred tool findings | + +## Cleanup Categories + +### Safe Cleanup Candidates + +These are low-risk but still need approval. + +| Rank | Item | Type | Expected Benefit | Risk | +|---|---|---|---|---| +| 1 | Add safe cleanup/secret-scan report gitignore policy | GENERATED_ARTIFACT / SECURITY_REVIEW | Prevent raw secret or huge reports entering git | Low | +| 2 | Remove or ignore generated `.next`, Playwright reports/captures, screenshots where tracked | GENERATED_ARTIFACT | Major local/repo bloat reduction | Low to medium | +| 3 | Fix `npm run analyze` memory/config | BUNDLE_REVIEW | Enables real bundle sizing | Low | +| 4 | Dedupe lint-rule test harness helpers | SAFE_CANDIDATE | Reduces repeated test code | Low | +| 5 | Add dependency-cruiser config or run with `--no-config` | ARCHITECTURE_REVIEW | Makes architecture audit reproducible | Low | + +### Manual Review Required + +| Rank | Item | Reason | +|---|---|---| +| 1 | depcheck dependency removals | Static scan has false positives for mobile, build, chart, map, and dynamic imports. | +| 2 | CoachHelm cron/API dedupe | Product correctness and scheduled behavior risk. | +| 3 | Fairway barrel exports | Public UI API risk. | +| 4 | `helm-website-ui`, `.helmdev`, `.agents`, `.claude` | Ownership/tooling intent unclear. | + +### High Risk / Do Not Touch + +| Item | Reason | +|---|---| +| BaseballHelm | Frozen by playbook. | +| migrations/RLS/service-role code | Database security boundary. | +| auth/account/security files | Security boundary. | +| stats calculations | User-facing correctness. | +| CoachHelm engine/scoring | Product correctness. | + +### Deferred BaseballHelm Findings + +See `DEFERRED_BASEBALLHELM_FINDINGS.md`. + +## Recommended PR Plan + +### PR 1: Reports and cleanup tooling only + +No source changes. Include this audit report set and decide whether audit tooling belongs in package metadata. + +### PR 2: Generated artifact policy + +Gitignore/report hygiene for `.cleanup`, raw secret scans, browser captures, local screenshots, and generated bundles. + +### PR 3: Analyzer and audit command hardening + +Fix `npm run analyze` OOM path, dependency-cruiser invocation, and safe secret scan exclusions. + +### PR 4: Confirmed non-Baseball generated artifact cleanup + +Small, owner-approved deletion batch only. + +### PR 5: Test tooling dedupe + +Dedupe repeated non-product lint-rule test helpers. + +## Validation Plan + +Every cleanup PR must run: + +```bash +npm run typecheck +npm run lint +npm run build +npm run test +``` + +If relevant: + +```bash +npm run test:e2e +npm run test:coverage +``` + +## Rollback Plan + +Every cleanup PR should be small enough to revert safely. No large mixed cleanup PRs. diff --git a/.cleanup/reports/DATABASE_ADJACENT_RISK_REPORT.md b/.cleanup/reports/DATABASE_ADJACENT_RISK_REPORT.md new file mode 100644 index 000000000..96739ee49 --- /dev/null +++ b/.cleanup/reports/DATABASE_ADJACENT_RISK_REPORT.md @@ -0,0 +1,47 @@ +# Database-Adjacent Risk Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Supabase CLI Findings + +| Tool | Finding | Risk | +|---|---|---| +| `supabase db lint` | Could not connect to local Postgres on 127.0.0.1:54322. | DATABASE_REVIEW; environment missing. | +| `supabase db diff` | Docker daemon unavailable. | DATABASE_REVIEW; environment missing. | + +## Service Role Usage + +| File | Usage | Risk | +|---|---|---| +| Multiple files | 867 service-role pattern lines found. | SECURITY_REVIEW / DATABASE_REVIEW. | +| `src/lib/supabase/admin.ts` | Central admin client reads service role env. | Security-critical; do not refactor casually. | +| `src/app/golf/actions/stats-data.ts` | Service-role fallback for detailed stats/RLS timeout paths. | Stats correctness and access-control risk. | +| Baseball service-role paths | Multiple matches under `src/lib/baseball` and `src/app/baseball`. | DEFERRED_BASEBALLHELM. | + +## Query Duplication / Raw Query Hotspots + +| File | Pattern | Refactor Candidate? | +|---|---|---| +| `src/app/golf/actions/*.ts` | Server actions contain many Supabase query chains. | Manual review only. | +| `src/app/api/cron/v3/*` | Repeated service/admin query patterns. | Architecture review after tests. | +| `supabase/migrations*` | 1116 RLS/policy pattern lines. | Do not touch without DB approval. | + +## RLS / Policy Risk Areas + +| File/Table | Concern | Risk | +|---|---|---| +| Supabase migrations/archive | Historical policy duplication/noise | DATABASE_REVIEW | +| service-role cron/admin paths | RLS bypass requires explicit scoping | SECURITY_REVIEW | + +## Do Not Touch Without Approval + +| Area | Reason | +|---|---| +| migrations | DB behavior and history. | +| RLS policies | Security boundary. | +| service-role helpers | Security boundary. | +| stats query paths | Correctness and performance. | + +## BaseballHelm DB Findings + +Deferred. diff --git a/.cleanup/reports/DEFERRED_BASEBALLHELM_FINDINGS.md b/.cleanup/reports/DEFERRED_BASEBALLHELM_FINDINGS.md new file mode 100644 index 000000000..2d908aee2 --- /dev/null +++ b/.cleanup/reports/DEFERRED_BASEBALLHELM_FINDINGS.md @@ -0,0 +1,14 @@ +# Deferred BaseballHelm Findings + +These findings were discovered during cleanup analysis but were not fixed because BaseballHelm is frozen. + +| Tool | File/Area | Finding | Risk | Suggested Future Review | +|---|---|---|---|---| +| Product map grep | 1348 Baseball-related file matches | All BaseballHelm matches quarantined. | DEFERRED_BASEBALLHELM | Owner reconciliation of old/new BaseballHelm tracks. | +| cloc | `scripts/baseballhelm-mega-build.workflow.js` | cloc timeout. | DEFERRED_BASEBALLHELM | Review script size/structure later. | +| cloc | `scripts/baseballhelm-verification.workflow.js` | cloc timeout. | DEFERRED_BASEBALLHELM | Review script size/structure later. | +| git object scan | `.ultracode/baseballhelm/events.ndjson` | Largest tracked object, repeated versions around 31 MB. | DEFERRED_BASEBALLHELM | Decide whether event logs belong in git. | +| madge | `components/baseball/stat-visuals/*` | Circular dependencies. | DEFERRED_BASEBALLHELM | Fix only after BaseballHelm unfreezes. | +| jscpd | Baseball auth/dashboard/components | Duplicate clusters. | DEFERRED_BASEBALLHELM | Deduplicate only after implementation track is chosen. | +| lint | Baseball files | Many lint warnings in BaseballHelm paths. | DEFERRED_BASEBALLHELM | Do not auto-fix during freeze. | +| depcheck/knip | Baseball import adapters/read-models | Missing/unused findings around Baseball imports and exports. | DEFERRED_BASEBALLHELM | Verify only after freeze lifts. | diff --git a/.cleanup/reports/DEPENDENCY_AUDIT.md b/.cleanup/reports/DEPENDENCY_AUDIT.md new file mode 100644 index 000000000..a7a5f80ba --- /dev/null +++ b/.cleanup/reports/DEPENDENCY_AUDIT.md @@ -0,0 +1,44 @@ +# Dependency Audit + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Likely Unused Dependencies + +| Package | Evidence | Risk | Proposed Action | +|---|---|---|---| +| `@capacitor/app` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `@capacitor/ios` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `@capacitor/local-notifications` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `@capacitor/network` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `@capacitor/share` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `@visx/visx` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `autoprefixer` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `date-fns-tz` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | +| `postcss` | depcheck reported unused | Manual review | Do not remove until grep/runtime verification | + +## Manual Review Dependencies + +| Package | Why Manual Review | +|---|---| +| `@capacitor/*` | Mobile/iOS runtime risk. | +| `@visx/visx`, `@visx/*` | depcheck shows missing granular visx packages while umbrella package appears unused; chart bundle/dependency plan needed. | +| `autoprefixer`, `postcss` | Build tooling false-positive risk. | +| `date-fns-tz` | Date/time logic risk. | +| `promptfoo` | Evals tooling may be intentionally retained. | + +## Likely False Positives + +| Package | Why | +|---|---| +| audit dev tools | Installed during Phase 3 and used to produce reports. | +| `playwright`, `sharp`, `glob` missing reports | Used by scripts/tests; may be transitive or intentionally omitted. | +| `fflate` missing reports | Baseball import adapters; DEFERRED_BASEBALLHELM. | + +## Do Not Remove Without Explicit Approval + +| Package | Reason | +|---|---| +| Next/React/Supabase/auth/security packages | App-critical. | +| Capacitor packages | Mobile-critical. | +| AI/monitoring/email/chart/map packages | Feature and bundle review required first. | +| BaseballHelm-related packages | DEFERRED_BASEBALLHELM. | diff --git a/.cleanup/reports/DUPLICATION_REPORT.md b/.cleanup/reports/DUPLICATION_REPORT.md new file mode 100644 index 000000000..8fe4beb38 --- /dev/null +++ b/.cleanup/reports/DUPLICATION_REPORT.md @@ -0,0 +1,40 @@ +# Duplication Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Top Duplicate Clusters + +| Rank | Files | Area | Duplication Type | Estimated Impact | Risk | +|---|---|---|---|---|---| +| 1 | SQL migrations/archive | Supabase | Repeated policy/migration blocks | 15,328 duplicated SQL lines | DATABASE_REVIEW | +| 2 | `__tests__/*lint-rule*.mjs` | Test tooling | Repeated filesystem/AST test harnesses | Medium | SAFE_CANDIDATE after approval | +| 3 | `app/api/cron/v3/*/route.ts` | CoachHelm cron APIs | Repeated auth/admin boilerplate | Medium | ARCHITECTURE_REVIEW | +| 4 | `app/api/admin/crm/send-email/route.ts`, `app/api/cron/process-sequences/route.ts` | CRM/email | Repeated helper logic | Medium | MANUAL_REVIEW | +| 5 | Baseball auth/dashboard files | BaseballHelm | Repeated page shells | Unknown | DEFERRED_BASEBALLHELM | + +## Best Refactor Candidates + +| Area | Files | Proposed Shared Abstraction | Expected Benefit | Risk | +|---|---|---|---|---| +| lint-rule tests | `__tests__/*.test.mjs` | shared rule-test fixture helper | Less repeated test code | Low after approval | +| CoachHelm cron routes | `src/app/api/cron/v3/*/route.ts` | shared cron auth/response wrapper | Reduce route boilerplate | Medium | +| CRM/email routes | admin send/process sequence routes | shared mail validation/error helpers | Reduce duplicated error handling | Medium | + +## Do Not Refactor Yet + +| Files | Reason | +|---|---| +| `supabase/migrations*` | Historical migrations and RLS behavior require explicit database approval. | +| `src/lib/coachhelm/**` | Engine correctness risk; needs tests/approval first. | +| BaseballHelm files | DEFERRED_BASEBALLHELM. | + +## Deferred BaseballHelm Duplicates + +| Files | Finding | Reason Deferred | +|---|---|---| +| Baseball auth/dashboard/routes/components | jscpd found Baseball duplicate clusters | BaseballHelm frozen. | + +## Metrics + +- Standard jscpd: 625 clones, 27,211 duplicated lines, 3.03%. +- Strict jscpd: 1471 clones, 27,383 duplicated lines, 3.61%. diff --git a/.cleanup/reports/GENERATED_ARTIFACTS_AUDIT.md b/.cleanup/reports/GENERATED_ARTIFACTS_AUDIT.md new file mode 100644 index 000000000..f6d2c72d2 --- /dev/null +++ b/.cleanup/reports/GENERATED_ARTIFACTS_AUDIT.md @@ -0,0 +1,45 @@ +# Generated Artifacts Audit + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Likely Generated Folders + +| Folder | Evidence | Proposed Action | +|---|---|---| +| `.next` | 28G build output | GENERATED_ARTIFACT; ensure ignored and remove locally only with approval. | +| `node_modules` | 2.8G dependency install | GENERATED_ARTIFACT; ignored/local. | +| `ds-bundle` | Generated JS/CSS bundle dominates repo LOC | MANUAL_REVIEW then likely artifact cleanup. | +| `.playwright-mcp` | 48M Playwright capture YAML/PNGs | GENERATED_ARTIFACT / gitignore review. | +| `ui-intelligence`, `routes` | Generated route/UI intelligence outputs | MANUAL_REVIEW. | +| `.cleanup` | This audit output | REPORT_ONLY; do not commit raw secret output. | + +## Likely Local-Only Folders + +| Folder | Evidence | Proposed Action | +|---|---|---| +| `.vercel` | Local deployment metadata | Keep ignored. | +| `.tmp-screenshots`, `.bugtest-screens` | Screenshot/debug outputs | GENERATED_ARTIFACT. | +| `playwright-report` | Test report output | GENERATED_ARTIFACT. | + +## Should Be Gitignored + +| Path | Reason | +|---|---| +| `.cleanup/reports/secret-pattern-scan.txt` | Raw secret scans must never be committed. | +| `.cleanup/reports/*.txt` raw tool outputs | May include sensitive paths or huge data. | +| `.playwright-mcp/**` | Generated browser captures. | +| `ds-bundle/**` if regenerated | Generated bundle output. | + +## Needs Human Review + +| Path | Reason | +|---|---| +| `.helmdev`, `.agents`, `.claude`, `.skills` | Agent tooling may be intentionally retained. | +| `helm-website-ui` | Nested project; do not remove as artifact without owner decision. | + +## Do Not Touch + +| Path | Reason | +|---|---| +| `.ultracode/baseballhelm/**` | DEFERRED_BASEBALLHELM. | +| BaseballHelm docs/scripts/source | Frozen by playbook. | diff --git a/.cleanup/reports/KNIP_CLASSIFIED_FINDINGS.md b/.cleanup/reports/KNIP_CLASSIFIED_FINDINGS.md new file mode 100644 index 000000000..765e6f80e --- /dev/null +++ b/.cleanup/reports/KNIP_CLASSIFIED_FINDINGS.md @@ -0,0 +1,34 @@ +# Knip Classified Findings + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +Knip reported 634 issue entries across 49 files. Treat this as a triage input only. + +## Safe Delete Candidates + +| Type | File/Export/Dependency | Evidence | Confidence | +|---|---|---|---| +| None approved | None | First pass is report-only and Knip needs manual verification for dynamic Next routes/barrels. | N/A | + +## Manual Review Required + +| Type | File/Export/Dependency | Why Risky | +|---|---|---| +| dependency | `@capacitor/*` packages | May be required by iOS/mobile even if static import scan misses usage. | +| dependency | `mapbox-gl`, `@types/mapbox-gl` | Bundle-risk candidate but maps may be dynamically imported. | +| barrel exports | `src/components/fairway/index.ts` exports | Many exports are public design-system API; false-positive risk. | +| export | `src/lib/coachhelm/v2/orchestrator.ts` alert toggles | Engine behavior risk. | + +## Likely False Positives + +| Type | File/Export/Dependency | Why Likely False Positive | +|---|---|---| +| generated type exports | `src/lib/types/database.ts` | Generated Supabase type file. | +| default component exports | Fairway settings/CoachHelm page components | Next/dynamic/component-level imports can confuse static analysis. | +| dev tool dependencies | newly installed audit tools | Installed specifically for this audit phase. | + +## Deferred BaseballHelm Findings + +| Type | File/Export/Dependency | Reason Deferred | +|---|---|---| +| dependencies/exports/files | Any `baseball`, `Baseball`, `BaseballHelm`, or Baseball-adjacent finding | DEFERRED_BASEBALLHELM; frozen by playbook. | diff --git a/.cleanup/reports/LOC_AND_SIZE_SUMMARY.md b/.cleanup/reports/LOC_AND_SIZE_SUMMARY.md new file mode 100644 index 000000000..37a151832 --- /dev/null +++ b/.cleanup/reports/LOC_AND_SIZE_SUMMARY.md @@ -0,0 +1,50 @@ +# LOC and Size Summary + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Key Numbers + +| Metric | Value | +|---|---| +| App LOC | 691,135 code lines across cloc app scan | +| Repo LOC excluding junk | 1,386,031 code/text lines across cloc repo scan | +| Largest source file | `supabase/migrations/20260527000000_prod_public_baseline.sql` at 22,207 total lines | +| Largest folder | `.next` at 28G | +| Largest git object | `.ultracode/baseballhelm/events.ndjson` at ~31.4 MB; DEFERRED_BASEBALLHELM | + +## Top Bloat Sources + +| Rank | Path | Reason | Cleanup Risk | +|---|---|---|---| +| 1 | `.next` | 28G build output | GENERATED_ARTIFACT | +| 2 | `node_modules` | 2.8G local install output | GENERATED_ARTIFACT | +| 3 | `helm-website-ui` | 490M nested site/tooling area | MANUAL_REVIEW | +| 4 | `ds-bundle` | Large bundled JS/CSS, including 83,326-code-line JS bundle | GENERATED_ARTIFACT / MANUAL_REVIEW | +| 5 | `.playwright-mcp` | 48M screenshots/YAML captures | GENERATED_ARTIFACT | +| 6 | `.ultracode` | Includes large BaseballHelm event log | DEFERRED_BASEBALLHELM | + +## Largest Source Files + +- 22207 supabase/migrations/20260527000000_prod_public_baseline.sql +- 20300 src/lib/types/database.ts +- 6613 src/app/golf/actions/golf.ts +- 4062 src/app/golf/actions/insights.ts +- 3792 src/app/golf/actions/admin-data.ts +- 3135 supabase/migrations_archive/pre_20260527/20260427210000_canonical_rls_snapshot.sql +- 3035 src/app/golf/(dashboard)/dashboard/rounds/new/new-round-client.tsx +- 2775 src/lib/utils/golf-stats-calculator-shots.ts +- 2741 scripts/ui-intelligence/generate-atlas.ts +- 2610 src/components/fairway/pages/coachhelm/FairwayStatsCockpit.tsx +- 2517 src/app/golf/actions/stats-data.ts + +## BaseballHelm Size Findings + +| Path | Finding | +|---|---| +| `.ultracode/baseballhelm/events.ndjson` | Largest tracked object; BaseballHelm frozen. | +| `scripts/baseballhelm-mega-build.workflow.js` | cloc timed out; defer. | +| `scripts/baseballhelm-verification.workflow.js` | cloc timed out; defer. | + +## Immediate Observations + +The repo size is inflated heavily by generated/local artifacts and bundled outputs, not just source code. The app code is large, but the first safe cleanup lane is artifact policy and gitignore/report hygiene, not product refactors. diff --git a/.cleanup/reports/PRODUCT_BOUNDARY_MAP.md b/.cleanup/reports/PRODUCT_BOUNDARY_MAP.md new file mode 100644 index 000000000..352949fda --- /dev/null +++ b/.cleanup/reports/PRODUCT_BOUNDARY_MAP.md @@ -0,0 +1,51 @@ +# Product Boundary Map + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## GolfHelm Areas + +| Path | Purpose | Cleanup Allowed? | +|---|---|---| +| `src/app/golf` | Golf app routes, actions, admin, dashboard flows | Manual approval required | +| `src/components/golf` | Golf-specific UI and CoachHelm UI | Manual approval required | +| `src/components/fairway` | Fairway/GolfHelm shared dashboard UI | Manual approval required; high shared-surface risk | +| `src/lib/golf` | Golf domain utilities and stats helpers | Manual approval required; stats correctness risk | + +## BaseballHelm Areas + +| Path | Purpose | Cleanup Allowed? | +|---|---|---| +| `src/app/baseball` | BaseballHelm routes/actions | No; DEFERRED_BASEBALLHELM | +| `src/components/baseball` | BaseballHelm UI | No; DEFERRED_BASEBALLHELM | +| `src/lib/baseball` | BaseballHelm domain/read models | No; DEFERRED_BASEBALLHELM | +| `docs/baseballhelm_revolution_plan_v2` | BaseballHelm docs/plans | No; DEFERRED_BASEBALLHELM | +| `scripts/baseballhelm-*` | BaseballHelm workflows | No; DEFERRED_BASEBALLHELM | + +All BaseballHelm areas are read-only. 1348 files matched BaseballHelm terms and are quarantined. + +## CoachHelm Areas + +| Path | Purpose | Cleanup Allowed? | +|---|---|---| +| `src/lib/coachhelm` | CoachHelm engine and scoring | Manual approval; high correctness risk | +| `src/components/golf/coachhelm` | CoachHelm UI under GolfHelm | Manual approval | +| `src/components/fairway/pages/coachhelm` | Fairway CoachHelm surfaces | Manual approval | +| `src/app/api/coachhelm` | CoachHelm API routes | Manual approval; API behavior risk | + +## Shared Areas + +| Path | Consumers | Risk | +|---|---|---| +| `src/components/ui` | Golf, CoachHelm, Baseball, lifting | HIGH_RISK_DO_NOT_TOUCH without impact proof | +| `src/hooks` | Multi-product hooks | HIGH_RISK_DO_NOT_TOUCH when BaseballHelm usage is possible | +| `src/lib/supabase` | All database-backed products | DATABASE_REVIEW | +| `src/lib/auth` | Auth/security flows | HIGH_RISK_DO_NOT_TOUCH | +| `supabase` | Migrations/RLS/functions | DATABASE_REVIEW; no behavior changes | + +## Ambiguous Areas + +| Path | Why Ambiguous | Required Human Decision | +|---|---|---| +| `src/components/fairway` | Fairway is Golf/Coach-facing but shared exports may leak across shells | Decide ownership before refactors | +| `src/app/lifting`, `src/components/lifting` | Separate product, but auth/shared UI overlap | Confirm cleanup priority | +| `tools`, `.helmdev`, `.agents`, `.claude` | Agent/tooling artifacts may be intentionally retained | Decide archive/gitignore policy | diff --git a/.cleanup/reports/SCRIPT_HYGIENE_REPORT.md b/.cleanup/reports/SCRIPT_HYGIENE_REPORT.md new file mode 100644 index 000000000..abdbeb205 --- /dev/null +++ b/.cleanup/reports/SCRIPT_HYGIENE_REPORT.md @@ -0,0 +1,44 @@ +# Script Hygiene Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Existing Scripts + +| Script | Purpose | Keep/Review/Remove Candidate | +|---|---|---| +| `dev` | Next dev server | Keep | +| `build` | Production build | Keep | +| `typecheck` | TypeScript validation | Keep | +| `lint` / `lint:ratchet` | ESLint and warning ratchet | Keep | +| `test*` | Unit/integration/e2e/coverage | Keep | +| `db:types*` | Supabase type generation/check | Keep | +| `docs:*`, `knowledge:*` | Docs/knowledge generation | Review | +| `coachhelm:*`, `check:stats` | CoachHelm/stats operations | Safety-critical; keep | +| `analyze` | Analyzed build | Review because current run OOMs | +| `ui:*` | UI route/auth tooling | Review | + +## Potentially Obsolete Scripts + +| Script | Why Suspicious | +|---|---| +| `evals`, `evals:view` | promptfoo is flagged by depcheck but may be intentional. | +| `lighthouse` | Requires LHCI setup; verify current usage. | +| `ui:*` | Generated artifact workflow; verify owner. | + +## Safety-Critical Scripts + +| Script | Why Important | +|---|---| +| `check:env` | Required env gate before build. | +| `check:ledger` | Migration ledger safety. | +| `check:stats` | Stats correctness. | +| `db:types:check` | Prevents DB type drift. | +| `test:rls` | Database access safety. | + +## Suggested Future Scripts + +| Script | Purpose | +|---|---| +| `cleanup:audit` | Runs the safe non-secret subset of this playbook. | +| `cleanup:secret-scan` | Runs redacted/exclusion-safe secret scan. | +| `analyze:heap` | Runs bundle analyze with explicit Node heap size. | diff --git a/.cleanup/reports/SECURITY_HYGIENE_REPORT.md b/.cleanup/reports/SECURITY_HYGIENE_REPORT.md new file mode 100644 index 000000000..56901f27a --- /dev/null +++ b/.cleanup/reports/SECURITY_HYGIENE_REPORT.md @@ -0,0 +1,32 @@ +# Security Hygiene Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Potential Secret-Like Findings + +Do not include raw secrets. Redact values. + +| File | Pattern | Risk | Recommendation | +|---|---|---|---| +| `.cleanup/reports/secret-pattern-scan.txt` | Raw grep output risk | SECURITY_REVIEW | The playbook command is unsafe as written because it does not exclude env/key files or `.cleanup`; raw output was truncated after self-recursive expansion. Do not commit raw scan output. | +| `src/lib/supabase/admin.ts` and service-role callers | `SUPABASE_SERVICE_ROLE_KEY` | SECURITY_REVIEW | Keep admin-client use scoped and server-only. | +| docs/scripts/comments | token/secret/password strings | MANUAL_REVIEW | Re-run with a dedicated secret scanner and redacted output. | + +## Service Role / Admin Client Risk + +| File | Concern | Recommendation | +|---|---|---| +| `src/lib/supabase/admin.ts` | Central service-role creation path | No cleanup without security review. | +| `src/app/golf/actions/stats-data.ts` | Service-role fallback around detailed stats reads | Preserve explicit authorization gates. | +| Baseball admin/service paths | Frozen | DEFERRED_BASEBALLHELM. | + +## Environment Variable Hygiene + +| File | Issue | Recommendation | +|---|---|---| +| `.env*` local files | Must not be scanned into tracked reports | Exclude with `--exclude='.env*'`. | +| raw report files | May contain sensitive values | Add gitignore policy for raw secret scans. | + +## Playbook Safety Finding + +The Phase 14 command should be amended before merge to exclude `.env*`, key material, and `.cleanup`, and to keep raw reports untracked. diff --git a/.cleanup/reports/TEST_COVERAGE_RISK_REPORT.md b/.cleanup/reports/TEST_COVERAGE_RISK_REPORT.md new file mode 100644 index 000000000..269e093b9 --- /dev/null +++ b/.cleanup/reports/TEST_COVERAGE_RISK_REPORT.md @@ -0,0 +1,37 @@ +# Test Coverage Risk Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Areas With Cleanup Risk and Weak Tests + +| Area | Cleanup Risk | Test Coverage Concern | +|---|---|---| +| Overall repo | Refactors can regress behavior | Coverage summary: 38.25% ( 18250/47701 ). | +| `lib/notifications` | Email/push behavior risk | Low coverage shown in report. | +| `lib/supabase` | Auth/session/database boundary risk | Low coverage shown in report. | +| `lib/offline` | Offline sync/shot storage risk | Moderate-low coverage. | +| `lib/utils/schedule-parser.ts` | Parser behavior risk | Very low coverage. | +| CoachHelm engine/routes | Product correctness risk | Some v3 areas strong, but loaders/standing/practice areas are weaker. | + +## Areas That Need Tests Before Cleanup + +| Area | Why | +|---|---| +| auth/session/account deletion | Security and account integrity. | +| team membership/invites | Cross-team access risk. | +| stats calculations and dashboard aggregations | User-facing numerical correctness. | +| Supabase RLS/admin-client paths | Data isolation risk. | +| export/PDF/report code | User deliverable correctness. | +| mobile/offline flows | State sync risk. | + +## Do Not Refactor Without Tests + +| Area | Reason | +|---|---| +| BaseballHelm | DEFERRED_BASEBALLHELM. | +| database/RLS behavior | Requires database-specific validation. | +| CoachHelm scoring/generation | Correctness-sensitive. | + +## BaseballHelm + +BaseballHelm tests/findings are deferred. diff --git a/.cleanup/reports/UNUSED_EXPORTS_REPORT.md b/.cleanup/reports/UNUSED_EXPORTS_REPORT.md new file mode 100644 index 000000000..ef673f780 --- /dev/null +++ b/.cleanup/reports/UNUSED_EXPORTS_REPORT.md @@ -0,0 +1,32 @@ +# Unused Exports Report + +Generated from first-pass audit outputs on branch cleanup/comprehensive-code-audit. First pass is audit/report only; no product-code cleanup is approved. + +## Safe Candidates + +| Export | File | Evidence | Confidence | +|---|---|---|---| +| None approved | N/A | ts-prune output needs route/dynamic-import verification. | N/A | + +## Manual Review + +| Export | File | Risk | +|---|---|---| +| `pluralize` | `src/lib/utils.ts` | Low utility risk, but verify global references first. | +| `useCalendarEvents` | `src/hooks/useCalendarEvents.ts` | Hook may be used dynamically or intended API. | +| Fairway barrel exports | `src/components/fairway/index.ts` | Public UI API; high false-positive risk. | +| CoachHelm alert toggles | `src/lib/coachhelm/v2/orchestrator.ts` | Engine behavior risk. | + +## Likely False Positives + +| Export | File | Why | +|---|---|---| +| generated DB exports | `src/lib/types/database.ts` | Generated types are consumed by type-only imports. | +| Next route/page defaults | `src/app/**` | Framework entrypoints are not normal imports. | +| test helpers | `src/test/**` | Test-only or dynamic usage. | + +## Deferred BaseballHelm + +| Export | File | Reason Deferred | +|---|---|---| +| Any BaseballHelm export | `src/app/baseball`, `src/components/baseball`, `src/lib/baseball` | DEFERRED_BASEBALLHELM. | diff --git a/.cleanup/reports/baseball-related-files.txt b/.cleanup/reports/baseball-related-files.txt new file mode 100644 index 000000000..abb22c588 --- /dev/null +++ b/.cleanup/reports/baseball-related-files.txt @@ -0,0 +1,1348 @@ +src/.helmdev/tasks/current-task.md +src/.helmdev/memory/fixes.json +src/.helmdev/results/src/app/golf/(dashboard)/dashboard/page.tsx-868.json +src/.helmdev/results/src/app/baseball/page.tsx-0.json +src/.helmdev/results/src/app/baseball/(onboarding)/coach-onboarding/page.tsx-0.json +src/.helmdev/results/src/app/baseball/(onboarding)/coach/page.tsx-0.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-0.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-433.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-382.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-291.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-421.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-401.json +src/.helmdev/results/src/app/baseball/(onboarding)/player/page.tsx-502.json +src/.helmdev/results/src/app/baseball/(public)/program/[id]/page.tsx-98.json +src/.helmdev/results/src/app/baseball/(public)/program/[id]/page.tsx-0.json +src/.helmdev/results/src/app/baseball/(public)/program/[id]/page.tsx-99.json +src/.helmdev/results/src/app/baseball/page.tsx-78.json +src/.helmdev/queue.json +src/app/golf/admin/crm/components/pipeline/PipelineCard.tsx +src/app/golf/admin/components/HealthCheckGrid.tsx +src/app/golf/admin/components/BaseballOps.tsx +src/app/golf/admin/components/SystemTab.tsx +src/app/golf/README.md +src/app/golf/actions/admin-data.ts +src/app/golf/actions/admin/rollup-b.ts +src/app/golf/(dashboard)/dashboard/not-found.tsx +src/app/products/page.tsx +src/app/auth/callback/route.ts +src/app/baseball/(player-dashboard)/error.tsx +src/app/baseball/(player-dashboard)/player/today/error.tsx +src/app/baseball/(player-dashboard)/player/today/page.tsx +src/app/baseball/(player-dashboard)/player/passport/error.tsx +src/app/baseball/(player-dashboard)/player/passport/page.tsx +src/app/baseball/(player-dashboard)/player/juco/page.tsx +src/app/baseball/(player-dashboard)/player/high-school/page.tsx +src/app/baseball/(player-dashboard)/player/layout.tsx +src/app/baseball/(player-dashboard)/player/showcase/page.tsx +src/app/baseball/(player-dashboard)/player/practice/page.tsx +src/app/baseball/(player-dashboard)/player/timeline/error.tsx +src/app/baseball/(player-dashboard)/player/timeline/loading.tsx +src/app/baseball/(player-dashboard)/player/timeline/page.tsx +src/app/baseball/(player-dashboard)/player/college/page.tsx +src/app/baseball/(player-dashboard)/player/template.tsx +src/app/baseball/join/[code]/join-team-client.tsx +src/app/baseball/join/[code]/error.tsx +src/app/baseball/join/[code]/page.tsx +src/app/baseball/(onboarding)/coach-onboarding/hooks/useOnboardingFlow.ts +src/app/baseball/(onboarding)/coach-onboarding/error.tsx +src/app/baseball/(onboarding)/coach-onboarding/page.tsx +src/app/baseball/(onboarding)/coach/error.tsx +src/app/baseball/(onboarding)/coach/page.tsx +src/app/baseball/(onboarding)/player/layout.tsx +src/app/baseball/(onboarding)/player/error.tsx +src/app/baseball/(onboarding)/player/page.tsx +src/app/baseball/actions/lifting.ts +src/app/baseball/actions/stat-visual-views.ts +src/app/baseball/actions/videos.ts +src/app/baseball/actions/roster.ts +src/app/baseball/actions/operational-signals.ts +src/app/baseball/actions/recruiting-philosophy.ts +src/app/baseball/actions/announcements.ts +src/app/baseball/actions/insights.ts +src/app/baseball/actions/player-actions.ts +src/app/baseball/actions/passport-settings.ts +src/app/baseball/actions/lift-builder.ts +src/app/baseball/actions/coachhelm.ts +src/app/baseball/actions/lineups.ts +src/app/baseball/actions/practice-scrimmage.ts +src/app/baseball/actions/notifications.ts +src/app/baseball/actions/messages.ts +src/app/baseball/actions/coachhelm-actions.ts +src/app/baseball/actions/stats.ts +src/app/baseball/actions/stat-event-imports.ts +src/app/baseball/actions/demo-access.ts +src/app/baseball/actions/development-metrics.ts +src/app/baseball/actions/watchlist.ts +src/app/baseball/actions/video-classes.ts +src/app/baseball/actions/calendar.ts +src/app/baseball/actions/academics.ts +src/app/baseball/actions/roles-permissions.ts +src/app/baseball/actions/practice-effectiveness.ts +src/app/baseball/actions/team-season-settings.ts +src/app/baseball/actions/postgame.ts +src/app/baseball/actions/imports.ts +src/app/baseball/actions/philosophy.ts +src/app/baseball/actions/games.ts +src/app/baseball/actions/practice.ts +src/app/baseball/actions/__tests__/imports-registry.test.ts +src/app/baseball/actions/__tests__/auth-redirects-resolve.test.ts +src/app/baseball/actions/__tests__/complete-player-onboarding.test.ts +src/app/baseball/actions/scout-packet.ts +src/app/baseball/actions/daily-contract.ts +src/app/baseball/actions/teams.ts +src/app/baseball/actions/dev-plans.ts +src/app/baseball/actions/discover.ts +src/app/baseball/actions/documents.ts +src/app/baseball/actions/onboarding.ts +src/app/baseball/actions/timeline-acks.ts +src/app/baseball/actions/program-settings.ts +src/app/baseball/actions/practice-intelligence.ts +src/app/baseball/actions/lifting-v11.ts +src/app/baseball/actions/acknowledgements.ts +src/app/baseball/actions/player-today-lift.ts +src/app/baseball/actions/interests.ts +src/app/baseball/actions/travel.ts +src/app/baseball/actions/staff.ts +src/app/baseball/actions/player-peek.ts +src/app/baseball/actions/tasks.ts +src/app/baseball/actions/decision-room.ts +src/app/baseball/actions/signals.ts +src/app/baseball/actions/auth.ts +src/app/baseball/actions/player-access.ts +src/app/baseball/actions/coach-notes.ts +src/app/baseball/actions/camps.ts +src/app/baseball/actions/ai-governance.ts +src/app/baseball/(public)/team/[id]/page.tsx +src/app/baseball/(public)/program/[id]/error.tsx +src/app/baseball/(public)/program/[id]/page.tsx +src/app/baseball/(public)/packet/[token]/csv/route.ts +src/app/baseball/(public)/packet/[token]/page.tsx +src/app/baseball/(public)/player/[id]/PlayerProfileClient.tsx +src/app/baseball/(public)/player/[id]/error.tsx +src/app/baseball/(public)/player/[id]/page.tsx +src/app/baseball/staff/join/[code]/staff-join-client.tsx +src/app/baseball/staff/join/[code]/page.tsx +src/app/baseball/(auth)/demo/layout.tsx +src/app/baseball/(auth)/demo/page.tsx +src/app/baseball/(auth)/signup/layout.tsx +src/app/baseball/(auth)/signup/error.tsx +src/app/baseball/(auth)/signup/page.tsx +src/app/baseball/(auth)/complete-signup/layout.tsx +src/app/baseball/(auth)/complete-signup/error.tsx +src/app/baseball/(auth)/complete-signup/CompleteSignupClient.tsx +src/app/baseball/(auth)/forgot-password/layout.tsx +src/app/baseball/(auth)/forgot-password/error.tsx +src/app/baseball/(auth)/forgot-password/page.tsx +src/app/baseball/(auth)/reset-password/layout.tsx +src/app/baseball/(auth)/reset-password/error.tsx +src/app/baseball/(auth)/reset-password/page.tsx +src/app/baseball/(auth)/login/layout.tsx +src/app/baseball/(auth)/login/error.tsx +src/app/baseball/(auth)/login/page.tsx +src/app/baseball/(dashboard)/dashboard/practice-effectiveness/error.tsx +src/app/baseball/(dashboard)/dashboard/practice-effectiveness/page.tsx +src/app/baseball/(dashboard)/dashboard/organization/OrganizationDashboardClient.tsx +src/app/baseball/(dashboard)/dashboard/organization/error.tsx +src/app/baseball/(dashboard)/dashboard/organization/page.tsx +src/app/baseball/(dashboard)/dashboard/academics/error.tsx +src/app/baseball/(dashboard)/dashboard/academics/page.tsx +src/app/baseball/(dashboard)/dashboard/command-center/error.tsx +src/app/baseball/(dashboard)/dashboard/command-center/loading.tsx +src/app/baseball/(dashboard)/dashboard/command-center/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/privacy/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/privacy/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/appearance/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/appearance/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/roles/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/roles/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/imports/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/imports/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/permissions/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/permissions/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/integrations/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/integrations/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/data-retention/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/data-retention/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/demo-mode/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/demo-mode/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/audit/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/audit/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/player-access/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/player-access/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/ai/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/ai/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/philosophy/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/philosophy/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/showcase-profile/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/showcase-profile/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/teams/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/teams/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/program/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/program/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/recruiting-preferences/recruiting-preferences-client.tsx +src/app/baseball/(dashboard)/dashboard/settings/recruiting-preferences/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/recruiting-preferences/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/guardian-access/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/guardian-access/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/staff/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/staff/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/season/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/season/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/page.tsx +src/app/baseball/(dashboard)/dashboard/settings/notifications/error.tsx +src/app/baseball/(dashboard)/dashboard/settings/notifications/page.tsx +src/app/baseball/(dashboard)/dashboard/pipeline/error.tsx +src/app/baseball/(dashboard)/dashboard/pipeline/page.tsx +src/app/baseball/(dashboard)/dashboard/postgame/error.tsx +src/app/baseball/(dashboard)/dashboard/postgame/page.tsx +src/app/baseball/(dashboard)/dashboard/decision-room/error.tsx +src/app/baseball/(dashboard)/dashboard/decision-room/page.tsx +src/app/baseball/(dashboard)/dashboard/tasks/error.tsx +src/app/baseball/(dashboard)/dashboard/tasks/page.tsx +src/app/baseball/(dashboard)/dashboard/messages/error.tsx +src/app/baseball/(dashboard)/dashboard/messages/[id]/error.tsx +src/app/baseball/(dashboard)/dashboard/messages/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/messages/page.tsx +src/app/baseball/(dashboard)/dashboard/discover/error.tsx +src/app/baseball/(dashboard)/dashboard/discover/page.tsx +src/app/baseball/(dashboard)/dashboard/calendar/error.tsx +src/app/baseball/(dashboard)/dashboard/calendar/page.tsx +src/app/baseball/(dashboard)/dashboard/comparisons/error.tsx +src/app/baseball/(dashboard)/dashboard/roster/error.tsx +src/app/baseball/(dashboard)/dashboard/roster/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/passport/loading.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/passport/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/profile/error.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/profile/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/error.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/stats/error.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/stats/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/scout-packet/preview/error.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/scout-packet/preview/page.tsx +src/app/baseball/(dashboard)/dashboard/players/[id]/scout-packet/page.tsx +src/app/baseball/(dashboard)/dashboard/signals/error.tsx +src/app/baseball/(dashboard)/dashboard/signals/page.tsx +src/app/baseball/(dashboard)/dashboard/colleges/error.tsx +src/app/baseball/(dashboard)/dashboard/announcements/error.tsx +src/app/baseball/(dashboard)/dashboard/announcements/page.tsx +src/app/baseball/(dashboard)/dashboard/journey/error.tsx +src/app/baseball/(dashboard)/dashboard/journey/page.tsx +src/app/baseball/(dashboard)/dashboard/camps/error.tsx +src/app/baseball/(dashboard)/dashboard/camps/[id]/error.tsx +src/app/baseball/(dashboard)/dashboard/camps/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/camps/page.tsx +src/app/baseball/(dashboard)/dashboard/videos/error.tsx +src/app/baseball/(dashboard)/dashboard/videos/_VideosClient.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/edit/video-clipper-client.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/edit/error.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/edit/page.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/error.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/video-detail-client.tsx +src/app/baseball/(dashboard)/dashboard/videos/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/videos/page.tsx +src/app/baseball/(dashboard)/dashboard/profile/ProfilePageClient.tsx +src/app/baseball/(dashboard)/dashboard/profile/error.tsx +src/app/baseball/(dashboard)/dashboard/profile/page.tsx +src/app/baseball/(dashboard)/dashboard/team/high-school/error.tsx +src/app/baseball/(dashboard)/dashboard/team/high-school/page.tsx +src/app/baseball/(dashboard)/dashboard/team/error.tsx +src/app/baseball/(dashboard)/dashboard/team/page.tsx +src/app/baseball/(dashboard)/dashboard/readiness/error.tsx +src/app/baseball/(dashboard)/dashboard/readiness/page.tsx +src/app/baseball/(dashboard)/dashboard/error.tsx +src/app/baseball/(dashboard)/dashboard/compare/actions.ts +src/app/baseball/(dashboard)/dashboard/compare/error.tsx +src/app/baseball/(dashboard)/dashboard/compare/page.tsx +src/app/baseball/(dashboard)/dashboard/teams/error.tsx +src/app/baseball/(dashboard)/dashboard/teams/page.tsx +src/app/baseball/(dashboard)/dashboard/program/error.tsx +src/app/baseball/(dashboard)/dashboard/program/page.tsx +src/app/baseball/(dashboard)/dashboard/scout-packets/error.tsx +src/app/baseball/(dashboard)/dashboard/scout-packets/loading.tsx +src/app/baseball/(dashboard)/dashboard/scout-packets/page.tsx +src/app/baseball/(dashboard)/dashboard/dev-plan/error.tsx +src/app/baseball/(dashboard)/dashboard/dev-plan/page.tsx +src/app/baseball/(dashboard)/dashboard/activate/error.tsx +src/app/baseball/(dashboard)/dashboard/activate/page.tsx +src/app/baseball/(dashboard)/dashboard/documents/documents-client.tsx +src/app/baseball/(dashboard)/dashboard/documents/error.tsx +src/app/baseball/(dashboard)/dashboard/documents/page.tsx +src/app/baseball/(dashboard)/dashboard/college-interest/error.tsx +src/app/baseball/(dashboard)/dashboard/college-interest/CollegeInterestClient.tsx +src/app/baseball/(dashboard)/dashboard/events/error.tsx +src/app/baseball/(dashboard)/dashboard/events/page.tsx +src/app/baseball/(dashboard)/dashboard/practice/error.tsx +src/app/baseball/(dashboard)/dashboard/practice/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/players/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/groups/error.tsx +src/app/baseball/(dashboard)/dashboard/performance/groups/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/programs/[programId]/error.tsx +src/app/baseball/(dashboard)/dashboard/performance/programs/[programId]/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/programs/error.tsx +src/app/baseball/(dashboard)/dashboard/performance/programs/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/live/error.tsx +src/app/baseball/(dashboard)/dashboard/performance/live/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/error.tsx +src/app/baseball/(dashboard)/dashboard/performance/builder/page.tsx +src/app/baseball/(dashboard)/dashboard/performance/page.tsx +src/app/baseball/(dashboard)/dashboard/import/error.tsx +src/app/baseball/(dashboard)/dashboard/import/page.tsx +src/app/baseball/(dashboard)/dashboard/page.tsx +src/app/baseball/(dashboard)/dashboard/travel/error.tsx +src/app/baseball/(dashboard)/dashboard/travel/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/season/error.tsx +src/app/baseball/(dashboard)/dashboard/stats/season/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/new/NewGameClient.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/new/error.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/new/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/error.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/[gameId]/error.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/[gameId]/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/games/page.tsx +src/app/baseball/(dashboard)/dashboard/stats/upload/error.tsx +src/app/baseball/(dashboard)/dashboard/stats/upload/page.tsx +src/app/baseball/(dashboard)/dashboard/my-stats/MyStatsClient.tsx +src/app/baseball/(dashboard)/dashboard/my-stats/error.tsx +src/app/baseball/(dashboard)/dashboard/watchlist/WatchlistClient.tsx +src/app/baseball/(dashboard)/dashboard/watchlist/error.tsx +src/app/baseball/(dashboard)/dashboard/lift/[sessionId]/error.tsx +src/app/baseball/(dashboard)/dashboard/lift/[sessionId]/page.tsx +src/app/baseball/(dashboard)/dashboard/lift/error.tsx +src/app/baseball/(dashboard)/dashboard/lift/page.tsx +src/app/baseball/(dashboard)/dashboard/analytics/error.tsx +src/app/baseball/(dashboard)/dashboard/analytics/page.tsx +src/app/baseball/(dashboard)/dashboard/dev-plans/error.tsx +src/app/baseball/(dashboard)/dashboard/dev-plans/[id]/error.tsx +src/app/baseball/(dashboard)/dashboard/dev-plans/[id]/loading.tsx +src/app/baseball/(dashboard)/dashboard/dev-plans/[id]/page.tsx +src/app/baseball/(dashboard)/dashboard/dev-plans/page.tsx +src/app/baseball/(dashboard)/dashboard/stats-center/error.tsx +src/app/baseball/(dashboard)/dashboard/stats-center/page.tsx +src/app/baseball/(dashboard)/dashboard/template.tsx +src/app/baseball/(dashboard)/_components/hub-definitions.ts +src/app/baseball/(dashboard)/_components/hub-sub-nav.tsx +src/app/baseball/(dashboard)/_components/resolve-active-hub.ts +src/app/baseball/(dashboard)/layout.tsx +src/app/baseball/(coach-dashboard)/coach/juco/page.tsx +src/app/baseball/(coach-dashboard)/coach/high-school/page.tsx +src/app/baseball/(coach-dashboard)/coach/layout.tsx +src/app/baseball/(coach-dashboard)/coach/showcase/page.tsx +src/app/baseball/(coach-dashboard)/coach/college/page.tsx +src/app/baseball/(coach-dashboard)/coach/template.tsx +src/app/baseball/(coach-dashboard)/error.tsx +src/app/baseball/page.tsx +src/app/support/page.tsx +src/app/sitemap.ts +src/app/layout.tsx +src/app/actions/messages.ts +src/app/actions/notification-preferences.ts +src/app/actions/demo-request.ts +src/app/api/baseball/staff/context/route.ts +src/app/api/account/delete/route.ts +src/app/lifting/join/[token]/page.tsx +src/app/lifting/actions/soreness.ts +src/app/lifting/actions/readiness.ts +src/app/lifting/actions/player-sessions.ts +src/app/lifting/actions/nutrition.ts +src/app/lifting/actions/programs.ts +src/app/lifting/actions/assignments.ts +src/app/lifting/actions/imports.ts +src/app/lifting/actions/groups.ts +src/app/lifting/actions/onboarding.ts +src/app/lifting/actions/weight-checkins.ts +src/app/lifting/actions/performance-profile.ts +src/app/lifting/actions/invites.ts +src/app/lifting/actions/sessions.ts +src/app/lifting/(dashboard)/dashboard/settings/settings-client.tsx +src/app/lifting/(dashboard)/dashboard/settings/actions.ts +src/app/lifting/(dashboard)/dashboard/check-ins/check-ins-client.tsx +src/app/lifting/(dashboard)/dashboard/check-ins/page.tsx +src/app/lifting/(dashboard)/dashboard/today/page.tsx +src/app/lifting/(dashboard)/dashboard/sessions/live/page.tsx +src/app/lifting/(dashboard)/dashboard/import/import-client.tsx +src/app/lifting/(dashboard)/dashboard/import/page.tsx +src/app/lifting/(dashboard)/dashboard/page.tsx +src/app/lifting/(dashboard)/dashboard/lift/[sessionId]/page.tsx +src/app/lifting/(dashboard)/dashboard/lift/page.tsx +src/app/products-redesign/IMPLEMENTATION.md +src/app/products-redesign/REDESIGN_GUIDE.md +src/app/products-redesign/VISUAL_COMPARISON.md +src/app/products-redesign/COLOR_REFERENCE.md +src/app/globals.css +src/app/help/page.tsx +src/app/not-found.tsx +src/test/stubs/server-only.ts +src/TODO.md +src/components/ui/empty-state.tsx +src/components/ui/segmented-control.tsx +src/components/ui/containers.tsx +src/components/ui/search-autocomplete.tsx +src/components/ui/textarea.tsx +src/components/ui/skeleton.tsx +src/components/golf/documents/DocumentPreview.tsx +src/components/landing/MobileNav.tsx +src/components/landing/Footer.tsx +src/components/video/VideoClipper.tsx +src/components/messages/NewMessageModal.tsx +src/components/products/baseball-mockups/VideoMockup.tsx +src/components/products/HelmFlipAnimation.tsx +src/components/products/BaseballHelmSection.tsx +src/components/products/SPLIT_FLAP_GUIDE.md +src/components/CommandPalette.tsx +src/components/HelmSplashAnimation.tsx +src/components/auth/golf-sign-in-form.tsx +src/components/auth/baseball-sign-up-form.tsx +src/components/auth/baseball-sign-in-form.tsx +src/components/layout/team-switcher.tsx +src/components/layout/mobile-menu-button.tsx +src/components/layout/header.tsx +src/components/layout/sidebar.tsx +src/components/baseball/practice-effectiveness/PracticeEffectivenessClient.tsx +src/components/baseball/player-profile/ProfileTimeline.tsx +src/components/baseball/player-profile/snapshot-cards/shared.tsx +src/components/baseball/player-profile/snapshot-cards/SnapshotCards.tsx +src/components/baseball/player-profile/snapshot-cards/index.ts +src/components/baseball/player-profile/snapshot-cards/SnapshotCardGrid.tsx +src/components/baseball/player-profile/snapshot-cards/SnapshotHeaderBand.tsx +src/components/baseball/player-profile/PlayerProfileClient.tsx +src/components/baseball/player-profile/PlayerInsightsPanel.tsx +src/components/baseball/command-center/RiskFeedStrip.tsx +src/components/baseball/command-center/DailyBriefPanel.tsx +src/components/baseball/command-center/BaseballInviteButton.tsx +src/components/baseball/command-center/HighSchoolCommandBanner.tsx +src/components/baseball/command-center/CommandCenterClient.tsx +src/components/baseball/command-center/TeamPlayerPeekPanel.tsx +src/components/baseball/command-center/analytics/TrendAnalysisPanel.tsx +src/components/baseball/command-center/analytics/GameVsPracticePanel.tsx +src/components/baseball/command-center/analytics/TeamBattingOverview.tsx +src/components/baseball/command-center/analytics/PlayerPerformanceGrid.tsx +src/components/baseball/ui/ActionRail.tsx +src/components/baseball/ui/GroupAvailabilityGrid.tsx +src/components/baseball/ui/EvidencePill.tsx +src/components/baseball/ui/index.ts +src/components/baseball/ui/CommandCard.tsx +src/components/baseball/settings/ImportSourcesClient.tsx +src/components/baseball/settings/ProgramSettingsClient.tsx +src/components/baseball/settings/TeamSettingsClient.tsx +src/components/baseball/settings/SeasonSettingsClient.tsx +src/components/baseball/settings/IntegrationsClient.tsx +src/components/baseball/settings/PhilosophySettingsClient.tsx +src/components/baseball/settings/AiAuditLog.tsx +src/components/baseball/settings/SettingsAuditClient.tsx +src/components/baseball/settings/BaseballProgramBrand.tsx +src/components/baseball/stat-visuals/use-stat-visual-views.ts +src/components/baseball/stat-visuals/chart-primitives.tsx +src/components/baseball/stat-visuals/PerformanceVisuals.tsx +src/components/baseball/stat-visuals/FieldingVisuals.tsx +src/components/baseball/stat-visuals/HittingVisuals.tsx +src/components/baseball/stat-visuals/DataQualityVisuals.tsx +src/components/baseball/stat-visuals/StatVisualFrame.tsx +src/components/baseball/stat-visuals/PitchingVisuals.tsx +src/components/baseball/stat-visuals/index.ts +src/components/baseball/stat-visuals/StatVisualsSection.tsx +src/components/baseball/stat-visuals/chart-geometry.ts +src/components/baseball/stat-visuals/SpeedArmVisuals.tsx +src/components/baseball/postgame/PostgameReviewClient.tsx +src/components/baseball/video/VideoLibraryClient.tsx +src/components/baseball/video/VideoCard.tsx +src/components/baseball/import-center/ManualMapPanel.tsx +src/components/baseball/import-center/EventImportWizard.tsx +src/components/baseball/import-center/SourceDetectionCard.tsx +src/components/baseball/import-center/ImportCenterShell.tsx +src/components/baseball/import-center/ImportDiffViewer.tsx +src/components/baseball/import-center/ImportWizardClient.tsx +src/components/baseball/tasks/TaskCard.tsx +src/components/baseball/tasks/CreateTaskModal.tsx +src/components/baseball/calendar/__tests__/BaseballCalendarWrapper.rsvp-routing.test.tsx +src/components/baseball/calendar/BaseballCalendarWrapper.tsx +src/components/baseball/roster/PlayerCard.tsx +src/components/baseball/roster/RosterBoards.tsx +src/components/baseball/roster/PlayerRow.tsx +src/components/baseball/roster/roster-triage.ts +src/components/baseball/box-score/BoxScoreView.tsx +src/components/baseball/box-score/BoxScoreUpload.tsx +src/components/baseball/box-score/BoxScoreEntry.tsx +src/components/baseball/box-score/GameBoxScoreToggle.tsx +src/components/baseball/season-stats/MySeasonStats.tsx +src/components/baseball/season-stats/PlayerGameLog.tsx +src/components/baseball/season-stats/SeasonStatsTable.tsx +src/components/baseball/signals/signal-presentation.ts +src/components/baseball/signals/SignalDrillDown.tsx +src/components/baseball/signals/SignalCard.tsx +src/components/baseball/signals/ConvertToActionDialog.tsx +src/components/baseball/signals/CommandSignalStack.tsx +src/components/baseball/signals/SignalInboxClient.tsx +src/components/baseball/signals/index.ts +src/components/baseball/NotificationBell.tsx +src/components/baseball/practice-planner/BlockObjectiveEditor.tsx +src/components/baseball/practice-planner/TimeRailBuilder.tsx +src/components/baseball/practice-planner/ScrimmagePanel.tsx +src/components/baseball/practice-planner/PracticeIntelligenceBoard.tsx +src/components/baseball/practice-planner/PracticePrintExport.tsx +src/components/baseball/practice-planner/ScrimmageLineupBuilder.tsx +src/components/baseball/practice-planner/PracticePlannerClient.tsx +src/components/baseball/practice-planner/PracticeRecapPanel.tsx +src/components/baseball/practice-planner/PracticeIntelligenceBoard.tsx.tmp.67976.7dc61ff02da0 +src/components/baseball/BaseballShellLayout.tsx +src/components/baseball/announcements/AnnouncementsPlayerView.tsx +src/components/baseball/announcements/CreateAnnouncementFlow.tsx +src/components/baseball/announcements/AnnouncementsCoachView.tsx +src/components/baseball/player-stats/StatsOverviewCards.tsx +src/components/baseball/player-stats/SessionHistory.tsx +src/components/baseball/player-stats/TrendChart.tsx +src/components/baseball/player-stats/GameVsPracticeChart.tsx +src/components/baseball/passport/ScoutPacketView.tsx +src/components/baseball/passport/PlayerPassportCard.tsx +src/components/baseball/passport/PassportVisibilityControls.tsx +src/components/baseball/passport/index.ts +src/components/baseball/passport/ScoutPacketRosterList.tsx +src/components/baseball/passport/ScoutPacketCsvButton.tsx +src/components/baseball/passport/ScoutPacketManager.tsx +src/components/baseball/coach/ModeToggle.tsx +src/components/baseball/staff-decision-room/StaffDecisionRoomClient.tsx +src/components/baseball/dashboard/PlayersNeedingAttention.tsx +src/components/baseball/dashboard/UpcomingSection.tsx +src/components/baseball/dashboard/TeamStatsChart.tsx +src/components/baseball/dashboard/TeamHealthHero.tsx +src/components/baseball/dashboard/CollegeInterestSummary.tsx +src/components/baseball/dashboard/TeamDevProgress.tsx +src/components/baseball/dashboard/HotLeadsSection.tsx +src/components/baseball/dashboard/PositionNeedsMatrix.tsx +src/components/baseball/peek-panel/PeekPanelProvider.tsx +src/components/baseball/peek-panel/PlayerQuickActions.tsx +src/components/baseball/peek-panel/index.ts +src/components/baseball/peek-panel/PlayerPeekContent.tsx +src/components/baseball/coach-daily-contract/CoachDailyContracts.tsx +src/components/baseball/coach-daily-contract/CoachPlayerDailyContractPanel.tsx +src/components/baseball/coach-daily-contract/index.ts +src/components/baseball/profile/CollegeProfileEditor.tsx +src/components/baseball/team/BatchVideoUpload.tsx +src/components/baseball/team/CollegeInterestTracker.tsx +src/components/baseball/team/RosterTable.tsx +src/components/baseball/source-trust/trust-presentation.ts +src/components/baseball/source-trust/build-source-trust.ts +src/components/baseball/source-trust/source-trust-types.ts +src/components/baseball/source-trust/SourceDrawer.tsx +src/components/baseball/source-trust/stamped-trust.ts +src/components/baseball/source-trust/index.ts +src/components/baseball/source-trust/SourceTrustBadge.tsx +src/components/baseball/program/ProgramRoster.tsx +src/components/baseball/player-today/PlayerTimelineClient.tsx +src/components/baseball/player-today/PlayerTodayClient.tsx +src/components/baseball/player-today/PlayerTodayTeamless.tsx +src/components/baseball/dashboard-shell.tsx +src/components/baseball/staff/StaffSettingsClient.tsx +src/components/baseball/documents/DocumentPreview.tsx +src/components/baseball/documents/DocumentCard.tsx +src/components/baseball/daily-contract/DailyContract.tsx +src/components/baseball/daily-contract/index.ts +src/components/baseball/practice-player/PlayerPracticeClient.tsx +src/components/baseball/showcase/OrgDashboard.tsx +src/components/baseball/performance/StrengthGroupsClient.tsx +src/components/baseball/performance/LiftBuilderClient.tsx +src/components/baseball/performance/ProgramListClient.tsx +src/components/baseball/performance/PlayerLiftSessionClient.tsx +src/components/baseball/performance/lift-canvas/ExerciseBin.tsx +src/components/baseball/performance/lift-canvas/SessionBlock.tsx +src/components/baseball/performance/lift-canvas/PrescriptionChip.tsx +src/components/baseball/performance/lift-canvas/LiftCanvas.tsx +src/components/baseball/performance/lift-canvas/index.ts +src/components/baseball/performance/LiveWeightRoom.tsx +src/components/baseball/performance/ExerciseWizard.tsx +src/components/baseball/performance/ProgramEditorClient.tsx +src/components/baseball/performance/PlayerInspectorPanel.tsx +src/components/baseball/performance/PerformanceDashboardClient.tsx +src/components/baseball/performance/PerformanceCommandCenter.tsx +src/components/baseball/performance/PlayerLiftHomeClient.tsx +src/components/baseball/performance/PlayerReadinessClient.tsx +src/components/baseball/performance/PlayerLiftToday.tsx +src/components/baseball/position-planner/PlayerQuickView.tsx +src/components/baseball/position-planner/BaseballDiamond.tsx +src/components/baseball/position-planner/PositionPlanner.tsx +src/components/baseball/games/GameCard.tsx +src/components/baseball/games/GamesList.tsx +src/components/baseball/travel/ExpenseSummary.tsx +src/components/baseball/travel/ExpenseList.tsx +src/components/baseball/travel/ExpenseForm.tsx +src/components/baseball/travel/CreateItineraryModal.tsx +src/components/baseball/travel/TravelClient.tsx +src/components/baseball/stats/StatsUploadClient.tsx +src/components/baseball/stats/UploadHistory.tsx +src/components/baseball/onboarding/StepIndicator.tsx +src/components/baseball/dev-plans/PlanDetail.tsx +src/components/baseball/stats-center/StatsCenterClient.tsx +src/components/panels/PlayerPeekPanel.tsx +src/components/panels/TeamPeekPanel.tsx +src/components/features/saved-comparisons-list.tsx +src/components/features/profile-editor.tsx +src/components/features/pipeline-card.tsx +src/components/features/video-upload.tsx +src/components/features/player-comparison.tsx +src/components/features/college-card.tsx +src/components/coach/discover/SmartEmptyState.tsx +src/components/coach/discover/FilterPanel.tsx +src/components/coach/discover/ActiveFiltersBar.tsx +src/components/coach/discover/CompareBar.tsx +src/components/coach/discover/DiscoverView.tsx +src/components/coach/InviteModal.tsx +src/components/coach/CreateDevPlanModal.tsx +src/components/coach/CreateCampModal.tsx +src/components/coach/PlayerDetailModal.tsx +src/components/icons/index.tsx +src/components/lifting/weight/WeightCheckInScheduleBuilder.tsx +src/components/lifting/athletes/AthleteProfileCard.tsx +src/components/lifting/athletes/AthleteRosterClient.tsx +src/components/lifting/soreness/BodySilhouetteFront.tsx +src/components/lifting/soreness/SorenessScheduleBuilder.tsx +src/components/lifting/shell/SportTabBar.tsx +src/components/lifting/players/PlayerLiftSessionClient.tsx +src/components/lifting/players/PlayerLiftToday.tsx +src/components/lifting/groups/StrengthGroupsClient.tsx +src/components/lifting/programs/ProgramListClient.tsx +src/components/lifting/programs/ProgramEditorClient.tsx +src/components/lifting/exercises/ExercisePicker.tsx +src/components/errors/RouteErrorBoundary.tsx +src/components/player/settings/PrivacySettingsForm.tsx +src/hooks/use-dashboard.ts +src/hooks/use-watchlist.ts +src/hooks/use-player-teams.ts +src/hooks/use-baseball-staff-auth.ts +src/hooks/use-colleges.ts +src/hooks/use-auth.ts +src/hooks/use-analytics.ts +src/hooks/use-messages.ts +src/hooks/use-teams.ts +src/hooks/use-baseball-auth.ts +src/hooks/use-route-protection.ts +src/hooks/use-baseball-nav-context.ts +src/hooks/use-journey.ts +src/hooks/use-unread-count.ts +src/instrumentation-client.ts +src/proxy.ts +src/lib/demo/baseball-config.server.ts +src/lib/demo/baseball-config.ts +src/lib/types/helm-lifting.ts +src/lib/types/baseball-ai-audit.ts +src/lib/types/baseball-passport.ts +src/lib/types/baseball-lifting.ts +src/lib/types/baseball-coachhelm-v10.ts +src/lib/types/baseball-stat-events.ts +src/lib/types/helm-lifting-data.ts +src/lib/types/baseball-extended.ts +src/lib/types/baseball-program-identity.ts +src/lib/types/helm-lifting-checkins.ts +src/lib/types/baseball-postgame.ts +src/lib/types/baseball-acknowledgements.ts +src/lib/types/baseball-stat-visuals.ts +src/lib/types/baseball-practice.ts +src/lib/types/baseball-practice-effectiveness.ts +src/lib/types/baseball-staff-roles.ts +src/lib/types/baseball-settings.ts +src/lib/types/baseball-video-classes.ts +src/lib/types/database.ts +src/lib/types/baseball-imports.ts +src/lib/types/baseball-team-season-settings.ts +src/lib/types/index.ts +src/lib/types/baseball-lifting-v11.ts +src/lib/types/baseball-signals.ts +src/lib/types/baseball-practice-deep.ts +src/lib/types/baseball-coachhelm.ts +src/lib/auth/session.ts +src/lib/auth/session-activity.ts +src/lib/auth/password-validation.ts +src/lib/auth/ownership.ts +src/lib/baseball/import-matching.ts +src/lib/baseball/timeline-writer.ts +src/lib/baseball/postgame/build-review.ts +src/lib/baseball/capability-groups.ts +src/lib/baseball/tasks/__tests__/reminder-sweep.test.ts +src/lib/baseball/tasks/reminder-sweep.ts +src/lib/baseball/player-access-policy.ts +src/lib/baseball/ai-policy.ts +src/lib/baseball/csv-utils.ts +src/lib/baseball/operational-rule-engine.ts +src/lib/baseball/passport-fields.ts +src/lib/baseball/scout-packet-shared.ts +src/lib/baseball/coachhelm/outcome-sweep.ts +src/lib/baseball/coachhelm/action-baseline.ts +src/lib/baseball/coachhelm/scheduled-evaluator.ts +src/lib/baseball/coachhelm/engine-run.ts +src/lib/baseball/read-models/player-today.ts +src/lib/baseball/read-models/stat-visuals.ts +src/lib/baseball/read-models/player-passport.ts +src/lib/baseball/read-models/decision-room/tasks-conflicts.ts +src/lib/baseball/read-models/decision-room/agenda-ledger.ts +src/lib/baseball/read-models/decision-room/insights.ts +src/lib/baseball/read-models/decision-room/staff-settings.ts +src/lib/baseball/read-models/decision-room/readiness.ts +src/lib/baseball/read-models/decision-room/games.ts +src/lib/baseball/read-models/decision-room/effectiveness.ts +src/lib/baseball/read-models/decision-room/focus-imports.ts +src/lib/baseball/read-models/decision-room/lift.ts +src/lib/baseball/read-models/player-daily-contract.ts +src/lib/baseball/read-models/lift-builder.ts +src/lib/baseball/read-models/player-snapshot-cards.ts +src/lib/baseball/read-models/strength-groups.ts +src/lib/baseball/read-models/player-lift.ts +src/lib/baseball/read-models/video-classes.ts +src/lib/baseball/read-models/live-weight-room.ts +src/lib/baseball/read-models/elite-stat-events.ts +src/lib/baseball/read-models/practice-effectiveness.ts +src/lib/baseball/read-models/postgame.ts +src/lib/baseball/read-models/__tests__/player-daily-contract.test.ts +src/lib/baseball/read-models/__tests__/player-snapshot-cards.test.ts +src/lib/baseball/read-models/__tests__/elite-stat-events.test.ts +src/lib/baseball/read-models/scout-packet.ts +src/lib/baseball/read-models/performance-command.ts +src/lib/baseball/read-models/signal-inbox.ts +src/lib/baseball/read-models/lift-programs.ts +src/lib/baseball/read-models/coach-daily-contracts.ts +src/lib/baseball/read-models/timeline.ts +src/lib/baseball/read-models/stats-center.ts +src/lib/baseball/read-models/coach-notes.ts +src/lib/baseball/read-models/command-center.ts +src/lib/baseball/class-conflict-engine.ts +src/lib/baseball/capabilities.ts +src/lib/baseball/player-record-access.ts +src/lib/baseball/motion.ts +src/lib/baseball/active-context.ts +src/lib/baseball/risk-feed-bridge.ts +src/lib/baseball/stat-import-adapters.ts +src/lib/baseball/ai-policy-server.ts +src/lib/baseball/exercise-conflict.ts +src/lib/baseball/signal-from-insight.ts +src/lib/baseball/nav-registry.ts +src/lib/baseball/adapters/file-fingerprint.ts +src/lib/baseball/adapters/official-xml-adapters.ts +src/lib/baseball/adapters/event-rows.ts +src/lib/baseball/adapters/import-file-body.ts +src/lib/baseball/adapters/pdf-adapter.ts +src/lib/baseball/adapters/tracking-adapters.ts +src/lib/baseball/adapters/mini-xml.ts +src/lib/baseball/adapters/swing-adapters.ts +src/lib/baseball/adapters/xlsx-reader.ts +src/lib/baseball/adapters/csv-tokenizer.ts +src/lib/baseball/adapters/index.ts +src/lib/baseball/adapters/pdf-reader.ts +src/lib/baseball/source-record.ts +src/lib/baseball/__tests__/outcome-sweep-insight-resolve.test.ts +src/lib/baseball/__tests__/import-formats.test.ts +src/lib/baseball/__tests__/engine-run-maturity.test.ts +src/lib/baseball/__tests__/program-type-nav-variants.test.ts +src/lib/baseball/__tests__/motion.test.ts +src/lib/baseball/__tests__/ai-policy-enforcement.test.ts +src/lib/baseball/__tests__/outcome-sweep-verdict.test.ts +src/lib/baseball/__tests__/exercise-conflict.test.ts +src/lib/baseball/__tests__/import-duplicate-verdict.test.ts +src/lib/baseball/__tests__/action-baseline.test.ts +src/lib/baseball/__tests__/operational-rule-engine.test.ts +src/lib/baseball/__tests__/passport-fields.test.ts +src/lib/baseball/__tests__/signal-from-insight.test.ts +src/lib/baseball/__tests__/file-fingerprint.test.ts +src/lib/baseball/__tests__/stat-event-adapters.test.ts +src/lib/baseball/__tests__/stats-center-derivations.test.ts +src/lib/baseball/__tests__/nav-capability-gating.test.ts +src/lib/baseball/__tests__/scheduled-evaluator.test.ts +src/lib/baseball/__tests__/import-validation.test.ts +src/lib/baseball/__tests__/player-access-action-gate.integration.test.ts +src/lib/baseball/__tests__/import-registry-policy.test.ts +src/lib/baseball/__tests__/player-access-enforcement.test.ts +src/lib/baseball/__tests__/coach-onboarding-staff-row.integration.test.ts +src/lib/baseball/__tests__/stamped-trust.test.ts +src/lib/baseball/import-raw-file-storage.ts +src/lib/baseball/program-type-variants.ts +src/lib/baseball/nav-context.ts +src/lib/baseball/lifting/strength-group-rules.ts +src/lib/baseball/lifting/__tests__/live-set-offline-buffer.test.ts +src/lib/baseball/lifting/use-live-set-sync.ts +src/lib/baseball/lifting/group-audit-writer.ts +src/lib/baseball/lifting/live-set-offline-buffer.ts +src/lib/baseball/lifting/readiness-compute.ts +src/lib/baseball/daily-contract/ack-visibility.ts +src/lib/baseball/daily-contract/missed-sweep.ts +src/lib/baseball/daily-contract/__tests__/contract-day.test.ts +src/lib/baseball/daily-contract/__tests__/missed-sweep.test.ts +src/lib/baseball/daily-contract/__tests__/ack-visibility.test.ts +src/lib/baseball/daily-contract/contract-day.ts +src/lib/baseball/with-baseball-action.ts +src/lib/baseball/practice-validation.ts +src/lib/baseball/dev-plan-progress.ts +src/lib/baseball/active-context-shared.ts +src/lib/baseball/player-access.ts +src/lib/coachhelm/baseball/metrics/registry.role-visibility.test.ts +src/lib/coachhelm/baseball/metrics/registry.ts +src/lib/coachhelm/baseball/engine-v10.test.ts +src/lib/coachhelm/baseball/ranking.ts +src/lib/coachhelm/baseball/loaders-v10.ts +src/lib/coachhelm/baseball/engine.ts +src/lib/coachhelm/baseball/loaders.ts +src/lib/coachhelm/baseball/loaders-events.ts +src/lib/coachhelm/baseball/generators/event-families.ts +src/lib/coachhelm/baseball/generators/class-ops.ts +src/lib/coachhelm/baseball/generators/event-families.test.ts +src/lib/coachhelm/baseball/generators/index.ts +src/lib/coachhelm/baseball/generators/v10.ts +src/lib/coachhelm/baseball/generators/composites.ts +src/lib/coachhelm/baseball/effectiveness/engine.ts +src/lib/coachhelm/shared/evidence-types.ts +src/lib/coachhelm/shared/base-generator.ts +src/lib/utils/safe-redirect.ts +src/lib/supabase/middleware.ts +src/lib/lifting/overuse-rules.ts +src/lib/lifting/with-lifting-action.ts +src/lib/lifting/resolve-baseball-context.ts +src/lib/lifting/adapters/baseball-view-adapter.ts +src/lib/lifting/__tests__/overuse-rules.test.ts +src/lib/lifting/soreness-regions.ts +src/lib/notifications/email.ts +src/lib/notifications/types.ts +src/lib/notifications/index.ts +supabase/migrations/20260624001401_baseball_public_player_stats_rpc.sql +supabase/migrations/20260624000083_baseball_stat_visual_views.sql +supabase/migrations/20260624000510_baseball_event_supersede.sql +supabase/migrations/20260625000050_baseball_anon_revoke_wave1.sql +supabase/migrations/20260624000080_baseball_elite_stat_event_model.sql +supabase/migrations/20260625000030_helm_lifting_accept_invite_rpc.sql +supabase/migrations/20260624002000_baseball_videos_coach_rls_and_recruiting_check.sql +supabase/migrations/20260624000470_baseball_operational_signal_rule_config.sql +supabase/migrations/20260624000430_baseball_timeline_event_acks.sql +supabase/migrations/20260624000081_baseball_staff_roles_scope_audit.sql +supabase/migrations/20260624000440_baseball_strength_group_audit.sql +supabase/migrations/20260624000220_baseball_player_passport_and_daily_contract.sql +supabase/migrations/20260624000070_baseball_coach_insights_attribution.sql +supabase/migrations/20260624000620_baseball_daily_contract_coach_ack.sql +supabase/migrations/20260625000000_helm_lifting_identity.sql +supabase/migrations/20260624000060_baseball_practices.sql +supabase/migrations/20260624000820_baseball_daily_contract_missed_rollover.sql +supabase/migrations/20260624000095_baseball_team_and_season_settings.sql +supabase/migrations/20260624000020_baseball_import_lineage.sql +supabase/migrations/20260624000061_baseball_lifting_performance.sql +supabase/migrations/20260624000050_baseball_rls_helpers_and_policies.sql +supabase/migrations/20260624000200_baseball_practice_deepening.sql +supabase/migrations/20260625000020_helm_lifting_data_sessions_readiness.sql +supabase/migrations/20260624001700_baseball_task_reminder_sent.sql +supabase/migrations/20260624001800_baseball_practice_blocks_source_postgame.sql +supabase/migrations/20260624000082_baseball_staff_display_and_invite_columns.sql +supabase/migrations/20260624000500_baseball_import_raw_file_and_hash.sql +supabase/migrations/20260624000420_baseball_passport_scout_packet_share_tokens.sql +supabase/migrations/20260625000040_baseball_staff_display_scope_columns.sql +supabase/migrations/20260625000060_baseball_anon_revoke_wave2.sql +supabase/migrations/20260626000030_baseball_notifications_revoke_anon.sql +supabase/migrations/20260624000091_baseball_program_identity.sql +supabase/migrations/20260624000030_baseball_staff_capabilities.sql +supabase/migrations/20260624000062_baseball_accept_staff_invite_rpc.sql +supabase/migrations/20260602165152_harden_search_path_and_revoke_anon_admin_fns.sql +supabase/migrations/20260624000310_baseball_decision_log.sql +supabase/migrations/20260625000080_helm_lifting_backfill_from_baseball.sql +supabase/migrations/20260527000000_prod_public_baseline.sql +supabase/migrations/20260625000070_baseball_performance_indexes.sql +supabase/migrations/20260626000020_helm_lifting_exercise_stress_profile.sql +supabase/migrations/20260624000210_baseball_coachhelm_v10_ranking_and_outcome_ledger.sql +supabase/migrations/20260624001100_baseball_import_match_resolution.sql +supabase/migrations/20260624000230_baseball_signal_action_materialization.sql +supabase/migrations/20260624000450_baseball_ai_audit_log.sql +supabase/migrations/20260624000094_baseball_practice_effectiveness.sql +supabase/migrations/20260624001000_baseball_official_stat_breadth.sql +supabase/migrations/20260624001900_baseball_events_status_lifecycle.sql +supabase/migrations/20260624000063_baseball_v11_premium_lifting.sql +supabase/migrations/20260624001300_baseball_coachhelm_insight_maturity_counters.sql +supabase/migrations/20260624000040_baseball_timeline_and_acks.sql +supabase/migrations/20260624001500_baseball_signup_creates_profile_row.sql +supabase/migrations/20260624001600_baseball_replace_lineup_positions_rpc.sql +supabase/migrations/20260624000460_baseball_import_registry_load_bearing.sql +supabase/migrations/20260624000900_baseball_coach_notes.sql +supabase/migrations/20260624001400_baseball_readiness_select_gate_fix.sql +supabase/migrations/20260624000211_baseball_scrimmage_result.sql +supabase/migrations/20260624000093_baseball_postgame_reviews.sql +supabase/migrations/20260624001200_baseball_import_source_external_id.sql +supabase/migrations/20260624000010_baseball_stat_uploads_reconcile.sql +supabase/migrations/20260624000221_baseball_video_links_and_class_conflicts.sql +supabase/migrations/20260624000092_baseball_signals_and_actions.sql +supabase/migrations/20260624000090_baseball_settings_os.sql +supabase/migrations/20260625000090_helm_lifting_soreness_weight_nutrition.sql +supabase/migrations/20260625150000_baseball_lifting_drift_closure.sql +supabase/migrations/20260528000000_baseball_recalc_body_guards.sql +supabase/migrations/20260625000010_helm_lifting_data_library_programs.sql +supabase/tests/rls/baseball_lifting_visibility.sql +supabase/tests/rls/baseball_settings_os.sql +supabase/tests/rls/rpc_grant_hardening.sql +supabase/tests/rls/baseball_program_identity.sql +supabase/tests/rls/baseball_coach_notes.sql +supabase/tests/rls/baseball_passport_and_daily_contract.sql +supabase/tests/rls/baseball_staff_audit_events.sql +supabase/tests/rls/baseball_practice_visibility.sql +supabase/tests/rls/golf_coach_insights_cross_tenant_select.sql +supabase/tests/rls/baseball_recalc_body_guards.sql +supabase/tests/rls/baseball_stat_visual_views.sql +supabase/tests/rls/baseball_practice_scrimmage_visibility.sql +supabase/tests/rls/baseball_timeline_event_acks.sql +supabase/tests/rls/baseball_decision_log.sql +supabase/tests/rls/baseball_signal_action_materialization.sql +supabase/tests/rls/baseball_v11_lifting_visibility.sql +supabase/tests/rls/baseball_stats_center.sql +supabase/tests/rls/baseball_signals_and_actions.sql +supabase/tests/rls/baseball_import_center.sql +supabase/tests/rls/baseball_ai_audit.sql +supabase/tests/rls/baseball_timeline_visibility.sql +supabase/tests/rls/baseball_signals_actions.sql +supabase/tests/rls/baseball_seasons.sql +supabase/tests/rls/baseball_passport_scout_packet_share_tokens.sql +supabase/tests/rls/baseball_import_lineage.sql +supabase/tests/rls/baseball_event_acknowledgements.sql +supabase/tests/rls/baseball_practice_effectiveness_visibility.sql +supabase/tests/rls/baseball_full_phase1.sql +supabase/tests/rls/baseball_staff_invite_accept.sql +supabase/tests/rls/baseball_strength_group_audit.sql +supabase/tests/rls/baseball_coach_insights_attribution.sql +supabase/tests/rls/baseball_staff_capabilities.sql +supabase/tests/rls/baseball_video_classes.sql +supabase/tests/rls/baseball_postgame_reviews.sql +supabase/tests/rls/baseball_stat_event_model.sql +supabase/migrations_archive/v1_original/047_data_cleanup.sql +supabase/migrations_archive/v1_original/044_restore_complete_rls_policies.sql +supabase/migrations_archive/v1_original/001_schema.sql +supabase/migrations_archive/v1_original/002_seed.sql +supabase/migrations_archive/v1_original/042_fix_trigger_security_definer.sql +supabase/migrations_archive/v1_original/20260111000001_baseball_team_management.sql +supabase/migrations_archive/v1_original/20260109000003_function_audit_log.sql +supabase/migrations_archive/v1_original/038_team_lineups.sql +supabase/migrations_archive/v1_original/016_create_golf_schema.sql +supabase/migrations_archive/v1_original/20251231000003_fix_auth_trigger_metadata.sql +supabase/migrations_archive/v1_original/20260108000002_comprehensive_rls_fix.sql +supabase/migrations_archive/v1_original/048_rls_security_fix.sql +supabase/migrations_archive/v1_original/20260104000002_fix_golf_messaging_rls.sql +supabase/migrations_archive/v1_original/045_comprehensive_auth_fix.sql +supabase/migrations_archive/v1_original/036_messaging_matrix.sql +supabase/migrations_archive/pre_20260527/20260125000000_fix_baseball_rls_comprehensive.sql +supabase/migrations_archive/pre_20260527/005_players.sql +supabase/migrations_archive/pre_20260527/20260209000000_baseball_dashboard_wiring_fixes.sql +supabase/migrations_archive/pre_20260527/20260222220200_baseball_notifications.sql +supabase/migrations_archive/pre_20260527/20260221120000_add_remaining_fk_indexes.sql +supabase/migrations_archive/pre_20260527/20260523210000_coachhelm_wave4_cleanup.sql +supabase/migrations_archive/pre_20260527/20260222140000_emergency_rls_fix_v2.sql +supabase/migrations_archive/pre_20260527/018_team_lineups.sql +supabase/migrations_archive/pre_20260527/036_rename_baseball_tables.sql +supabase/migrations_archive/pre_20260527/001_extensions_and_enums.sql +supabase/migrations_archive/pre_20260527/20260222220100_drop_head_coach_id.sql +supabase/migrations_archive/pre_20260527/003_organizations.sql +supabase/migrations_archive/pre_20260527/20260421000001_admin_dashboard_rollup.sql +supabase/migrations_archive/pre_20260527/20260421000006_admin_rollups_b.sql +supabase/migrations_archive/pre_20260527/032_baseball_advanced.sql +supabase/migrations_archive/pre_20260527/20260523200000_coachhelm_p0_sweep.sql +supabase/migrations_archive/pre_20260527/033_all_indexes.sql +supabase/migrations_archive/pre_20260527/20260208000000_baseball_team_management.sql +supabase/migrations_archive/pre_20260527/20260518124505_fix_live_db_lint_errors.sql +supabase/migrations_archive/pre_20260527/042_sport_specific_messaging_tables.sql +supabase/migrations_archive/pre_20260527/004_coaches.sql +supabase/migrations_archive/pre_20260527/20260427210000_canonical_rls_snapshot.sql +supabase/migrations_archive/pre_20260527/041_shared_tables.sql +supabase/migrations_archive/pre_20260527/20260421000004_secure_perf_rpcs.sql +supabase/migrations_archive/pre_20260527/034_all_rls_policies.sql +supabase/migrations_archive/pre_20260527/20260222120000_fix_head_coach_id_rls.sql +supabase/migrations_archive/pre_20260527/20260217000000_fix_baseball_teams_schema.sql +supabase/migrations_archive/pre_20260527/20260527190000_harden_public_rpc_grants.sql +supabase/migrations_archive/pre_20260527/20260310000000_deprecate_unused_tables.sql +supabase/migrations_archive/pre_20260527/044_fix_messaging_rls.sql +supabase/migrations_archive/pre_20260527/20260222200000_baseball_box_score_system.sql +supabase/migrations_archive/pre_20260527/037_baseball_missing_tables.sql +supabase/migrations_archive/pre_20260527/009_messaging.sql +supabase/migrations_archive/pre_20260527/002_core_users_auth.sql +supabase/migrations_archive/pre_20260527/020_golf_core.sql +supabase/migrations_archive/pre_20260527/035_all_triggers_functions.sql +supabase/migrations_archive/pre_20260527/20260222220000_fix_baseball_coaches_rls.sql +scripts/baseballhelm-command-center.mjs +scripts/seed-rini-baseball-demo.ts +scripts/seed-baseball-stats.mjs +scripts/admin-rollup-smoke.mjs +scripts/check-migration-versions.mjs +scripts/baseballhelm-depth-fidelity.workflow.js +scripts/baseballhelm-build-event.mjs +scripts/harvest-course-photos.py +scripts/__tests__/emptystate-vocab.test.mjs +scripts/__tests__/no-arbitrary-text-px-app.test.mjs +scripts/__tests__/sweep-clean-components.test.mjs +scripts/__tests__/badge-consolidation.test.mjs +scripts/__tests__/no-legacy-skeleton-imports.test.mjs +scripts/__tests__/sweep-clean-app.test.mjs +scripts/__tests__/error-boundary-coverage.test.mjs +scripts/__tests__/check-migration-versions.test.mjs +scripts/__tests__/microcopy-banned-phrases.test.mjs +scripts/baseballhelm-loc.mjs +scripts/seed-baseball-demo.ts +scripts/baseballhelm-mega-build.workflow.js +scripts/seed-baseball-roster.mjs +scripts/seed-baseball-lifting-demo.ts +scripts/baseballhelm-verification.workflow.js +scripts/baseballhelm-command-center-hook.mjs +docs/ui/GLASSMORPHISM_STATUS.md +docs/ui/UI_IMPROVEMENTS_PHASE_2.md +docs/ui/GLASS_SYSTEM.md +docs/ui/25_UI_IMPROVEMENTS.md +docs/SESSION_REPORT_2026-05-27_PART2.md +docs/fairway-recruiting-plan.md +docs/audit-db-security-2026-02-22.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_audit_log_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/player_matching_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_error_handling_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/generic_import_mapper_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/csv_templates/travel_itinerary_import_v2.csv +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/csv_template_quality_review.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/data_validation_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_first_product_philosophy.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/duplicate_resolution_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_system_v2_strategy.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_rollback_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/import_preview_ui_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/vendor_export_reality_check.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/minimum_imports_for_phase_1.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/manual_entry_vs_import_decisions.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/ai_import_assistant_v2.md +docs/baseballhelm_revolution_plan_v2/09_import_system_v2/advanced_imports_for_future.md +docs/baseballhelm_revolution_plan_v2/24_subsystem_execution_blueprint_v9/v9_integration_adapter_contracts.md +docs/baseballhelm_revolution_plan_v2/24_subsystem_execution_blueprint_v9/v9_cross_subsystem_data_signal_action_map.md +docs/baseballhelm_revolution_plan_v2/24_subsystem_execution_blueprint_v9/v9_claude_work_packet_backlog.md +docs/baseballhelm_revolution_plan_v2/24_subsystem_execution_blueprint_v9/README.md +docs/baseballhelm_revolution_plan_v2/24_subsystem_execution_blueprint_v9/v9_tab_by_tab_subsystem_plan.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_current_helmv3_structure_map.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_complete_program_os_feature_spec.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/README.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_program_type_variants_high_school_college_showcase.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_implementation_contract_for_massive_build.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_strength_lifting_performance_system.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_settings_admin_integrations_permissions.md +docs/baseballhelm_revolution_plan_v2/18_massive_program_os_v4/v4_premium_ui_ux_product_system.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/v2_recommended_next_agent_prompt.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/ULTRACODE_SESSION_STRUCTURE.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/README.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/v2_what_changed_from_original.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/v2_biggest_gaps_in_original_plan.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/v2_executive_summary.md +docs/baseballhelm_revolution_plan_v2/00_v2_index/v2_critical_findings.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_demo_data_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_frontend_ui_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/CLAUDE_ULTRACODE_MASTER_PROMPT.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_next_build_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_import_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_ai_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_database_agent_v2.md +docs/baseballhelm_revolution_plan_v2/15_final_agent_prompts_v2/prompt_for_qa_agent_v2.md +docs/baseballhelm_revolution_plan_v2/01_zip_audit/overbuilt_sections_requiring_simplification.md +docs/baseballhelm_revolution_plan_v2/01_zip_audit/v1_file_inventory.json +docs/baseballhelm_revolution_plan_v2/01_zip_audit/zip_folder_inventory.md +docs/baseballhelm_revolution_plan_v2/01_zip_audit/v1_file_inventory.csv +docs/baseballhelm_revolution_plan_v2/01_zip_audit/contradictions_and_conflicts.md +docs/baseballhelm_revolution_plan_v2/23_autosync_strategy_v8/source_baseballhelm_autosync_plan.md +docs/baseballhelm_revolution_plan_v2/23_autosync_strategy_v8/v8_autosync_feature_plan.md +docs/baseballhelm_revolution_plan_v2/23_autosync_strategy_v8/README.md +docs/baseballhelm_revolution_plan_v2/23_autosync_strategy_v8/assets/v8_autosync_pipeline.svg +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/settings_permissions_admin_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/coachhelm_ai_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/reports_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/hitting_development_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/wellness_and_availability_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/practice_planner_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/academics_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/travel_and_logistics_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/roster_and_player_profiles_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/coach_command_center_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/lifting_and_performance_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/communication_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/recruiting_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/import_center_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/pitching_development_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/calendar_review.md +docs/baseballhelm_revolution_plan_v2/06_feature_by_feature_critical_review/stats_center_review.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/desktop_navigation_model.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/recommended_final_navigation.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/mobile_navigation_model.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/role_based_navigation.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/tab_merge_split_delete_recommendations.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/staff_tabs_v2.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/coach_tabs_v2.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/information_architecture_map.md +docs/baseballhelm_revolution_plan_v2/07_tab_architecture_v2/player_tabs_v2.md +docs/baseballhelm_revolution_plan_v2/v2_scorecard_original_vs_improved.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/v12_chrome_open_acceptance_gate.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/README.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/source_ultracode_agent_city_command_center_spec.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/v12_command_center_ui_ux_and_tabs.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/v12_telemetry_contract_agent_visibility.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/v12_claude_task_zero_live_command_center.md +docs/baseballhelm_revolution_plan_v2/27_live_ultracode_command_center_v12/v12_agent_city_baseballhelm_adaptation.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/academics_and_availability_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/practice_planning_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/updated_competitor_weakness_matrix.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/baseball_stats_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/updated_competitor_matrix.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/2026_live_research_addendum.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/missed_market_opportunities.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/recruiting_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/new_sources_and_findings.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/updated_build_vs_import_vs_ignore_matrix.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/college_athletics_ops_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/strength_conditioning_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/market_research_refresh_summary.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/ai_sports_refresh.md +docs/baseballhelm_revolution_plan_v2/03_market_research_refresh/player_development_refresh.md +docs/baseballhelm_revolution_plan_v2/26_final_auth_lifting_current_app_v11/v11_auth_team_join_staff_roles.md +docs/baseballhelm_revolution_plan_v2/26_final_auth_lifting_current_app_v11/v11_claude_final_touch_execution_prompt.md +docs/baseballhelm_revolution_plan_v2/26_final_auth_lifting_current_app_v11/v11_strength_coach_premium_lifting_system.md +docs/baseballhelm_revolution_plan_v2/26_final_auth_lifting_current_app_v11/README.md +docs/baseballhelm_revolution_plan_v2/26_final_auth_lifting_current_app_v11/v11_current_baseballhelm_context_for_claude.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_research_findings_stats_acquisition.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_cool_efficiency_features_backlog.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_player_profile_snapshot_system.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_tool_specific_parser_and_storage_strategy.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_coachhelm_practice_effectiveness_engine.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/README.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_practice_plan_generator_and_scrimmage_lineup_builder.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_lifting_dashboard_and_multisport_performance_os.md +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/assets/v7_stats_acquisition_ladder.svg +docs/baseballhelm_revolution_plan_v2/22_deeper_workflows_research_v7/v7_coach_onboarding_assistant_roles_and_accounts.md +docs/baseballhelm_revolution_plan_v2/README.md +docs/baseballhelm_revolution_plan_v2/WAVE_BUILD_PLAN.json +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/database_first_tasks.md +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/repo_verified_execution_map.md +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/one_shot_build_plan_v2.md +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/implementation_sequence_v2.md +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/claude_ultracode_one_shot_runbook.md +docs/baseballhelm_revolution_plan_v2/13_implementation_plan_v2/agent_execution_order.md +docs/baseballhelm_revolution_plan_v2/BASEBALLHELM_FULL_FEATURE_PRODUCT_PLAN.pdf +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/preseason_integrated_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/travel_weekend_integrated_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/full_system_integration_map.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/academics_to_calendar_loop.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/stats_to_practice_loop.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/lift_to_availability_loop.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/post_game_review_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/freshman_onboarding_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/transfer_player_onboarding_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/player_meeting_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/injury_limited_player_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/player_daily_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/strength_coach_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/wellness_to_workload_loop.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/head_coach_weekly_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/in_season_integrated_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/two_way_player_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/game_week_integrated_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/pitching_coach_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/import_to_insight_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/hitting_coach_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/coach_daily_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/coachhelm_ai_to_action_loop.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/fall_ball_integrated_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/director_of_ops_workflow.md +docs/baseballhelm_revolution_plan_v2/05_integrated_workflow_review/practice_to_development_loop.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/development_data_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/stats_data_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/recruiting_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/migration_sequence_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/lifting_data_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/ai_insights_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/entity_relationship_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/canonical_player_identity_model.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/team_org_membership_model.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/audit_log_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/event_task_acknowledgement_model.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/tables_to_modify.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/wellness_availability_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/practice_data_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/new_tables_required.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/academics_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/tables_to_avoid.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/import_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/tables_to_keep_from_current_repo.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/tables_to_defer.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/travel_model_v2.md +docs/baseballhelm_revolution_plan_v2/08_data_model_v2/data_model_v2_overview.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/v10_premium_ui_system_by_tab.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/v10_repo_grounding_and_golfhelm_translation.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/v10_baseball_stat_visual_contracts.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/README.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/v10_advanced_coachhelm_engine_and_integrations.md +docs/baseballhelm_revolution_plan_v2/25_premium_ui_coachhelm_v10/v10_claude_prompt_delta_and_scope_corrections.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/source_log_2026_market_pass.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/market_research_feature_takeaways_2026.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/README.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/next_level_feature_systems.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/market_backed_build_import_ignore_matrix.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/one_shot_market_backed_product_spec.md +docs/baseballhelm_revolution_plan_v2/17_market_driven_feature_upgrade_v3/anti_slop_quality_rubric.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_elite_baseball_stat_universe.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_current_app_supabase_deep_dive.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_market_research_source_log.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/README.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_agent_efficiency_map.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_stats_data_model_and_import_contract.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_video_classes_automation_system.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_vendor_integration_matrix.md +docs/baseballhelm_revolution_plan_v2/20_stats_integrations_coachhelm_deep_dive_v6/v6_baseball_coachhelm_engine.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/coach_sales_demo_flow.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/coach_objection_handling.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/wow_moment_checklist.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/demo_storyboard_v2.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/why_not_spreadsheets_answer.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/why_not_driveline_traq_answer.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/why_not_gamechanger_answer.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/director_of_ops_demo_flow.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/sample_demo_team_data.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/player_demo_flow.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/first_7_days_after_signup.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/strength_coach_demo_flow.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/onboarding_flow_for_new_program.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/why_not_teamworks_answer.md +docs/baseballhelm_revolution_plan_v2/14_sales_demo_and_adoption_v2/why_not_teambuildr_answer.md +docs/baseballhelm_revolution_plan_v2/10_coachhelm_ai_v2/example_ai_outputs_v2.md +docs/baseballhelm_revolution_plan_v2/PRODUCT_SUMMARY_AND_SALES_NARRATIVE.md +docs/baseballhelm_revolution_plan_v2/MANIFEST_V2.md +docs/baseballhelm_revolution_plan_v2/source_bibliography_v2.md +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/visual_product_overview.md +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/README.md +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/assets/coach_command_center_mock.svg +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/assets/coachhelm_engine_map.svg +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/assets/source_to_action_loop.svg +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/assets/import_dossier_flow.svg +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/assets/baseballhelm_program_os_map.svg +docs/baseballhelm_revolution_plan_v2/21_visuals_and_pitch_assets/visual_gallery.html +docs/baseballhelm_revolution_plan_v2/is_everything_in_place_checklist.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/what_the_next_build_agent_must_verify.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/migration_risks.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/current_database_conflicts.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/existing_technical_debt_impacting_plan.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/current_code_conflicts.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/current_components_reuse_opportunities.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/current_routes_vs_future_tabs.md +docs/baseballhelm_revolution_plan_v2/02_repo_crosscheck/repo_vs_plan_alignment.md +docs/baseballhelm_revolution_plan_v2/feature_prioritization_framework_v2.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/v2_product_positioning.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/what_baseballhelm_should_not_try_to_be.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/pricing_value_logic.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/staff_adoption_strategy.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/small_college_vs_power_program_strategy.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/market_category_creation.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/daily_usage_loops.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/coach_adoption_strategy.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/retention_hooks.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/why_baseballhelm_wins.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/wedge_product_strategy.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/demo_wow_moments.md +docs/baseballhelm_revolution_plan_v2/04_revolutionary_product_strategy/player_adoption_strategy.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_data_contracts_expanded.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_role_permission_matrix.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_import_template_field_dictionary.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_demo_seed_scenario.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_screen_acceptance_specs.md +docs/baseballhelm_revolution_plan_v2/16_detail_expansion_v2/v2_feature_detail_matrix.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_practice_development_operating_engine.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_ai_automation_and_decision_engine.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/README.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_competitive_system_blueprints.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_performance_lifting_breakthrough_system.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_premium_interaction_design_spec.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_claude_ultracode_delta_prompt.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_player_passport_and_recruiting_showcase_system.md +docs/baseballhelm_revolution_plan_v2/19_breakthrough_product_systems_v5/v5_breakthrough_manifesto.md +docs/BASEBALL_RLS_SECURITY_AUDIT.md +docs/plans/2026-02-21-baseball-onboarding-dashboard-routing.md +docs/plans/2026-02-21-baseball-onboarding-dashboard-routing-design.md +docs/plans/2026-02-22-review-fixes-design.md +docs/audits/DATA_INTEGRITY_AUDIT.md +docs/audits/_premium_scrub_2026-06-21/FINDINGS.csv +docs/audits/_premium_scrub_2026-06-21/FINDINGS_CALIBRATED.csv +docs/audits/RLS_AUDIT_REPORT.md +docs/audits/BASEBALLHELM_ENHANCEMENT_PLAN_2026-06-25.md +docs/audits/CALENDAR_SYSTEM_AUDIT_REPORT.md +docs/audits/_e2e_tab_audit_2026-06-20/docs-travel.md +docs/audits/_e2e_tab_audit_2026-06-20/settings-core.md +docs/audits/_e2e_tab_audit_2026-06-20/onboarding.md +docs/audits/COMPREHENSIVE_AUTH_AUDIT.md +docs/audits/BASEBALLHELM_MIGRATION_APPLY_PLAN.md +docs/audits/coachhelm-insight-engine-audit-2026-06-05.findings.json +docs/audits/BACKGROUND_SYSTEM_AUDIT.md +docs/audits/RLS_SECURITY_AUDIT.md +docs/audits/AUTH_GAPS_AUDIT_REPORT.md +docs/audits/BASEBALLHELM_CANONICAL_SPEC.md +docs/audits/BASEBALLHELM_WF2_CONFORM_REPORT.md +docs/audits/BASEBALLHELM_DEPLOY_RUNBOOK.md +docs/audits/BASEBALLHELM_PRODUCTION_VERDICT.md +docs/audits/COACH_DASHBOARD_AUDIT_REPORT.md +docs/audits/BASEBALLHELM_WF1_BUILD_COMPLETE.md +docs/audits/DATABASE_RLS_AUDIT_REPORT.md +docs/audits/BASEBALLHELM_LIFTLAB_GAP_MAP_2026-06-25.md +docs/audits/BASEBALLHELM_UIUX_VERIFICATION.md +docs/audits/AUTH_AUDIT_SUMMARY.md +docs/audits/AUTH_SYSTEM_AUDIT.md +docs/audits/AUTHENTICATION_SYSTEM_AUDIT.md +docs/audits/GOLFHELM_E2E_FULL_FINDINGS_2026-06-20.md +docs/audits/GOLFHELM_CALENDAR_AUDIT_2026-06-10.md +docs/audits/GOLFHELM_VIBECODED_AUDIT_2026-06-14.md +docs/audits/BASEBALLHELM_STALE_SURFACE_AUDIT_2026-06-25.md +docs/RECON_REPORT.md +docs/features/CALENDAR_COMPREHENSIVE_IMPLEMENTATION_PLAN.md +docs/features/PHASE_3_PLAYER_CORE.md +docs/features/PHASE_2_HS_COACH.md +docs/features/PHASE_1_COLLEGE_COACH.md +docs/features/FEATURE_CHECKLIST.md +docs/features/PHASE_4_PLAYER_RECRUITING.md +docs/features/BATCH_3_INTEGRATION_GUIDE.md +docs/setup/OAUTH_SETUP_CHECKLIST.md +docs/setup/OAUTH_SECURITY_GUIDE.md +docs/DATABASE_FIXES.md +docs/UI_POLISH_REPORT.md +docs/operations/2026-05-28-token-unification.md +docs/operations/2026-05-27-pr-105-split-plan.md +docs/operations/2026-05-28-coderabbit-fails-investigation.md +docs/operations/2026-05-27-baseball-tables-scope.md +docs/operations/2026-05-27-v3-production-readiness.md +docs/v3-player-transfer-playbook.md +docs/audit-ui-premium-2026-02-22.md +docs/redesign/marketing-overhaul-2026-06-18/research/01_features_and_assets.md +docs/redesign/marketing-overhaul-2026-06-18/research/00_DESIGN_BRIEF.md +docs/redesign/marketing-overhaul-2026-06-18/mockups/about-2-mission-team.html +docs/redesign/marketing-overhaul-2026-06-18/mockups/about-clubhouse.html +docs/redesign/marketing-overhaul-2026-06-18/mockups/about-1-founder-flip.html +docs/redesign/marketing-overhaul-2026-06-18/mockups/about-3-timeline-editorial.html +docs/redesign/marketing-overhaul-2026-06-18/concepts/about-1-founder-flip.md +docs/redesign/marketing-overhaul-2026-06-18/concepts/about-3-timeline-editorial.md +docs/redesign/marketing-overhaul-2026-06-18/concepts/about-2-mission-team.md +docs/audit-college-coach-2026-02-22.md +docs/architecture/COMPREHENSIVE_AUTH_SYSTEM_PLAN.md +docs/architecture/PLATFORM_ARCHITECTURE.md +docs/architecture/USER_ROLE_DATA_OWNERSHIP.md +docs/architecture/SCHEMA.md +docs/architecture/ROUTE_INVENTORY.md +docs/architecture/ROUTING_FLOW_VERIFICATION.md +docs/COACHHELM_STATE_2026-05-26.md +docs/guides/UI_IMPROVEMENTS_CURSOR_PROMPT.md +docs/PUSH_NOTIFICATION_AUDIT.md +docs/FEATURE_AUDIT.md +docs/HELM_DATABASE_VERCEL_COACHHELM_DEEP_DIVE_2026-05-27.md +docs/baseballhelm-finish-runbook.md +docs/audit-errors-flows-2026-02-22.md +docs/lifting-lab/HELM_LIFTING_LAB_BLUEPRINT.md +docs/ERROR_HANDLING_FIXES.md +docs/COMMAND_CENTER_HOOKS.md +docs/architectural-review-golfhelm-2026-02-22.md +docs/BASEBALL_DASHBOARD_AUDIT_REPORT.md +docs/performance/DATABASE_PERFORMANCE_REPORT.md +docs/perf-analysis-dashboard-timeouts-2026-03-09.md +docs/superpowers/plans/2026-03-15-baseball-archive-recruiting.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/PHASE-4-CLEANUP-DONE.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/TEAM-A-DONE.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/PHASE-3-DONE.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/TEAM-F-PHASE1-DONE.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/06-team-f-build-observability.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/01-team-a-database-foundation.md +docs/superpowers/plans/2026-04-21-coachhelm-fix/typecheck-baseline.txt +docs/superpowers/plans/2026-04-21-coachhelm-fix/00-orchestration.md +docs/superpowers/specs/2026-03-14-ui-audit-completion-plan.md +docs/SECURITY_AUDIT.md +docs/code-quality-review-2026-02-22.md +docs/OVERNIGHT_BUILD_REPORT.md +docs/PRIVACY_AUDIT.md +docs/CODEBASE_MAP.md diff --git a/.cleanup/reports/baseline-build.txt b/.cleanup/reports/baseline-build.txt new file mode 100644 index 000000000..c42b7990d --- /dev/null +++ b/.cleanup/reports/baseline-build.txt @@ -0,0 +1,304 @@ + +> helmv3@1.0.0 prebuild +> node scripts/check-required-env.mjs && node scripts/stamp-sw.mjs + +[check-required-env] OK +[stamp-sw] Set CACHE_VERSION to golfhelm-va1da6406 + +> helmv3@1.0.0 build +> next build --webpack + +▲ Next.js 16.2.7 (webpack) +- Environments: .env.production.local, .env.local, .env +- Experiments (use with caution): + · clientTraceMetadata + · optimizePackageImports + · serverActions + + Creating an optimized production build ... + +warn - The class `ease-[cubic-bezier(0.32,0.72,0,1)]` is ambiguous and matches multiple utilities. +warn - If this is content and not a class, replace it with `ease-[cubic-bezier(0.32,0.72,0,1)]` to silence this warning. +✓ Compiled successfully in 72s + Running TypeScript ... + Finished TypeScript in 44s ... + Collecting page data using 9 workers ... + Generating static pages using 9 workers (0/187) ... + Generating static pages using 9 workers (46/187) + Generating static pages using 9 workers (93/187) + Generating static pages using 9 workers (140/187) +✓ Generating static pages using 9 workers (187/187) in 1239ms + Finalizing page optimization ... + Collecting build traces ... + +Route (app) +┌ ○ / +├ ○ /_not-found +├ ○ /about +├ ƒ /api/account/delete +├ ƒ /api/admin/crm/send-email +├ ƒ /api/admin/debug-rollup +├ ƒ /api/admin/log-event +├ ƒ /api/baseball/staff/context +├ ƒ /api/calendar/coach/[token] +├ ƒ /api/calendar/events +├ ƒ /api/calendar/feeds/[token] +├ ƒ /api/coachhelm/v3/chat/conversations +├ ƒ /api/coachhelm/v3/chat/conversations/[id] +├ ƒ /api/coachhelm/v3/chat/send +├ ƒ /api/coachhelm/v3/genome/compute +├ ƒ /api/crm/google-calendar/auth +├ ƒ /api/crm/google-calendar/callback +├ ƒ /api/crm/google-calendar/sync +├ ƒ /api/crm/unsubscribe +├ ƒ /api/cron/coach-morning-digest +├ ƒ /api/cron/coachhelm-calibration +├ ƒ /api/cron/coachhelm-insight-lifecycle +├ ƒ /api/cron/coachhelm-roster-sweep +├ ƒ /api/cron/coachhelm-safety-net +├ ƒ /api/cron/coachhelm-validation +├ ƒ /api/cron/event-reminders +├ ƒ /api/cron/process-sequences +├ ƒ /api/cron/refresh-engagement +├ ƒ /api/cron/task-reminders +├ ƒ /api/cron/v3/causality-attribute +├ ƒ /api/cron/v3/genome-backfill +├ ƒ /api/cron/v3/genome-nightly +├ ƒ /api/cron/v3/goal-suggestions-evaluate +├ ƒ /api/cron/v3/goal-suggestions-write +├ ƒ /api/cron/v3/ingest-sync +├ ƒ /api/cron/v3/standing-backfill +├ ƒ /api/cron/v3/standing-refresh +├ ƒ /api/cron/v3/weekly-coach-email +├ ƒ /api/golf/auth/login +├ ƒ /api/golf/players/[playerId]/putt-tendencies +├ ƒ /api/golf/rounds/generate-review +├ ƒ /api/golf/rounds/partial-save +├ ƒ /api/health +├ ƒ /api/inngest +├ ƒ /api/log-error +├ ƒ /api/push-subscriptions +├ ƒ /api/webhooks/resend +├ ƒ /api/webhooks/resend-inbound +├ ƒ /auth/callback +├ ƒ /baseball +├ ○ /baseball/coach +├ ○ /baseball/coach-onboarding +├ ○ /baseball/coach/college +├ ○ /baseball/coach/high-school +├ ○ /baseball/coach/juco +├ ○ /baseball/coach/showcase +├ ƒ /baseball/complete-signup +├ ƒ /baseball/dashboard +├ ○ /baseball/dashboard/academics +├ ○ /baseball/dashboard/activate +├ ○ /baseball/dashboard/analytics +├ ○ /baseball/dashboard/announcements +├ ƒ /baseball/dashboard/calendar +├ ○ /baseball/dashboard/camps +├ ƒ /baseball/dashboard/camps/[id] +├ ƒ /baseball/dashboard/college-interest +├ ○ /baseball/dashboard/colleges +├ ƒ /baseball/dashboard/command-center +├ ○ /baseball/dashboard/compare +├ ƒ /baseball/dashboard/comparisons +├ ƒ /baseball/dashboard/decision-room +├ ○ /baseball/dashboard/dev-plan +├ ○ /baseball/dashboard/dev-plans +├ ƒ /baseball/dashboard/dev-plans/[id] +├ ○ /baseball/dashboard/discover +├ ƒ /baseball/dashboard/documents +├ ○ /baseball/dashboard/events +├ ƒ /baseball/dashboard/import +├ ○ /baseball/dashboard/journey +├ ƒ /baseball/dashboard/lift +├ ƒ /baseball/dashboard/lift/[sessionId] +├ ○ /baseball/dashboard/messages +├ ƒ /baseball/dashboard/messages/[id] +├ ƒ /baseball/dashboard/my-stats +├ ○ /baseball/dashboard/organization +├ ƒ /baseball/dashboard/performance +├ ƒ /baseball/dashboard/performance/builder +├ ƒ /baseball/dashboard/performance/groups +├ ƒ /baseball/dashboard/performance/live +├ ƒ /baseball/dashboard/performance/players/[id] +├ ƒ /baseball/dashboard/performance/programs +├ ƒ /baseball/dashboard/performance/programs/[programId] +├ ○ /baseball/dashboard/pipeline +├ ƒ /baseball/dashboard/players/[id] +├ ƒ /baseball/dashboard/players/[id]/passport +├ ƒ /baseball/dashboard/players/[id]/profile +├ ƒ /baseball/dashboard/players/[id]/scout-packet +├ ƒ /baseball/dashboard/players/[id]/scout-packet/preview +├ ƒ /baseball/dashboard/players/[id]/stats +├ ƒ /baseball/dashboard/postgame +├ ○ /baseball/dashboard/practice +├ ƒ /baseball/dashboard/practice-effectiveness +├ ○ /baseball/dashboard/profile +├ ○ /baseball/dashboard/program +├ ƒ /baseball/dashboard/readiness +├ ○ /baseball/dashboard/roster +├ ƒ /baseball/dashboard/scout-packets +├ ○ /baseball/dashboard/settings +├ ○ /baseball/dashboard/settings/ai +├ ○ /baseball/dashboard/settings/appearance +├ ƒ /baseball/dashboard/settings/audit +├ ○ /baseball/dashboard/settings/data-retention +├ ○ /baseball/dashboard/settings/demo-mode +├ ○ /baseball/dashboard/settings/guardian-access +├ ƒ /baseball/dashboard/settings/imports +├ ƒ /baseball/dashboard/settings/integrations +├ ○ /baseball/dashboard/settings/notifications +├ ƒ /baseball/dashboard/settings/permissions +├ ƒ /baseball/dashboard/settings/philosophy +├ ○ /baseball/dashboard/settings/player-access +├ ƒ /baseball/dashboard/settings/privacy +├ ƒ /baseball/dashboard/settings/program +├ ƒ /baseball/dashboard/settings/recruiting-preferences +├ ƒ /baseball/dashboard/settings/roles +├ ƒ /baseball/dashboard/settings/season +├ ○ /baseball/dashboard/settings/showcase-profile +├ ƒ /baseball/dashboard/settings/staff +├ ƒ /baseball/dashboard/settings/teams +├ ƒ /baseball/dashboard/signals +├ ○ /baseball/dashboard/stats +├ ƒ /baseball/dashboard/stats-center +├ ƒ /baseball/dashboard/stats/games +├ ƒ /baseball/dashboard/stats/games/[gameId] +├ ƒ /baseball/dashboard/stats/games/new +├ ƒ /baseball/dashboard/stats/season +├ ƒ /baseball/dashboard/stats/upload +├ ○ /baseball/dashboard/tasks +├ ƒ /baseball/dashboard/team +├ ○ /baseball/dashboard/team/high-school +├ ○ /baseball/dashboard/teams +├ ○ /baseball/dashboard/travel +├ ƒ /baseball/dashboard/videos +├ ƒ /baseball/dashboard/videos/[id] +├ ƒ /baseball/dashboard/videos/[id]/edit +├ ○ /baseball/dashboard/watchlist +├ ○ /baseball/demo +├ ○ /baseball/forgot-password +├ ƒ /baseball/join/[code] +├ ○ /baseball/login +├ ƒ /baseball/packet/[token] +├ ƒ /baseball/packet/[token]/csv +├ ○ /baseball/player +├ ƒ /baseball/player/[id] +├ ○ /baseball/player/college +├ ○ /baseball/player/high-school +├ ○ /baseball/player/juco +├ ƒ /baseball/player/passport +├ ƒ /baseball/player/practice +├ ○ /baseball/player/showcase +├ ƒ /baseball/player/timeline +├ ƒ /baseball/player/today +├ ƒ /baseball/program/[id] +├ ○ /baseball/reset-password +├ ○ /baseball/signup +├ ƒ /baseball/staff/join/[code] +├ ƒ /baseball/team/[id] +├ ○ /fairway-preview +├ ƒ /golf +├ ƒ /golf/admin +├ ƒ /golf/admin/crm +├ ƒ /golf/admin/crm/coach/[id] +├ ƒ /golf/admin/demo-sessions +├ ○ /golf/coach +├ ƒ /golf/dashboard +├ ƒ /golf/dashboard/alerts +├ ƒ /golf/dashboard/analytics/coachhelm +├ ƒ /golf/dashboard/announcements +├ ƒ /golf/dashboard/calendar +├ ƒ /golf/dashboard/classes +├ ƒ /golf/dashboard/coachhelm +├ ƒ /golf/dashboard/coachhelm/chat +├ ƒ /golf/dashboard/coachhelm/genome/[playerId] +├ ƒ /golf/dashboard/coachhelm/genome/compare +├ ƒ /golf/dashboard/coachhelm/qualifying/[id] +├ ƒ /golf/dashboard/courses +├ ƒ /golf/dashboard/development +├ ƒ /golf/dashboard/documents +├ ƒ /golf/dashboard/hub +├ ƒ /golf/dashboard/insights +├ ƒ /golf/dashboard/intelligence +├ ƒ /golf/dashboard/messages +├ ƒ /golf/dashboard/my-development +├ ƒ /golf/dashboard/my-game-profile +├ ƒ /golf/dashboard/my-insights +├ ƒ /golf/dashboard/my-qualifiers +├ ƒ /golf/dashboard/my-standing +├ ƒ /golf/dashboard/patterns +├ ƒ /golf/dashboard/players/[playerId] +├ ƒ /golf/dashboard/players/[playerId]/game +├ ƒ /golf/dashboard/players/[playerId]/game/print +├ ƒ /golf/dashboard/qualifiers +├ ƒ /golf/dashboard/qualifiers/[id] +├ ƒ /golf/dashboard/qualifiers/new +├ ƒ /golf/dashboard/recruiting +├ ƒ /golf/dashboard/roster +├ ƒ /golf/dashboard/roster/[id] +├ ƒ /golf/dashboard/rounds +├ ƒ /golf/dashboard/rounds/[id] +├ ƒ /golf/dashboard/rounds/[id]/review +├ ƒ /golf/dashboard/rounds/continue/[id] +├ ƒ /golf/dashboard/rounds/new +├ ƒ /golf/dashboard/rounds/recover +├ ƒ /golf/dashboard/settings +├ ƒ /golf/dashboard/settings/coaching-intelligence +├ ƒ /golf/dashboard/settings/notifications +├ ƒ /golf/dashboard/stats +├ ƒ /golf/dashboard/stats/team +├ ƒ /golf/dashboard/tasks +├ ƒ /golf/dashboard/team +├ ƒ /golf/dashboard/team-hub +├ ƒ /golf/dashboard/travel +├ ƒ /golf/dashboard/whats-new +├ ○ /golf/demo +├ ○ /golf/forgot-password +├ ○ /golf/join +├ ƒ /golf/join/[code] +├ ○ /golf/login +├ ○ /golf/player +├ ○ /golf/reset-password +├ ○ /golf/signup +├ ○ /golf/welcome +├ ○ /help +├ ○ /lifting/coach +├ ƒ /lifting/dashboard +├ ƒ /lifting/dashboard/athletes +├ ƒ /lifting/dashboard/athletes/[athleteId] +├ ƒ /lifting/dashboard/check-ins +├ ƒ /lifting/dashboard/command +├ ƒ /lifting/dashboard/exercises +├ ƒ /lifting/dashboard/groups +├ ƒ /lifting/dashboard/import +├ ƒ /lifting/dashboard/lift +├ ƒ /lifting/dashboard/lift/[sessionId] +├ ƒ /lifting/dashboard/programs +├ ƒ /lifting/dashboard/programs/[programId] +├ ƒ /lifting/dashboard/readiness +├ ƒ /lifting/dashboard/sessions +├ ƒ /lifting/dashboard/sessions/live +├ ƒ /lifting/dashboard/settings +├ ƒ /lifting/dashboard/today +├ ○ /lifting/forgot-password +├ ƒ /lifting/join/[token] +├ ○ /lifting/login +├ ○ /lifting/reset-password +├ ○ /lifting/signup +├ ○ /privacy +├ ○ /products +├ ○ /sitemap.xml +├ ○ /soreness-preview +├ ○ /splash +├ ○ /support +├ ○ /terms +└ ƒ /vizlab + + +ƒ Proxy (Middleware) + +○ (Static) prerendered as static content +ƒ (Dynamic) server-rendered on demand + diff --git a/.cleanup/reports/baseline-lint.txt b/.cleanup/reports/baseline-lint.txt new file mode 100644 index 000000000..adcd6829c --- /dev/null +++ b/.cleanup/reports/baseline-lint.txt @@ -0,0 +1,3403 @@ + +> helmv3@1.0.0 lint +> eslint "src/**/*.{ts,tsx}" --max-warnings 6000 + + +/Users/ricknini/Downloads/helmv3/src/app/about/page.tsx + 332:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 345:19 warning Replace "bg-white/10" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(auth)/complete-signup/CompleteSignupClient.tsx + 101:16 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 126:14 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(auth)/demo/page.tsx + 379:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 380:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 381:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(auth)/forgot-password/page.tsx + 204:21 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 233:19 warning Use from @/components/ui instead of a raw . (W0 token foundation — synthesis §5 rule #1) helm/no-raw-input + 243:21 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 274:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 275:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 276:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(auth)/login/page.tsx + 292:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 293:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 294:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(auth)/reset-password/page.tsx + 235:43 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 255:19 warning Use from @/components/ui instead of a raw . (W0 token foundation — synthesis §5 rule #1) helm/no-raw-input + 265:21 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 281:19 warning Use from @/components/ui instead of a raw . (W0 token foundation — synthesis §5 rule #1) helm/no-raw-input + 289:21 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 337:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 338:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 339:29 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/analytics/loading.tsx + 17:14 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 28:16 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 45:16 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/camps/[id]/page.tsx + 342:19 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/camps/loading.tsx + 5:10 warning Replace "bg-white/70" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/college-interest/loading.tsx + 11:13 warning Replace "bg-white/70" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 25:12 warning Replace "bg-white/70" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/comparisons/loading.tsx + 19:15 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/comparisons/page.tsx + 49:11 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/dev-plan/loading.tsx + 41:15 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/dev-plan/page.tsx + 83:7 warning Replace "bg-white/70" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 260:24 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/dev-plans/[id]/page.tsx + 92:16 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/dev-plans/loading.tsx + 21:15 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + +/Users/ricknini/Downloads/helmv3/src/app/baseball/(dashboard)/dashboard/discover/page.tsx + 346:16 warning Replace "bg-white" with a canonical surface (bg-cream-50 for card-elevated, glass-standard for translucent panels, glass-subtle for filter rails, or a token-backed bg-surface-* utility). (W0 token foundation — synthesis §5) helm/no-arbitrary-bg-white + 446:13 warning Use