Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Analyze an unfamiliar codebase and generate a structured onboarding guide with architecture map, key entry points, conventions, and a starter CLAUDE.md. Use when joining a new project or setting up Claude Code for the first time in a repo.
.claude/skills/loulanyue-codebase-onboarding/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 183% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 130% | 0% |
| case-21 | ✗→✓ | ▲ Improved | 53% | 0% |
Systematically analyze an unfamiliar codebase and produce a structured onboarding guide. Designed for developers joining a new project or setting up Claude Code in an existing repo for the first time.
Gather raw signals about the project without reading every file. Run these checks in parallel:
1. Package manifest detection
→ package.json, go.mod, Cargo.toml, pyproject.toml, pom.xml, build.gradle,
Gemfile, composer.json, mix.exs, pubspec.yaml
2. Framework fingerprinting
→ next.config.*, nuxt.config.*, angular.json, vite.config.*,
django settings, flask app factory, fastapi main, rails config
3. Entry point identification
→ main.*, index.*, app.*, server.*, cmd/, src/main/
4. Directory structure snapshot
→ Top 2 levels of the directory tree, ignoring node_modules, vendor,
.git, dist, build, __pycache__, .next
5. Config and tooling detection
→ .eslintrc*, .prettierrc*, tsconfig.json, Makefile, Dockerfile,
docker-compose*, .github/workflows/, .env.example, CI configs
6. Test structure detection
→ tests/, test/, __tests__/, *_test.go, *.spec.ts, *.test.js,
pytest.ini, jest.config.*, vitest.config.*From the reconnaissance data, identify:
Tech Stack
Architecture Pattern
Key Directories Map the top-level directories to their purpose:
<!-- Example for a React project — replace with detected directories -->
src/components/ → React UI components
src/api/ → API route handlers
src/lib/ → Shared utilities
src/db/ → Database models and migrations
tests/ → Test suites
scripts/ → Build and deployment scriptsData Flow Trace one request from entry to response:
Identify patterns the codebase already follows:
Naming Conventions
*.test.ts, *.spec.ts, *_test.goCode Patterns
Git Conventions
git clone --depth 1), skip this section and note "Git history unavailable or too shallow to detect conventions"Produce two outputs:
markdown# Onboarding Guide: [Project Name] ## Overview [2-3 sentences: what this project does and who it serves] ## Tech Stack <!-- Example for a Next.js project — replace with detected stack --> | Layer | Technology | Version | |-------|-----------|---------| | Language | TypeScript | 5.x | | Framework | Next.js | 14.x | | Database | PostgreSQL | 16 | | ORM | Prisma | 5.x | | Testing | Jest + Playwright | - | ## Architecture [Diagram or description of how components connect] ## Key Entry Points <!-- Example for a Next.js project — replace with detected paths --> - **API routes**: `src/app/api/` — Next.js route handlers - **UI pages**: `src/app/(dashboard)/` — authenticated pages - **Database**: `prisma/schema.prisma` — data model source of truth - **Config**: `next.config.ts` — build and runtime config ## Directory Map [Top-level directory → purpose mapping] ## Request Lifecycle [Trace one API request from entry to response] ## Conventions - [File naming pattern] - [Error handling approach] - [Testing patterns] - [Git workflow] ## Common Tasks <!-- Example for a Node.js project — replace with detected commands --> - **Run dev server**: `npm run dev` - **Run tests**: `npm test` - **Run linter**: `npm run lint` - **Database migrations**: `npx prisma migrate dev` - **Build for production**: `npm run build` ## Where to Look <!-- Example for a Next.js project — replace with detected paths --> | I want to... | Look at... | |--------------|-----------| | Add an API endpoint | `src/app/api/` | | Add a UI page | `src/app/(dashboard)/` | | Add a database table | `prisma/schema.prisma` | | Add a test | `tests/` matching the source path | | Change build config | `next.config.ts` |
Generate or update a project-specific CLAUDE.md based on detected conventions. If CLAUDE.md already exists, read it first and enhance it — preserve existing project-specific instructions and clearly call out what was added or changed.
markdown# Project Instructions ## Tech Stack [Detected stack summary] ## Code Style - [Detected naming conventions] - [Detected patterns to follow] ## Testing - Run tests: `[detected test command]` - Test pattern: [detected test file convention] - Coverage: [if configured, the coverage command] ## Build & Run - Dev: `[detected dev command]` - Build: `[detected build command]` - Lint: `[detected lint command]` ## Project Structure [Key directory → purpose map] ## Conventions - [Commit style if detectable] - [PR workflow if detectable] - [Error handling patterns]
src/ doesn't need an explanationUser: "Onboard me to this codebase" Action: Run full 4-phase workflow → produce Onboarding Guide + Starter CLAUDE.md Output: Onboarding Guide printed directly to the conversation, plus a CLAUDE.md written to the project root
User: "Generate a CLAUDE.md for this project" Action: Run Phases 1-3, skip Onboarding Guide, produce only CLAUDE.md Output: Project-specific CLAUDE.md with detected conventions
User: "Update the CLAUDE.md with current project conventions" Action: Read existing CLAUDE.md, run Phases 1-3, merge new findings Output: Updated CLAUDE.md with additions clearly marked
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 11,275 | 6,839 | -39% | 1 | 1 | 0% | 1,752 | 3,223 | +84% | 0 | 0 | — |
case-01 | fail→fail | 11,325 | 29,100 | +157% | 1 | 1 | 0% | 1,919 | 2,380 | +24% | 0 | 0 | — |
case-02 | fail→fail | 1,706 | 4,129 | +142% | 1 | 1 | 0% | 210 | 2,424 | +1054% | 0 | 0 | — |
case-03 | pass→fail | 8,888 | 5,714 | -36% | 1 | 1 | 0% | 1,614 | 2,297 | +42% | 0 | 0 | — |
case-04 | pass→fail | 4,931 | 2,917 | -41% | 1 | 1 | 0% | 918 | 2,246 | +145% | 0 | 0 | — |
case-05 | fail→fail | 2,995 | 5,571 | +86% | 1 | 1 | 0% | 434 | 2,295 | +429% | 0 | 0 | — |
case-06 | fail→fail | 6,580 | 4,294 | -35% | 1 | 1 | 0% | 946 | 2,575 | +172% | 0 | 0 | — |
case-07 | fail→pass | 5,831 | 3,747 | -36% | 1 | 1 | 0% | 948 | 2,684 | +183% | 0 | 0 | — |
case-08 | pass→pass | 14,844 | 6,232 | -58% | 1 | 1 | 0% | 2,416 | 3,081 | +28% | 0 | 0 | — |
case-09 | fail→pass | 11,079 | 5,411 | -51% | 1 | 1 | 0% | 1,855 | 2,989 | +61% | 0 | 0 | — |
case-11 | pass→pass | 10,334 | 2,708 | -74% | 1 | 1 | 0% | 1,637 | 2,488 | +52% | 0 | 0 | — |
case-12 | pass→pass | 6,414 | 3,742 | -42% | 1 | 1 | 0% | 991 | 2,630 | +165% | 0 | 0 | — |
case-13 | fail→pass | 12,772 | 1,987 | -84% | 1 | 1 | 0% | 2,106 | 2,432 | +15% | 0 | 0 | — |
case-14 | pass→pass | 15,680 | 7,757 | -51% | 1 | 1 | 0% | 2,472 | 3,294 | +33% | 0 | 0 | — |
case-20 | fail→pass | 6,927 | 2,297 | -67% | 1 | 1 | 0% | 1,083 | 2,493 | +130% | 0 | 0 | — |
case-15 | fail→fail | 11,183 | 7,147 | -36% | 1 | 1 | 0% | 1,882 | 3,306 | +76% | 0 | 0 | — |
case-16 | pass→fail | 8,786 | 5,100 | -42% | 1 | 1 | 0% | 1,299 | 2,864 | +120% | 0 | 0 | — |
case-17 | pass→pass | 12,715 | 8,370 | -34% | 1 | 1 | 0% | 2,024 | 3,465 | +71% | 0 | 0 | — |
case-18 | pass→pass | 14,408 | 8,822 | -39% | 1 | 1 | 0% | 2,209 | 3,621 | +64% | 0 | 0 | — |
case-19 | pass→pass | 12,585 | 3,757 | -70% | 1 | 1 | 0% | 2,318 | 2,763 | +19% | 0 | 0 | — |
case-21 | fail→pass | 10,422 | 2,861 | -73% | 1 | 1 | 0% | 1,677 | 2,560 | +53% | 0 | 0 | — |
case-22 | fail→pass | 18,202 | 5,128 | -72% | 1 | 1 | 0% | 2,945 | 2,953 | +0% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 17 comparable cases. 5 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.