infrastructure-documenter

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Infrastructure Documenter Skill

Infrastructure Documenter Skill

Overview

概述

This skill helps you create clear, maintainable infrastructure documentation. Covers architecture diagrams, runbooks, system documentation, operational procedures, and documentation-as-code practices.
本Skill可帮助你创建清晰、易维护的基础设施文档,涵盖架构图、运行手册、系统文档、操作流程以及文档即代码实践。

Documentation Philosophy

文档理念

Principles

原则

  1. Living documentation: Keep it in sync with reality
  2. Audience-aware: Different docs for different readers
  3. Actionable: Every doc should help someone do something
  4. Version-controlled: Documentation changes tracked with code
  1. 活文档:与实际系统保持同步
  2. 受众导向:为不同读者定制不同文档
  3. 可落地执行:每份文档都要能帮助读者完成具体操作
  4. 版本可控:文档变更与代码一同被追踪

Document Types

文档类型

TypeAudiencePurpose
ArchitectureEngineersUnderstand system design
RunbooksOps/SREHandle incidents
API DocsDevelopersIntegrate with system
OnboardingNew hiresGet up to speed
Decision RecordsFuture youUnderstand why
文档类型受众用途
架构文档工程师理解系统设计
运行手册运维/SRE处理事件
API文档开发者与系统集成
入职文档新员工快速上手
决策记录未来的自己理解决策缘由

Architecture Documentation

架构文档

System Architecture Overview

系统架构概述

markdown
undefined
markdown
undefined

System Architecture

系统架构

Overview

概述

[Project Name] is a [type] application that [purpose].
[项目名称]是一款[类型]应用,主要用于[用途]。

High-Level Architecture

高层架构

┌─────────────────────────────────────────────────────────────┐
│                        Users                                 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│                      Vercel Edge                             │
│  ┌─────────────────┐  ┌─────────────────┐                   │
│  │   Next.js App   │  │  Edge Functions │                   │
│  └─────────────────┘  └─────────────────┘                   │
└─────────────────────────────────────────────────────────────┘
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│    Supabase     │ │      Redis      │ │    Stripe       │
│  - PostgreSQL   │ │  - Session      │ │  - Payments     │
│  - Auth         │ │  - Cache        │ │  - Webhooks     │
│  - Realtime     │ │                 │ │                 │
│  - Storage      │ │                 │ │                 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌─────────────────────────────────────────────────────────────┐
│                        Users                                 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│                      Vercel Edge                             │
│  ┌─────────────────┐  ┌─────────────────┐                   │
│  │   Next.js App   │  │  Edge Functions │                   │
│  └─────────────────┘  └─────────────────┘                   │
└─────────────────────────────────────────────────────────────┘
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│    Supabase     │ │      Redis      │ │    Stripe       │
│  - PostgreSQL   │ │  - Session      │ │  - Payments     │
│  - Auth         │ │  - Cache        │ │  - Webhooks     │
│  - Realtime     │ │                 │ │                 │
│  - Storage      │ │                 │ │                 │
└─────────────────┘ └─────────────────┘ └─────────────────┘

Components

组件说明

Frontend (Next.js App)

前端(Next.js App)

  • Location: Vercel Edge Network
  • Framework: Next.js 14 (App Router)
  • Styling: Tailwind CSS + shadcn/ui
  • State: Zustand + React Query
  • 部署位置:Vercel Edge Network
  • 框架:Next.js 14(App Router)
  • 样式方案:Tailwind CSS + shadcn/ui
  • 状态管理:Zustand + React Query

Backend Services

后端服务

ServiceProviderPurpose
DatabaseSupabasePostgreSQL with RLS
AuthSupabase AuthUser authentication
StorageSupabase StorageFile uploads
CacheUpstash RedisSession & API cache
PaymentsStripeSubscriptions
EmailResendTransactional emails
服务提供商用途
数据库Supabase带有RLS的PostgreSQL
认证Supabase Auth用户认证
存储Supabase Storage文件上传
缓存Upstash Redis会话与API缓存
支付Stripe订阅服务
邮件Resend事务性邮件

