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
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
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
line (`showTools`): ◐ Edit: auth.ts | ✓ Read ×3
- Skills/MCP lines (`showSkills` / `showMcp`): active Skill invocations and MCPservers; when the Skills line is enabled, Skill-tool entries are suppressed from the tools
typecheck # tsc --noEmit (npm run lint is an alias)
# Running the server
npm start # MCPserver in stdio mode
npm run start:http # MCPserver in HTTP mode
requires auth)
uv run notebooklm --help # CLI
```
Always install the full extras set (`mcp`, `server`, `impersonate`); omitting them causes adapter suites to skip silently, masking errors and failing
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.