diff --git a/CLAUDE.md b/CLAUDE.md index 5769fd4..9251335 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,79 +2,76 @@ ## Project Overview -The Nexus is Timmy's canonical 3D/home-world repo. -Its intended role is: -- local-first training ground for Timmy -- wizardly visualization surface for the system +The Nexus is a Three.js environment — Timmy's sovereign home in 3D space. It serves as the central hub for all portals to other worlds. Stack: vanilla JS ES modules, Three.js 0.183, no bundler. -## Current Repo Truth +## Architecture -Do not describe this repo as a live browser app on `main`. +``` +index.html # Entry point: HUD, chat panel, loading screen, live-reload script +style.css # Design system: dark space theme, holographic panels +app.js # Three.js scene, shaders, controls, game loop (~all logic) +``` -Current `main` does not ship the old root frontend files: -- `index.html` -- `app.js` -- `style.css` -- `package.json` +No build step. Served as static files. Import maps in `index.html` handle Three.js resolution. -A clean checkout of current `main` serves a directory listing if you static-serve the repo root. -That is world-state truth. +## Conventions -The live browser shell people remember exists in legacy form at: -- `/Users/apayne/the-matrix` +- **ES modules only** — no CommonJS, no bundler +- **Single-file app** — logic lives in `app.js`; don't split without good reason +- **Color palette** — defined in `NEXUS.colors` at top of `app.js` +- **Conventional commits**: `feat:`, `fix:`, `refactor:`, `test:`, `chore:` +- **Branch naming**: `claude/issue-{N}` (e.g. `claude/issue-5`) +- **One PR at a time** — wait for merge-bot before opening the next -That legacy app is source material for migration, not a second canonical repo. +## Validation (merge-bot checks) -Timmy_Foundation/the-nexus is the only canonical 3D repo. +The `nexus-merge-bot.sh` validates PRs before auto-merge: -See: -- `LEGACY_MATRIX_AUDIT.md` -- issues `#684`, `#685`, `#686`, `#687` +1. HTML validation — `index.html` must be valid HTML +2. JS syntax — `node --check app.js` must pass +3. JSON validation — any `.json` files must parse +4. File size budget — JS files must be < 500 KB -## Architecture (current main) +**Always run `node --check app.js` before committing.** -Current repo contents are centered on: -- `nexus/` — Python cognition / heartbeat components -- `server.py` — local websocket bridge -- `portals.json`, `vision.json` — data/config artifacts -- deployment/docs files +## Sequential Build Order — Nexus v1 -Do not tell contributors to run Vite or edit a nonexistent root frontend on current `main`. -If browser/UI work is being restored, it must happen through the migration backlog and land back here. +Issues must be addressed one at a time. Only one PR open at a time. -## Hard Rules +| # | Issue | Status | +|---|-------|--------| +| 1 | #4 — Three.js scene foundation (lighting, camera, navigation) | ✅ done | +| 2 | #5 — Portal system — YAML-driven registry | pending | +| 3 | #6 — Batcave terminal — workshop integration in 3D | pending | +| 4 | #9 — Visitor presence — live count + Timmy greeting | pending | +| 5 | #8 — Agent idle behaviors in 3D world | pending | +| 6 | #10 — Kimi & Perplexity as visible workshop agents | pending | +| 7 | #11 — Tower Log — narrative event feed | pending | +| 8 | #12 — NIP-07 visitor identity in the workshop | pending | +| 9 | #13 — Timmy Nostr identity, zap-out, vouching | pending | +| 10 | #14 — PWA manifest + service worker | pending | +| 11 | #15 — Edge intelligence — browser model + silent Nostr signing | pending | +| 12 | #16 — Session power meter — 3D balance visualizer | pending | +| 13 | #18 — Unified memory graph & sovereignty loop visualization | pending | -1. One canonical 3D repo only: `Timmy_Foundation/the-nexus` -2. No parallel evolution of `/Users/apayne/the-matrix` as if it were the product -3. Rescue useful legacy Matrix work by auditing and migrating it here -4. Telemetry and durable truth flow through Hermes harness -5. OpenClaw remains a sidecar, not the governing authority -6. Before claiming visual validation, prove the app being viewed actually comes from current `the-nexus` +## PR Rules -## Validation Rule +- Base every PR on latest `main` +- Squash merge only +- **Do NOT merge manually** — merge-bot handles merges +- If merge-bot comments "CONFLICT": rebase onto `main` and force-push your branch +- Include `Fixes #N` or `Refs #N` in commit message -If you are asked to visually validate Nexus: -- prove the tested app comes from a clean checkout/worktree of `Timmy_Foundation/the-nexus` -- if current `main` only serves a directory listing or otherwise lacks the browser world, stop calling it visually validated -- pivot to migration audit and issue triage instead of pretending the world still exists +## Running Locally -## Migration Priorities +```bash +npx serve . -l 3000 +# open http://localhost:3000 +``` -1. `#684` — docs truth -2. `#685` — legacy Matrix preservation audit -3. `#686` — browser smoke / visual validation rebuild -4. `#687` — restore wizardly local-first visual shell -5. then continue portal/gameplay work (`#672`, `#673`, `#674`, `#675`) +## Gitea API -## Legacy Matrix rescue targets - -The old Matrix contains real quality work worth auditing: -- visitor movement and embodiment -- agent presence / bark / chat systems -- transcript logging -- ambient world systems -- satflow / economy visualization -- browser smoke tests and production build discipline - -Preserve the good work. -Do not preserve stale assumptions or fake architecture. +``` +Base URL: http://143.198.27.163:3000/api/v1 +Repo: Timmy_Foundation/the-nexus +```