agentleFS
RoentekRoentek/Claude_Code_Boilerplate_Framework/CLAUDE.md

Claude_Code_Boilerplate_Framework

CLAUDE.md4 starsChanged 6 months agoMITView on GitHub

Defines how we work, not what we're building. If a rule doesn't change behavior, it doesn't belong here. Global defaults: ~/.claude/CLAUDE.md — communication style, platform (Windows/PowerShell), Python toolchain (uv), git conventions. Loaded before this file every session; project rules override.

  • Pipes a download into a shell
  • Reads credentials
  • Installs packages
  • Commits and pushes

The file

We split this CLAUDE.md into the rules it gives an agent

3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Update memory files as you go, not at session end.

    line 610
  2. Very specific:

    Maintenance: Run /compact-memory monthly (or when memory-sessions.md exceeds ~200 lines) to compress old entries, prune obsolete decisions, …

    line 619
  3. Very specific:

    Default mattpocock/skills label vocabulary — no overrides.

    line 633

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

Claude-Code Boilerplate Framework

Defines how we work, not what we're building. If a rule doesn't change behavior, it doesn't belong here.

Global defaults: ~/.claude/CLAUDE.md — communication style, platform (Windows/PowerShell), Python toolchain (uv), git conventions. Loaded before this file every session; project rules override.


What Are You Building?

BuildingStart WithKey Rules
Trigger.dev automationworkflows/ → tools/trigger-workflow-builder.md, trigger-api-reference.md
Frontend UI/frontend-design skill → ui-ux-pro-max design systemfrontend-instructions.md
WebGPU / Three.js app/webgpu-threejs-tsl skillThree.js r171+ with WebGPU renderer, TSL shaders
Spline 3D scene integration/spline-3d skillEmbed Spline scenes in React or vanilla HTML; includes perf guide + examples
Claude AI agentagent-sdk-dev plugin → .claude/agents/agent-instructions.md
Autonomous ML research (overnight experiments)/autoresearch skill → tools/autoresearch/Modify GPT training code, run 5-min experiments, keep improvements — ~100 runs while you sleep
AI-native CLI for existing software/cli-anything pluginGenerate CLIs for GIMP, Blender, LibreOffice, Audacity, etc. — 50+ apps supported
Slash-command skill~/.claude/skills/<name>/SKILL.mdSkills must be subdirectory + SKILL.md; setup.sh auto-installs
MCP server integration.mcp.json + .claude/settings.local.jsonCopy settings.local.json.example → settings.local.json, fill keys, restart
Supabase local dev (migrations, local stack, type gen, edge functions)supabase CLI (primary) → supabase-mcp (in-context queries)supabase login once; supabase start needs Docker; CLI-first for migrations + type gen
Claude API / SDK app/claude-api skillScaffolds Anthropic SDK boilerplate
NotebookLM research / podcasts/notebooklm skill → notebooklm CLICreate notebooks, add sources, generate podcasts/videos/quizzes/mind maps/slides — CLI first; notebooklm-mcp as backup
Gmail / Drive / Calendar (CLI)/gw skill → gw CLI (primary) → google-workspace-mcp (fallback)Send mail, read threads, upload/share Drive files, manage events — CLI first; gw auth login once; MCP for Docs/Sheets/Forms/bulk ops
n8n workflown8n-mcp toolsSearch nodes, validate, build via MCP
Voice AI (Vapi)vapi-mcp toolsCreate assistants, calls, phone numbers
Browser automation (real Chrome, CDP)/browser-harness skill → browser-harness CLIDirect CDP control of your real Chrome — coordinate clicks, screenshots, JS eval; --doctor for setup; cloud via browser-harness auth login
Browser automation (headless/scripted)/playwright skill → tools/playwright.jsworkflows/browser-automation.md — CLI first; playwright-mcp as backup
Web scraping (single page / crawl)/firecrawl skill → firecrawl CLIworkflows/web-scraping.md — CLI first; firecrawl-mcp backup for batch/schema
Web scraping (large-scale / actors)/apify-ultimate-scraper skill → apify CLI + MCP130+ curated Actors for Instagram, TikTok, LinkedIn, Google, Reddit, Amazon, etc. — skill routes to CLI or MCP based on task
Apify Actor development/apify-actor-development skillCreate, debug, deploy Actors in JS/TS/Python with bundled config schemas
Convert code to Apify Actor/apify-actorization skillTransform existing scripts into Actors (JS/TS SDK, Python async, CLI wrappers)
Generate Actor output schemas/apify-generate-output-schema skillAuto-generate dataset_schema.json, output_schema.json, key_value_store_schema.json from Actor source
Vector search / RAGpinecone-mcp toolsUpsert, search, rerank records
Graph-based RAG / knowledge extraction/lightrag skill → tools/lightrag-plus/Knowledge graph RAG, entity-relationship Q&A, multimodal docs — Web UI + REST API
Obsidian wiki / AI second brain (persistent cross-project knowledge base)/wiki skill → claude-obsidian pluginVault lives at vault/ in repo root — wiki/ gittracked (shared), private/ gitignored (per-user). MCPVault gives Claude filesystem access without Obsidian running. Karpathy LLM Wiki pattern; hybrid BM25+cosine retrieval; methodology modes
UI component searchmonet-mcp toolsSearch landing page components, get React/TS code
UI component inspiration / SVG logos/21st-magic skill → 21st-dev-magic MCPSearch UI components, SVG brand logos, generate variants — requires TWENTYFIRST_DEV_MAGIC_API_KEY
AI image/video (cinematic, managed)/higgsfield:generate skill → higgsfield CLI (primary) → higgsfield MCP (fallback)Browser OAuth, no API key; cinematic video, product photos, Soul ID, marketing studio — CLI first
AI image/video/audio (specific model)/kie-ai skill → kie-cli CLI (primary) → kie-ai MCP (fallback)Midjourney, Sora, ElevenLabs, Kling, Suno, etc. CLI = zero context tokens; auto-switches to MCP if needed
Generate image/video, model-agnostic (cost-routed)/generate skill → generations/ folderAuto-picks cheapest capable model (Nano Banana 2 Lite / Kling 3.0) or advanced tier (GPT Image 2 / Veo 3.1 / Seedance 2.0 Fast) per task; runs on kie-cli; saves flat to generations/ with sidecar .json log + gallery at localhost:3737
Right-size LLM to hardware / model recommendations/llmfit skill → llmfit CLI (primary) → llmfit-mcp (fallback)Detects GPU/CPU/RAM, scores models for fit/speed/quality, downloads GGUF, runs inference — CLI first
Self-evolving AI skills / collective intelligence/openspace skill → openspace CLISkills that auto-fix, auto-improve, auto-learn; 46% token reduction; cloud skill sharing — CLI first; MCP backup
AI spend tracking / token cost analysis/codeburn skill → codeburn CLIToken + dollar breakdown by task, model, tool, project across 31 AI tools — codeburn for TUI dashboard, codeburn status for one-liner
Extract design tokens from any website/extract-design skill → designlang CLI + designlang-mcpDTCG tokens, Tailwind config, shadcn theme, Figma vars, CSS vars, WCAG scores — plugin disabled (source repo deleted); CLI + MCP still active
Query codebase as knowledge graph/graphify skill → graphify CLI + graphify-mcpAST-parse 25+ languages → queryable graph; answers "what calls X?", "what depends on Y?"; run /graphify . once per repo to build; MCP for persistent tool access
GitHub operations (issues, PRs, releases, repos)gh CLI (primary) → github plugin MCP (fallback)gh issue list, gh pr create, gh repo clone, gh release create — CLI-first; plugin MCP for reading private repo content in-context
Deploy to Vercel / manage projects/vercel skill → vercel CLI (primary) → vercel-mcp (fallback)Deploy, preview, env vars, domains, logs — vercel login once; MCP needs VERCEL_TOKEN
Algorithmic trading / market data/alpaca skill → alpaca CLI (primary) → alpaca MCP (fallback)Trade stocks/crypto, query live data, manage positions — CLI first (alpaca order/position/data); alpaca profile login once; paper mode by default — set ALPACA_LIVE_TRADE=true for live
Stripe payments / webhooks / billing/stripe skill → stripe CLI (primary) → stripe-mcp (fallback)Webhooks: stripe listen --forward-to localhost:3000/webhook; test events: stripe trigger payment_intent.succeeded; stripe login once
Watch / analyze video content/watch plugin → claude-videoAnalyze YouTube, TikTok, Vimeo, local video — extracts frames + transcript; /watch <url> <question>; needs ffmpeg + yt-dlp
Process / manipulate video files (trim, transcode, thumbnail, extract audio, concat)node tools/ffmpeg.jsAll output JSON; requires system ffmpeg (auto-installed via sys-ffmpeg.sh); see /ffmpeg skill
Validate / stress-test an idea before building/roast skill5-persona adversarial council attacks from every angle → GO / RESHAPE / KILL verdict + cheapest 48-hour test. Auto-invoke when user says "I'm thinking of building X", "what do you think of this idea", "should I build this", or "pressure-test this" — run before any significant build starts
End a session / hand off to a fresh context/session-handoff skillStructured handoff (decisions, files, running state, deferrals) so /clear loses nothing. Auto-invoke when user says "wrap up", "hand off", "summarize before I clear", or context exceeds ~250K tokens

