Use when the user requests integration testing, feature validation, or test plan execution
日本語の概要は準備中です。原文の説明を表示しています。
Configure and operate the Claude Code harness for large codebases. Builds CLAUDE.md hierarchies, scoped test/lint commands, file exclusions, codebase maps, hooks, skills, subagent strategies, and LSP/MCP wiring. Use when setting up Claude Code for a new repo, auditing an existing configuration, onboarding a team, or scaling from single-developer to org-wide deployment. Triggers on "set up Claude Code for this repo", "optimize my Claude Code config", "audit my CLAUDE.md", "make this codebase navigable", "configure hooks/skills/plugins".
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Configure the Claude Code harness so it works as well as the model. The harness — CLAUDE.md files, hooks, skills, plugins, LSP, MCP servers, subagents — determines whether Claude Code is productive or fumbling. This skill builds and tunes that harness for large codebases.
Seven components, loaded in priority order. Each has a specific job. Misplacing work between them is the most common configuration mistake.
| # | Component | Loads | Best For | Common Mistake |
|---|---|---|---|---|
| 1 | CLAUDE.md | Every session | Project conventions, codebase layout, critical gotchas | Stuffing reusable expertise that belongs in a skill |
| 2 | Hooks | On events | Deterministic automation, capturing learnings, enforcing rules | Using prompts for things that should run automatically |
| 3 | Skills | On demand | Reusable expertise, specialized workflows | Loading everything into CLAUDE.md instead |
| 4 | Plugins | Always, once configured | Distributing org-wide setups to all developers | Letting good setups stay tribal knowledge |
| 5 | LSP | Always, once configured | Symbol-level navigation, typed languages | Assuming it works automatically without setup |
| 6 | MCP servers | Always, once configured | Internal tools, data sources, APIs | Building MCP connections before basics work |
| 7 | Subagents | When invoked | Parallel exploration, splitting read from write | Running exploration and editing in the same session |
The rule: Start from the top. Get CLAUDE.md right before touching hooks. Get hooks right before building skills. Don't wire up MCP servers when your CLAUDE.md still says run npm test for a monorepo with 40 services.
CLAUDE.md is loaded every session. It is the most impactful configuration surface. It is also the easiest to get wrong.
CLAUDE.md files are additive. Claude walks up the directory tree and loads every CLAUDE.md it finds. Use this.
repo/
CLAUDE.md # Repo-wide: architecture, top-level pointers, critical rules
services/
CLAUDE.md # Services area: shared patterns, common dependencies
payments/
CLAUDE.md # Payments service: specific test commands, API conventions
auth/
CLAUDE.md # Auth service: security constraints, token handling rules
frontend/
CLAUDE.md # Frontend: build tool, component patterns, styling approach
Root-level CLAUDE.md gets the big picture: directory structure overview, overarching conventions, cross-cutting gotchas. Keep it under 100 lines. Everything else loads on demand.
Subdirectory CLAUDE.md gets local specifics: test commands, lint commands, local conventions, dependencies, gotchas for that area. A developer working in services/payments/ gets the root context automatically plus the payments-specific context.
Running the full test suite when Claude changed one file in one service causes timeouts and wastes context. Scope commands per directory.
Root CLAUDE.md:
# Testing
Do not run the full test suite. Each service has its own test command in its CLAUDE.md.
services/payments/CLAUDE.md:
# Testing
Run: `cd services/payments && npm test`
Single file: `cd services/payments && npm test -- --testPathPattern=<file>`
Lint: `cd services/payments && npm run lint`
For compiled-language monorepos with cross-directory dependencies, document the build graph in the root CLAUDE.md so Claude knows which targets to rebuild.
When the repo has dozens or hundreds of top-level directories, add a map. Not a novel — a table of contents.
Root CLAUDE.md:
# Directory Structure
- `services/` — Backend microservices (payments, auth, notifications, inventory)
- `frontend/` — React SPA, shared component library
- `infra/` — Terraform modules, CI/CD pipelines
- `libs/` — Shared libraries (logging, metrics, auth-client)
- `scripts/` — Build and deploy tooling
- `proto/` — Protobuf definitions, generated code
For massive repos, use layered maps: root describes the top level, each area's CLAUDE.md describes its subdirectories. Claude loads the next level of detail only when it enters that directory.
When setting up a new repo, follow this template:
# <Project Name>
## Architecture
<2-3 sentence description of what this project is and how it's structured>
## Directory Structure
<map of top-level directories with one-line descriptions>
## Development
- Language: <X>
- Package manager: <X>
- Build: <command>
- Test: <per-service, see subdirectory CLAUDE.md files>
- Lint: <command or per-service>
## Conventions
<only things that differ from language defaults or would surprise a new developer>
## Hard Rules
<things Claude must never do or must always do — keep this list short>
If it's longer than a screen, it's too long. Move details to subdirectory files.
Generated code, build artifacts, and vendored dependencies waste Claude's search budget. Exclude them.
Commit deny rules so every developer gets the same noise reduction:
{
"permissions": {
"deny": [
"Read(generated/**)",
"Read(vendor/**)",
"Read(node_modules/**)",
"Read(dist/**)",
"Read(build/**)",
"Read(**/*.generated.*)",
"Read(**/*.pb.go)"
]
}
}
Works like .gitignore. Claude won't search or read matched paths:
# Build artifacts
dist/
build/
out/
*.min.js
*.min.css
# Generated code
generated/
**/*.generated.*
**/*.pb.go
**/*_gen.go
# Vendored
vendor/
third_party/
node_modules/
# Large binary assets
*.wasm
*.so
*.dylib
assets/sprites/**
Developers who work on code generators or build tooling can override project-level exclusions in their local settings without affecting the team. Document this in the root CLAUDE.md:
# File Exclusions
Generated and vendored code is excluded in .claude/settings.json.
If you work on the code generator, override locally in ~/.claude/settings.json.
Hooks fire on events. Use them for things that must happen consistently, not things that require judgment.
| Requirement | Use |
|---|---|
| "Always run the linter after editing .ts files" | Hook |
| "Prefer functional components over class components" | CLAUDE.md |
| "Format code before committing" | Hook |
| "Use snake_case for database columns" | CLAUDE.md |
| "Log what was done at the end of each session" | Hook (stop hook) |
| "Think about performance when touching hot paths" | CLAUDE.md |
The distinction: If a human would run it mechanically every time, it's a hook. If a human would think about it and make a judgment call, it's a CLAUDE.md instruction.
Stop hooks fire when a session ends. Use them to capture learnings while context is fresh:
Start hooks fire when a session begins. Use them to load context that changes:
For rules that must never be violated, hooks beat instructions:
Skills load on demand. They carry specialized workflows that would bloat CLAUDE.md if loaded every session.
Bind skills to directories so they activate only where relevant:
services/auth/infra/frontend/components/This prevents context pollution. A developer fixing a backend bug doesn't need the frontend component library patterns in context.
When multiple developers need the same expertise:
Text-based grep returns noise. LSP returns precision.
Grepping for a common function name in a large codebase returns thousands of matches. Claude burns context opening files to figure out which one matters. LSP returns only references that point to the same symbol. The filtering happens before Claude reads anything.
Two pieces:
Deploy LSP org-wide before rolling out Claude Code to developers working in typed languages at scale.
MCP connects Claude to systems it can't reach through the filesystem: ticketing systems, documentation platforms, analytics, internal APIs.
Only after the basics work. The priority order is firm:
Then wire up MCP for:
Advanced teams expose their internal code search as an MCP tool. Claude calls it directly instead of grepping the filesystem. This is particularly valuable when the codebase spans multiple repositories or when the internal search has ranking that grep lacks.
Subagents are separate Claude instances. They have their own context window. Use them to protect the main session from noise and to parallelize independent work.
Wrong: One session that searches the codebase, reads 30 files, forms a plan, and then edits.
Right:
The exploration phase burns context on dead ends, wrong files, and backtracking. Isolating it in a subagent keeps the main session's context clean for the actual work.
When auditing an existing Claude Code configuration, check these in order:
[ ] Root CLAUDE.md exists and is under 100 lines
[ ] Root file has architecture overview and directory map
[ ] Subdirectory CLAUDE.md files exist for major areas
[ ] Test/lint commands are scoped per service or module
[ ] No stale instructions referencing deleted code or old conventions
[ ] No reusable expertise that should be a skill
[ ] No documentation dumps or tutorials
[ ] .claude/ignore or .claude/settings.json excludes generated code
[ ] Build artifacts are excluded
[ ] Vendored/third-party code is excluded
[ ] Large binary assets are excluded
[ ] Exclusions are committed to version control
[ ] Hooks exist for mechanical tasks (formatting, linting)
[ ] Stop hooks capture session learnings
[ ] Enforcement hooks prevent common mistakes
[ ] No hooks doing work that requires judgment (that belongs in CLAUDE.md)
[ ] LSP is configured for the primary languages
[ ] Language server binaries are installed and on PATH
[ ] For monorepos: codebase map exists at root level
[ ] For deep nesting: layered maps in subdirectories
[ ] Configuration reviewed within the last 3-6 months
[ ] No instructions compensating for limitations of older models
[ ] No hooks or skills built around bugs that have been fixed
[ ] Conventions match current codebase state
A small team (even one person) should wire up the harness before developers get access. The goal: a developer's first session should be productive, not spent configuring.
Minimum viable setup:
Better setup adds: 5. Hooks for formatting, linting, and session learning 6. Skills for common workflows (deployment, security review, onboarding) 7. Plugins bundling the above for one-command installation 8. MCP connections to internal tools
Someone must own the configuration. Without ownership, it drifts, fragments, and rots.
Options:
Bottom-up adoption generates enthusiasm but fragments without centralization. The owner must:
Start with:
Expand capabilities as confidence builds. Answer these questions early:
| Task | Where to Configure |
|---|---|
| "Always run X after editing Y files" | Hook |
| "Prefer pattern X over pattern Y" | CLAUDE.md |
| "Here's how to deploy service Z" | Skill |
| "Everyone needs access to internal docs" | MCP server |
| "New devs should get our full setup" | Plugin |
| "Find the real definition, not string matches" | LSP |
| "Explore this subsystem before editing" | Subagent |
| "Don't search generated code" | .claude/ignore |
| "Scope tests to the changed service" | Subdirectory CLAUDE.md |
| "Review config every quarter" | Maintenance cadence |
This skill targets conventional software engineering environments: Git repos, standard directory structures, engineers as primary contributors. Environments that require additional work:
For these, the principles still apply — hierarchical context, scoped commands, noise reduction — but the specific implementation differs.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when the user requests integration testing, feature validation, or test plan execution
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user wants to systematically fix AI code slop — duplicated logic, over-engineering, silent error swallowing, convention drift, cargo-cult patterns, and other LLM-introduced architectural decay — over a specified duration
日本語の概要は準備中です。原文の説明を表示しています。
Produce a researched long-form article from a topic prompt via an orchestrated pipeline - research agent (first-person sources, working-definition gate), narrative-architecture outline, writer/cold-reviewer loop with an explicit ACCEPT/REVISE verdict contract, then a catalog-deslop pass with a regression gate. The orchestrator dispatches subagents only; the writer never judges its own draft. Use when the user says "article factory", "write an article about X", "run the article pipeline", or asks for a researched long-form piece produced end-to-end. For essays and micro posts in the user's own voice without a research stage, use the prose skill instead.
日本語の概要は準備中です。原文の説明を表示しています。
Runs autonomous keep/discard experiments on a codebase to optimize a single metric for a fixed duration, in the style of karpathy/autoresearch. Use when the user says "autoresearch" (optionally with a focus, e.g. "autoresearch the optimizer"), asks to run experiments on a repo overnight, to hill-climb or optimize a metric autonomously, or points at a repo with a karpathy-style program.md.
日本語の概要は準備中です。原文の説明を表示しています。
Create custom modules for [Harbor Boost](https://github.com/av/harbor/tree/main/boost), an optimizing LLM proxy. Use when building Python modules that intercept/transform LLM chat completions—reasoning chains, prompt injection, structured outputs, artifacts, or custom workflows. Triggers on requests to create Boost modules, extend LLM behavior via proxy, or implement chat completion middleware.
日本語の概要は準備中です。原文の説明を表示しています。
Systematically explore and test any software project (CLI, API, Backend, Library, etc.) to find bugs, usability issues, and edge cases. Produces a structured report with full reproduction evidence (exact commands, inputs, logs, and tracebacks) for every issue.
日本語の概要は準備中です。原文の説明を表示しています。