project-analyzer
Quickly understand and analyze software project architecture, structure, and organization. Use this skill when users want to understand a new codebase, analyze project structure, identify entry points, understand project layers and architecture, find configuration files, map dependencies, get onboarded to an unfamiliar project, or when they ask questions like "help me understand this project", "what's the architecture", "where do I start reading this code", "explain this codebase", or "analyze this repository". Also triggers when users upload project directories or ask about project organization.
What this skill does
# Project Analyzer Systematically analyze software projects to understand architecture, entry points, layers, and key files. This skill helps quickly onboard to unfamiliar codebases by mapping structure and identifying critical components. ## Analysis Workflow Follow this workflow to analyze projects efficiently: ### 1. Run Automated Analysis First, use the provided script to generate a comprehensive project overview: ```bash python3 scripts/analyze_project.py <project_path> ``` This automatically identifies: - Project type and primary languages - File distribution across extensions - Entry points (main files) - Configuration files with descriptions - Dependencies from package managers - Basic architecture patterns - Directory structure tree ### 2. Examine Key Configuration Files Based on the analysis, read critical config files to understand: **Dependencies and frameworks:** - `package.json` - Node.js dependencies, scripts, project metadata - `requirements.txt` / `pyproject.toml` - Python dependencies - `Cargo.toml` - Rust dependencies - `go.mod` - Go modules - `pom.xml` / `build.gradle` - Java dependencies **Framework configuration:** - `next.config.js` - Next.js settings - `vite.config.js` - Vite bundler - `tsconfig.json` - TypeScript compiler - `webpack.config.js` - Webpack bundler **Environment and deployment:** - `.env.example` - Required environment variables - `docker-compose.yml` - Service definitions - `Dockerfile` - Container setup ### 3. Identify Entry Points Trace execution flow starting from entry points found in analysis: **Common entry points by project type:** - **Web apps**: `index.js`, `app.js`, `server.js`, `main.py` - **Next.js**: `pages/_app.js` or `app/layout.js` - **APIs**: `server.js`, `app.py`, `main.go` - **CLIs**: `cli.js`, `__main__.py`, `main.rs` Read entry point to understand initialization, middleware setup, and routing. ### 4. Map Project Layers Identify and document the purpose of each layer using common patterns. Consult `references/architecture_patterns.md` for detailed explanations of: - Frontend layers (components, pages, state, utils) - Backend layers (routes, services, models, middleware) - Full-stack structures (monorepo, microservices) - Common architecture patterns (MVC, Clean Architecture, etc.) ### 5. Understand Data Flow For web applications, trace a typical request/response: 1. **Route definition** - Where endpoints are defined 2. **Middleware** - Auth, validation, logging 3. **Controller/Handler** - Request processing 4. **Service layer** - Business logic 5. **Data layer** - Database queries 6. **Response formatting** - Serializers, transformers ### 6. Analyze Code Patterns Use `references/code_reading.md` for strategies on: - Reading order and priority - Framework-specific reading paths - Pattern recognition techniques - Understanding dependencies - Identifying code smells and anti-patterns ### 7. Generate Summary Create a structured summary including: **Project Overview:** - Project type and tech stack - Primary languages and frameworks - Architecture pattern used **Entry Points:** - Main execution files - How to run/start the project **Layer Breakdown:** - Purpose of each major directory - What code lives where - Data flow between layers **Key Configuration:** - Important config files and their purpose - Environment variables needed - External services/APIs integrated **Development Workflow:** - How to install dependencies - How to run locally - Testing approach - Build/deployment process **Notable Patterns:** - Architecture decisions - Code organization principles - Special conventions or structures ## Tips for Effective Analysis **Start high-level, go deeper as needed:** - First pass: Project type, structure, entry points - Second pass: Layer purposes, data flow - Deep dive: Specific features or complex areas only when requested **Use search efficiently:** - `grep -r "TODO\|FIXME"` - Known issues - `grep -r "class.*Controller"` - Find controllers - `grep -r "def test_"` - Find tests **Prioritize understanding over completeness:** - Focus on answering the user's specific questions - Don't document every file unless requested - Highlight important/unusual patterns **Consider the user's goal:** - New contributor: Focus on setup, architecture, conventions - Bug fixing: Find relevant code areas, testing approach - Feature addition: Understand existing patterns, extension points - Code review: Architecture decisions, code quality patterns ## Resources **Scripts:** - `scripts/analyze_project.py` - Automated project analysis tool that scans directory structure, identifies project type, finds entry points and config files, extracts dependencies, and generates formatted output **References:** - `references/architecture_patterns.md` - Common software architecture patterns, project layers, structure indicators, and configuration files reference - `references/code_reading.md` - Strategies for reading and understanding code, framework-specific paths, pattern recognition, and anti-patterns to watch for Load reference files when deeper context is needed beyond the automated analysis.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.