josh e9b742da79 chore(01-02): add ESLint flat config + boundaries plugin + CORE-10 firewall rule
- New eslint.config.js (flat, ESLint 9) declaring 9 element types:
  the seven Phase-1 firewall directories (sim, render, ui, save,
  content, audio, store) plus the template's app + game.
- One rule, severity error: sim cannot import from render or ui (CORE-10).
- Default posture allow — Phase 1 enforces ONE rule, not closed-by-default.
- src/sim/__test_violation__/ excluded from default lint glob; the rule's
  end-to-end correctness is proven by Task 2's Vitest test, not by 'lint
  exits 0 on clean code'.
- Added typescript-eslint as devDep (parser only — no rule sets) so
  ESLint can parse .ts/.tsx (Espree default cannot). Documented as a
  Plan 02 deviation in 01-02-SUMMARY.md (Rule 3 — Blocking).

Verifies green on the clean codebase: 0 errors, 0 warnings via
'npm run lint'. Stderr notices from boundaries plugin about deprecated
rule name (element-types vs dependencies in v6) and legacy selector
syntax are informational only — they don't count as ESLint warnings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 23:29:09 -04:00
2026-05-08 21:37:11 -04:00
S
Description
No description provided
1.4 MiB
Languages
TypeScript 91.2%
JavaScript 6.7%
Ink 1.8%
CSS 0.2%
HTML 0.1%