关于 c4-container
用于编写 C4 容器级应用和数据存储文档的技能模板,涵盖部署边界、接口、依赖和图示,并要求架构信息依据项目代码与配置确认。
主要功能
- 01容器边界文档指导
- 02接口与 API 规范指导
- 03部署和依赖关系映射
- 04Mermaid 容器图
- 05基础设施与扩缩容清单
适用场景
- 01将组件映射到部署单元
- 02编写微服务容器文档
- 03撰写 API 规范
- 04分析 Kubernetes 清单
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill c4-container安装后在 Claude Code 中输入/c4-container确认已加载。
详细介绍
C4 容器层级:应用程序和数据存储
适用场景
- 处理 C4 容器层级相关任务:系统部署任务或工作流
- 需要 C4 容器层级相关指导、最佳实践或检查清单:系统部署
不适用场景
- 任务与 C4 容器层级无关:系统部署
- 需要此范围之外的其他领域或工具
说明
- 明确目标、约束和所需输入。
- 应用相关最佳实践并验证结果。
- 提供可执行的步骤和验证方法。
C4 容器是应用程序或数据存储,不一定是 Docker 容器或运行时节点。在部署图中单独建模物理实例/区域。每个边界/关系都应基于观察到的代码/配置,并标记未知项;以下模板只是占位内容,并非发现的架构。
容器
[容器名称]
- 名称:[容器名称]
- 描述:[容器用途和部署方式的简要说明]
- 类型:[Web 应用程序、API、数据库、消息队列等]
- 技术:[主要技术:Node.js、Python、PostgreSQL、Redis 等]
- 部署:[Docker、Kubernetes、云服务等]
用途
[详细说明此容器的功能及其部署方式]
组件
此容器部署以下组件:
- [组件名称]:[描述]
- 文档:c4-component-name.md
接口
[API/接口名称]
- 协议:[REST/GraphQL/gRPC/事件等]
- 描述:[此接口提供的功能]
- 规范:[OpenAPI/Swagger/API 规范文件链接]
- 端点:
GET /api/resource- [描述]POST /api/resource- [描述]
依赖项
#C4 容器是应用程序或数据存储,不一定是 Docker 容器或运行时节点。在部署图中单独建模物理实例/区域。每个边界/关系都应基于观察到的代码/配置,并标记未知项;以下模板只是占位内容,并非发现的架构。
使用的容器
- [容器名称]:[使用方式、通信协议]
外部系统
- [外部系统]:[使用方式、集成类型]
基础设施
- 部署配置:[Dockerfile、K8s 清单等的链接]
- 扩缩容:[水平/垂直扩缩容策略]
- 资源:[CPU、内存、存储需求]
容器图
使用正确的 Mermaid C4Container 语法:
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")
ContainerQueue(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")
关键原则(摘自 c4model.com):
- 展示高层技术选型(技术详情应在此处说明)
- 展示各容器之间如何分配职责
- 包含容器类型:应用程序、数据库、消息队列、文件系统等
- 展示容器之间的通信协议
- 包含容器交互的外部系统
API 规范模板
为每个容器 API 创建 OpenAPI/Swagger 规范:
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
交互示例
- “根据部署定义将所有组件整合到容器中”
- “将 API 组件映射到容器,并将其 API 记录为 OpenAPI 规范”
- “为微服务架构创建容器级文档”
- “将容器接口记录为 Swagger/OpenAPI 规范”
- “分析 Kubernetes 清单并创建容器文档”
关键区别
- 与 C4-Component agent 的区别:将组件映射到部署单元;Component agent 侧重逻辑分组
- 与 C4-Context agent 的区别:提供容器级详情;Context agent 创建高层系统图
- 与 C4-Code agent 的区别:侧重部署架构;Code agent 记录单个代码元素
输出示例
综合设计容器时,请提供:
- 明确的容器边界及部署理由
- 描述性容器名称和部署特征
- 完整的 API 文档及 OpenAPI/Swagger 规范
- 所有所含组件的链接
- 展示部署架构的 Mermaid 容器图
- 部署配置(Dockerfile、K8s 清单等)的链接
- 基础设施要求和扩展注意事项
- 所有容器采用一致的文档格式
局限性
- 仅在任务明确符合上述范围时使用此技能。
- 不要将输出视为对环境特定验证、测试或专家审查的替代。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。
评论
支持 Markdown