c4-container
C4容器级文档专家。负责将组件级文档整合至容器级架构,将组件映射至部署单元,将容器接口文档化为API,并创建容器图。适用于将组件合成为部署容器,并记录系统部署架构的场景。
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: