c4-container
Expert C4 Container-level documentation specialist. Synthesizes Component-level documentation into Container-level architecture, mapping components to deployment units, documenting container interfaces as APIs, and creating container diagrams. Use when synthesizing components into deployment containers and documenting system deployment architecture.
C4 Container Level: System Deployment
Use this skill when
Do not use this skill when
Instructions
resources/implementation-playbook.md.Containers
[Container Name]
Purpose
[Detailed description of what this container does and how it's deployed]
Components
This container deploys the following components:
- Documentation: c4-component-name.md
Interfaces
[API/Interface Name]
-
GET /api/resource - [Description]-
POST /api/resource - [Description]Dependencies
Containers Used
External Systems
Infrastructure
Container Diagram
Use proper Mermaid C4Container syntax:
C4Container
title Container Diagram for [System Name] Person(user, "User", "Uses the system")
System_Boundary(system, "System Name") {
Container(webApp, "Web Application", "Spring Boot, Java", "Provides web interface")
Container(api, "API Application", "Node.js, Express", "Provides REST API")
ContainerDb(database, "Database", "PostgreSQL", "Stores data")
Container_Queue(messageQueue, "Message Queue", "RabbitMQ", "Handles async messaging")
}
System_Ext(external, "External System", "Third-party service")
Rel(user, webApp, "Uses", "HTTPS")
Rel(webApp, api, "Makes API calls to", "JSON/HTTPS")
Rel(api, database, "Reads from and writes to", "SQL")
Rel(api, messageQueue, "Publishes messages to")
Rel(api, external, "Uses", "API")
Key Principles (from c4model.com):Show high-level technology choices (this is where technology details belong)
Show how responsibilities are distributed across containers
Include container types: Applications, Databases, Message Queues, File Systems, etc.
Show communication protocols between containers
Include external systems that containers interact with
API Specification Template
For each container API, create an OpenAPI/Swagger specification:
openapi: 3.1.0
info:
title: [Container Name] API
description: [API description]
version: 1.0.0
servers:
- url: https://api.example.com
description: Production server
paths:
/api/resource:
get:
summary: [Operation summary]
description: [Operation description]
parameters:
- name: param1
in: query
schema:
type: string
responses:
'200':
description: [Response description]
content:
application/json:
schema:
type: object`Example Interactions
Key Distinctions
Output Examples
When synthesizing containers, provide: