@dtt_siye/atool 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/lib/install-skills.sh +16 -0
  2. package/lib/knowledge-graph.sh +483 -81
  3. package/lib/pre-scan.sh +70 -5
  4. package/package.json +1 -1
  5. package/skills/project-analyze/SKILL.md +34 -15
  6. package/skills/project-analyze/phases/phase2-understand.md +7 -1
  7. package/skills/project-analyze/phases/phase2.5-refine.md +284 -0
  8. package/skills/project-analyze/phases/phase4-synthesize.md +100 -119
  9. package/skills/project-analyze/phases/phase5-export.md +78 -32
  10. package/skills/project-analyze/prompts/understand-agent.md +17 -0
  11. package/skills/project-analyze/rules/android.md +61 -260
  12. package/skills/project-analyze/rules/devops.md +61 -421
  13. package/skills/project-analyze/rules/generic.md +53 -221
  14. package/skills/project-analyze/rules/go.md +60 -275
  15. package/skills/project-analyze/rules/harmony.md +64 -237
  16. package/skills/project-analyze/rules/java.md +47 -485
  17. package/skills/project-analyze/rules/mobile-flutter.md +57 -292
  18. package/skills/project-analyze/rules/mobile-react-native.md +65 -262
  19. package/skills/project-analyze/rules/mobile-swift.md +58 -303
  20. package/skills/project-analyze/rules/python.md +50 -296
  21. package/skills/project-analyze/rules/rust-tauri.md +51 -217
  22. package/skills/project-analyze/rules/rust.md +50 -274
  23. package/skills/project-analyze/rules/web-nextjs.md +61 -335
  24. package/skills/project-analyze/rules/web-react.md +50 -272
  25. package/skills/project-analyze/rules/web-vue.md +58 -352
  26. package/skills/project-analyze/rules/web.md +55 -347
  27. package/skills/requirements-writer/SKILL.md +48 -1
  28. package/skills/software-architecture/SKILL.md +73 -3
@@ -1,443 +1,83 @@
1
1
  # DevOps / Infrastructure 项目分析规则
2
2
 
3
- ## 分析粒度
3
+ > **编码规范**:本规则不包含编码规范内容。Phase 2.5 精炼阶段会自动加载 `devops-conventions` skill 作为规范约束。
4
4
 
5
- 按服务、环境和基础设施组件进行分析。
5
+ ## 模块发现策略
6
6
 