Data Flow

数据流

  1. User request → Vercel Edge
  2. SSR/API Route processes request
  3. Database queries via Supabase client
  4. Response cached at edge (when applicable)
  5. Response returned to user
  1. 用户请求 → Vercel Edge
  2. SSR/API路由处理请求
  3. 通过Supabase客户端查询数据库
  4. 边缘节点缓存响应(如适用)
  5. 向用户返回响应

Security

安全机制

Authentication Flow

认证流程

  1. User signs in via Supabase Auth
  2. JWT token issued and stored in cookie
  3. Server validates token on each request
  4. RLS policies enforce data access
  1. 用户通过Supabase Auth登录
  2. 系统颁发JWT令牌并存储在Cookie中
  3. 服务器在每次请求时验证令牌
  4. RLS策略强制数据访问权限

Data Protection

数据保护

  • All data encrypted at rest (AES-256)
  • TLS 1.3 for data in transit
  • Secrets stored in Vercel environment
  • PII fields encrypted in database
undefined
  • 所有静态数据采用AES-256加密
  • 传输数据使用TLS 1.3协议
  • 密钥存储在Vercel环境变量中
  • 数据库中的PII字段被加密
undefined

Mermaid Diagrams

Mermaid图表

markdown
undefined
markdown
undefined

Request Flow

请求流程

mermaid
sequenceDiagram
    participant U as User
    participant V as Vercel
    participant N as Next.js
    participant S as Supabase
    participant R as Redis

    U->>V: HTTPS Request
    V->>N: Route to App

    alt Cached Response
        N->>R: Check Cache
        R-->>N: Cache Hit
        N-->>U: Return Cached
    else Cache Miss
        N->>S: Query Database
        S-->>N: Data
        N->>R: Store in Cache
        N-->>U: Return Response
    end
mermaid
sequenceDiagram
    participant U as User
    participant V as Vercel
    participant N as Next.js
    participant S as Supabase
    participant R as Redis

    U->>V: HTTPS Request
    V->>N: Route to App

    alt Cached Response
        N->>R: Check Cache
        R-->>N: Cache Hit
        N-->>U: Return Cached
    else Cache Miss
        N->>S: Query Database
        S-->>N: Data
        N->>R: Store in Cache
        N-->>U: Return Response
    end

Database Schema

数据库Schema

