renderer at a site. NEVER use
`mcp__claude-in-chrome__*` tools — they are slow, unreliable, and not what this
project uses.
**Server / sidebar / extension internals:** before editing `browse/src/server.ts`,
`extension
ruff format`
- Pre-commit hooks: `uv run pre-commit run --all-files`
**MCPServer Mode:**
The library can run as an MCPserver for integration with Claude Desktop:
```bash
mcp — the Caveman MCPserver (commercial Go core + MIT launcher)
A thin **stdio JSON-RPC** adapter exposing the compression [engine](../engine/CLAUDE.md) as
five MCP tools to any host (Claude Code
silent no-op. `CAVE_SSRF_ALLOWLIST` opts loopback/private hosts back in (local model servers like Ollama; `localhost` as an entry covers 127.0.0.0/8 + ::1); metadata/link-local stay blocked in every mode
fixtures | Test runner: reporters, config, annotations, retries |
| `tests/mcp/` | `import { test, expect } from './fixtures'` | `client`, `server` | MCP tools via `client.callTool()` |
**Decision rule**: Does the test need `browser`/`browserType`/`context` → `tests/library/`. Just
subagent stops
- `skills`: List of skill names to preload into agent context
- `mcpServers`: MCPservers for this subagent (server names or inline configs)
- `hooks`: Lifecycle hooks scoped to this subagent
instance. Test actual queries and schema validation, not mocked DB calls.
- **MCP**: use real `@modelcontextprotocol/sdk` exports for servers, transports, and tool definitions. Mirror real scenarios, don't stub SDK internals
Supabase service role key
DISCORD_BOT_TOKEN # Discord bot token
DISCORD_GUILD_ID # Discord server ID
TRIGGER_SECRET # For manual /trigger endpoint
GA_PROPERTY_ID # GA4 property ID (optional
Serve locally with any static file server
python -m http.server 8000
# or
npx http-server
# Open browser to http://localhost:8000
```
### Component Data Generation
```bash
# From project root - regenerate components.json
graph forget PATH # drop files from the graph
uv run code-review-graph serve # MCPserver (stdio; --http for localhost)
uv run code-review-graph wiki # Markdown wiki
reaches improve only through `remember`'s `self_improvement` — `improve` is deliberately not an advertised MCP tool; the tool set is pinned to remember/recall/forget/cognify_status) (an improve failure after a successful cognify
external account.
Connecting GitHub or another app does not itself require a new MCPserver. Use
an existing HTTP client or the user's requested CLI, such as `gh`. Install
A file Claude Code reads at the start of every session. It holds the commands, conventions and warnings the agent needs for this project.
Where does it go?
At the repository root. Claude Code also reads CLAUDE.md files in subdirectories when it works there.
What should it contain?
Build and test commands, the project's layout, conventions that aren't obvious from the code, and mistakes to avoid. Short files tend to work better than long ones.
CLAUDE.md or AGENTS.md?
Claude Code reads CLAUDE.md; most other agents read AGENTS.md. Many projects keep one and point the other at it.