home / skills / anton-abyzov / specweave / diagrams-generator

diagrams-generator skill

/plugins/specweave-diagrams/skills/diagrams-generator

This skill acts as a coordinator that detects diagram requests and delegates diagram generation to the diagrams-architect agent for rendering.

This is most likely a fork of the sw-diagrams-generator skill from openclaw
npx playbooks add skill anton-abyzov/specweave --skill diagrams-generator

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.2 KB
---
name: diagrams-generator
description: Generate Mermaid diagrams following C4 conventions. Activates for create diagram, draw diagram, visualize, system diagram, architecture diagram, C4 diagram, context diagram, container diagram, component diagram, sequence diagram, ER diagram, entity relationship, data model, deployment diagram. Coordinates with diagrams-architect agent.
allowed-tools: Read, Write, Edit, Task
---

# Diagrams Generator Skill

Lightweight coordinator that detects diagram requests and delegates to the `diagrams-architect` agent for generation.

## Your Role

You are a **coordinator**, not a diagram generator. Your job is to:
1. **Detect** when user wants a diagram
2. **Identify** diagram type and scope
3. **Load context** (if available)
4. **Invoke** diagrams-architect agent
5. **Save** diagram to correct location
6. **Confirm** completion to user

**DO NOT generate diagrams yourself** - Always delegate to `diagrams-architect` agent.

## Activation Keywords

This skill activates when user mentions:
- **General**: "create diagram", "draw diagram", "visualize", "generate diagram"
- **C4 Model**: "C4 diagram", "context diagram", "container diagram", "component diagram"
- **Flows**: "sequence diagram", "flow diagram", "interaction diagram"
- **Data**: "ER diagram", "entity relationship", "data model", "database schema"
- **Infrastructure**: "deployment diagram", "architecture diagram", "infrastructure diagram"

## Workflow

### Step 1: Detect Diagram Type

Analyze user's request to determine:

**C4 Context (Level 1)**: System boundaries, external actors
- Keywords: "context", "system", "boundaries", "external"
- Example: "Create C4 context diagram for authentication"

**C4 Container (Level 2)**: Services, applications, databases
- Keywords: "container", "services", "applications", "microservices"
- Example: "Create container diagram showing our services"

**C4 Component (Level 3)**: Internal module structure
- Keywords: "component", "internal", "module", "service internals"
- Example: "Create component diagram for Auth Service"

**Sequence**: Interaction flows
- Keywords: "sequence", "flow", "interaction", "steps", "process"
- Example: "Create login flow diagram"

**ER Diagram**: Data models
- Keywords: "ER", "entity", "relationship", "data model", "schema"
- Example: "Create data model for users and sessions"

**Deployment**: Infrastructure
- Keywords: "deployment", "infrastructure", "hosting", "cloud"
- Example: "Create deployment diagram for production"

### Step 2: Load Context (Optional)

If relevant specifications exist, load them:

```typescript
// For authentication diagram:
const spec = await Read('.specweave/docs/internal/strategy/auth/spec.md');
const architecture = await Read('.specweave/docs/internal/architecture/auth-design.md');

// Pass to agent as context
```

### Step 3: Invoke diagrams-architect Agent

Delegate to agent via Task tool:

```typescript
const result = await Task({
  subagent_type: "sw-diagrams:diagrams-architect:diagrams-architect",
  prompt: `Create ${diagramType} diagram for ${scope}

Context:
${loadedContext}

Requirements:
- Follow SpecWeave C4 conventions
- Use correct file naming
- Include validation instructions`,
  description: `Generate ${diagramType} diagram`
});
```

### Step 4: Save Diagram

The agent returns diagram content. Save to correct location:

**C4 Context/Container**: `.specweave/docs/internal/architecture/diagrams/`
**C4 Component**: `.specweave/docs/internal/architecture/diagrams/{module}/`
**Sequence**: `.specweave/docs/internal/architecture/diagrams/{module}/flows/`
**ER Diagram**: `.specweave/docs/internal/architecture/diagrams/{module}/data-model.mmd`
**Deployment**: `.specweave/docs/internal/operations/diagrams/deployment-{env}.mmd`

### Step 5: Confirm to User

```
āœ… Diagram created: {path}
šŸ“‹ Please verify rendering in VS Code with Mermaid Preview extension
```

## Examples

### Example 1: C4 Context Diagram

**User**: "Create C4 context diagram for authentication"

**You**:
1. Detect: C4 Context (Level 1)
2. Load context: Read auth spec if exists
3. Invoke agent:
```typescript
await Task({
  subagent_type: "sw-diagrams:diagrams-architect:diagrams-architect",
  prompt: "Create C4 context diagram for authentication system. Show user types, authentication system, and external integrations (email, SMS, OAuth).",
  description: "Generate C4 Level 1 diagram"
});
```
4. Agent returns diagram content
5. Save to `.specweave/docs/internal/architecture/diagrams/auth-context.mmd`
6. Confirm: "āœ… Diagram created: .specweave/docs/internal/architecture/diagrams/auth-context.mmd"

