# Onboard

> Generates a comprehensive ONBOARDING.md for a codebase, covering architecture, key files, setup, and common gotchas.

- Skill: `sdiamante13/onboard` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add sdiamante13/onboard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sdiamante13/onboard/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing, Technical Writing
- Tags: Architecture, Codebase, Documentation, Gotchas, Onboarding, Setup
- Author: SDiamante13 (https://skillmd.com/u/sdiamante13)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/sdiamante13/onboard

---


# Codebase Onboarding Doc Generator

Generate a comprehensive `ONBOARDING.md` file that helps a new developer get productive in a codebase quickly. The doc should answer the questions a new team member would ask in their first week.

## Process

### 1. Discover the codebase

Run these investigations in parallel to build a mental model:

**Project identity:**
- Read `README.md`, `CLAUDE.md`, `package.json`, `Cargo.toml`, `pyproject.toml`, `go.mod`, or equivalent to understand the project's purpose, language, and framework
- Check for monorepo indicators (`workspaces`, `lerna.json`, `nx.json`, `turbo.json`, `pnpm-workspace.yaml`)

**Architecture:**
- Map the top-level directory structure (`ls -la` and one level deep)
- Identify the entry points (e.g., `main.ts`, `index.js`, `app.py`, `cmd/`, `src/main.rs`)
- Look for architectural patterns: routes/, controllers/, services/, models/, hooks/, components/, etc.
- Check for infrastructure config: `docker-compose.yml`, `Dockerfile`, `terraform/`, `k8s/`, `.github/workflows/`

**Setup and tooling:**
- Find setup scripts: `Makefile`, `justfile`, `scripts/`, `bin/setup`
- Check dependency files: `package-lock.json`, `yarn.lock`, `Pipfile.lock`, `poetry.lock`, `Gemfile.lock`
- Look for environment config: `.env.example`, `.env.template`, `.envrc`
- Check for database migrations: `migrations/`, `prisma/`, `alembic/`, `db/migrate/`

**Testing and CI:**
- Find test directories and config: `jest.config`, `pytest.ini`, `vitest.config`, `.github/workflows/`
- Check for linting/formatting config: `.eslintrc`, `.prettierrc`, `ruff.toml`, `rustfmt.toml`

**Gotcha indicators:**
- Read `.gitignore` for clues about generated files and local config
- Check for `CONTRIBUTING.md` or `docs/` directory
- Look for non-obvious dependencies: `.tool-versions`, `.nvmrc`, `.python-version`, `rust-toolchain.toml`
- Scan recent git history for patterns: `git log --oneline -30`

### 2. Identify key files

Select 10-20 files that a new developer should read first. Prioritize:
- Entry points and main application wiring
- Core domain models or types
- Key configuration files
- The most-changed files (they're often the most important): `git log --format= --name-only -100 | sort | uniq -c | sort -rn | head -20`
- README and contributing guides

### 3. Detect common gotchas

Look for things that trip up new developers:
- Required environment variables without defaults
- Non-obvious setup steps (database seeding, code generation, certificate setup)
- Unconventional project conventions (custom scripts, unusual directory structure)
- Version pinning requirements (Node version, Python version, etc.)
- Known issues in CI/CD that affect local development
- Files or directories that look important but are generated (and shouldn't be edited)

### 4. Write ONBOARDING.md

Save the file to the repository root. Use this structure:

```markdown
# Onboarding: [Project Name]

## What is this?
[2-3 sentence description of what the project does and who uses it]

## Architecture Overview
[High-level description of the system architecture. Include a text diagram if the system has multiple components or services.]

### Directory Structure
[Annotated tree of the important top-level directories — skip node_modules, vendor, etc.]

### Key Patterns
[Architectural patterns used: MVC, hexagonal, event-driven, etc. How data flows through the system.]

## Key Files to Read First
[Ordered list of 10-20 files with a one-line description of why each matters. Group by theme if helpful.]

## Local Setup

### Prerequisites
[Required tools and versions]

### Getting Started
[Step-by-step setup instructions — clone, install, configure, run]

### Running Tests
[How to run the test suite, including any setup needed]

### Common Commands
[Table or list of frequently used commands: build, test, lint, deploy, etc.]

## Common Gotchas
[Numbered list of things that trip up new developers, with solutions]

## Useful Links
[Links to relevant docs, dashboards, design docs, Slack channels, etc. — only if discoverable from the repo]
```

### Writing guidelines

- Write for someone who is a competent developer but knows nothing about this specific codebase
- Be concrete — use actual file paths, actual command names, actual environment variable names
- If you're uncertain about something (e.g., whether a setup step is still current), flag it with a "Verify:" note rather than guessing
- Keep the total doc under 300 lines — long onboarding docs don't get read
- Don't include information you can't verify from the codebase itself

