60f39cdcbb
~/.claude/CLAUDE.md was in no git repo despite heavy editing, and ~/.codex/AGENTS.md was a hand-synced duplicate of it. Both now live in entry/ and import the shared fragments; RTK.md moves to claude-md/ so Codex stops carrying its own copy. Claude's imports are ~/-anchored so they resolve through the symlink. Also drops kt from the comment rule scope.
2.7 KiB
2.7 KiB
Global Context
Environment
- Root password:
$SANDBOX_PASSWORD, already exported from~/.env.claudein every shell. Useprintf '%s\n' "$SANDBOX_PASSWORD" | sudo -S <command>. Never echo or print the value. - Can install packages as needed using sudo
- This machine communicates with external services — treat it as a networked environment
- This is a VM accessed from other devices. When starting any dev server / web service / preview, always bind to
0.0.0.0(e.g.vite --host 0.0.0.0,--host,HOST=0.0.0.0) — never localhost-only — so it's reachable. Report the LAN-IP URL, not thelocalhostone.
Persistent Configuration
- Environment file:
~/.env.claude(auto-loaded in shell sessions) - For Claude sessions, source it manually if needed:
source ~/.env.claude
@~/.claude/writing.md
@~/.claude/operating.md
Crit reviews
crit live/crit previewwrite comments to a local review FILE, not an API — there is NO notification andcrit fetchdoes NOT apply (it needs a priorcrit share)./api/commentson the daemon is the WRONG place (stays[]). If I launched the crit server myself, I must poll the review file myself.- Whenever I start a
crit live/crit previewreview for the user, immediately arm the watcher so they don't have to babysit it:~/.claude/scripts/crit-watch.sh— run it via the Bash tool withrun_in_background: true. It auto-finds the active live/preview review file (~/.crit/reviews/<id>/review.json), baselines existing comment IDs, and re-invokes me with any NEW comments once they settle. When it fires: read the comments, address them, reply to each viacrit comment --reply-to <id> <body>, then re-arm the watcher. Keep doing this until the user says they're done. - Review file shape: comments live under
.files["<path>"].comments[](each hasid,body,dom_anchor.outer_html,pin_number).crit statusprints the file path + unresolved count. Note multiple review files can exist (one percritinvocation); the watcher picks the most-recently-updated live/preview one. crit live <url>serves TWO ports: the app proxy (target port + 1, e.g.:41701) with crit's overlay injected, and the review dashboard at:<api>/live(e.g.:41700/live) which also renders the proxied app. The user comments on the/livedashboard (highlight an element, presst).- crit injects
<script data-crit-route-announcer>into the proxied app but does NOT forward the query string — so a?flagdev toggle won't reach the app under crit; detect the injected marker instead. - For GitHub PR reviews use
crit pull(comments live on GitHub); for shared web reviews usecrit fetchaftercrit share.
@~/.claude/RTK.md