Onboarding Guide Builder
Create onboarding documentation that gets a new developer productive in days, not weeks. Good onboarding docs are the highest-leverage documentation a team can write — they pay dividends on every hire for years.
Onboarding Workflow
Step 1: Prerequisites
Verify the new developer has the following installed and configured:
Required Tools
- Git: Version 2.30+ with SSH key configured for the repository host.
- Runtime: The project's language runtime at the version specified in
.tool-versions, .nvmrc, runtime.txt, or equivalent.
- Package manager: npm/yarn/pnpm (Node.js), pip/poetry (Python), bundler (Ruby), etc.
- Docker: Docker Desktop or Docker Engine with Compose for local service dependencies.
- IDE/Editor: Recommended IDE with project-specific extensions/plugins installed.
- Database client: CLI or GUI tool for the project's database.
Accounts and Access
Step 2: Repository Setup
# Clone the repository
git clone {repository-url}
cd {project-name}
# Install dependencies
{install-command}
# Copy environment configuration
cp .env.example .env
# Edit .env with local values (database URL, API keys for dev, etc.)
# Start local services (database, cache, message queue)
docker-compose up -d
# Run database migrations
{migration-command}
# Seed development data (if available)
{seed-command}
# Verify setup — run the test suite
{test-command}
# Start the development server
{dev-command}
After setup, verify:
Step 3: Architecture Walkthrough
Present the high-level architecture to the new developer:
System Overview
- Draw or show the system architecture diagram.
- Explain each service/component and its responsibility.
- Identify the boundaries: what this service owns vs. what it depends on.
- Explain the data flow for a typical user request.
Project Structure
Walk through the directory structure:
src/
api/ # HTTP handlers, routes, middleware
services/ # Business logic layer
models/ # Data models and database entities
repositories/ # Data access layer
utils/ # Shared utilities
config/ # Application configuration
tests/
unit/ # Unit tests
integration/ # Integration tests
e2e/ # End-to-end tests
fixtures/ # Test data factories
docs/ # Project documentation
scripts/ # Development and deployment scripts
Explain the conventions:
- Where new features should be added.
- How layers communicate (controllers call services, services call repositories).
- How configuration is loaded and used.
- Where tests go and how they are organized.
Key Design Patterns
Walk through the 3-5 most important patterns used in the project:
- Authentication and authorization flow.
- Error handling pattern.
- Data validation approach.
- Async job processing (if applicable).
- Event-driven communication (if applicable).
Step 4: Development Workflow
Daily Workflow
- Pull latest changes from the main branch.
- Create a feature branch from main:
git checkout -b feature/{ticket-id}-{description}.
- Make changes, write tests, verify locally.
- Commit with descriptive messages (see commit conventions below).
- Push the branch and create a pull request.
- Address review feedback.
- Merge after approval.
Commit Message Convention
{type}({scope}): {description}
{optional body}
{optional footer}
Types: feat, fix, refactor, test, docs, chore, perf, ci
Examples:
feat(auth): add password reset flow
fix(orders): correct tax calculation for international orders
refactor(users): extract validation into middleware
Branch Naming
- Feature:
feature/{ticket-id}-{short-description}
- Bug fix:
fix/{ticket-id}-{short-description}
- Hotfix:
hotfix/{ticket-id}-{short-description}
Pull Request Process
- Fill out the PR template completely.
- Link the related ticket/issue.
- Add screenshots or recordings for UI changes.
- Request review from at least one team member.
- Address all review comments or discuss disagreements.
- Squash and merge after approval (or per team convention).
Step 5: Code Review Process
As a Reviewer
- Review within
{review-sla} of being requested. Fill this in from the team's actual
agreement — do not invent it. This plugin does not set your SLA, and neither CLAUDE.md nor
the std-git-workflow skill pins one; a number that appears only in an onboarding doc is a
number nobody agreed to, and a new developer has no way to tell the difference.
- Check for correctness, readability, test coverage, and adherence to conventions.
- Use the code-reviewer skill for systematic reviews.
- Be constructive — suggest alternatives, not just criticize.
- Approve when the code is good enough, not when it is perfect.
As an Author
- Keep PRs small and focused (under 400 lines of changes).
- Write a clear PR description explaining what and why.
- Self-review your PR before requesting review.
- Respond to all comments, even if just acknowledging.
Step 6: Testing Expectations
- Write tests for all new code.
- Run the full test suite before pushing.
- Tests must pass in CI before merge.
- Use the test-generator skill for guidance on test structure.
- Coverage target: 80% line coverage for new code.
Step 7: Deployment Process
- Staging deploys happen automatically on merge to main (or manually triggered).
- Production deploys are scheduled and coordinated with the team.
- Use the deploy skill for deployment procedures.
- Never deploy directly to production without the deployment checklist.
Step 8: Getting Help
- Code questions: Search the codebase, read tests for examples, ask on the team channel.
- Architecture questions: Check documentation in
docs/, ask the tech lead.
- Process questions: Refer to this onboarding guide and the dev-handbook.
- Blocked on access/tools: Contact the team lead immediately.
Step 9: Web Frontend Setup
Vite SPA Setup
# Navigate to web directory
cd web/
# Install dependencies
npm install
# Start development server (default port 5173)
npm run dev
# App available at http://localhost:5173
# Run tests
npm run test
# Build for production
npm run build
Next.js Setup
# Navigate to next directory
cd next/
# Install dependencies
npm install
# Start development server (port 3001 to avoid conflict with Vite)
npm run dev -- -p 3001
# App available at http://localhost:3001
# Run tests
npm run test
# Build for production
npm run build
Web Project Structure Walkthrough
web/ # Vite SPA (React + React Router)
├── src/
│ ├── pages/ # One page per route (lazy-loaded)
│ ├── components/ # Shared UI components
│ ├── hooks/ # Custom hooks (business logic)
│ ├── api/ # TanStack Query hooks + axios client
│ ├── stores/ # Zustand stores (client-only state)
│ ├── domain/ # TypeScript domain types
│ ├── router/ # React Router configuration
│ └── i18n/ # Internationalization
next/ # Next.js App Router (SSR/SSG)
├── app/ # App Router pages and layouts
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page (Server Component)
│ └── (dashboard)/ # Route group
├── src/
│ ├── actions/ # Server actions (mutations)
│ ├── components/ # Shared components
│ ├── hooks/ # Client-side hooks
│ └── api/ # Rails API client
├── middleware.ts # Auth, locale detection
Key Conventions for Web
- All frontends share the same Rails API — React Native, Vite SPA, and Next.js.
- TanStack Query for server data, Zustand for client-only state (same pattern across all frontends).
- Tailwind CSS for web styling (not used in React Native).
- Vitest for web testing (not Jest).
Step 10: Agent Teams
Agent teams let multiple Claude Code instances work in parallel on complex tasks. They are useful for full-stack feature development, comprehensive code reviews, and incident response.
Using Team Templates
Ask Claude to use a pre-defined team template:
"Use the Feature Team to build a user profile feature" — spawns architecture-advisor (lead), rails-architect, reactjs-dev, test-generator, security-auditor
"Use the Review Team to review this PR" — spawns code-reviewer (lead), security-auditor, clean-architecture, test-generator
"Use the Incident Team" — spawns incident-responder (lead), devops-engineer, rails-architect
"Use the Refactor Team to extract the payment module" — spawns architecture-advisor (lead), refactor-specialist, test-generator, code-reviewer
"Use the Infrastructure Team for the Terraform migration" — spawns devops-engineer (lead), security-auditor, architecture-advisor
Working with Teammates
- Each teammate works on a distinct set of files — no two teammates edit the same file
- Communicate via messages (the system handles delivery automatically)
- Check the task list (
TaskList) to see available work and progress
- Mark tasks completed when done — quality gate hooks will validate your work
Quality Gates
Two hooks enforce team quality automatically:
- TeammateIdle — checks that you produced actual deliverables (not just research)
- TaskCompleted — validates your work matches the task description and passes basic linting
When Teams Are Suggested
Claude will suggest a team when:
- The task spans 3+ layers (backend, frontend, tests, infrastructure)
- You ask to review or audit across multiple dimensions
- The work contains multiple independent deliverables
First Week Plan
| Day |
Focus |
Goal |
| Day 1 |
Setup |
Environment running, tests passing, architecture overview |
| Day 2 |
Exploration |
Read key modules, trace a request end-to-end, review recent PRs |
| Day 3 |
First task |
Pick a small bug fix or documentation improvement |
| Day 4 |
First PR |
Submit PR, go through the review process |
| Day 5 |
Review |
Review a teammate's PR, deeper dive into a module |
Deep guides (read on demand, do not preload)
- Tech-stack deep dive, code review process, testing strategy, environment variables, incident response, getting help →
references/dev-handbook.md
1---2name: onboarding3description: Create developer onboarding guides, setup documentation, and knowledge base articles for software teams. Use this skill whenever someone asks to create onboarding docs, setup instructions, a getting started guide, team documentation, runbooks, or says things like "help new devs get started", "document our setup process", "write the onboarding guide", "create a runbook for X", or "how should we document this for the team". Also trigger when someone asks about reducing onboarding time, knowledge transfer, or team documentation strategy.4model: haiku5---67# Onboarding Guide Builder89Create onboarding documentation that gets a new developer productive in days, not weeks. Good onboarding docs are the highest-leverage documentation a team can write — they pay dividends on every hire for years.1011## Onboarding Workflow1213### Step 1: Prerequisites1415Verify the new developer has the following installed and configured:1617#### Required Tools18- **Git**: Version 2.30+ with SSH key configured for the repository host.19- **Runtime**: The project's language runtime at the version specified in `.tool-versions`, `.nvmrc`, `runtime.txt`, or equivalent.20- **Package manager**: npm/yarn/pnpm (Node.js), pip/poetry (Python), bundler (Ruby), etc.21- **Docker**: Docker Desktop or Docker Engine with Compose for local service dependencies.22- **IDE/Editor**: Recommended IDE with project-specific extensions/plugins installed.23- **Database client**: CLI or GUI tool for the project's database.2425#### Accounts and Access26- [ ] Repository access (GitHub/GitLab/Bitbucket).27- [ ] CI/CD pipeline access (read at minimum).28- [ ] Cloud provider console access (staging environment).29- [ ] Monitoring and logging platform access.30- [ ] Project management tool (Jira, Linear, etc.).31- [ ] Communication channels (Slack, Teams, etc.).32- [ ] Secrets/credentials for local development (via team lead).3334### Step 2: Repository Setup3536```bash37# Clone the repository38git clone {repository-url}39cd {project-name}4041# Install dependencies42{install-command}4344# Copy environment configuration45cp .env.example .env46# Edit .env with local values (database URL, API keys for dev, etc.)4748# Start local services (database, cache, message queue)49docker-compose up -d5051# Run database migrations52{migration-command}5354# Seed development data (if available)55{seed-command}5657# Verify setup — run the test suite58{test-command}5960# Start the development server61{dev-command}62```6364After setup, verify:65- [ ] Application starts without errors.66- [ ] Tests pass.67- [ ] Can access the application in browser or via API client.68- [ ] Database is populated with seed data.6970### Step 3: Architecture Walkthrough7172Present the high-level architecture to the new developer:7374#### System Overview751. Draw or show the system architecture diagram.762. Explain each service/component and its responsibility.773. Identify the boundaries: what this service owns vs. what it depends on.784. Explain the data flow for a typical user request.7980#### Project Structure81Walk through the directory structure:8283```84src/85 api/ # HTTP handlers, routes, middleware86 services/ # Business logic layer87 models/ # Data models and database entities88 repositories/ # Data access layer89 utils/ # Shared utilities90 config/ # Application configuration91tests/92 unit/ # Unit tests93 integration/ # Integration tests94 e2e/ # End-to-end tests95 fixtures/ # Test data factories96docs/ # Project documentation97scripts/ # Development and deployment scripts98```99100Explain the conventions:101- Where new features should be added.102- How layers communicate (controllers call services, services call repositories).103- How configuration is loaded and used.104- Where tests go and how they are organized.105106#### Key Design Patterns107Walk through the 3-5 most important patterns used in the project:108- Authentication and authorization flow.109- Error handling pattern.110- Data validation approach.111- Async job processing (if applicable).112- Event-driven communication (if applicable).113114### Step 4: Development Workflow115116#### Daily Workflow1171. Pull latest changes from the main branch.1182. Create a feature branch from main: `git checkout -b feature/{ticket-id}-{description}`.1193. Make changes, write tests, verify locally.1204. Commit with descriptive messages (see commit conventions below).1215. Push the branch and create a pull request.1226. Address review feedback.1237. Merge after approval.124125#### Commit Message Convention126```127{type}({scope}): {description}128129{optional body}130131{optional footer}132```133134Types: `feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `perf`, `ci`135136Examples:137- `feat(auth): add password reset flow`138- `fix(orders): correct tax calculation for international orders`139- `refactor(users): extract validation into middleware`140141#### Branch Naming142- Feature: `feature/{ticket-id}-{short-description}`143- Bug fix: `fix/{ticket-id}-{short-description}`144- Hotfix: `hotfix/{ticket-id}-{short-description}`145146#### Pull Request Process1471. Fill out the PR template completely.1482. Link the related ticket/issue.1493. Add screenshots or recordings for UI changes.1504. Request review from at least one team member.1515. Address all review comments or discuss disagreements.1526. Squash and merge after approval (or per team convention).153154### Step 5: Code Review Process155156#### As a Reviewer157- Review within `{review-sla}` of being requested. **Fill this in from the team's actual158 agreement — do not invent it.** This plugin does not set your SLA, and neither CLAUDE.md nor159 the `std-git-workflow` skill pins one; a number that appears only in an onboarding doc is a160 number nobody agreed to, and a new developer has no way to tell the difference.161- Check for correctness, readability, test coverage, and adherence to conventions.162- Use the code-reviewer skill for systematic reviews.163- Be constructive — suggest alternatives, not just criticize.164- Approve when the code is good enough, not when it is perfect.165166#### As an Author167- Keep PRs small and focused (under 400 lines of changes).168- Write a clear PR description explaining what and why.169- Self-review your PR before requesting review.170- Respond to all comments, even if just acknowledging.171172### Step 6: Testing Expectations173174- Write tests for all new code.175- Run the full test suite before pushing.176- Tests must pass in CI before merge.177- Use the test-generator skill for guidance on test structure.178- Coverage target: 80% line coverage for new code.179180### Step 7: Deployment Process181182- Staging deploys happen automatically on merge to main (or manually triggered).183- Production deploys are scheduled and coordinated with the team.184- Use the deploy skill for deployment procedures.185- Never deploy directly to production without the deployment checklist.186187### Step 8: Getting Help188189- **Code questions**: Search the codebase, read tests for examples, ask on the team channel.190- **Architecture questions**: Check documentation in `docs/`, ask the tech lead.191- **Process questions**: Refer to this onboarding guide and the dev-handbook.192- **Blocked on access/tools**: Contact the team lead immediately.193194### Step 9: Web Frontend Setup195196#### Vite SPA Setup197```bash198# Navigate to web directory199cd web/200201# Install dependencies202npm install203204# Start development server (default port 5173)205npm run dev206# App available at http://localhost:5173207208# Run tests209npm run test210211# Build for production212npm run build213```214215#### Next.js Setup216```bash217# Navigate to next directory218cd next/219220# Install dependencies221npm install222223# Start development server (port 3001 to avoid conflict with Vite)224npm run dev -- -p 3001225# App available at http://localhost:3001226227# Run tests228npm run test229230# Build for production231npm run build232```233234#### Web Project Structure Walkthrough235```236web/ # Vite SPA (React + React Router)237├── src/238│ ├── pages/ # One page per route (lazy-loaded)239│ ├── components/ # Shared UI components240│ ├── hooks/ # Custom hooks (business logic)241│ ├── api/ # TanStack Query hooks + axios client242│ ├── stores/ # Zustand stores (client-only state)243│ ├── domain/ # TypeScript domain types244│ ├── router/ # React Router configuration245│ └── i18n/ # Internationalization246247next/ # Next.js App Router (SSR/SSG)248├── app/ # App Router pages and layouts249│ ├── layout.tsx # Root layout250│ ├── page.tsx # Home page (Server Component)251│ └── (dashboard)/ # Route group252├── src/253│ ├── actions/ # Server actions (mutations)254│ ├── components/ # Shared components255│ ├── hooks/ # Client-side hooks256│ └── api/ # Rails API client257├── middleware.ts # Auth, locale detection258```259260#### Key Conventions for Web261- **All frontends share the same Rails API** — React Native, Vite SPA, and Next.js.262- **TanStack Query** for server data, **Zustand** for client-only state (same pattern across all frontends).263- **Tailwind CSS** for web styling (not used in React Native).264- **Vitest** for web testing (not Jest).265266### Step 10: Agent Teams267268Agent teams let multiple Claude Code instances work in parallel on complex tasks. They are useful for full-stack feature development, comprehensive code reviews, and incident response.269270#### Using Team Templates271Ask Claude to use a pre-defined team template:272- `"Use the Feature Team to build a user profile feature"` — spawns architecture-advisor (lead), rails-architect, reactjs-dev, test-generator, security-auditor273- `"Use the Review Team to review this PR"` — spawns code-reviewer (lead), security-auditor, clean-architecture, test-generator274- `"Use the Incident Team"` — spawns incident-responder (lead), devops-engineer, rails-architect275- `"Use the Refactor Team to extract the payment module"` — spawns architecture-advisor (lead), refactor-specialist, test-generator, code-reviewer276- `"Use the Infrastructure Team for the Terraform migration"` — spawns devops-engineer (lead), security-auditor, architecture-advisor277278#### Working with Teammates279- Each teammate works on a distinct set of files — no two teammates edit the same file280- Communicate via messages (the system handles delivery automatically)281- Check the task list (`TaskList`) to see available work and progress282- Mark tasks completed when done — quality gate hooks will validate your work283284#### Quality Gates285Two hooks enforce team quality automatically:286- **TeammateIdle** — checks that you produced actual deliverables (not just research)287- **TaskCompleted** — validates your work matches the task description and passes basic linting288289#### When Teams Are Suggested290Claude will suggest a team when:291- The task spans 3+ layers (backend, frontend, tests, infrastructure)292- You ask to review or audit across multiple dimensions293- The work contains multiple independent deliverables294295## First Week Plan296297| Day | Focus | Goal |298|---|---|---|299| Day 1 | Setup | Environment running, tests passing, architecture overview |300| Day 2 | Exploration | Read key modules, trace a request end-to-end, review recent PRs |301| Day 3 | First task | Pick a small bug fix or documentation improvement |302| Day 4 | First PR | Submit PR, go through the review process |303| Day 5 | Review | Review a teammate's PR, deeper dive into a module |304305## Deep guides (read on demand, do not preload)306307- Tech-stack deep dive, code review process, testing strategy, environment variables, incident response, getting help → `references/dev-handbook.md`