Analyzing Software Projects
This skill enables Claude Code to perform deep, evidence-based analysis of software projects and produce structured reports suitable for SHOWCASE.md creation and showcase publishing on showroom.lenne.tech.
When to Use This Skill
- User asks to analyze a project for a showcase or portfolio entry
- User wants to understand what a codebase does or how it is structured
- Running
/showroom:analyze, /showroom:create, or /showroom:update commands
- Working inside the showroom platform repository on analysis features
- User asks about a project's technology stack, features, or architecture
Skill Boundaries
| User Intent |
Correct Skill |
| Analyze project source code |
THIS SKILL |
| Create or update a showcase |
creating-showcases |
| Develop the showroom platform itself |
lt-dev:generating-nest-servers / lt-dev:developing-lt-frontend |
Related Skills
Works closely with:
creating-showcases — Consumes analysis reports to build SHOWCASE.md and showcase content
lt-dev:generating-nest-servers — For backend development on the showroom API
Analysis Dimensions
Every project analysis covers exactly 8 dimensions. Read the full guide in ${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md.
| # |
Dimension |
Purpose |
| 1 |
Technology Stack |
Languages, frameworks, key libraries, runtimes |
| 2 |
Architecture |
Structure, patterns, separation of concerns |
| 3 |
Core Features |
User-facing capabilities backed by endpoints/components |
| 4 |
API Surface |
REST endpoints, GraphQL schema, auth mechanisms |
| 5 |
Testing Strategy |
Test types, frameworks, coverage breadth |
| 6 |
UI/UX Patterns |
Component libraries, responsive design, accessibility |
| 7 |
Security Measures |
Auth, validation, rate limiting, encryption |
| 8 |
Performance Optimizations |
Caching, query optimization, async patterns |
Additional Analysis (Required for Phase 2+3)
Beyond the 8 dimensions, every analysis MUST also produce:
Feature List with Evidence
For each feature, record:
- Name — short, action-oriented label (e.g. "Role-based Access Control")
- Description — 1-2 sentences describing what the feature does
- Evidence —
file:line reference to the implementing code
- Screenshot candidate — which page/view best demonstrates this feature
Apply heuristics from ${CLAUDE_SKILL_DIR}/reference/feature-extraction.md to detect features systematically.
How to Get the Project Running (CRITICAL)
The analysis MUST produce a complete, actionable recipe to start the project from scratch. This is not optional — without it, screenshots cannot be taken and features cannot be verified.
Follow the full 8-step detection protocol in ${CLAUDE_SKILL_DIR}/reference/startup-detection.md:
- Project Structure & Package Manager
- Dependency Installation
- Environment Configuration
- Database & External Services
- Start Command
- First User / Authentication Setup
- Demo Data / Seed
- Auth Routes & Login Pages
Output the findings as a startupInfo YAML block (schema in ${CLAUDE_SKILL_DIR}/reference/startup-detection.md).
Gotchas
- Ports 3000/3001 are hardcoded in lenne.tech projects — If another project is already running, screenshots will capture the wrong app. Always check
lsof -i :3000 -i :3001 before starting.
.env.example often hides required secrets — Keys like OPENAI_API_KEY, DIRECTUS_URL, or database credentials look optional but the app will fail silently at runtime. Flag these as envRequired.
- Tauri projects need web-only mode for screenshots — If
src-tauri/ is present, the full npm run dev builds the desktop app. Use npx nuxt dev directly to bypass Tauri and get a browser-accessible dev server on port 3001.
Pages and Views Inventory
List all navigable pages and views in the application for screenshot planning:
Frontend Projects (Nuxt, Next.js, Vue, React, Angular):
- Glob for
pages/, app/, views/, routes/ directories
- Read router files to enumerate all routes
- Classify each route: public, authenticated, admin
- Note the primary feature each page exposes
Backend-only Projects (NestJS, Express, Fastify):
- Enumerate controller route prefixes
- Identify any swagger/API docs endpoint
Output a pagesInventory list:
pagesInventory:
- path: "/"
name: "Landing Page"
auth: "public"
feature: "Homepage"
- path: "/dashboard"
name: "Dashboard"
auth: "authenticated"
feature: "Overview & Analytics"
- path: "/projects/:id"
name: "Project Detail"
auth: "authenticated"
feature: "Project Management"
Execution Protocol
- Discover — Read manifest files to detect tech stack (
${CLAUDE_SKILL_DIR}/reference/framework-detection.md)
- Map — Glob for controllers, services, models, components, test files
- Deep-read — Follow imports, read implementations for key findings
- Extract features — Apply heuristics from
${CLAUDE_SKILL_DIR}/reference/feature-extraction.md
- Detect startup — Check docker-compose, package scripts, env requirements
- Inventory pages — Enumerate all routes and views
- Compile — Structure output according to
${CLAUDE_SKILL_DIR}/reference/report-schema.md
- Validate — Verify every claim has a
file:line reference
Validation Rules
- No speculation — Every feature claim needs a code reference
- No marketing language — Describe what the code does, not potential
- Accurate names — Use exact package names from dependency files
- Honest coverage — If tests are sparse, say so
- No duplication — Each finding in exactly one dimension
Output Format
Produce a structured report following ${CLAUDE_SKILL_DIR}/reference/report-schema.md.
The report MUST include:
- All 8 analysis dimensions
- Feature list with evidence and screenshot candidates
startupInfo block
pagesInventory list
Source references use the format: path/to/file.ts:42
Unknown or undeterminable items are marked as unknown — never guessed.
Reference Files
${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md — Detailed guide for each of the 8 dimensions
${CLAUDE_SKILL_DIR}/reference/framework-detection.md — Framework detection lookup table
${CLAUDE_SKILL_DIR}/reference/feature-extraction.md — Feature heuristics (auth, uploads, realtime, etc.)
${CLAUDE_SKILL_DIR}/reference/startup-detection.md — Full 8-step startup detection protocol with startupInfo schema
${CLAUDE_SKILL_DIR}/reference/report-schema.md — TypeScript interface for the structured report
1---2name: analyzing-projects3description: Analyzes software projects to extract technology stack, architecture, features, API surface, testing strategy, UI/UX patterns, security measures, and performance optimizations. Produces structured, evidence-based reports where every claim is backed by a source code reference. Also detects how the application is started (scripts, Docker, database requirements) and enumerates all pages and views for screenshot planning. Outputs a structured report that feeds directly into SHOWCASE.md creation and screenshot automation. Activates when analyzing a project for showroom showcases, portfolio entries, project documentation, or when a user asks what a project does or how it is built. NOT for creating or publishing showcases (use creating-showcases). NOT for platform development (use generating-nest-servers).4---56# Analyzing Software Projects78This skill enables Claude Code to perform deep, evidence-based analysis of software projects and produce structured reports suitable for SHOWCASE.md creation and showcase publishing on showroom.lenne.tech.910## When to Use This Skill1112- User asks to analyze a project for a showcase or portfolio entry13- User wants to understand what a codebase does or how it is structured14- Running `/showroom:analyze`, `/showroom:create`, or `/showroom:update` commands15- Working inside the showroom platform repository on analysis features16- User asks about a project's technology stack, features, or architecture1718## Skill Boundaries1920| User Intent | Correct Skill |21|------------|---------------|22| Analyze project source code | **THIS SKILL** |23| Create or update a showcase | `creating-showcases` |24| Develop the showroom platform itself | `lt-dev:generating-nest-servers` / `lt-dev:developing-lt-frontend` |2526## Related Skills2728**Works closely with:**29- `creating-showcases` — Consumes analysis reports to build SHOWCASE.md and showcase content30- `lt-dev:generating-nest-servers` — For backend development on the showroom API3132## Analysis Dimensions3334Every project analysis covers exactly 8 dimensions. Read the full guide in `${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md`.3536| # | Dimension | Purpose |37|---|-----------|---------|38| 1 | Technology Stack | Languages, frameworks, key libraries, runtimes |39| 2 | Architecture | Structure, patterns, separation of concerns |40| 3 | Core Features | User-facing capabilities backed by endpoints/components |41| 4 | API Surface | REST endpoints, GraphQL schema, auth mechanisms |42| 5 | Testing Strategy | Test types, frameworks, coverage breadth |43| 6 | UI/UX Patterns | Component libraries, responsive design, accessibility |44| 7 | Security Measures | Auth, validation, rate limiting, encryption |45| 8 | Performance Optimizations | Caching, query optimization, async patterns |4647## Additional Analysis (Required for Phase 2+3)4849Beyond the 8 dimensions, every analysis MUST also produce:5051### Feature List with Evidence5253For each feature, record:54- **Name** — short, action-oriented label (e.g. "Role-based Access Control")55- **Description** — 1-2 sentences describing what the feature does56- **Evidence** — `file:line` reference to the implementing code57- **Screenshot candidate** — which page/view best demonstrates this feature5859Apply heuristics from `${CLAUDE_SKILL_DIR}/reference/feature-extraction.md` to detect features systematically.6061### How to Get the Project Running (CRITICAL)6263The analysis MUST produce a complete, actionable recipe to start the project from scratch. This is not optional — without it, screenshots cannot be taken and features cannot be verified.6465Follow the full 8-step detection protocol in `${CLAUDE_SKILL_DIR}/reference/startup-detection.md`:66671. Project Structure & Package Manager682. Dependency Installation693. Environment Configuration704. Database & External Services715. Start Command726. First User / Authentication Setup737. Demo Data / Seed748. Auth Routes & Login Pages7576Output the findings as a `startupInfo` YAML block (schema in `${CLAUDE_SKILL_DIR}/reference/startup-detection.md`).7778### Gotchas7980- **Ports 3000/3001 are hardcoded in lenne.tech projects** — If another project is already running, screenshots will capture the wrong app. Always check `lsof -i :3000 -i :3001` before starting.81- **`.env.example` often hides required secrets** — Keys like `OPENAI_API_KEY`, `DIRECTUS_URL`, or database credentials look optional but the app will fail silently at runtime. Flag these as `envRequired`.82- **Tauri projects need web-only mode for screenshots** — If `src-tauri/` is present, the full `npm run dev` builds the desktop app. Use `npx nuxt dev` directly to bypass Tauri and get a browser-accessible dev server on port 3001.8384### Pages and Views Inventory8586List all navigable pages and views in the application for screenshot planning:87881. **Frontend Projects** (Nuxt, Next.js, Vue, React, Angular):89 - Glob for `pages/`, `app/`, `views/`, `routes/` directories90 - Read router files to enumerate all routes91 - Classify each route: public, authenticated, admin92 - Note the primary feature each page exposes93942. **Backend-only Projects** (NestJS, Express, Fastify):95 - Enumerate controller route prefixes96 - Identify any swagger/API docs endpoint9798Output a `pagesInventory` list:99```100pagesInventory:101 - path: "/"102 name: "Landing Page"103 auth: "public"104 feature: "Homepage"105 - path: "/dashboard"106 name: "Dashboard"107 auth: "authenticated"108 feature: "Overview & Analytics"109 - path: "/projects/:id"110 name: "Project Detail"111 auth: "authenticated"112 feature: "Project Management"113```114115## Execution Protocol1161171. **Discover** — Read manifest files to detect tech stack (`${CLAUDE_SKILL_DIR}/reference/framework-detection.md`)1182. **Map** — Glob for controllers, services, models, components, test files1193. **Deep-read** — Follow imports, read implementations for key findings1204. **Extract features** — Apply heuristics from `${CLAUDE_SKILL_DIR}/reference/feature-extraction.md`1215. **Detect startup** — Check docker-compose, package scripts, env requirements1226. **Inventory pages** — Enumerate all routes and views1237. **Compile** — Structure output according to `${CLAUDE_SKILL_DIR}/reference/report-schema.md`1248. **Validate** — Verify every claim has a `file:line` reference125126## Validation Rules127128- **No speculation** — Every feature claim needs a code reference129- **No marketing language** — Describe what the code does, not potential130- **Accurate names** — Use exact package names from dependency files131- **Honest coverage** — If tests are sparse, say so132- **No duplication** — Each finding in exactly one dimension133134## Output Format135136Produce a structured report following `${CLAUDE_SKILL_DIR}/reference/report-schema.md`.137138The report MUST include:139- All 8 analysis dimensions140- Feature list with evidence and screenshot candidates141- `startupInfo` block142- `pagesInventory` list143144Source references use the format: `path/to/file.ts:42`145146Unknown or undeterminable items are marked as `unknown` — never guessed.147148## Reference Files149150- `${CLAUDE_SKILL_DIR}/reference/analysis-dimensions.md` — Detailed guide for each of the 8 dimensions151- `${CLAUDE_SKILL_DIR}/reference/framework-detection.md` — Framework detection lookup table152- `${CLAUDE_SKILL_DIR}/reference/feature-extraction.md` — Feature heuristics (auth, uploads, realtime, etc.)153- `${CLAUDE_SKILL_DIR}/reference/startup-detection.md` — Full 8-step startup detection protocol with `startupInfo` schema154- `${CLAUDE_SKILL_DIR}/reference/report-schema.md` — TypeScript interface for the structured report