docs(#260): rewrite CLAUDE.md against the app that actually exists - #261
Merged
Conversation
CLAUDE.md calls itself the authoritative project reference, read at the start of every session. It was describing a shell removed months ago, which is not a cosmetic problem: several #234 children were written from its picture of the app and target files no route reaches (#236, and the plan half of #245). - **"There are no automated tests" was the most damaging line.** There are ~51 test files and 500+ tests behind `npm test`, and CI runs them (install · typecheck · test · export). An agent trusting that sentence skips the gate that guards the whole payload contract. Records the RN-free constraint too: tests run under `tsx --test`, so a tested module must not import react-native — the reason pure logic belongs in `src/lib/**`. - **Folder structure** rewritten from the real tree. The old one invented eight files (`find`/`edit`/`git`/`run`/`files`/`settings` tabs, `(live)`, `(fleet)`, `ChatScreen`) and omitted everything that now carries the app — `tunnel/`, `mirror/`, `pages/`, `kit/`, `graph/`, `sessions/`, `alerts/`. - **What This App Is** reframed: a read-only desktop mirror plus session chat, a local planner, and a surviving repo-client half — not the AI-first IDE the old text promised. Adds the demo-data note (#250) so first-run behaviour is not a mystery. - **Key Data Flows** now documents the mirror path (store_state → MirrorContext → page selector → component), the SEPARATE plan_state/plan_event live-plan path, and the two-layer contract parity harness including the PENDING_DOMAINS → DECODERS rule. - **Known Issues** replaced. Every previous entry was already fixed — duplicate IconBtn/Surface, ChatScreen, ThemeContext, llm.ts, gitClient.ts, the duplicated underscore workflows — which trained the reader to skip the section that should hold the real traps. It now leads with the 24 orphaned source files and the grep that finds them, plus the live traps: RN-free tests, designPage.ts not being plain ASCII, CSS colour values RN cannot parse, and syncing against base-studio-code `develop` rather than `main`. - Agent tool list corrected: ten tools, not the five listed. Every path referenced in the new file was verified to exist. Closes #260 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAPZC6xEyCrH9qSKUKLQdy
📦 Preview build readyArtifact: Built from commit bda2bb4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #260.
CLAUDE.mdcalls itself "the authoritative project reference for the AI agent — read it at the start of any new session before touching code." It was describing a shell that has not existed for months.That is not cosmetic. Several #234 children were written from its picture of the app and target files no route reaches — see #236, and the plan half of #245, both invalidated by
54c13fb(2026-07-25).What changed
1. "There are no automated tests" — the most damaging line. There are ~51 test files and 500+ tests behind
npm test, and CI runs them (install→typecheck·test·export). An agent trusting that sentence skips the gate guarding the entire payload contract. The new text also records the RN-free constraint: tests run undertsx --test, so a tested module must not importreact-native— the reason pure logic belongs insrc/lib/**.2. Folder structure rewritten from the real tree. The old one invented eight files —
find/edit/git/run/files/settingstabs,(live),(fleet),ChatScreen— and omitted everything that now carries the app:tunnel/,mirror/,pages/,kit/,graph/,sessions/,alerts/.3. "What This App Is" reframed as a read-only desktop mirror plus session chat, a local planner, and a surviving repo-client half — not the AI-first IDE the old text promised. Adds the demo-data note (#250) so first-run behaviour is not a mystery.
4. Key Data Flows now documents:
store_state→MirrorContext→ page selector → component, including chunk reassembly;plan_state/plan_eventlive-plan path, explicitly flagged so nobody confuses it with theplanstore domain again;PENDING_DOMAINSintoDECODERSis the definition of done for its issue.5. Known Issues replaced. Every previous entry was already fixed — duplicate
IconBtn/Surface,ChatScreen,ThemeContext,llm.ts,gitClient.ts, the duplicated underscore workflows. A section that is 100% noise trains the reader to skip the section that should hold the real traps.It now leads with the 24 orphaned source files and the grep that finds them, then the live traps: RN-free tests,
designPage.tsnot being plain ASCII (grepreports it binary), CSS colour values RN cannot parse, and syncing against base-studio-codedeveloprather thanmain.6. Agent tool list corrected — ten tools, not the five listed.
Verification
Every
src/,app/, and.github/path referenced in the new file was checked to exist. The orphan list comes from an import-graph walk rooted at everyapp/route.Docs-only change; no source touched.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RAPZC6xEyCrH9qSKUKLQdy