mermaid
erDiagram
    users ||--o{ projects : owns
    users {
        uuid id PK
        text email
        text name
        timestamp created_at
    }
    projects ||--o{ tasks : contains
    projects {
        uuid id PK
        uuid user_id FK
        text name
        text status
    }
    tasks {
        uuid id PK
        uuid project_id FK
        text title
        boolean completed
    }
undefined
mermaid
erDiagram
    users ||--o{ projects : owns
    users {
        uuid id PK
        text email
        text name
        timestamp created_at
    }
    projects ||--o{ tasks : contains
    projects {
        uuid id PK
        uuid user_id FK
        text name
        text status
    }
    tasks {
        uuid id PK
        uuid project_id FK
        text title
        boolean completed
    }
undefined

Runbooks

运行手册

Runbook Template

运行手册模板

markdown
undefined
markdown
undefined

Runbook: [Service Name] - [Issue Type]

运行手册:[服务名称] - 【问题类型】

Overview

概述

Brief description of the issue and when this runbook applies.
简要描述问题内容及本手册的适用场景。

Severity

严重等级

  • P1 (Critical): Complete outage
  • P2 (High): Degraded service
  • P3 (Medium): Minor impact
  • P4 (Low): No user impact
  • P1(Critical,紧急):服务完全中断
  • P2(High,高):服务性能降级
  • P3(Medium,中):影响较小
  • P4(Low,低):无用户影响

Detection

检测方式

How this issue is typically detected:
  • Alert from [monitoring system]
  • User report
  • Automated check failure
该问题的典型检测途径:
  • 来自[监控系统]的告警
  • 用户反馈
  • 自动化检查失败

Impact Assessment

影响评估

  • Users affected: All / Segment / None
  • Data at risk: Yes / No
  • Revenue impact: High / Medium / Low / None
  • 受影响用户:全部/部分/无
  • 数据风险:是/否
  • 收入影响:高/中/低/无

Prerequisites

前置条件

  • Access to [system/dashboard]
  • Credentials for [service]
  • Contact info for [team/person]
  • 拥有[系统/仪表盘]的访问权限
  • 持有[服务]的凭证
  • 掌握[团队/人员]的联系方式

Resolution Steps

解决步骤

Step 1: Verify the Issue

步骤1:验证问题

bash
undefined
bash
undefined

Check service status

检查服务状态

Check logs

查看日志

vercel logs --follow
undefined
vercel logs --follow
undefined

Step 2: Identify Root Cause

步骤2:定位根因

Common causes:
  • Database connection pool exhausted
  • Memory limit reached
  • External service down
  • Bad deployment
常见原因:
  • 数据库连接池耗尽
  • 内存达到上限
  • 外部服务故障
  • 部署失败

Step 3: Apply Fix

步骤3:实施修复

If Database Issue:

若为数据库问题:

bash
undefined
bash
undefined

Check connection count

检查连接数

SELECT count(*) FROM pg_stat_activity;
SELECT count(*) FROM pg_stat_activity;

Kill idle connections

终止空闲连接

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND query_start < now() - interval '1 hour';
undefined
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND query_start < now() - interval '1 hour';
undefined

If Bad Deployment:

若为部署失败:

bash
undefined
bash
undefined

Rollback to previous deployment

回滚到上一个版本

vercel rollback
undefined
vercel rollback
undefined

Step 4: Verify Fix

步骤4:验证修复效果

bash
undefined
bash
undefined

Check service health

检查服务健康状态

Monitor error rates for 15 minutes

监控错误率15分钟

undefined
undefined

Escalation

升级流程

If unable to resolve within 30 minutes:
  1. Page on-call engineer: [contact]
  2. Notify stakeholders in #incidents
  3. Update status page
若30分钟内无法解决:
  1. 呼叫值班工程师:[联系方式]
  2. 在#incidents频道通知相关人员
  3. 更新状态页面

Post-Incident

事件后处理

  • Create incident report
  • Schedule post-mortem (P1/P2 only)
  • Update this runbook if needed
  • 创建事件报告
  • 安排事后复盘(仅P1/P2事件)
  • 如有需要,更新本运行手册

Related Links

相关链接

Database Runbooks

数据库运行手册

markdown
undefined
markdown
undefined

Runbook: Database Performance Issues

运行手册:数据库性能问题

Symptoms

症状

  • Slow API responses (>1s)
  • Timeout errors in logs
  • High database CPU in dashboard
  • API响应缓慢(超过1秒)
  • 日志中出现超时错误
  • 仪表盘显示数据库CPU使用率过高

Quick Checks

快速检查

1. Check Active Connections

1. 检查活跃连接

sql
SELECT
  state,
  count(*),
  max(now() - query_start) as max_duration
FROM pg_stat_activity
GROUP BY state;
sql
SELECT
  state,
  count(*),
  max(now() - query_start) as max_duration
FROM pg_stat_activity
GROUP BY state;

2. Find Long-Running Queries

2. 查找长时运行的查询

sql
SELECT
  pid,
  now() - query_start AS duration,
  query
FROM pg_stat_activity
WHERE state = 'active'
  AND now() - query_start > interval '30 seconds'
ORDER BY duration DESC;
sql
SELECT
  pid,
  now() - query_start AS duration,
  query
FROM pg_stat_activity
WHERE state = 'active'
  AND now() - query_start > interval '30 seconds'
ORDER BY duration DESC;

3. Check Table Sizes

3. 检查表大小

sql
SELECT
  schemaname,
  tablename,
  pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) as size
FROM pg_tables
WHERE schemaname = 'public'
ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC
LIMIT 10;
sql
SELECT
  schemaname,
  tablename,
  pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) as size
FROM pg_tables
WHERE schemaname = 'public'
ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC
LIMIT 10;

4. Check Missing Indexes

4. 检查缺失的索引

sql
SELECT
  relname,
  seq_scan,
  idx_scan,
  seq_scan - idx_scan AS difference
FROM pg_stat_user_tables
WHERE seq_scan > idx_scan
ORDER BY difference DESC;
sql
SELECT
  relname,
  seq_scan,
  idx_scan,
  seq_scan - idx_scan AS difference
FROM pg_stat_user_tables
WHERE seq_scan > idx_scan
ORDER BY difference DESC;

Resolution

解决方法

Kill Problematic Queries

终止有问题的查询

sql
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE pid = [PID_FROM_ABOVE];
sql
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE pid = [PID_FROM_ABOVE];

Add Missing Index

添加缺失的索引

sql
CREATE INDEX CONCURRENTLY idx_table_column
ON table_name (column_name);
undefined
sql
CREATE INDEX CONCURRENTLY idx_table_column
ON table_name (column_name);
undefined

Decision Records (ADRs)

决策记录(ADRs)

ADR Template

ADR模板

markdown
undefined
markdown
undefined

ADR-001: Choose Supabase for Database

ADR-001:选择Supabase作为数据库

Status

状态

Accepted
已接受

Context

背景

We need a database solution for [Project Name] that supports:
  • PostgreSQL compatibility
  • Real-time subscriptions
  • Built-in authentication
  • Easy local development
  • Generous free tier
我们需要为[项目名称]选择一款数据库解决方案,需支持:
  • PostgreSQL兼容性
  • 实时订阅
  • 内置认证
  • 便捷的本地开发
  • 免费额度充足

Decision

决策

We will use Supabase as our primary database and auth provider.
我们将使用Supabase作为主要数据库和认证提供商。

Alternatives Considered

备选方案评估

PlanetScale

PlanetScale

Pros:
  • Excellent scaling
  • Branching for schema changes
  • MySQL compatible
Cons:
  • No built-in auth
  • No real-time subscriptions
  • Additional services needed
优点:
  • 出色的扩展性
  • 支持分支式Schema变更
  • 兼容MySQL
缺点:
  • 无内置认证
  • 无实时订阅功能
  • 需要额外服务支持

Firebase

Firebase

Pros:
  • Real-time built-in
  • Mature platform
  • Good mobile SDKs
Cons:
  • NoSQL (not ideal for our use case)
  • Vendor lock-in concerns
  • Complex security rules
优点:
  • 内置实时功能
  • 成熟的平台
  • 优秀的移动SDK
缺点:
  • NoSQL(不符合我们的使用场景)
  • 存在供应商锁定风险
  • 安全规则复杂

Consequences

后果

Positive

积极影响

  • Single provider for DB + Auth + Storage
  • Great developer experience
  • Row Level Security for data protection
  • Local development with supabase CLI
  • 单一提供商即可满足数据库+认证+存储需求
  • 优秀的开发者体验
  • 行级安全策略保障数据安全
  • 可通过Supabase CLI进行本地开发

Negative

负面影响

  • PostgreSQL-specific features tie us to provider
  • Supabase still maturing (some rough edges)
  • Limited to their managed offering
  • PostgreSQL特定功能会让我们依赖该提供商
  • Supabase仍在发展中(存在一些不完善的地方)
  • 仅限于其托管服务

Risks

风险

  • Supabase scaling limitations at high traffic
  • Migration cost if we need to move
  • 高流量场景下Supabase的扩展性限制
  • 若需迁移,成本较高

References

参考资料

API Documentation

API文档

Endpoint Documentation

端点文档

markdown
undefined
markdown
undefined

API Reference

API参考

Base URL

基础URL

Production: https://api.example.com/v1
Staging: https://staging-api.example.com/v1
生产环境:https://api.example.com/v1
预发布环境:https://staging-api.example.com/v1

Authentication

认证

All API requests require authentication via Bearer token.
bash
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.example.com/v1/users
所有API请求都需要通过Bearer令牌进行认证。
bash
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.example.com/v1/users

Endpoints

端点

Users

用户

Get Current User

获取当前用户

GET /users/me
Response:
json
{
  "id": "usr_123",
  "email": "user@example.com",
  "name": "John Doe",
  "created_at": "2024-01-01T00:00:00Z"
}
GET /users/me
响应:
json
{
  "id": "usr_123",
  "email": "user@example.com",
  "name": "John Doe",
  "created_at": "2024-01-01T00:00:00Z"
}

Update User

更新用户信息

PATCH /users/me
Request Body:
FieldTypeRequiredDescription
namestringNoDisplay name
avatar_urlstringNoProfile image URL
Example:
bash
curl -X PATCH \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Jane Doe"}' \
  https://api.example.com/v1/users/me
PATCH /users/me
请求体:
字段类型是否必填描述
namestring显示名称
avatar_urlstring头像URL
示例:
bash
curl -X PATCH \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name": "Jane Doe"}' \
  https://api.example.com/v1/users/me

Error Responses

错误响应

StatusCodeDescription
400BAD_REQUESTInvalid request body
401UNAUTHORIZEDMissing or invalid token
403FORBIDDENInsufficient permissions
404NOT_FOUNDResource not found
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error
Error Response Format:
json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "User not found"
  }
}
undefined
状态码错误码描述
400BAD_REQUEST请求体无效
401UNAUTHORIZED令牌缺失或无效
403FORBIDDEN权限不足
404NOT_FOUND资源不存在
429RATE_LIMITED请求过于频繁
500INTERNAL_ERROR服务器错误
错误响应格式:
json
{
  "error": {
    "code": "NOT_FOUND",
    "message": "User not found"
  }
}
undefined

