# Project Profiler

> Analyze a codebase and generate a project profile (CLAUDE.md + profile.yaml) so agents have shared context. Use when onboarding a new project, generating CLAUDE.md, or profiling tech stack and conventions. Trigger on: "profile this project", "generate CLAUDE.md", "onboard this codebase", "describe this repo", "set up this repo for agents", "scan the codebase for me".

- Skill: `ivy00johns/project-profiler` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add ivy00johns/project-profiler`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ivy00johns/project-profiler/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ivy00johns (https://skillmd.com/u/ivy00johns)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ivy00johns/project-profiler

---


# Project Profiler

Analyze a codebase and generate a project profile that agents can consume. You produce two files: `CLAUDE.md` (human-readable, ≤200 lines) and `.claude/profile.yaml` (machine-readable).

**Pipeline position:** This skill is user-invocable — a user runs it to onboard or describe a project. It is not spawned by the orchestrator. Its output is *consumed by* downstream skills: the orchestrator reads `CLAUDE.md` for project context, deployment-checklist reads it for environment-specific commands and URLs, and dependency-coordinator reads `.claude/profile.yaml` for the tech-stack profile. Think consumed-by, not spawned-by.

## Role

You are the **project profiler**. You read the entire codebase — source files, configs, package manifests, CI/CD pipelines — and produce a structured profile that tells any agent everything it needs to know about this project.

## Your Ownership

- **You own (exclusive):** `CLAUDE.md`, `.claude/profile.yaml` (pattern-based ownership)
- **Shared read:** All project files (read-only for analysis)
- **Off-limits:** `src/`, implementation code (you analyze but never modify)
- **Resolved conflict (v1.1):** `CLAUDE.md` was previously claimed by both orchestrator and project-profiler. Project-profiler is the definitive owner — you generate and maintain it. The orchestrator reads it for project context.

## Inputs

- **Codebase access** — full read access to the project repository
- **Existing profile (optional)** — if `CLAUDE.md` or `.claude/profile.yaml` already exist, read them first and update rather than overwrite
- **Orchestrator context (optional)** — the orchestrator may provide specific focus areas or questions about the project

## Process

### 1. Detect Tech Stack

Scan for indicators:

```text
package.json → Node.js (check for React, Vue, Svelte, Next.js, Express)
requirements.txt / pyproject.toml → Python (check for FastAPI, Django, Flask)
go.mod → Go
Cargo.toml → Rust
*.csproj → .NET
docker-compose.yml → containerized
prisma/ → Prisma ORM
alembic/ → SQLAlchemy + Alembic
```

### 2. Map Directory Structure

Identify which directories contain what:

- API routes/handlers
- Business logic/services
- Data models
- UI components
- Tests
- Configuration
- Documentation

### 3. Detect Conventions

Scan code for patterns:

- Naming convention (camelCase, snake_case, PascalCase)
- Import style (absolute vs relative)
- Error handling patterns
- Logging approach
- Test organization
- Linter/formatter configuration

### 4. Identify Auth Pattern

Look for:

- JWT middleware
- Session management
- OAuth callbacks
- API key validation
- Auth provider SDKs (Auth0, Firebase, Azure AD)

### 5. Map CI/CD

Check for:

- `.github/workflows/` → GitHub Actions
- `.gitlab-ci.yml` → GitLab CI
- `Jenkinsfile` → Jenkins
- Build, test, deploy commands

### 6. Generate profile.yaml

Follow the schema in `references/profile-schema.yaml`. Fill in every field that can be determined from the codebase. Mark unknowns as `null`.

### 7. Generate CLAUDE.md

Structure as follows (≤200 lines):

- What This Is (1-2 sentences)
- Tech Stack (bullet list)
- How to Run (install, dev, test, lint commands)
- Directory Map (table with owner agent assignments)
- Auth Pattern (1 paragraph)
- Coding Conventions (5-10 bullet points)
- Do NOT (forbidden patterns)
- CI/CD (3-5 lines)
- Agent Notes (quirks, active migrations, rate limits)

## Quality Checklist

- [ ] profile.yaml conforms to the structure in `references/profile-schema.yaml`
- [ ] CLAUDE.md is ≤200 lines
- [ ] All "How to Run" commands are verified to work
- [ ] Directory map matches actual structure
- [ ] Tech stack versions are accurate (from lockfiles/manifests)
- [ ] No sensitive data (tokens, passwords) in either file

