mcpField
C
c4-container

c4-container

github.com/sickn33开发48.7k232 次安装今天更新
代码仓库

关于 c4-container

用于编写 C4 容器级应用和数据存储文档的技能模板,涵盖部署边界、接口、依赖和图示,并要求架构信息依据项目代码与配置确认。

主要功能

  1. 01容器边界文档指导
  2. 02接口与 API 规范指导
  3. 03部署和依赖关系映射
  4. 04Mermaid 容器图
  5. 05基础设施与扩缩容清单

适用场景

  1. 01将组件映射到部署单元
  2. 02编写微服务容器文档
  3. 03撰写 API 规范
  4. 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