Environment Documentation

环境文档

Environment Matrix

环境矩阵

markdown
undefined
markdown
undefined

Environments

环境

Overview

概述

EnvironmentURLPurposeDeploy
Productionhttps://myapp.comLive usersManual (main)
Staginghttps://staging.myapp.comPre-release testingAuto (main)
Previewhttps://pr-*.vercel.appPR reviewAuto (PR)
Developmenthttp://localhost:3000Local devManual
环境URL用途部署方式
生产环境https://myapp.com面向真实用户手动(main分支)
预发布环境https://staging.myapp.com发布前测试自动(main分支)
预览环境https://pr-*.vercel.appPR评审自动(PR分支)
开发环境http://localhost:3000本地开发手动

Configuration

配置

Production

生产环境

env
NODE_ENV=production
DATABASE_URL=[Supabase Production]
NEXT_PUBLIC_APP_URL=https://myapp.com
env
NODE_ENV=production
DATABASE_URL=[Supabase Production]
NEXT_PUBLIC_APP_URL=https://myapp.com

Staging

预发布环境

env
NODE_ENV=production
DATABASE_URL=[Supabase Staging Branch]
NEXT_PUBLIC_APP_URL=https://staging.myapp.com
env
NODE_ENV=production
DATABASE_URL=[Supabase Staging Branch]
NEXT_PUBLIC_APP_URL=https://staging.myapp.com