7
- ```
8
- Infrastructure as Code (IaC)
9
- ├── Docker(容器化)
10
- │ ├── Dockerfile(镜像构建)
11
- │ ├── docker-compose.yml(多服务编排)
12
- │ └── .dockerignore(构建排除)
13
- ├── Kubernetes(容器编排)
14
- │ ├── Deployment / StatefulSet / DaemonSet
15
- │ ├── Service / Ingress / Gateway
16
- │ ├── ConfigMap / Secret / PVC
17
- │ ├── Helm Chart(模板化部署)
18
- │ └── Kustomize(overlay 变体)
19
- ├── Terraform / OpenTofu(基础设施)
20
- │ ├── resource / data / module
21
- │ ├── provider / backend
22
- │ └── variable / output / locals
23
- └── CI/CD(自动化流水线)
24
- ├── GitHub Actions / GitLab CI / Jenkins
25
- ├── ArgoCD / Flux(GitOps)
26
- └── Makefile / Taskfile(任务编排)
27
- ```
28
-
29
- ## 目录扫描策略
30
-
31
- ### 1. 识别基础设施类型
32
-
33
- **信号文件检测:**
34
-
35
- | 类型 | 信号文件 | 说明 |
36
- |------|----------|------|
37
- | Docker | `Dockerfile`, `Dockerfile.*`, `docker-compose.yml`, `docker-compose.yaml`, `.dockerignore` | 容器化配置 |
38
- | Kubernetes | `k8s/`, `kubernetes/`, `manifests/`, `deploy/`, `kustomization.yaml`, `Chart.yaml`, `values.yaml` | K8s 部署配置 |
39
- | Terraform | `*.tf`, `*.tfvars`, `terraform.tfstate`, `.terraform.lock.hcl` | IaC 配置 |
40
- | Ansible | `playbook.yml`, `ansible.cfg`, `inventory/`, `roles/` | 配置管理 |
41
- | CI/CD | `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile`, `.circleci/`, `tekton/`, `.argo/` | 流水线配置 |
42
- | 监控 | `prometheus/`, `grafana/`, `alertmanager/`, `dashboards/`, `rules/*.yml` | 可观测性配置 |
43
- | 安全 | `vault/`, `policy/`, `cert-manager/`, `istio/` | 安全策略配置 |
44
-
45
- ### 2. Docker 分析
46
-
47
- **扫描文件**: `Dockerfile`, `Dockerfile.*`, `docker-compose.yml`, `docker-compose.yaml`, `.dockerignore`
48
-
49
- **提取内容**:
50
- - 基础镜像及版本(FROM 行)
51
- - 多阶段构建结构(每个 FROM 为一个阶段)
52
- - 暴露端口(EXPOSE)
53
- - 环境变量(ENV)
54
- - 卷挂载(VOLUME)
55
- - 入口点(ENTRYPOINT / CMD)
56
- - 构建参数(ARG)
57
- - 健康检查(HEALTHCHECK)
58
- - 用户/权限(USER, RUN chown)
59
- - `.dockerignore` 排除规则
60
-
61
- **输出示例**:
62
- ```
63
- ### api-gateway(Dockerfile)
64
- - **路径**: `services/api-gateway/Dockerfile`
65
- - **基础镜像**: `node:20-alpine AS builder` → `nginx:alpine AS production`
66
- - **多阶段构建**:
67
- | 阶段 | 基础镜像 | 用途 |
68
- |------|----------|------|
69
- | builder | node:20-alpine | 依赖安装 + 构建 |
70
- | production | nginx:alpine | 运行时(Nginx 静态服务) |
71
- - **暴露端口**: 8080
72
- - **环境变量**: NODE_ENV=production, API_BASE_URL
73
- - **健康检查**: `curl -f http://localhost:8080/health || exit 1`
74
- ```
75
-
76
- ### 3. Docker Compose 分析
77
-
78
- **扫描文件**: `docker-compose.yml`, `docker-compose.yaml`, `docker-compose.*.yml`
79
-
80
- **提取内容**:
81
- - 服务列表(名称 + 镜像 + 构建上下文)
82
- - 服务间依赖(depends_on)
83
- - 网络配置(networks)
84
- - 卷挂载(volumes)
85
- - 环境变量(environment / env_file)
86
- - 端口映射(ports)
87
- - 健康检查(healthcheck)
88
- - 扩展策略(deploy.replicas / scale)
89
- - Compose 文件版本和 overlay 结构
90
-
91
- **输出示例**:
92
- ```
93
- ### Docker Compose 服务编排
94
- - **文件**: `docker-compose.yml` (version: '3.8')
95
- - **服务列表**:
96
- | 服务名 | 镜像 | 端口 | 依赖 | 说明 |
97
- |--------|------|------|------|------|
98
- | api | node:20-alpine (build) | 3000:3000 | postgres, redis | API 服务 |
99
- | worker | node:20-alpine (build) | - | postgres, redis | 后台任务处理 |
100
- | postgres | postgres:16-alpine | 5432:5432 | - | 数据库 |
101
- | redis | redis:7-alpine | 6379:6379 | - | 缓存 |
102
- - **网络**: app-network (bridge)
103
- - **卷**: postgres-data, redis-data
104
- ```
105
-
106
- ### 4. Kubernetes 分析
107
-
108
- **扫描文件**: `k8s/**/*.yaml`, `manifests/**/*.yaml`, `deploy/**/*.yaml`, `Chart.yaml`, `values.yaml`, `templates/**/*.yaml`
109
-
110
- **提取内容**:
111
- - 资源类型和数量(Deployment, Service, Ingress, ConfigMap, Secret, PVC, CronJob, Job, HPA)
112
- - 每个 Deployment 的镜像、副本数、资源限制、探针配置
113
- - Service 类型和端口映射(ClusterIP, NodePort, LoadBalancer)
114
- - Ingress 规则(主机、路径、TLS)
115
- - ConfigMap / Secret 数据结构(键名,不记录敏感值)
116
- - PVC 存储类和大小
117
- - Helm Chart 元数据(name, version, appVersion, dependencies)
118
- - Helm values 结构(关键配置项及默认值)
119
- - Kustomize overlay 结构(base + overlays/)
120
-
121
- **输出示例**:
122
- ```
123
- ### Kubernetes 部署配置
124
- #### Deployments
125
- | 名称 | 命名空间 | 镜像 | 副本 | 资源限制 |
126
- |------|----------|------|------|----------|
127
- | api-server | production | myapp/api:v1.2.3 | 3 | cpu: 500m, mem: 512Mi |
128
- | worker | production | myapp/worker:v1.2.3 | 2 | cpu: 250m, mem: 256Mi |
129
-
130
- #### Services
131
- | 名称 | 类型 | 端口 | 选择器 |
132
- |------|------|------|--------|
133
- | api-server-svc | ClusterIP | 8080:8080 | app=api-server |
134
- | api-server-ingress | LoadBalancer | 80:80, 443:443 | app=api-server |
135
-
136
- #### Ingress
137
- | 主机 | 路径 | 后端 | TLS |
138
- |------|------|------|-----|
139
- | api.example.com | / | api-server-svc:8080 | api-tls |
140
-
141
- #### ConfigMaps
142
- | 名称 | 键 |
143
- |------|-----|
144
- | api-config | DATABASE_URL, REDIS_URL, LOG_LEVEL |
145
-
146
- #### Helm Chart
147
- - **名称**: myapp-chart
148
- - **版本**: 0.3.0
149
- - **AppVersion**: 1.2.3
150
- - **依赖**: postgresql, redis
151
- ```
152
-
153
- ### 5. Terraform 分析
154
-
155
- **扫描文件**: `*.tf`, `*.tfvars`, `*.tf.json`
156
-
157
- **提取内容**:
158
- - Provider 列表及版本(aws, azurerm, google, kubernetes, helm 等)
159
- - Backend 配置(s3, gcs, http 等)
160
- - Resource 列表(类型 + 名称 + 关键参数)
161
- - Data source 列表(类型 + 名称)
162
- - Module 调用(源 + 版本 + 输入变量)
163
- - Variable 定义(名称 + 类型 + 默认值 + 描述)
164
- - Output 定义(名称 + 值 + 描述)
165
- - Locals 定义(名称 + 值)
166
- - 状态文件引用(remote state data source)
167
-
168
- **输出示例**:
169
- ```
170
- ### Terraform 基础设施
171
- #### Providers
172
- | Provider | 版本 | 源 |
173
- |----------|------|-----|
174
- | aws | ~> 5.0 | hashicorp/aws |
175
- | kubernetes | ~> 2.23 | hashicorp/kubernetes |
176
-
177
- #### Resources(按类型分组)
178
- **EC2**:
179
- | 名称 | 实例类型 | 关键参数 |
180
- |------|----------|----------|
181
- | aws_instance.api | t3.medium | ami, vpc_security_group_ids, subnet_id |
182
-
183
- **RDS**:
184
- | 名称 | 引擎 | 存储大小 |
185
- |------|------|----------|
186
- | aws_db_instance.main | postgres 16 | 100 GB |
187
-
188
- #### Modules
189
- | 名称 | 源 | 版本 | 说明 |
190
- |------|-----|------|------|
191
- | vpc | terraform-aws-modules/vpc/aws | 5.1.0 | VPC 网络配置 |
192
- | eks | terraform-aws-modules/eks/aws | 19.15.0 | EKS 集群 |
193
-
194
- #### Variables
195
- | 名称 | 类型 | 默认值 | 描述 |
196
- |------|------|--------|------|
197
- | environment | string | "production" | 部署环境 |
198
- | instance_type | string | "t3.medium" | EC2 实例类型 |
199
- ```
200
-
201
- ### 6. CI/CD 流水线分析
202
-
203
- **扫描文件**: `.github/workflows/*.yml`, `.gitlab-ci.yml`, `Jenkinsfile`, `.circleci/config.yml`, `tekton/*.yaml`
7
+ 按基础设施组件类型分组发现模块:
204
8
 
205
- **GitHub Actions 提取内容**:
206
- - Workflow 名称和触发条件(push, pull_request, schedule, workflow_dispatch)
207
- - 环境矩阵(matrix: os / node-version / etc.)
208
- - Job 列表(名称 + 运行器 + 依赖关系)
209
- - 每个 Job Steps(动作名称 + 版本 + 关键参数)
210
- - Secret 使用列表(名称,不记录值)
211
- - Artifact 上传/下载
212
- - 缓存策略(actions/cache)
213
- - 环境部署(environment: production / staging)
9
+ | 信号文件 / 目录 | 识别类型 | 模块粒度 |
10
+ |----------------|---------|---------|
11
+ | `Dockerfile`, `Dockerfile.*` | Docker 镜像 | 每个 Dockerfile 一个模块 |
12
+ | `docker-compose.yml`, `docker-compose.*.yml` | 服务编排 | 每个 compose 文件一个模块 |
13
+ | `k8s/`, `manifests/`, `deploy/`, `Chart.yaml` | Kubernetes | 按 namespace / application 分组 |
14
+ | `*.tf`, `terraform/modules/` | Terraform IaC | 每个 module 子目录一个模块 |
15
+ | `playbook.yml`, `roles/` | Ansible | 每个 playbook 一个模块 |
16
+ | `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile` | CI/CD | 每个 workflow 文件一个模块 |
17
+ | `prometheus/`, `grafana/`, `alertmanager/` | 监控 | 按工具分组 |
214
18
 
215
- **GitLab CI 提取内容**:
216
- - Stage 列表和顺序
217
- - Job 列表(stage + image + script + rules/only/except)
218
- - 变量定义(variables)
219
- - 缓存配置(cache)
220
- - Artifact 定义
221
- - 触发规则(rules / only / except)
19
+ 排除生成文件:`terraform.tfstate`(含敏感信息,只记录 backend 类型)、`helm template` 输出、`terraform plan` 输出。
222
20
 
223
- **输出示例**:
224
- ```
225
- ### GitHub Actions CI/CD
226
- #### Workflow: ci.yml
227
- - **触发条件**: push (main, develop), pull_request
228
- - **Jobs**:
229
- | Job | 运行器 | 依赖 | 超时 | 说明 |
230
- |-----|--------|------|------|------|
231
- | lint | ubuntu-latest | - | 10m | 代码风格检查 |
232
- | test | ubuntu-latest | lint | 20m | 单元测试 + 覆盖率 |
233
- | build | ubuntu-latest | test | 15m | Docker 镜像构建 |
234
- | deploy-staging | ubuntu-latest | build | 10m | 部署到 staging |
235
-
236
- #### Workflow: deploy.yml
237
- - **触发条件**: workflow_dispatch (inputs: environment)
238
- - **环境**: production (需要审批), staging
239
- - **Secrets**: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, KUBECONFIG
240
- ```
241
-
242
- ### 7. 监控与可观测性分析
243
-
244
- **扫描文件**: `prometheus/*.yml`, `grafana/**/*.json`, `alertmanager/*.yml`, `dashboards/**/*.json`
245
-
246
- **提取内容**:
247
- - Prometheus scrape 配置(targets, interval, labels)
248
- - 自定义指标规则(recording rules)
249
- - 告警规则(alert name, expr, severity, annotations)
250
- - Grafana Dashboard 列表(标题 + 数据源 + 面板数)
251
- - Alertmanager 路由配置(receiver, group_by, inhibit_rules)
252
- - 日志聚合配置(如 ELK / Loki 的相关配置文件)
253
-
254
- **输出示例**:
255
- ```
256
- ### 监控配置
257
- #### Prometheus
258
- - **Scrape 配置**:
259
- | Job | Target | 间隔 | 标签 |
260
- |-----|--------|------|------|
261
- | api-server | http://api:8080/metrics | 15s | app=api, env=prod |
262
-
263
- #### 告警规则
264
- | 告警名 | 表达式 | 严重级别 | 说明 |
265
- |--------|--------|----------|------|
266
- | HighErrorRate | rate(http_errors_total[5m]) > 0.05 | warning | 错误率 > 5% |
267
- | PodCrashLooping | kube_pod_container_status_restarts_total > 5 | critical | Pod 重启循环 |
268
-
269
- #### Grafana Dashboards
270
- | 名称 | 数据源 | 面板数 |
271
- |------|--------|--------|
272
- | API Overview | Prometheus | 12 |
273
- | System Resources | Prometheus | 8 |
274
- ```
275
-
276
- ## 模块发现规则
277
-
278
- - **Docker**: 每个 `Dockerfile` 或 `Dockerfile.*` 为一个分析单元
279
- - **Compose**: 每个 compose 文件为一个分析单元,按 services 拆分子任务
280
- - **Kubernetes**: 按 namespace / application 分组,每组内的资源类型为一个子任务
281
- - **Helm**: Chart 为一个分析单元,`values.yaml` 和 `templates/` 分别分析
282
- - **Terraform**: 每个 `*.tf` 文件为一个分析单元,按 resource type 分组
283
- - **Ansible**: 每个 playbook 为一个分析单元
284
- - **CI/CD**: 每个 workflow/job 文件为一个分析单元
285
- - **监控**: 按工具(Prometheus / Grafana / Alertmanager)分组
286
-
287
- ## 依赖分析
288
-
289
- 从配置文件提取:
290
- - Docker 基础镜像及版本(FROM 行,含 digest)
291
- - K8s 部署的镜像标签(image: registry/...:tag)
292
- - Terraform provider 及版本约束
293
- - Terraform module 源和版本
294
- - CI/CD 使用的 action / plugin 及版本
295
- - Helm Chart 依赖(Chart.yaml dependencies)
296
- - 服务间依赖(compose depends_on, K8s init containers, ArgoCD sync waves)
297
- - Makefile / Taskfile 中的 target 依赖关系
298
-
299
- ## 环境管理分析
300
-
301
- **扫描文件**: `envs/`, `environments/`, `*.env.example`, `terraform.tfvars`, `values-*.yaml`, `overlays/*/`
302
-
303
- **提取内容**:
304
- - 环境列表(development, staging, production)
305
- - 每个环境的差异配置(副本数、资源限制、域名、数据库实例等)
306
- - 环境变量管理方式(ConfigMap / Secret / .env / Vault)
307
- - 配置覆盖策略(Kustomize overlay / Helm values / Terraform workspaces)
308
-
309
- ## 安全配置分析
310
-
311
- **扫描文件**: `network-policy*.yaml`, `rbac*.yaml`, `pod-security*.yaml`, `vault/*.hcl`, `cert-manager/*.yaml`
21
+ ## 入口识别
312
22
 
313
- **提取内容**:
314
- - RBAC 角色(Role / ClusterRole + 绑定关系)
315
- - Network Policy(入站/出站规则)
316
- - Pod 安全标准(PSS / PSP
317
- - Secret 管理方式(K8s Secret / Vault / External Secrets Operator)
318
- - TLS 配置(证书来源、过期策略)
23
+ - **Docker Compose**: `docker-compose.yml` 中的 `services` 块 — 每个服务为一个入口节点
24
+ - **Kubernetes**: `Deployment` / `StatefulSet` 资源中的 `image` 字段;`Ingress` / `Gateway` 为流量入口
25
+ - **Terraform**: `main.tf` 或根目录 `*.tf` + `backend` 块(状态管理入口)
26
+ - **CI/CD**: workflow 文件的 `on:` 触发条件(push/PR/schedule/dispatch
27
+ - **Helm**: `Chart.yaml` `name` + `version`;`values.yaml` 为参数入口
319
28
 
320
- ## 输出模板
29
+ ## 架构模式识别
321
30
 
322
- ### README.md
31
+ **服务拓扑**(Docker Compose / Kubernetes):
32
+ - 扫描 `depends_on`(Compose)和 init containers / sync waves(K8s)确定服务依赖顺序
33
+ - 识别 sidecar 模式(同一 Pod 多容器)
34
+ - 识别 multi-stage build(Dockerfile 多 FROM 行)
323
35
 
324
- ```markdown
325
- # {项目名称}
36
+ **IaC 模块结构**(Terraform / Helm):
37
+ - `terraform/modules/` 下每个子目录为一个可复用 module
38
+ - Helm Chart `templates/` 下的资源类型分组
39
+ - Kustomize `base/` + `overlays/` 多环境分层结构
326
40
 
327
- ## 项目概述
328
- 基础设施项目描述、管理范围、覆盖的环境
41
+ **GitOps 检测**:
42
+ - 检查 `.argo/` / `argocd/` 目录或 ArgoCD Application 资源
43
+ - 识别 Flux `Kustomization` / `HelmRelease` 资源
329
44
 
330
- ## 架构总览
331
- ### 基础设施拓扑图(ASCII art)
332
- 展示 VPC → K8s Cluster → Services → Pods 的完整拓扑
45
+ ## 数据流模式
333
46
 
334
- ### 环境架构图
335
- development / staging / production 三环境的差异
47
+ - **配置流**: ConfigMap / Secret → Pod 环境变量 / 挂载卷
48
+ - **流量路径**: Ingress Service → Deployment → Pod
49
+ - **CI/CD 流水线**: 代码提交 → 构建 → 测试 → 镜像推送 → 部署触发
50
+ - **Secret 传递**: Vault / External Secrets Operator → K8s Secret → 应用
336
51
 
337
- ## 目录结构
338
- 带注释的目录树
52
+ ## 分析关注点
339
53
 
340
- ## 服务清单
341
- | 服务名 | 类型 | 端口 | 健康检查 | 说明 |
342
- |--------|------|------|----------|------|
54
+ 1. **服务拓扑完整性**:Compose `depends_on` 和 K8s init containers 是否覆盖所有服务依赖
55
+ 2. **镜像版本固定**:检测 `image: xxx:latest` 模式(不推荐生产使用)
56
+ 3. **资源限制缺失**:K8s Deployment 是否配置 `resources.limits`
57
+ 4. **健康检查覆盖**:Dockerfile HEALTHCHECK 和 K8s liveness / readiness probe 是否配置
58
+ 5. **Secret 管理方式**:硬编码在 YAML vs ConfigMap vs Vault / External Secrets
59
+ 6. **多环境差异**:识别 Kustomize overlay 或 Helm values 中的环境差异配置
60
+ 7. **CI/CD 安全门禁**:检查流水线中是否有测试、SAST 扫描、镜像签名步骤
343
61
 
344
- ## 环境变量
345
- | 变量名 | 说明 | 示例值 | 必需 |
346
- |--------|------|--------|------|
62
+ ## 输出示例
347
63
 
348
- ## 部署流程
349
- 从代码提交到生产部署的完整流程图
350
-
351
- ## 监控与告警
352
- 告警规则摘要 + Dashboard 链接
353
-
354
- ## 常用运维命令
355
- 部署、回滚、扩缩容、日志查看等命令
356
- ```
357
-
358
- ### COMPONENT.md
359
-
360
- ```markdown
361
- # 基础设施组件文档
362
-
363
- ## Docker 服务
364
- ### {服务名}
365
- - **镜像**: ...
366
- - **端口映射**: ...
367
- - **环境变量**: ...
368
- - **健康检查**: ...
369
- - **构建参数**: ...
370
-
371
- ## Kubernetes 资源
372
- ### Deployments
373
- ### Services
374
- ### Ingress
375
- ### ConfigMaps / Secrets
376
-
377
- ## Terraform 资源
378
- ### {资源类型}
379
- | 名称 | 关键参数 | 依赖 |
380
- |------|----------|------|
381
-
382
- ## CI/CD Pipelines
383
- ### {流水线名}
384
- - **触发条件**: ...
385
- - **阶段**: ...
386
- - **Secret 使用**: ...
387
-
388
- ## 监控配置
389
- ### Prometheus
390
- ### 告警规则
391
- ### Grafana Dashboards
392
64
  ```
65
+ ### 服务拓扑(docker-compose.yml)
66
+ | 服务名 | 镜像 | 端口 | 依赖 |
67
+ |---------|------------------------|-------------|-----------------|
68
+ | api | node:20-alpine (build) | 3000:3000 | postgres, redis |
69
+ | worker | node:20-alpine (build) | — | postgres, redis |
70
+ | postgres | postgres:16-alpine | 5432:5432 | — |
71
+ | redis | redis:7-alpine | 6379:6379 | — |
393
72
 
394
- ### UI_STYLE.md
73
+ ### Kubernetes Deployments
74
+ | 名称 | 命名空间 | 镜像 | 副本 | 资源限制 |
75
+ |-----------|----------|-----------------------|-----|---------------------|
76
+ | api-server | prod | myapp/api:v1.2.3 | 3 | cpu:500m mem:512Mi |
77
+ | worker | prod | myapp/worker:v1.2.3 | 2 | cpu:250m mem:256Mi |
395
78
 
396
- 对于 DevOps 项目,此文件记录运维可视化规范:
397
-
398
- ```markdown
399
- # 运维可视化规范
400
-
401
- ## 监控 Dashboard 规范
402
- - 图表类型选择标准
403
- - 颜色编码(健康/警告/危险)
404
- - 时间范围选择器默认值
405
-
406
- ## 告警通知规范
407
- - 告警级别与通知渠道映射
408
- - 告警消息格式模板
409
- - 告警分组和抑制规则
410
-
411
- ## 日志规范
412
- - 日志级别使用标准
413
- - 结构化日志格式
414
- - 日志保留策略
79
+ ### CI/CD(.github/workflows/ci.yml)
80
+ - **触发**: push (main, develop), pull_request
81
+ - **阶段**: lint → test → build → deploy-staging
82
+ - **Secrets 使用**: AWS_ACCESS_KEY_ID, KUBECONFIG
415
83
  ```
416
-
417
- ## 模块边界识别
418
-
419
- 以下目录模式下的每个子目录视为独立模块(L2+ 分析时生成 MODULE-DOC.md):
420
-
421
- | 层 | 扫描路径 | 模块判定规则 | MODULE-DOC slug 来源 |
422
- |----|----------|-------------|---------------------|
423
- | Manifests 层 | `manifests/` | 每个子目录 | 目录名 kebab-case |
424
- | Terraform 模块 | `terraform/modules/` | 每个子目录 | 目录名 kebab-case |
425
- | CI/CD 层 | `.github/workflows/` | 每个文件 | 文件名去后缀 kebab-case |
426
- | Helm Charts | `helm/` | 每个 chart | chart 名 kebab-case |
427
- | 脚本层 | `scripts/` | 每个子目录或文件 | 名称 kebab-case |
428
-
429
- **不视为独立模块的情况**:
430
- - 单文件入口(如 `Makefile`, `docker-compose.yml`)
431
- - 纯配置文件(`.env.example`, `*.tfvars.example`)
432
- - Secret 文件(只记录键名,不记录值)
433
- - `.tf.json` 与 `*.tf` 合并分析
434
-
435
- ## Token 管理
436
-
437
- - 大型 YAML 文件(K8s manifest、Helm values)单独分析
438
- - 每个子任务分析 <=10 个文件
439
- - `values.yaml`(Helm)和 `*.tfvars`(Terraform)单独作为一个子任务
440
- - 生成的清单文件(`helm template` 输出、`terraform plan` 输出)跳过
441
- - `terraform.tfstate` 不分析(含敏感信息,仅记录 backend 类型)
442
- - Secret 文件只记录键名,不记录值
443
- - `.tf.json` 与 `*.tf` 合并分析