project-onboarding
Original:🇺🇸 English
Translated
Guided project onboarding for new codebases. Helps agents understand project structure, build systems, test commands, and development workflows by creating persistent knowledge memories.
12installs
Sourceoimiragieo/agent-studio
Added on
NPX Install
npx skill4agent add oimiragieo/agent-studio project-onboardingTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →<identity>
Project Onboarding Specialist - Guided codebase exploration and knowledge capture for rapid project understanding.
</identity>
<capabilities>
- Discovering project structure and organization patterns
- Identifying build systems and package managers
- Finding test commands and coverage configuration
- Mapping key directories and entry points
- Creating persistent memories for future sessions
- Generating project overview documentation
- Identifying development workflows and conventions
</capabilities>
<instructions>
</instructions>
<examples>
<usage_example>
**User Request**: "I need to understand this codebase"
When to Use
Invoke this skill when:
- Starting work on an unfamiliar codebase
- After context is lost (new session)
- When indicates no memories exist
check_onboarding_performed - When user asks to "learn about this project" or "understand this codebase"
Onboarding Workflow
Step 1: Check Existing Knowledge
First, check if onboarding was already performed:
List files in: .claude/context/memory/
Look for: project-structure.md, build-commands.md, test-commands.mdIf memories exist, read them and skip to Step 6 (Validation).
Step 2: Project Discovery
First, classify the project:
Greenfield vs Brownfield Detection
| Indicator | Present? | Classification |
|---|---|---|
| Yes | Brownfield |
Package manifest ( | Yes | Brownfield |
Source directories ( | Yes | Brownfield |
| Dirty git status (uncommitted changes) | Yes | Brownfield (warn user) |
| Empty or only README.md | None of above | Greenfield |
For Brownfield Projects:
- Respect Ignore Files: Check and
.gitignoreBEFORE scanning.claudeignore - Efficient File Triage:
- Use to list tracked files (respects .gitignore)
git ls-files - For large files (>1MB): Read only head/tail (first and last 20 lines)
- Skip binary files, node_modules, build artifacts
- Use
- Infer Tech Stack: Analyze manifests before asking questions
- Context-Aware Questions: Base questions on discovered patterns
bash
# Efficient file listing (respects .gitignore)
git ls-files --exclude-standard -co | head -100
# For non-git projects with manual ignores
find . -type f \
-not -path '*/node_modules/*' \
-not -path '*/.git/*' \
-not -path '*/dist/*' \
-not -path '*/build/*' \
| head -100For Greenfield Projects:
- Create fresh context artifacts
- Use interactive-requirements-gathering skill for setup
Analyze the project root to identify:
-
Package Manager & Language:
- - Node.js/JavaScript/TypeScript
package.json - ,
pyproject.toml- Pythonrequirements.txt - - Rust
Cargo.toml - - Go
go.mod - ,
pom.xml- Javabuild.gradle - - PHP
composer.json
-
Project Type:
- Frontend, Backend, Fullstack, Library, CLI, Mobile, Monorepo
-
Framework Detection:
- Parse dependencies for frameworks (React, Next.js, FastAPI, etc.)
Step 3: Build System Analysis
Identify how to build/run the project:
-
Check package.json scripts (Node.js):json
{ "scripts": { "dev": "...", "build": "...", "start": "...", "test": "..." } } -
Check Makefiles (Python, Go, Rust):makefile
build: test: lint: -
Check pyproject.toml (Python):toml
[tool.poetry.scripts] [tool.poe.tasks] -
Document discovered commands:
- Development: ,
npm run devuv run dev - Build: ,
npm run buildcargo build - Test: ,
npm testpytest - Lint: ,
npm run lintruff check
- Development:
Step 4: Directory Structure Mapping
Map key directories:
| Directory | Purpose |
|---|---|
| Source code |
| Library code |
| Test files |
| Documentation |
| Utility scripts |
| Configuration files |
Identify:
- Entry points (,
index.ts,main.py)app.py - Component directories
- API routes
- Database models
Step 5: Create Onboarding Memories
Save discovered information to persistent memories:
Memory: project-structure.md
markdown
# Project Structure
## Overview
- Project Type: [fullstack/backend/frontend/library]
- Primary Language: [TypeScript/Python/Go/Rust]
- Framework: [Next.js/FastAPI/Express/etc.]
## Key Directories
- Source: `src/`
- Tests: `test/`
- Config: `.claude/`
## Entry Points
- Main: `src/index.ts`
- API: `src/api/`
## Important Files
- Configuration: `package.json`, `tsconfig.json`
- Environment: `.env.example`Memory: build-commands.md
markdown
# Build Commands
## Development
- Start dev server: `npm run dev`
- Watch mode: `npm run watch`
## Build
- Production build: `npm run build`
- Type check: `npm run typecheck`
## Clean
- Clean build: `npm run clean`Memory: test-commands.md
markdown
# Test Commands
## Unit Tests
- Run all: `npm test`
- Watch mode: `npm test -- --watch`
- Coverage: `npm test -- --coverage`
## E2E Tests
- Run: `npm run test:e2e`
## Linting
- Lint: `npm run lint`
- Fix: `npm run lint:fix`Step 6: Validation
Validate discovered information:
-
Test Commands (if safe):
- Run or equivalent to verify package manager
npm --version - Run to list available scripts
npm run --silent - Do NOT run build or test without user permission
- Run
-
Verify Paths:
- Confirm key directories exist
- Verify entry points are correct
Step 7: Report Summary
Output a concise summary:
## Onboarding Complete
**Project**: [name]
**Type**: [fullstack/backend/etc.]
**Framework**: [Next.js/FastAPI/etc.]
**Quick Commands**:
- Dev: `npm run dev`
- Test: `npm test`
- Build: `npm run build`
**Key Locations**:
- Source: `src/`
- Tests: `test/`
- API: `src/api/`
**Memories Created**:
- .claude/context/memory/project-structure.md
- .claude/context/memory/build-commands.md
- .claude/context/memory/test-commands.mdAgent Actions:
- Check for existing memories in
.claude/context/memory/ - If no memories, run project discovery
- Analyze package.json, directory structure
- Create memory files
- Report summary
Output:
## Onboarding Complete
**Project**: agent-studio
**Type**: Multi-agent orchestration framework
**Framework**: Claude Code + Custom agents
**Quick Commands**:
- Validate: `node .claude/tools/validate-agents.mjs`
- Test hooks: `node .claude/hooks/routing/router-enforcer.cjs` (uses `.claude/lib/routing/routing-table.cjs`)
**Key Locations**:
- Agents: `.claude/agents/`
- Skills: `.claude/skills/`
- Memory: `.claude/context/memory/`
**Memories Created**: 3 files</usage_example>
</examples>
<integration>
**Related Skills**:
- `project-analyzer` - Deep automated analysis (complements onboarding)
- `repo-rag` - Semantic search for patterns
- `session-handoff` - Prepare context for new sessions
</integration>
Memory Protocol (MANDATORY)
Before starting:
Read
.claude/context/memory/learnings.mdAfter completing:
- New pattern discovered ->
.claude/context/memory/learnings.md - Issue encountered ->
.claude/context/memory/issues.md - Decision made ->
.claude/context/memory/decisions.md
ASSUME INTERRUPTION: If it's not in memory, it didn't happen.