Initial commit
This commit is contained in:
97
skills/diagram-analysis.md
Normal file
97
skills/diagram-analysis.md
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
title: Diagram Analysis
|
||||
description: Understanding system architecture to choose appropriate diagram types
|
||||
tags: [analysis, diagrams, architecture, visualization]
|
||||
---
|
||||
|
||||
# Diagram Analysis
|
||||
|
||||
## Metadata
|
||||
|
||||
**Purpose**: Analyze systems to determine best diagram type and content
|
||||
**Version**: 1.0.0
|
||||
|
||||
---
|
||||
|
||||
## Analysis Steps
|
||||
|
||||
### 1. Understand the Goal
|
||||
|
||||
**Ask**:
|
||||
- What story needs to be told?
|
||||
- Who is the audience?
|
||||
- What decisions will this support?
|
||||
- What level of detail is needed?
|
||||
|
||||
### 2. Identify Architecture Type
|
||||
|
||||
**Common patterns**:
|
||||
- **Monolithic** - Single application, internal modules
|
||||
- **Microservices** - Multiple services, APIs, message queues
|
||||
- **Data pipeline** - Data flow from sources to outputs
|
||||
- **ML system** - Training vs inference pipelines
|
||||
- **Library/Framework** - Class hierarchies, modules
|
||||
|
||||
### 3. Choose Diagram Type
|
||||
|
||||
**For system overview**: C4 Context
|
||||
**For service architecture**: C4 Container or Flowchart
|
||||
**For internal structure**: C4 Component or Class Diagram
|
||||
**For interactions**: Sequence Diagram
|
||||
**For data models**: ER Diagram
|
||||
**For processes**: Flowchart
|
||||
**For state changes**: State Diagram
|
||||
|
||||
### 4. Determine Scope
|
||||
|
||||
**Include**:
|
||||
- Essential components for the story
|
||||
- Key relationships and dependencies
|
||||
- Technology choices (if relevant to audience)
|
||||
|
||||
**Exclude**:
|
||||
- Implementation details (unless that's the focus)
|
||||
- Everything not needed for this specific diagram
|
||||
- Redundant information
|
||||
|
||||
## Discovery Commands
|
||||
|
||||
**System boundaries**:
|
||||
```bash
|
||||
# Find services/modules
|
||||
ls -d */ | head -10
|
||||
find . -name "docker-compose.yml" -o -name "Dockerfile"
|
||||
```
|
||||
|
||||
**Interactions**:
|
||||
```bash
|
||||
# Find API definitions
|
||||
find . -name "*api*.py" -o -name "*route*.py"
|
||||
|
||||
# Check for message queues
|
||||
grep -r "kafka\|rabbitmq\|redis\|celery" pyproject.toml requirements.txt
|
||||
```
|
||||
|
||||
**Data flow**:
|
||||
```bash
|
||||
# Find data sources
|
||||
find . -name "*data*" -o -name "*extract*" -o -name "*load*"
|
||||
|
||||
# Check databases
|
||||
grep -i "postgres\|mysql\|mongo\|sqlite" pyproject.toml requirements.txt
|
||||
```
|
||||
|
||||
## Diagram Planning
|
||||
|
||||
**Start simple**:
|
||||
1. List main components
|
||||
2. Identify key relationships
|
||||
3. Choose direction (TD/LR)
|
||||
4. Add labels
|
||||
5. Refine as needed
|
||||
|
||||
**Validate**:
|
||||
- Does it tell the right story?
|
||||
- Is it too complex?
|
||||
- Is anything missing?
|
||||
- Will the audience understand it?
|
||||
Reference in New Issue
Block a user