New to Claude Skills? Learn how to install them →

sickn33 on GitHub

C4 Component Documentation

Free

Streamline your C4 component-level documentation process.

Get this skill

Free · Opens the source repo

What C4 Component Documentation does

The C4 Component Documentation skill is designed for developers and architects who need to create and manage component-level documentation within the C4 model framework. This skill specializes in synthesizing detailed documentation from C4 code-level details, focusing on defining component boundaries, interfaces, and their interrelationships. By using this skill, users can ensure that their component documentation is comprehensive, consistent, and aligned with best practices in architecture.

When utilizing this skill, users will clarify their goals and constraints, ensuring that all necessary inputs are gathered before proceeding. The skill provides actionable steps and validation checks, guiding users through the process of documenting components effectively. It also includes references to an implementation playbook for users who require detailed examples or additional guidance on specific components.

This skill is particularly useful for teams working on complex systems where clear component documentation is essential for understanding interactions and dependencies. It helps in organizing and presenting component details in a structured manner, making it easier for team members and stakeholders to grasp the architecture of the system. The use of Mermaid syntax for component diagrams further enhances the clarity of the documentation, allowing for visual representation of component relationships.

Overall, the C4 Component Documentation skill is an invaluable tool for anyone involved in software architecture and development who needs to produce high-quality, structured documentation that adheres to the principles of the C4 model.

When to use it

Use this skill when you need to document C4 component-level tasks or workflows, and when best practices for component documentation are required.

When not to use it

Avoid using this skill for tasks unrelated to C4 component documentation or when working in different domains outside of this scope.

What you can build with it

Documenting a New Component

Use the skill to create detailed documentation for a new software component, defining its purpose and interactions.

Validating Component Interfaces

Leverage the skill to ensure that all component interfaces are well-defined and documented according to best practices.

Creating Component Diagrams

Utilize the skill to generate Mermaid diagrams that visually represent the relationships between components.

How to install C4 Component Documentation

View source

1. Install with the skills CLI

npx skills add sickn33/agentic-awesome-skills/c4-component --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by sickn33

C4 Component Level: [Component Name]

Use this skill when

  • Working on c4 component level: [component name] tasks or workflows
  • Needing guidance, best practices, or checklists for c4 component level: [component name]

Do not use this skill when

  • The task is unrelated to c4 component level: [component name]
  • You need a different domain or tool outside this scope

Instructions

  • Clarify goals, constraints, and required inputs.
  • Apply relevant best practices and validate outcomes.
  • Provide actionable steps and verification.
  • If detailed examples are required, open resources/implementation-playbook.md.

Overview

  • Name: [Component name]
  • Description: [Short description of component purpose]
  • Type: [Component type: Application, Service, Library, etc.]
  • Technology: [Primary technologies used]

Purpose

[Detailed description of what this component does and what problems it solves]

Software Features

Code Elements

This component contains the following code-level elements:

  • c4-code-file-1.md - [Description]
  • c4-code-file-2.md - [Description]

Interfaces

[Interface Name]

  • Protocol: [REST/GraphQL/gRPC/Events/etc.]
  • Description: [What this interface provides]
  • Operations:
    • operationName(params): ReturnType - [Description]

Dependencies

Components Used

  • [Component Name]: [How it's used]

External Systems

  • [External System]: [How it's used]

Component Diagram

Use proper Mermaid C4Component syntax. Component diagrams show components within a single container:

C4Component
    title Component Diagram for [Container Name]

    Container_Boundary(container, "Container Name") {
        Component(component1, "Component 1", "Type", "Description")
        Component(component2, "Component 2", "Type", "Description")
        ComponentDb(component3, "Component 3", "Database", "Description")
    }
    Container_Ext(externalContainer, "External Container", "Description")
    System_Ext(externalSystem, "External System", "Description")

    Rel(component1, component2, "Uses")
    Rel(component2, component3, "Reads from and writes to")
    Rel(component1, externalContainer, "Uses", "API")
    Rel(component2, externalSystem, "Uses", "API")

**Key Principles** (from [c4model.com](https://c4model.com/diagrams/component)):

- Show components **within a single container** (zoom into one container)
- Focus on **logical components** and their responsibilities
- Show **component interfaces** (what they expose)
- Show how components **interact** with each other
- Include **external dependencies** (other containers, external systems)

Master Component Index Template

# C4 Component Level: System Overview

## System Components

### [Component 1]
- **Name**: [Component name]
- **Description**: [Short description]
- **Documentation**: c4-component-name-1.md

### [Component 2]
- **Name**: [Component name]
- **Description**: [Short description]
- **Documentation**: c4-component-name-2.md

## Component Relationships
[Mermaid diagram showing all components and their relationships]

Example Interactions

  • "Synthesize all c4-code-*.md files into logical components"
  • "Define component boundaries for the authentication and authorization code"
  • "Create component-level documentation for the API layer"
  • "Identify component interfaces and create component diagrams"
  • "Group database access code into components and document their relationships"

Key Distinctions

  • vs C4-Code agent: Synthesizes multiple code files into components; Code agent documents individual code elements
  • vs C4-Container agent: Focuses on logical grouping; Container agent maps components to deployment units
  • vs C4-Context agent: Provides component-level detail; Context agent creates high-level system diagrams

Output Examples

When synthesizing components, provide:

  • Clear component boundaries with rationale
  • Descriptive component names and purposes
  • Comprehensive feature lists for each component
  • Complete interface documentation with protocols and operations
  • Links to all contained c4-code-*.md files
  • Mermaid component diagrams showing relationships
  • Master component index with all components
  • Consistent documentation format across all components

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Frequently asked questions about C4 Component Documentation

Similar skills