Explain data flows, features, and code paths in the varun.surf application with visual diagrams and step-by-step breakdowns
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registryAre you the author of Explain?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-explain)More formats (shields.io, HTML) on the badges page.
---
name: explain
description: Explain data flows, features, and code paths in the varun.surf application with visual diagrams and step-by-step breakdowns
---
# Explain Skill
Explain how data flows through the system, how features work, and trace code paths with clear visualizations and step-by-step breakdowns.
## Instructions
When the user asks to explain something (a feature, data flow, or component), follow this process:
### 1. Identify What to Explain
Parse the user's request to determine:
- **Data flow**: How data moves from source to destination (e.g., "explain how forecasts get to the frontend")
- **Feature**: How a specific feature works end-to-end (e.g., "explain favorites system")
- **Component**: How a specific service or class works internally (e.g., "explain AggregatorService")
- **Integration**: How external APIs are integrated (e.g., "explain Windguru integration")
### 2. Gather Context
Use the following tools to understand the code:
- `Glob` to find relevant files
- `Grep` to search for specific patterns, method calls, and references
- `Read` to examine source code
- `LSP` for finding definitions, references, and call hierarchies
### 3. Trace the Flow
For data flows and features, trace the complete path:
```
Entry Point → Processing Steps → Output
```
Identify:
- Entry points (API endpoints, scheduled tasks, user actions)
- Service layer processing
- Data transformations
- External API calls
- Caching layers
- Response formatting
### 4. Create Visual Diagrams
Use ASCII diagrams to visualize:
**For data flows:**
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Source │────▶│ Transform │────▶│ Destination │
└─────────────┘ └─────────────┘ └─────────────┘
```
**For component interactions:**
```
┌──────────────────┐
│ Controller │
└────────┬─────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│Service A│ │Service B│ │Service C│
└─────────┘ └─────────┘ └─────────┘
```
**For state transitions:**
```
[State A] ──(action)──▶ [State B] ──(action)──▶ [State C]
```
### 5. Provide Step-by-Step Breakdown
Structure the explanation as:
1. **Overview**: High-level summary (2-3 sentences)
2. **Entry Point**: Where the flow begins
3. **Step-by-Step Flow**: Each processing step with file:line references
4. **Key Code Snippets**: Important code sections (keep concise)
5. **Data Transformations**: How data shape changes
6. **External Dependencies**: APIs, databases, caches involved
7. **Error Handling**: How errors are managed
8. **Related Components**: Other parts of the system that interact
### 6. Include Code References
Always include file paths with line numbers for easy navigation:
- `src/main/java/.../SpotsController.java:45` - endpoint definition
- `src/main/java/.../AggregatorService.java:120` - data aggregation
## Output Format
```markdown
# Explaining: [Topic]
## Overview
[2-3 sentence summary]
## Visual Diagram
[ASCII diagram showing the flow]
## Step-by-Step Flow
### 1. [Step Name]
**File**: `path/to/file.java:line`
[Description of what happens]
```java
// Key code snippet (if helpful)
```
### 2. [Next Step]
...
## Data Transformations
| Stage | Data Shape | Example |
|-------|------------|---------|
| Input | Type | {...} |
| Output| Type | {...} |
## Key Files Involved
- `path/to/file1.java` - [purpose]
- `path/to/file2.java` - [purpose]
## Related Features
- [Feature 1]: [brief relation]
- [Feature 2]: [brief relation]
```
## Example Topics
Common explanations users might request:
### Data Flows
- "How do forecasts get from Windguru to the frontend?"
- "How are live conditions fetched and displayed?"
- "How does the caching system work?"
- "How does the spot data flow from JSON to API response?"
### Features
- "How does the favorites system work?"
- "How does country filtering work?"
- "How does the search functionality work?"
- "How does theme switching work?"
- "How does the kite size calculator work?"
### Components
- "How does AggregatorService orchestrate data fetching?"
- "How do the FetchCurrentConditionsStrategy implementations work?"
- "How does the ForecastService parse Windguru data?"
- "How does the frontend manage state?"
### Integrations
- "How is Windguru integrated?"
- "How is Google Maps integration working?"
- "How does the AI analysis feature work?"
## Notes
- Keep explanations concise but complete
- Use diagrams to make complex flows understandable
- Always include file:line references for code navigation
- Focus on the specific topic, don't over-explain tangential concerns
- If the topic is ambiguous, ask clarifying questions
- Reference CLAUDE.md, docs/BACKEND.md, and docs/FRONTEND.md for architectural context
No comments yet. Be the first to comment!