Development

开发环境

env
NODE_ENV=development
DATABASE_URL=[Local Supabase]
NEXT_PUBLIC_APP_URL=http://localhost:3000
env
NODE_ENV=development
DATABASE_URL=[Local Supabase]
NEXT_PUBLIC_APP_URL=http://localhost:3000

Access

访问权限

Production

生产环境

  • Vercel: Admin only
  • Database: Read-only for devs, write for admin
  • Logs: All engineers
  • Vercel:仅管理员可访问
  • 数据库:开发者只读,管理员可写
  • 日志:所有工程师均可访问

Staging

预发布环境

  • Vercel: All engineers
  • Database: All engineers
  • Logs: All engineers
  • Vercel:所有工程师均可访问
  • 数据库:所有工程师均可访问
  • 日志:所有工程师均可访问

Secrets Rotation

密钥轮换

SecretRotationLast Rotated
Database password90 days2024-01-15
API keys90 days2024-01-15
JWT secretNeverInitial setup
undefined
密钥轮换周期上次轮换时间
数据库密码90天2024-01-15
API密钥90天2024-01-15
JWT密钥从不初始设置时
undefined

Documentation-as-Code

文档即代码

Documentation Structure

文档结构

docs/
├── README.md                 # Documentation index
├── architecture/
│   ├── overview.md           # System architecture
│   ├── data-flow.md          # Data flow diagrams
│   └── decisions/            # ADRs
│       ├── 001-database.md
│       └── 002-hosting.md
├── runbooks/
│   ├── README.md             # Runbook index
│   ├── database.md           # Database issues
│   ├── deployment.md         # Deployment issues
│   └── outage.md             # Service outage
├── api/
│   └── reference.md          # API documentation
└── onboarding/
    ├── setup.md              # Local setup
    └── contributing.md       # How to contribute