Key Commands

# Trigger.dev — start local dev runner
npx trigger.dev@latest dev

# Re-run first-time setup (e.g. fresh clone)
rm -f .claude/.setup-complete && bash .claude/hooks/setup.sh

# Install a single component (modular — no marker needed)
bash .claude/hooks/install/cli-firecrawl.sh      # example: just firecrawl CLI
bash .claude/hooks/install/plugin-caveman.sh     # example: just caveman plugin
bash .claude/hooks/install/tool-lightrag.sh      # example: just LightRAG

# Reinstall context-monitor statusline
npx claude-code-templates@latest --setting statusline/context-monitor

# Browser automation (WAT Tools layer example)
node tools/playwright.js screenshot https://example.com

# FFmpeg — video/audio processing
node tools/ffmpeg.js probe video.mp4                              # inspect metadata
node tools/ffmpeg.js trim input.mp4 --start 00:00:30 --end 00:01:00
node tools/ffmpeg.js thumbnail input.mp4 --at 00:00:10 --width 1280
node tools/ffmpeg.js extract-audio input.mp4 --format mp3
node tools/ffmpeg.js transcode input.avi --format mp4 --resolution 1280x720
node tools/ffmpeg.js concat a.mp4 b.mp4 --output merged.mp4

# /generate — AI image/video generation (Kie AI), output gallery
node generations/gallery-server.mjs                # → http://localhost:3737 (or VS Code Run & Debug → "Generate Gallery")

# Supabase CLI — local dev, migrations, type generation
supabase login                                                     # one-time browser OAuth
supabase init                                                      # init project (first time)
supabase start                                                     # start local stack (Docker required)
supabase db push                                                   # push migrations to remote
supabase migration new <name>                                      # create a new migration file
supabase gen types typescript --project-id <id> > types/db.ts     # generate TypeScript types
supabase functions deploy <function-name>                          # deploy edge function
supabase stop                                                      # stop local stack

# NotebookLM — authenticate and create research notebook
notebooklm login
notebooklm create "Research Project" --use
notebooklm source add --url "https://example.com"
notebooklm chat ask "Summarize this"
notebooklm audio create && notebooklm audio status <task-id>

# Upgrade NotebookLM CLI
uv tool upgrade notebooklm-py

# AutoResearch — autonomous ML experiments
cd tools/autoresearch
uv run prepare.py              # One-time data prep (~2 min)
uv run train.py                # Test baseline run (~5 min)
# Then use /autoresearch skill to start autonomous research loop

# LightRAG — graph-based RAG (see LightRAG Server Setup section below for full start options)
cd tools/lightrag-plus && UV_NATIVE_TLS=true uv sync --all-extras && cp .env.example .env  # First-time setup

# OpenSpace — self-evolving skill system (CLI first, MCP backup)
# Git submodule — auto-syncs with upstream every session via openspace-sync.sh hook
cd tools/openspace
uv pip install -e ".[windows]"             # Install OpenSpace (done by setup.sh; use linux/macos on those platforms)

# CLI (primary — token-free execution)
openspace --query "Create a monitoring dashboard for Docker containers"
openspace-download-skill <skill_id>      # Download from cloud
openspace-upload-skill /path/to/skill/dir # Upload to cloud (requires OPENSPACE_API_KEY)

# Seed local skills into the dashboard tree (SQLite) without a task run
# Lean default = repo .claude/skills + tools/openspace/showcase/skills. Seeder lives in tools/openspace_overrides/ (OUTSIDE the submodule).
tools/openspace/.venv/Scripts/python.exe tools/openspace_overrides/seed_openspace_skills.py
tools/openspace/.venv/Scripts/python.exe tools/openspace_overrides/seed_openspace_skills.py --include-global  # + global-only ~/.claude/skills (dedups vs repo by name)
# Runtime discovery dir is OPENSPACE_HOST_SKILL_DIRS (NATIVE paths — /c/... git-bash paths fail on Windows Python)

# MCP (backup — use when CLI output insufficient or need structured results)
# Search: mcp__openspace__search_skills (no CLI equivalent)
# Use mcp__openspace__* tools via ToolSearch when CLI doesn't meet needs

# Submodule updates (automatic via stop hook, or manual)
git submodule update --remote tools/openspace  # Manual: pull latest from upstream

# Graphify — one-time per repo (must build before /graphify or graphify-mcp work)
graphify .                                          # Parse codebase → graphify-out/graph.json
graphify query "what calls authMiddleware?"         # Query without MCP