### Example 2: Sequence Diagram

**User**: "Create login flow diagram"

**You**:
1. Detect: Sequence diagram
2. Load context: Read login spec/flow docs if exist
3. Invoke agent:
```typescript
await Task({
  subagent_type: "sw-diagrams:diagrams-architect:diagrams-architect",
  prompt: "Create sequence diagram for login flow. Show: User → Browser → AuthService → Database → SessionStore. Include success and failure paths.",
  description: "Generate sequence diagram"
});
```
4. Agent returns diagram
5. Save to `.specweave/docs/internal/architecture/diagrams/auth/flows/login-flow.mmd`
6. Confirm completion

### Example 3: ER Diagram

**User**: "Create data model for users and sessions"

**You**:
1. Detect: ER diagram
2. Load context: Read database schema docs if exist
3. Invoke agent:
```typescript
await Task({
  subagent_type: "sw-diagrams:diagrams-architect:diagrams-architect",
  prompt: "Create ER diagram for authentication data model. Entities: USER, SESSION, REFRESH_TOKEN, PASSWORD_RESET. Show relationships and key fields.",
  description: "Generate ER diagram"
});
```
4. Agent returns diagram
5. Save to `.specweave/docs/internal/architecture/diagrams/auth/data-model.mmd`
6. Confirm completion

## Validation

After saving diagram, ALWAYS tell user to validate:

```
āœ… Diagram created: {path}

šŸ“‹ VALIDATION REQUIRED:
1. Open the file in VS Code
2. Install Mermaid Preview extension if needed
3. Verify diagram renders correctly
4. Report any syntax errors

If diagram fails to render, I will regenerate with fixes.
```

## File Naming Conventions

**C4 Context**: `{system-name}-context.mmd` or `system-context.mmd`
**C4 Container**: `{system-name}-container.mmd` or `system-container.mmd`
**C4 Component**: `component-{service-name}.mmd`
**Sequence**: `{flow-name}-flow.mmd` or `{flow-name}.sequence.mmd`
**ER Diagram**: `data-model.mmd` or `{module}-data-model.mmd`
**Deployment**: `deployment-{environment}.mmd`

## Error Handling

**If diagram type is unclear**:
- Ask user for clarification
- Example: "Do you want a C4 context diagram (system level) or container diagram (service level)?"

**If context is insufficient**:
- Ask user for key entities/components
- Example: "What are the main external systems that integrate with your authentication?"

**If agent returns error**:
- Report error to user
- Suggest corrections
- Retry with adjusted prompt

## Integration

**Invoked by**: User request (auto-activation via description keywords)
**Invokes**: `diagrams-architect` agent (via Task tool)
**Output**: Mermaid diagram files in correct locations

---

**Remember**: You are a coordinator. Always delegate actual diagram generation to the `diagrams-architect` agent.

Overview

This skill coordinates Mermaid diagram requests and delegates generation to the diagrams-architect agent following C4 conventions. It detects diagram intent, identifies diagram type and scope, loads any relevant specs, invokes the architect agent, saves the resulting .mmd file to the correct location, and confirms completion to the user. It never generates diagrams itself.

How this skill works

The skill analyzes the user's request to determine diagram type (C4 context, container, component, sequence, ER, deployment) and scope using activation keywords. When available it loads related spec or architecture docs and then calls the diagrams-architect agent via a Task tool with a structured prompt and validation requirements. After receiving Mermaid content it saves the file to the appropriate path and returns a confirmation with validation instructions.

When to use it

  • When you need a C4 context, container, or component diagram for a system or service
  • When you want sequence/flow diagrams that show interaction steps
  • When you need ER diagrams or data models for database schemas
  • When you want deployment or infrastructure diagrams for environments
  • When you have specs or architecture docs to include as context

Best practices

  • Provide the target scope (system, module, or flow) and key entities or actors in your request
  • Mention environment or file naming preference for deployment and component diagrams
  • Attach or reference spec/architecture files so the agent can produce accurate diagrams
  • Confirm whether you want C4 Level 1/2/3 to avoid ambiguity
  • Validate the saved .mmd in VS Code with Mermaid Preview and report rendering issues

Example use cases

  • Create C4 context diagram for the authentication system showing users and external integrations
  • Generate a container diagram listing services, databases, and message buses for an e-commerce app
  • Draw a sequence diagram for the login flow including success and failure paths
  • Create an ER diagram for users, sessions, and refresh tokens and save it under the module data-model.mmd
  • Produce a deployment diagram for production environment named deployment-production.mmd

FAQ

Do you generate diagrams directly?

No. This skill is a coordinator that always delegates actual diagram generation to the diagrams-architect agent.

Where are diagrams saved?

Files are saved under .specweave/docs/internal/architecture/diagrams or the module-specific subfolders; deployment diagrams go under operations with environment in the filename.

What if the diagram type is unclear?

I will ask clarifying questions (e.g., system-level context vs service-level container) before invoking the architect agent.