docs/
├── README.md                 # 文档索引
├── architecture/
│   ├── overview.md           # 系统架构
│   ├── data-flow.md          # 数据流图
│   └── decisions/            # ADRs
│       ├── 001-database.md
│       └── 002-hosting.md
├── runbooks/
│   ├── README.md             # 运行手册索引
│   ├── database.md           # 数据库问题
│   ├── deployment.md         # 部署问题
│   └── outage.md             # 服务中断
├── api/
│   └── reference.md          # API文档
└── onboarding/
    ├── setup.md              # 本地搭建
    └── contributing.md       # 贡献指南

Auto-Generated Documentation

自动生成文档

yaml
undefined
yaml
undefined

.github/workflows/docs.yml

.github/workflows/docs.yml

name: Generate Docs
on: push: branches: [main] paths: - 'src/' - 'docs/'
jobs: generate-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
  - name: Generate API docs from OpenAPI
    run: |
      npx @redocly/cli build-docs openapi.yaml \
        --output docs/api/index.html

  - name: Generate TypeDoc
    run: npx typedoc --out docs/api/typescript

  - name: Deploy to GitHub Pages
    uses: peaceiris/actions-gh-pages@v3
    with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      publish_dir: ./docs
undefined
name: Generate Docs
on: push: branches: [main] paths: - 'src/' - 'docs/'
jobs: generate-docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
  - name: Generate API docs from OpenAPI
    run: |
      npx @redocly/cli build-docs openapi.yaml \
        --output docs/api/index.html

  - name: Generate TypeDoc
    run: npx typedoc --out docs/api/typescript

  - name: Deploy to GitHub Pages
    uses: peaceiris/actions-gh-pages@v3
    with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      publish_dir: ./docs
undefined

Documentation Checklist

文档检查清单

Architecture Docs

架构文档

  • System overview diagram
  • Component descriptions
  • Data flow documentation
  • Security architecture
  • Technology decisions (ADRs)
  • 系统概览图
  • 组件说明
  • 数据流文档
  • 安全架构
  • 技术决策(ADRs)

Operational Docs

运维文档

  • Runbooks for common issues
  • Deployment procedures
  • Monitoring and alerting
  • Incident response plan
  • On-call procedures
  • 常见问题的运行手册
  • 部署流程
  • 监控与告警
  • 事件响应计划
  • 值班流程

Developer Docs

开发者文档

  • Local setup guide
  • API reference
  • Contributing guidelines
  • Code conventions
  • Testing guide
  • 本地搭建指南
  • API参考
  • 贡献指南
  • 代码规范
  • 测试指南

Maintenance

维护

  • Documentation review schedule
  • Ownership assigned
  • Change process defined
  • Versioning strategy
  • 文档评审计划
  • 明确文档负责人
  • 定义变更流程
  • 版本策略

When to Use This Skill

何时使用本Skill

Invoke this skill when:
  • Creating architecture documentation
  • Writing runbooks for operations
  • Documenting decision rationale (ADRs)
  • Setting up documentation structure
  • Creating onboarding materials
  • Building automated documentation
  • Planning incident response procedures
在以下场景中调用本Skill:
  • 创建架构文档
  • 编写运维运行手册
  • 记录决策依据(ADRs)
  • 搭建文档结构
  • 创建入职材料
  • 构建自动化文档
  • 规划事件响应流程