# Session management
/roast <idea>                     # Pressure-test idea before building (5-persona council)
/session-handoff                  # Structured wrap-up before /clear — chat-only

# Caveman — token compression (75% reduction on responses, 46% on memory files)
/caveman                          # Activate compression mode (lite/full/ultra)
/caveman-stats                    # Show session token usage + savings
/caveman-compress memory-*.md     # Shrink memory files by ~46%
/caveman-commit                   # Terse commit messages (≤50 chars)
/caveman-review                   # Single-line PR comments
/cavecrew                         # Compressed subagents (60% fewer tokens)

# Dashboard (optional — requires Node.js ≥ 20)
# Press F5 → "OpenSpace Dashboard (Full Stack)" — or see tools/openspace/README.md

MCP credential gotcha: .mcp.json ${VAR} substitution reads from the OS process environment, not .env. On a fresh machine, run setx VAR_NAME "value" (Windows) or export VAR_NAME=value (Unix) in your terminal before starting Claude Code.


First-Time Setup

# 1. Install dependencies
npm install

# 2. Run initial setup (hooks, skills, permissions, CLI tools, git submodules)
bash .claude/hooks/setup.sh
# Installs: marketplace plugins (ui-ux-pro-max, impeccable, codex, gemini, cli-anything, caveman, context-mode, claude-mem, claude-video, ponytail, mattpocock-skills)
# Step 7a:  Apify agent skills (5 skills from apify/agent-skills marketplace) with 30-sec timeout protection; displays manual /plugin install commands if timeout/failure occurs
# Step 7b:  Caveman plugin (token compression — 75% response reduction, 46% memory file reduction)
# Step 7c:  Context Mode plugin (98% context reduction via sandboxing; statusline shows session/total savings + efficiency %); auto-installs better-sqlite3 with NODE_TLS_REJECT_UNAUTHORIZED=0 (corporate SSL proxy fix) for FTS5 session continuity
# Step 7d-pre: Bun runtime (required by claude-mem worker for web viewer + MCP search; also 3-5x faster context-mode sandbox); Windows: powershell -c "irm bun.sh/install.ps1 | iex"; Unix: curl -fsSL https://bun.sh/install | bash
# Step 7d:  Claude-Mem plugin (persistent memory across sessions; context survives session end/reconnect; web viewer at http://localhost:37777; requires Bun)
# Step 7e:  claude-obsidian plugin (Obsidian AI second brain — Karpathy LLM Wiki pattern; run /wiki to scaffold vault after install)
# Step 7f:  higgsfield plugin (CLI + plugin from higgsfield-ai/skills; installs @higgsfield/cli globally + higgsfield@higgsfield-ai plugin; auth: higgsfield auth login)
# Step 8:   Project skills with cross-platform path detection (Windows $USERPROFILE fallback, Unix-style path conversion); creates destination directory; verifies each copy succeeded
# Step 9:   npm install (all package.json deps: react, react-dom, @types/react, @splinetool/react-spline, @splinetool/runtime, Playwright) + Playwright Chromium browser
# Step 10:  skillui, firecrawl-cli, codex-cli, gemini-cli, notebooklm-py[browser], codeburn, browser-harness, designlang, kie-cli (@felores/kie-cli)
# Step 11:  alpaca CLI (go install or brew — see cli-alpaca.sh; auth: alpaca profile login or env vars)
# Step 11:  autoresearch dependencies in tools/autoresearch/ (via uv sync)
# Step 12:  lightrag dependencies in tools/lightrag-plus/ (via uv sync); auto-creates tools/lightrag-plus/.env from .env.example if missing (so EMBEDDING_BINDING_HOST is set on first boot); auto-runs provision.py if .env exists (idempotent — skips if no credentials)
# Step 12a: Ollama install + llama3.2 pull (local LLM for LightRAG; Windows: shows winget command, Unix: auto-installs)
# Step 13:  openspace submodule initialization + uv pip install -e ".[<platform>]" (windows/linux/macos extras; avoids uv sync cross-version pyatspi resolution failure) + fastembed (local BAAI/bge-small-en-v1.5 fallback for semantic tool search) + dashboard frontend npm install + npm run build (builds dist/ so backend at port 3789 serves full UI immediately on fresh clone) + .env port alignment (3888 → 3789 to match package.json)
# Step 14:  Obsidian app (winget/brew/flatpak — skips if already installed), vault/ scaffold (private/ dirs + git init — skips if vault already exists), MCPVault MCP registered at user scope (filesystem-based, no Obsidian app required for Claude access)

# 3. Configure MCP credentials
cp .claude/settings.local.json.example .claude/settings.local.json
# Edit settings.local.json and add your API keys (see __activation_guide inside)

# 4. Add API keys to .env
cp .env.example .env
# Edit .env and fill in required keys
# Note: OpenSpace paths (OPENSPACE_HOST_SKILL_DIRS, OPENSPACE_WORKSPACE) are
# auto-configured by setup.sh for your platform — no manual editing needed

# 5. Restart Claude Code to activate MCP servers

First run check:

# If setup.sh was already run, you'll see:
cat .claude/.setup-complete

Core Philosophy: WAT Framework

Workflows → Agents (Claude) → Tools

AI chained through 5 steps at 90% accuracy = 59% success. Offload execution to deterministic scripts in tools/; keep Claude focused on orchestration. Full details: agent-instructions.md


Project Structure

