Analyze Open Source
by @ttet
Analyze and explain open-source project code logic, architecture, data flows, APIs, and algorithms. Use when the user asks to analyze a project, understand c...
clawhub install analyze-open-sourceπ About This Skill
name: analyze-open-source description: Analyze and explain open-source project code logic, architecture, data flows, APIs, and algorithms. Use when the user asks to analyze a project, understand codebase structure, explain code logic, or requests a technical walkthrough of an open-source repository.
Analyze Open-Source Project
Systematically analyze an open-source project's codebase to help the user quickly understand its architecture, core logic, data flows, key APIs, and algorithm implementations.
All analysis output MUST be in Chinese (zh-CN).
Execution Workflow
Follow these steps strictly in order. Use parallel subagents (Task tool with subagent_type="explore") where noted.
Phase 1: Context Gathering
Read these files first (use parallel reads):
1. README.md (or README.rst, README.txt) β project purpose, features, quick start
2. Primary config/dependency file β detect tech stack:
- Node.js: package.json
- Python: pyproject.toml > setup.py > requirements.txt
- Go: go.mod
- Java/Kotlin: pom.xml or build.gradle
- Rust: Cargo.toml
- C/C++: CMakeLists.txt or Makefile
- .NET: *.csproj or *.sln
3. CI/Docker files if present (Dockerfile, .github/workflows/) β reveals build & deploy info
Summarize: project name, purpose, tech stack, major dependencies, and build/run commands.
Phase 2: Directory Structure Scan
Run a directory listing (depth 2) to map out the project layout.
Classify each top-level directory into one of:
Phase 3: Entry Point Identification
Search for program entry points based on the detected tech stack:
| Tech Stack | Typical Entry Points |
|---|---|
| Node.js | package.json "main"/"scripts.start", index.js, src/index.ts, app.js |
| Python | __main__.py, main.py, app.py, manage.py, cli.py |
| Go | main.go, cmd/*/main.go |
| Java | classes with public static void main, @SpringBootApplication |
| Rust | src/main.rs, src/lib.rs |
| C/C++ | main.c, main.cpp |
| Web Frontend | src/index.tsx, src/main.ts, src/App.vue |
Read the entry point file(s) and trace the initialization/bootstrap sequence.
Phase 4: Deep Analysis
Perform all four dimensions of analysis. Use parallel explore subagents for independent dimensions.
#### 4a. Architecture & Module Dependencies
#### 4b. Core Business Flow & Data Flow
#### 4c. Key API Interfaces & Call Chains
#### 4d. Algorithm & Function Implementation
Output Format
Use the template defined in template.md to structure the final report.
Key formatting rules:
##, ###) for clear hierarchystartLine:endLine:filepath) when citing existing code