agentleFS
brittbritt/agent-skills/skills/project-analysis/SKILL.md

project-analysis

Skill11 starsChanged 6 days agoMITView on GitHub

Use when starting work on an unfamiliar codebase or asked to 'analyze this project' - maps structure, project type, architecture pattern, key files, and dependencies into a standard report

  • Reads credentials

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 1 is distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read manifest files to identify the stack: package.json, go.mod, pyproject.toml, Cargo.toml, Gemfile, pom.xml, etc.

    line 28
  2. Very specific:

    If useful, count files by extension to gauge language distribution, e.g.

    line 29
  3. Distinctive:

    Read the dependency file to understand:

    line 73

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Project Analysis Skill

Perform comprehensive analysis of a project codebase to understand its structure, architecture, key files, and dependencies.

When to Use

Activate when:

  • User asks "analyze this project" or "what does this codebase look like?"
  • Starting work on an unfamiliar codebase
  • Reviewing project architecture before making changes
  • Generating documentation about project structure
  • Understanding dependency landscape

When NOT to use: For questions about a single file or feature, just read the relevant file directly — a full analysis is overkill.

Analysis Workflow

Step 1: Survey the Codebase

Build a high-level overview using standard filesystem operations:

  1. List the directory tree with ls or Glob to see top-level structure
  2. Read manifest files to identify the stack: package.json, go.mod, pyproject.toml, Cargo.toml, Gemfile, pom.xml, etc.
  3. If useful, count files by extension to gauge language distribution, e.g. find . -name '*.ts' -not -path '*/node_modules/*' | wc -l

Step 2: Understand Project Type

Based on what the survey found, identify the project type:

IndicatorProject Type
package.json + React/Next.jsWeb application
package.json + Express/FastifyAPI server
Cargo.tomlRust project
pyproject.toml / setup.pyPython project
go.modGo project
Dockerfile + docker-composeContainerized service
index.ts + bin/CLI tool

Step 3: Read Key Files

Examine critical files:

Always check:

  • README.md - Project purpose and documentation
  • package.json / Cargo.toml / pyproject.toml - Dependencies and metadata

Check if they exist:

  • tsconfig.json / vite.config.ts / webpack.config.js - Build configuration
  • Dockerfile / docker-compose.yml - Container setup
  • .env.example - Environment variables
  • CONTRIBUTING.md - Development workflow

Step 4: Explore Architecture

List key directories (src/, lib/, app/, etc.) to understand component organization, then identify architectural patterns:

PatternIndicators
MVCcontrollers/, models/, views/ directories
Layeredservices/, repositories/, handlers/
Feature-basedFeature directories with co-located files
Monorepopackages/ or apps/ directories
MicroservicesMultiple service directories with own configs

Step 5: Analyze Dependencies

Read the dependency file to understand:

  • Runtime dependencies: Core libraries the project relies on
  • Dev dependencies: Build tools, test frameworks, linters
  • Package manager: npm, yarn, pnpm, cargo, pip, etc.
  • Dependency count: Overall complexity indicator

Analysis Depth

Scale depth to the request — quick = structure + project type only; deep = all steps plus reading entry points and core modules.

Output Format

Present analysis in this structure:

## Project Analysis: [Name]

### Overview
- **Type**: [Web app / API / CLI / Library / etc.]
- **Primary Language**: [language] (X%)
- **Total Files**: X

### Architecture
- **Pattern**: [MVC / Layered / Feature-based / etc.]
- **Key Directories**:
  - `src/commands/` - CLI command implementations
  - `src/services/` - Business logic layer

### Key Files
| File | Purpose |
|------|---------|
| `index.ts` | Application entry point |
| `package.json` | Dependencies and scripts |

### Dependencies
- **Package Manager**: [npm/yarn/pnpm]
- **Runtime** (X packages): [key ones listed]
- **Development** (Y packages): [key ones listed]

### Observations
- [Notable patterns or concerns]
- [Suggested improvements]

Best Practices

  1. Be specific: Name actual files and directories, don't generalize
  2. Note concerns: Flag large files, missing docs, or unusual patterns

Common Mistakes

  • Don't guess architecture from file names alone — read key files before concluding
  • Don't include vendored/generated directories (node_modules, dist, target) in counts or structure

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.