CLAUDE.md                     ← You are here (routing only)
.claude/
  rules/                      ← Auto-loaded every session (all .md files)
  agents/                     ← Custom sub-agent definitions
  skills/                     ← Project skills (<name>/SKILL.md) — setup.sh installs to ~/.claude/skills/
  hooks/                      ← Lifecycle shell scripts (Stop, PostToolUse, pre-commit)
    install/                  ← Modular install scripts — one per plugin/CLI/tool/skill; run standalone or via setup.sh
      lib.sh                  ← Shared helpers (_timeout, _is_windows, _user_home, _install_plugin, _install_skill)
      sys-*.sh                ← System prerequisites (python, node, uvx, bun, env, npm-deps, pre-commit, github-cli)
      plugin-*.sh             ← Claude plugins (ui-ux-pro-max, impeccable, caveman, context-mode, claude-mem, claude-video…)
      skill-apify-*.sh        ← Apify marketplace skills (ultimate-scraper, actor-development, actorization…)
      skills-project.sh       ← Copies .claude/skills/* → ~/.claude/skills/
      cli-*.sh                ← Global CLI tools (firecrawl, codex, gemini, notebooklm, codeburn, browser-harness, kie…)
      tool-*.sh               ← Heavy tools (autoresearch, lightrag, ollama, openspace, graphify)
      auth-reminders.sh       ← Prints one-time manual auth steps (NotebookLM, Trigger, Google, GitHub…)
  scripts/                    ← Utility scripts (statusline, context monitor)
  docs/                       ← Reference docs
  settings.local.json         ← Machine-local credentials + permissions (gitignored)
  settings.local.json.example ← Template: all keys cleared + activation guide per MCP server
.mcp.json                     ← MCP server definitions (version-controlled)
.env / .env.example           ← API keys (gitignored — never commit)
tools/                        ← Deterministic execution scripts (Python/Node)
  playwright.js               ← Browser automation CLI wrapper
  ffmpeg.js                   ← FFmpeg video/audio processing CLI wrapper
  autoresearch/               ← Autonomous ML research (prepare.py, train.py, program.md)
  lightrag-plus/              ← LightRAG Plus (graph-based RAG with multimodal + multi-backend support)
    src/                      ← Plus implementation
      config.py               ← Environment config + feature flags
      lightrag_plus.py        ← Main wrapper class
      embedders/              ← OpenAI (text-only) + Gemini (multimodal) embeddings
      adapters/               ← Supabase + Pinecone vector mirrors (optional)
      ingestors/              ← Multimodal preprocessing (images, video, audio)
    schema/                   ← Backend setup scripts
      supabase_schema.sql     ← Supabase table definitions
    provision.py              ← Auto-provision Supabase schema + Pinecone index (reads .env flags, idempotent)
    check_update.py           ← Check/apply lightrag-hku updates (PyPI diff, pin bump, verify, smoke test)
    setup_backends.py         ← Backend connection validation script
    pyproject.toml            ← Dependencies (lightrag-hku + server + Plus deps)
    uv.lock                   ← Dependency lockfile
    .python-version           ← Pins 3.12 (newer Python has no pyiceberg wheel — would need MSVC to build from source)
    README.md                 ← Full LightRAG Plus documentation
    .env                      ← Server config + API keys (gitignored)
    .env.example              ← Configuration template with all options
    .gitignore                ← Excludes .env, logs, rag_storage, build artifacts
    tests/                    ← Integration tests (35 tests, 7 backend scenarios)
      conftest.py             ← SSL + env fixtures
      test_integration.py     ← Parametrized backend tests
      fixtures/               ← Sample media files
    start_server.bat          ← Windows quick launcher
    .venv/                    ← Virtual environment (gitignored)
    rag_storage/              ← Knowledge graph data (gitignored, auto-created)
  openspace_overrides/        ← ALL non-submodule OpenSpace wrappers/patches live here (survives `git submodule update --remote`)
    seed_openspace_skills.py  ← Seeds local skills into the OpenSpace dashboard tree (repo + showcase; --include-global optional)
    dashboard_server_patched.py ← Runtime monkeypatch entrypoint for openspace.entrypoints.dashboard.server (fixes bugs w/o editing the submodule)
  openspace/                  ← Self-evolving skill system (git submodule — auto-syncs with upstream)
    openspace/                ← Core Python package
    pyproject.toml            ← Dependencies (litellm, anthropic, openai, etc.)
    README.md                 ← Full OpenSpace documentation
    frontend/                 ← Dashboard UI (optional, requires Node.js ≥ 20)
    gdpval_bench/             ← Benchmark experiments & results
    showcase/                 ← Example projects built with OpenSpace
    .openspace/               ← Skill database + embeddings cache
    logs/                     ← Execution logs & recordings
workflows/                    ← Markdown SOPs defining automation tasks
src/trigger/                  ← Trigger.dev TypeScript task files
brand_assets/                 ← Logos, color guides, design tokens
docs/                         ← Project-level documentation
generations/                   ← Media library for /generate — flat output + gallery
  README.md                    ← Layout, gallery server usage, sidecar log format
  gallery.html                 ← Gallery page (served, not opened as file://)
  gallery-server.mjs           ← Zero-dep Node server: GET /api/media + static file serving (localhost:3737)
  styles.json                  ← Reusable style presets (name, prompt, refs) — editable via gallery Styles panel
  refs/                        ← Reference images (logos, faces, style shots) passed into API calls
  {name}.{ext} + {name}.json   ← Generated media, flat, no subfolders — each with a sidecar log
vault/                        ← Obsidian wiki vault (dual-layer)
  wiki/                       ← SHARED: gittracked — boilerplate architecture, integrations, ADRs
  private/                    ← USER: gitignored — sessions, projects, agent logs (per-user)
  .raw/                       ← gitignored — source drops for ingestion
  CLAUDE.md                   ← vault schema and cross-project referencing rules
.tmp/                         ← Scratch space — disposable

Plugins (Enabled)

PluginUse When
frontend-designBuilding any UI — always invoke before writing frontend code
ui-ux-pro-maxEvery frontend task — run --design-system before writing any UI code
agent-sdk-devCreating custom Claude sub-agents
claude-code-setupBootstrapping a new Claude Code project
claude-md-managementRefactoring or generating CLAUDE.md files
playgroundTesting prompts and tool chains without side effects
superpowersAny non-trivial feature or fix — triggers automatically based on context
skill-creatorBuilding or refining slash-command skills
impeccableFrontend critique/polish/audit — 23 commands + anti-pattern detection
githubReading private repo content in-context, reviewing PRs via MCP — CLI-first: prefer gh CLI for all GitHub operations; plugin is fallback for in-context repo reads. Requires GITHUB_PERSONAL_ACCESS_TOKEN
cli-anythingGenerating AI-native CLIs for existing software (GIMP, Blender, LibreOffice, etc.) — 50+ apps, 2,280+ tests
claude-videoWatch + analyze video — /watch <url> <question>; extracts frames + transcript; YouTube, TikTok, Vimeo, 500+ sites; needs ffmpeg + yt-dlp
ponytailYAGNI/minimal-code discipline — always-on; -54% LOC, -22% tokens, -20% cost; /ponytail [lite|full|ultra|off], /ponytail-review, /ponytail-audit
mattpocock-skillsReal-engineering skills: grilling sessions, TDD, PRDs, issue decomposition, architecture improvement, domain modeling — run /setup-matt-pocock-skills once per repo
claude-obsidianObsidian + Claude AI second brain (Karpathy LLM Wiki pattern) — persistent, compounding knowledge base; hybrid BM25+cosine retrieval; methodology modes (LYT/PARA/Zettelkasten); /wiki to start
higgsfieldAI image/video/audio — CLI-first: 30+ models, Marketing Studio, Soul ID, virality scoring; browser OAuth. Plugin install pending Claude Code support for ./ source type — use CLI (higgsfield generate create ...) directly until resolved
stripeStripe payments, Connect, billing, subscriptions — official Claude plugin; 8 skills auto-load: stripe-best-practices, stripe-directory, stripe-projects, upgrade-stripe, stripe-apps, stripe-docs, connect-recommend, connect-required-verification-information
cavemanToken compression — 75% reduction on responses, 46% on memory files; terse commits/reviews; session tracking
context-modeContext window optimization — 98% reduction via sandboxing (315 KB → 5.4 KB); session continuity via SQLite FTS5; output compression ~65-75%
claude-memPersistent memory across sessions — captures tool usage observations, generates semantic summaries, web viewer

Disabled Claude plugins (MCP servers for pinecone/supabase are still active — see MCP Servers table): pinecone, supabase, plugin-dev, designlang (source repo deleted — CLI + MCP still active) — enable in .claude/settings.json → enabledPlugins.


Skills (Slash Commands)

Built-in:

CommandUse When
/frontend-designStarting any frontend task (mandatory first step)
/claude-apiScaffolding an Anthropic SDK or Claude Agent SDK app
/simplifyReviewing changed code for quality, reuse, and efficiency
/scheduleCreating cron-scheduled remote agents
/loop 5m /commandRunning a prompt or command on a recurring interval
/update-configConfiguring hooks, permissions, and automated behaviors
/keybindings-helpCustomizing keyboard shortcuts

Project skills (source: .claude/skills/ — installed by setup.sh):

CommandUse When
/site-teardown [url]User provides a URL and asks to clone, match, or understand a site's structure/design before building
/skilluiPrepping to match an existing site's design in a build session — extracts tokens into SKILL.md/DESIGN.md for session use. Use before writing any UI code that should match an existing site
/extract-designWhen the extracted tokens/configs are themselves the deliverable (DTCG, Tailwind, shadcn, Figma vars, CSS vars, WCAG report). Plugin disabled (source repo deleted) — use CLI + designlang-mcp
/21st-magicUI component search, generation, refinement, and SVG logo lookup via 21st-dev-magic MCP — inspiration + logo search free; builder + refiner require Pro
/webgpu-threejs-tslWebGPU + Three.js TSL — renderer, node materials, compute shaders
/design-mdLoad a ready-made brand DESIGN.md for 73 brands via npx getdesign@latest add <brand>
/taste-skillAnti-slop frontend enforcement — bans generic patterns, enforces Bento 2.0
/firecrawlScrape pages, search, crawl sites, map URLs via Firecrawl CLI
/notebooklmGoogle NotebookLM — create notebooks, add sources, generate podcasts/videos/quizzes/mind maps/slides via notebooklm CLI; research agents (web + Drive)
/browser-harnessReal Chrome CDP automation — coordinate clicks, screenshots, JS eval, drag-drop, iframes, downloads; browser-harness --doctor for setup
/playwrightBrowser automation — screenshots, scraping, PDFs, link extraction via Playwright CLI
/compact-memoryWhen memory-sessions.md exceeds ~200 lines, monthly, or before a major new project phase. Compresses sessions, prunes decisions, syncs facts to MCP graph
/update-allUpdate all npm globals, uv tools, Python venvs, npm deps, and submodules; repairs broken venvs automatically
/three-brainTask needs deep code review or rescue (→ Codex) OR multimodal/large-context analysis (→ Gemini). Requires both CLIs installed (codex-cli + gemini-cli)
/autoresearchAutonomous ML research — modify GPT training code, run 5-min experiments, keep improvements (~12 exp/hour, ~100 overnight)
/lightragGraph-based RAG — knowledge extraction, entity-relationship Q&A, multimodal docs (PDFs, images), Web UI + REST API
/wikiScaffold vault, check status, route to sub-skills — first command to run in any vault
/wiki-ingestIngest source files from .raw/ into the wiki knowledge base
/wiki-queryAnswer questions from vault content
/wiki-lintHealth check — catch orphans, gaps, broken links
/wiki-cliObsidian CLI transport wrapper — default vault mutation path on desktop
/wiki-retrieveHybrid contextual + BM25 + cosine-rerank retrieval (opt-in via bash bin/setup-retrieve.sh)
/wiki-modeMethodology modes (LYT / PARA / Zettelkasten / Generic) — set via bash bin/setup-mode.sh
/wiki-foldDragonScale Memory extension — log folds, deterministic addresses, semantic tiling
/saveFile current conversation as a structured wiki note
/canvasVisual layer — add images, PDFs, notes to Obsidian canvas
/think10-principle thinking loop (OBSERVE-OBSERVE-LISTEN-THINK-CONNECT-FEEL-ACCEPT-CREATE-GROW)
/openspaceSelf-evolving skill system — skills auto-fix, auto-improve, auto-learn; 46% token reduction; cloud skill sharing
/skill-discoveryRun first before any non-trivial task — searches local + cloud skills to decide: follow existing skill, delegate, or proceed manually
/delegate-taskAfter /skill-discovery when task is complex and an OpenSpace agent should own it — auto skill evolution + upload
/find-skillsAuditing what's installed: gap analysis, orphaned skills, plugin inventory
/apify-ultimate-scraperUniversal web scraper — 130+ Actors for Instagram, TikTok, YouTube, LinkedIn, Google, Reddit, Amazon, Airbnb, Yelp; lead generation, brand monitoring, competitor analysis, trend research
/apify-actor-developmentCreate and deploy Apify Actors — JS/TS/Python Actor development with config schemas and logging
/apify-actorizationConvert existing code to Apify Actors — JS/TS SDK, Python async, CLI wrappers
/apify-generate-output-schemaGenerate Actor output schemas — auto-create dataset_schema.json, output_schema.json, key_value_store_schema.json
/create-actorGuided Actor scaffolding — from apify-actor-commands pack
/cavemanActivate 75% token reduction (lite/full/ultra modes) — telegraphic responses without context loss
/kie-aiAI media generation — 29 models (Midjourney, Veo3, Suno, ElevenLabs, Kling, Flux, etc.); CLI-first (kie-cli), auto-falls back to MCP; async task polling
/generateModel-agnostic image/video generation — routes to cheapest capable model (Nano Banana 2 Lite / Kling 3.0) or advanced tier (GPT Image 2 text-in-image, Veo 3.1 hero video, Seedance 2.0 Fast reference animation) per .claude/skills/generate/models/*.md recipes; runs on kie-cli (fal.ai/WaveSpeed documented as unwired future fallbacks); quotes cost and waits for approval before paid video runs; saves flat to generations/ with sidecar .json log; gallery via node generations/gallery-server.mjs → localhost:3737
/llmfitHardware-aware LLM model selection — llmfit fit/recommend/search/diff/plan/download/run/bench --json; CLI-first, llmfit-mcp fallback; no API key required
/gwGoogle Workspace CLI — gw mail/drive/cal with --json; CLI-first (gw auth login once); falls back to google-workspace-mcp for Docs/Sheets/Forms/bulk ops
/vercelVercel deployments — vercel deploy/dev/ls/env/domains/logs; CLI-first (vercel login once); vercel-mcp fallback for structured in-session queries
/alpacaAlgorithmic trading + market data — alpaca order/position/data/watchlist; CLI-first (alpaca profile login once); alpaca MCP fallback for structured in-session reads; paper mode by default
/stripeStripe payments + webhooks — stripe listen/trigger/logs/customers/charges/subscriptions; CLI-first (stripe login once); stripe-mcp fallback for structured in-session reads
/stripe-best-practicesStripe integration decisions — API selection (Checkout Sessions vs PaymentIntents), Connect setup, billing/subscriptions, Treasury, security (restricted keys, webhooks, OAuth); auto-triggers on any Stripe integration task
/stripe-directoryFind Stripe partners / service providers for a workflow, industry, or capability — also use when needing to programmatically purchase a service
/stripe-projectsProvision infrastructure via Stripe Projects — databases, auth, caching, LLM providers, email, storage; triggers on "I need a database / API key / set up X"
/upgrade-stripeGuide for upgrading Stripe API versions and SDKs
/stripe-appsBuilding, modifying, or reviewing a Stripe App — UI extensions, @stripe/ui-extension-sdk, stripe-app.yaml manifest, authentication (platform keys, OAuth, restricted keys), webhooks, Secret Store API, marketplace publishing
/stripe-docsRead, search, or look up Stripe documentation or API reference — prefer this over curl/WebFetch for any docs.stripe.com content
/connect-recommendRecommend a Stripe Connect setup (account types, charge patterns, onboarding/KYC, Dashboard access) for marketplaces, platforms, or multi-vendor/multi-party payment flows
/connect-required-verification-informationLook up what verification/KYC information a Stripe Connect connected account must provide, by platform country, account country, business type, or capability
/higgsfield:generateImage/video generation across 30+ models (Nano Banana 2, Seedance 2.0, Kling 3.0, Veo 3.1, GPT Image 2…), Marketing Studio for branded ads, Virality Predictor — CLI-first
/higgsfield:soul-idTrain a Soul Character — reusable face-faithful identity model; returns reference_id for use in generate
/higgsfield:product-photoshootBrand-quality product imagery — 10 modes (studio, lifestyle, Pinterest, hero, virtual try-on…)
/higgsfield:marketplace-cardsMarketplace product cards — compliant main image, secondary images, A+ style modules
/codeburnAI spend analytics — token + dollar breakdown by task/model/tool/project across 31 AI tools; codeburn opens TUI dashboard, codeburn status for one-liner
/caveman-statsShow actual session token usage, savings, and USD costs from JSONL logs
/caveman-compressShrink memory files (memory-*.md, CLAUDE.md) by ~46% — preserves code/URLs/paths exactly
/caveman-commitGenerate terse commit messages (≤50 chars, Conventional Commits format)
/caveman-reviewSingle-line PR comments: "L42: 🔴 bug: user null. Add guard"
/cavecrewCompressed subagents (investigator/builder/reviewer with 60% fewer tokens)
/auto-stage-commitStage all changes + generate lean commit message — outputs ready-to-run git commit command; does not commit (auto-triggers on commit intent)
/spline-3dEmbed Spline 3D scenes in React or vanilla HTML — includes React wrapper, interactive scene examples, performance guide
/graphifyAST-parse codebase (25+ languages) → queryable knowledge graph; answers "what calls X?", "what depends on Y?"; run once per repo; graphify-mcp for persistent access
/watchWatch + analyze video — frames + transcript fed to Claude; /watch <url> <question>; --start/--end window; optional Whisper transcription (Groq/OpenAI)
/ffmpegProcess / manipulate video files — node tools/ffmpeg.js; transcode, trim, thumbnail, extract-audio, probe, concat; all output JSON; requires system ffmpeg
/roastWhen user says "roast", "pressure-test", "should I build this?", "what do you think of this idea?" — or before any unvalidated build starts. 5-persona council → GO / RESHAPE / KILL + cheapest 48-hour test
/session-handoffWhen user says "wrap up", "hand off", "summarize before I clear", "session handoff" — or before any /clear. Chat-only structured summary, never writes a file
/setup-matt-pocock-skillsRun once per repo first — configures issue tracker (GitHub/Linear/local) + triage labels for all other mattpocock skills
/grill-with-docsStarting any non-trivial feature — grilling session that builds domain model, updates CONTEXT.md + ADRs inline; eliminates agent misalignment
/grill-meNon-code planning/design — relentless interview until every branch of the decision tree is resolved
/grill-me-codexHigh-stakes planning (auth, schema, concurrency, migrations, payments) — grill session (Act 1) + OpenAI Codex adversarial plan review (Act 2); two models harden the plan before any code
/grill-with-docs-codexSame as /grill-me-codex but challenges plan against CONTEXT.md/ADRs and updates them inline; use in projects with established terminology/ADRs
/codex-reviewAlready have a plan — skip the grill, go straight to Codex adversarial review loop; VERDICT:APPROVED/VERDICT:REVISE bounded by MAX_ROUNDS (default 5)
/tddRed-green-refactor TDD loop — write failing test first, then fix; one vertical slice at a time
/to-prdTurn current conversation into a PRD and publish to issue tracker
/to-issuesBreak a plan/spec/PRD into independently-grabbable vertical-slice issues
/triageMove issues through a triage state machine (uses labels configured by /setup-matt-pocock-skills)
/improve-codebase-architectureScan codebase for deepening opportunities → HTML report → grill through chosen area; run every few days
/prototypeBuild throwaway prototype — terminal app for logic questions or multiple radical UI variations
/diagnosing-bugsHard bugs / perf regressions — reproduce → minimise → hypothesise → instrument → fix → regression-test
/domain-modelingBuild + sharpen project domain model; challenge terms against glossary; update CONTEXT.md + ADRs
/codebase-designDeep module discipline — lots of behaviour behind a small interface at a clean seam
/handoffCompact conversation into handoff doc so another agent can continue
/ask-mattRouter — "which skill fits my situation?" over all mattpocock user-invoked skills

Superpowers skills auto-trigger based on context (brainstorming, TDD, debugging, code review, planning, subagents, git worktrees). No manual invoke needed.

Additional auto-trigger rules:

  • /roast — invoke before any significant feature or product build when the idea is unvalidated. Fire on: "I'm thinking of building X", "what do you think of this idea?", "should I build this?", "pressure-test this", "roast this". Do not skip just because the user seems excited — sycophancy is the failure mode.
  • /session-handoff — invoke when user says "wrap up", "hand off", "summarize before I clear", "session handoff", or is about to /clear. Also invoke proactively when context approaches ~250K tokens without a handoff having been run.
  • /auto-stage-commit — invoke when user says "commit", "stage this", "let's commit", or shows intent to commit changes. Outputs the ready-to-run git commit command; does not execute it.

Add skills: create <name>/SKILL.md in .claude/skills/ → re-run setup.sh or restart Claude Code.


MCP Servers

Defined in .mcp.json. Add credentials to .env.

Requires uvx: google-workspace-mcp, alpaca, and notebooklm-mcp use uvx. Install: curl -LsSf https://astral.sh/uv/install.sh | sh

ServerUse For
memory-shrunkReplaces memory — Caveman-compressed knowledge graph; ~50% metadata reduction on tool descriptions
obsidian-vaultFilesystem access to vault/ — search_notes, read_note, create_note, update_note; registered at user scope via mcp-vault.sh; no Obsidian app required
supabase-mcpPostgres database + Supabase platform — in-context queries/migrations; CLI-first: prefer supabase CLI for local dev, migrations, type gen, edge functions
openrouter-mcpMulti-model LLM routing, benchmarking
tavily-mcpWeb search and content extraction
google-workspace-mcpGmail, Drive, Sheets, Docs, Calendar, Forms — CLI-first: prefer gw CLI for mail/drive/cal; MCP for Docs/Sheets editing, Forms, Tasks, Contacts, Chat, bulk ops
triggerDeploy, trigger, and monitor Trigger.dev tasks
pinecone-mcpVector search / RAG
n8n-mcpn8n workflow automation
vapi-mcpVoice AI — assistants, calls, phone numbers
notebooklm-mcpGoogle NotebookLM — notebooks, AI queries, podcasts/videos/quizzes/mind maps (backup — prefer notebooklm CLI)
openspaceSelf-evolving skills — execute tasks, search/fix/upload skills, auto skill evolution (FIX/DERIVED/CAPTURED). Windows: Uses python -m openspace.entrypoints.mcp.server command with PYTHONUTF8=1 (fixes Unicode checkmark encoding).
apifyLarge-scale web scraping via Apify marketplace — 130+ Actors covering Instagram, TikTok, LinkedIn, Google, Reddit, Amazon, etc. Use with /apify-ultimate-scraper skill for guided workflows (lead generation, brand monitoring, competitor analysis, influencer vetting, trend research, SEO intelligence, review analysis, recruitment, real estate, e-commerce price monitoring, contact enrichment, RAG data feeds)
zep-mcpZep long-term memory documentation
alpacaAlgorithmic trading + market data — CLI-first: prefer alpaca CLI (alpaca order/position/data); MCP for structured in-session reads. Paper mode by default (ALPACA_LIVE_TRADE=true for live). Free paper keys at alpaca.markets.
stripe-mcpStripe payments, customers, subscriptions, webhooks — CLI-first: prefer stripe CLI (stripe listen/trigger/logs); MCP for structured in-session queries. Requires STRIPE_SECRET_KEY
canva-devCanva app SDK and CLI docs
kie-aiMulti-provider AI media — Midjourney, Sora, ElevenLabs, Kling, Suno, etc. CLI-first: use kie-cli (zero context tokens); MCP is fallback. Auto-switches on failure.
higgsfieldCinematic AI video/images — CLI-first: higgsfield CLI (primary); MCP fallback at mcp.higgsfield.ai. Browser OAuth, no API key. 4 skills: /higgsfield:generate, /higgsfield:soul-id, /higgsfield:product-photoshoot, /higgsfield:marketplace-cards
context7Live SDK/library documentation lookup — fetch on demand instead of loading static reference files
monet-mcpLanding page UI components — search + retrieve React/TS code
stitchExtract design DNA from screens (fonts, colors, layouts)
21st-dev-magicUI component search + SVG brand logos — MCP-first: 4 tools (inspiration, builder, refiner, logo_search); /21st-magic skill; requires TWENTYFIRST_DEV_MAGIC_API_KEY
playwright-mcpInteractive browser sessions (backup — prefer node tools/playwright.js)
firecrawl-mcpBatch scraping / schema-driven extraction (backup — prefer firecrawl CLI)
designlang-mcpExpose extracted design tokens via MCP after running designlang <url> — no API key; reads ./design-extract-output/
graphify-mcpQuery codebase knowledge graph — query_graph, get_node, get_neighbors, shortest_path, list_prs, get_pr_impact; requires graphify-out/graph.json (build with /graphify .); optional GRAPHIFY_API_KEY for HTTP auth
llmfit-mcpHardware-aware LLM model scoring via MCP stdio (llmfit serve --mcp) — backup for llmfit CLI; no API key; optional LOCALMAXXING_API_KEY for community benchmarks
vercel-mcpVercel deployments + project management — CLI-first: prefer vercel CLI; MCP for structured in-session queries. Remote HTTP server. Requires VERCEL_TOKEN

Setup: Copy .claude/settings.local.json.example → .claude/settings.local.json. The __activation_guide inside lists where to get each credential.


LightRAG Server Setup

Graph-based RAG with multimodal support. See tools/lightrag-plus/README.md.

Quick start:

cd tools/lightrag-plus && UV_NATIVE_TLS=true uv sync --all-extras && cp .env.example .env
# Add OPENAI_API_KEY (+ SUPABASE_MANAGEMENT_TOKEN if ENABLE_SUPABASE=true) to .env, then:
uv run python provision.py          # Auto-creates schema/index if backends enabled (idempotent)
uv run python check_update.py      # Check for lightrag-hku updates (add --upgrade to apply)
uv run python src/server.py --port 9621 --working-dir ./rag_storage
# Or: Press F5 → "LightRAG Server" (VSCode) / run start_server.bat — both use src/server.py automatically
# LLM_TIMEOUT=1800 + EMBEDDING_TIMEOUT=60 in .env extend Ollama timeouts (defaults 180s/30s are too short for large chunks; 1800s required on slow hardware)
# EMBEDDING_BINDING_HOST in .env fixes the LLM_BINDING_HOST bleed-into-OpenAI-embedding bug (--embedding-binding-host CLI flag removed in newer lightrag-hku)

LightRAGPlus server (src/server.py) vs vanilla server:

src/server.py (default)lightrag.api.lightrag_server (bypass)
Text uploads (PDF/MD/TXT)local graph + cloud mirrorlocal graph only
Media uploads/api/plus/insert-media endpointnot supported
Embedding host bug fixEMBEDDING_BINDING_HOST in .env (CLI flag removed in newer lightrag-hku)requires env var

Extra endpoints added by src/server.py:

  • GET /api/plus/status — backend config + health check
  • POST /api/plus/insert-media — image/audio/video → cloud backends only (requires MULTIMODAL_MODE=advanced + EMBEDDING_PROVIDER=gemini)

Known gotcha — embedding 404: LLM_BINDING_HOST=http://localhost:11434 (Ollama) bleeds into OpenAI embedding calls via get_default_host("openai"). Fix: EMBEDDING_BINDING_HOST=https://api.openai.com/v1 in .env (already set). The --embedding-binding-host CLI flag was removed in newer lightrag-hku — env var is the only fix.

Running integration tests (Windows):

# Step 1: sync venv once (do NOT use `uv run pytest` — it re-syncs on every call and hits Windows file locks)
cd tools/lightrag-plus && UV_NATIVE_TLS=true uv sync --all-extras

# Step 2: run tests directly via venv python (repeatable, no re-sync)
.venv\Scripts\python.exe -m pytest tests/test_integration.py -v

# If uv sync fails with "Access is denied" or missing RECORD files — self-heal first:
Remove-Item -Force -Recurse .venv\Lib\site-packages\regex-*.dist-info -ErrorAction SilentlyContinue
Remove-Item -Force -Recurse .venv\Lib\site-packages\proto_plus-*.dist-info -ErrorAction SilentlyContinue
UV_NATIVE_TLS=true uv sync --all-extras

Access: Web UI + API Docs


OpenSpace Integration Tests

Tests live at tests/openspace/ (outside the submodule — preserves auto-sync). Three tiers: Tier 1 no key, Tier 2 any LLM key, Tier 3 OPENSPACE_API_KEY.

# Step 1: install pytest into openspace venv (one-time)
cd tools/openspace && uv pip install pytest pytest-asyncio python-dotenv

# Step 2: run from project root (repeatable)
cd C:\GIT\Claude_Code_Boilerplate_Framework
tools\openspace\.venv\Scripts\python.exe -m pytest tests\openspace\ -v

# Tier 1 only (no API key needed):
tools\openspace\.venv\Scripts\python.exe -m pytest tests\openspace\ -v -k "not TestOpenSpaceInit and not TestCloudRegistry"

Tier 2 tests (TestOpenSpaceInit) read LLM key from tools/openspace/.env or OS env — they call initialize() with shell-only backend (no task execution, no token cost). Tier 3 tests (TestCloudRegistry) require OPENSPACE_API_KEY.


Hooks

HookFileBehavior
SessionStart.claude/hooks/mcp-cleanup.sh + .claude/hooks/openspace-sync.shKills stale MCP node processes; syncs OpenSpace submodule with upstream at session start
PreToolUse (Read).claude/hooks/read-guard.pyWarns when large files are read without offset+limit to save tokens
Stop.claude/hooks/stop.shCalls autoresearch-sync + openspace-sync + lightrag-sync; drafts memory entries; flags tracked-path doc changes
PostToolUse (Write/Edit).claude/hooks/autosync-docs.shAfter edits to tracked paths, injects context to update CLAUDE.md/README.md
pre-commit (git).claude/hooks/pre-commit.shAuto-updates CLAUDE.md and README.md before commits that touch tracked paths
autoresearch-sync.claude/hooks/autoresearch-sync.shAuto-syncs tools/autoresearch/ with upstream karpathy/autoresearch (called by stop hook)
openspace-sync.claude/hooks/openspace-sync.shAuto-syncs tools/openspace/ git submodule with upstream HKUDS/OpenSpace; runs on both SessionStart and Stop; skips if uncommitted changes exist
lightrag-sync.claude/hooks/lightrag-sync.shChecks lightrag-hku PyPI version against pin on every Stop; notifies if minor/patch or major update available; run check_update.py --upgrade to apply
update-all.claude/hooks/update-all.shManual update script — npm globals, uv tools, Python venvs, npm deps, submodules; self-heals broken venvs. Run via /update-all skill

Add new hooks in .claude/settings.json under "hooks".


Troubleshooting

IssueFix
uvx: command not foundcurl -LsSf https://astral.sh/uv/install.sh | sh
MCP server timeoutIncrease toolTimeout in .mcp.json (default 600s → 1200s)
Git Bash crash (Windows)Use PowerShell or WSL instead
OPENAI_API_KEY not setAdd to both .env AND OS environment (setx on Windows)
setup.sh hangs at skill installPress Ctrl+C, run manual /plugin install <name>@<marketplace> commands shown (marketplace skills install like plugins — claude CLI has no skill install subcommand)
better-sqlite3 build fails (corporate proxy)NODE_TLS_REJECT_UNAUTHORIZED=0 npm install better-sqlite3 --build-from-source — or re-run setup.sh (step 7c applies this fix automatically)
Playwright Chromium download fails: UNABLE_TO_GET_ISSUER_CERT_LOCALLYCorporate proxy intercepts TLS. Fix: NODE_TLS_REJECT_UNAUTHORIZED=0 npx playwright install chromium — baked into sys-npm-deps.sh automatically
uv sync fails with UnknownIssuer / invalid peer certificateCorporate proxy intercepts TLS. Fix: UV_NATIVE_TLS=true uv sync — uses Windows cert store. Already baked into update-all.sh.
LightRAG uploads fail: httpx.ReadTimeout during entity extractionOllama LLM exceeds default timeout on large chunks. Fix: increase LLM_TIMEOUT in tools/lightrag-plus/.env — set 1800 (30 min) for slow hardware. Both asyncio.wait_for and httpx client use this value. --timeout CLI arg only affects gunicorn, not uvicorn — do NOT use it.
designlang postinstall fails with Playwright/SSL errorCorporate proxy blocks Playwright browser download. Fix: npm install -g designlang --ignore-scripts — CLI works fully without the Playwright browser
OpenSpace skills not discovered on WindowsOPENSPACE_HOST_SKILL_DIRS uses git-bash paths (/c/Users/...). Windows-native Python can't resolve them (Path("/c/..").exists() is False). Fix: use NATIVE paths (C:/GIT/.../.claude/skills) in .env AND setx. Seed the tree with tools/openspace_overrides/seed_openspace_skills.py
OpenSpace uv pip install -e fails with "Broken Python trampoline"Stale .venv (e.g. copied from another machine) points at a Python interpreter that no longer exists. tool-openspace.sh now auto-detects a missing/broken venv and recreates it pinned to Python 3.12 — re-run bash .claude/hooks/install/tool-openspace.sh
uv sync in tools/lightrag-plus tries to build pyiceberg from source (needs MSVC)Python 3.14+ (uv's default when unpinned) has no prebuilt wheel for pyiceberg (pulled in transitively via supabase→storage3). Fixed by tools/lightrag-plus/.python-version pinning 3.12 (has a wheel) — uv sync picks it up automatically

Memory (MANDATORY)

Update memory files as you go, not at session end. Do not ask — just update.

TriggerFile
User shares a fact about themselves.claude/rules/memory-profile.md
User states a preference.claude/rules/memory-preferences.md
A non-trivial decision is made.claude/rules/memory-decisions.md (with date)
Substantive work is completed.claude/rules/memory-sessions.md

Maintenance: Run /compact-memory monthly (or when memory-sessions.md exceeds ~200 lines) to compress old entries, prune obsolete decisions, and sync key facts to the knowledge graph.

Full rules: memory-guidelines.md


Agent skills

Issue tracker

Issues live in GitHub Issues (mdmorar/Claude_Code_Boilerplate_Framework). External PRs are not a triage surface. See docs/agents/issue-tracker.md.

Triage labels

Default mattpocock/skills label vocabulary — no overrides. See docs/agents/triage-labels.md.

Domain docs

Single-context repo: one CONTEXT.md + docs/adr/ at repo root. See docs/agents/domain.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.