DAT as Code:使用 AI 自动化技术文档
Source: Dev.to
Introduction
去年,我写了一篇关于现代化 DAT(技术架构文档) 的指南。一年后,随着编码助手及其连接器的出现,我开始思考:我们到底能用 AI 做些什么来维护 DAT?
我在一个 Infra‑as‑code 项目上进行测试。
目标:从零开始,尽可能少的工作量就生成完整的文档(架构 + 运营)。
剧透:只需几小时的设置,就能跑通。
发现:templates + prompts
第一次使用编码助手的测试:我给它一个带有结构(标题、章节)的 markdown 文件,并在 HTML 注释中加入指令。
示例:
## 🏗️ Prérequis
## Description de la gestion IAM
编码助手会遵循结构并根据指令填充每个章节。
看似简单,却是我迄今为止测试过的保持文档风格统一最有效的方法。
问题:需要同步的 3 种工具
在普通项目中,我要在以下工具之间切换:
- GitHub(代码):markdown 形式的 doc‑as‑code
- Confluence(文档):用于搜索和阅读便利
- Jira(工单):用于追踪 issue 和项目
手动维护 Confluence 文档简直是噩梦。
我们希望能够在代码旁的 GitHub 中编写文档,但那样搜索不够方便。
理想状态是:用代码写文档,同时自动同步更新 Confluence,并在其中加入指向 GitHub 文档的链接和引用。

解决方案:MCP(Model Context Protocol)
MCP 是一类连接器,能够让你的编码助手与外部服务对话。我在本项目中确定了三个关键的 MCP:
- Context7:检查文档是否符合标准并发现缺失内容。
- GitHub:读取代码(我这里使用 Terraform)以提取架构信息。
- Atlassian:与 Confluence 和 Jira 交互。

Setup
我在 IDE(我使用的是 VsCode,其他如 Cursor、IntelliJ 也可)中安装了这 3 个 MCP。
对于 Atlassian,还需要在 .vscode/settings.json 中额外配置:
{
// Configuration MCP
"mcp.confluence.enabled": true,
"mcp.confluence.baseUrl": "https://votre-domaine.atlassian.net",
"mcp.confluence.defaultSpace": "SPACE_KEY",
"mcp.jira.enabled": true,
"mcp.jira.baseUrl": "https://votre-domaine.atlassian.net",
"mcp.jira.defaultProject": "PROJECT_KEY",
"mcp.servers": {
"confluence": {
"command": "mcp-confluence",
"args": [
"--space",
"SPACE_KEY",
"--page-id",
"PAGE_ID"
]
},
"jira": {
"command": "mcp-jira",
"args": [
"--project",
"PROJECT_KEY",
"--board",
"BOARD_ID"
]
}
}
}
获取数值
-
Confluence (
https://domaine.atlassian.net/wiki/spaces/MON_ESPACE/pages/12345678/Titre)SPACE_KEY=MON_ESPACEPAGE_ID=12345678
-
Jira (
https://domaine.atlassian.net/jira/software/c/projects/MON_PROJET/boards/99)PROJECT_KEY=MON_PROJETBOARD_ID=99
我测试连接:成功 ✓
随后,我在 GitHub 上创建了一个仓库,用于存放文档模板,目录为 tpl_docs/:
TPL_README.md:整体视图TPL_README_IAM.md:IAMTPL_README_FW.md:防火墙TPL_README_SIZING.md:容量规划TPL_README_PROCEDURE.md:操作流程TPL_README_DEX.md:运营手册
完整模板可在GitHub 仓库查看。
迭代 1:生成文档
我在 agents.md(编码助手的配置)中创建了一个自定义指令 create doc,一次性完成所有操作。
遇到的问题
- GitHub 认证:助手尝试在没有 token 的情况下访问我的私有仓库 → 通过在
agents.md中明确指定 GitHub 连接器解决。 - 上下文超限(Claude Sonnet 4.5)在一次性生成多个文件时出现:
[INFO] Analyse du code Terraform... ✓
[INFO] Génération README.md... ✓
[INFO] Génération IAM.md... ✓
[INFO] Génération FW.md... ✓
[ERROR] Context length exceeded (125k tokens)
[FAIL] Process stopped
结论:必须将过程拆分。
迭代 2:迭代式方法
我修改 agents.md,将工作流拆成:
- 分析:检查 Terraform。
- 计划:列出要生成的文档。
- 执行:一次生成一份文档,每份文档对应一次对话。
日志示例:
NEW CONVERSATION> Analyse le code
Analyse du code Terraform... ✓
[INFO] Génération du plan de documentation... ✓
NEW CONVERSATION> Génération README.md
[INFO] Génération README.md... ✓
NEW CONVERSATION> Génération IAM.md
[INFO] Génération IAM.md... ✓
NEW CONVERSATION> Génération FW.md
[INFO] Génération FW.md... ✓
NEW CONVERSATION> Génération SIZING.md
[INFO] Génération SIZING.md... ✓
[SUCCESS] Documentation complète générée
结果
- 分析 + 计划:✓
- 顺序生成:✓(但耗时更长)
- 完整文档:✓
迭代式流程可行,但仍然冗长。我不得不在模板的 prompts 中加入限制,确保输出不超过「5 行」。
迭代 3:运营文档(DEX)
在迭代 2 完成后,架构文档已经就绪。我随后加入了运营文档:SLA、DICT 表、监控、备份以及运营流程。
编码助手在生成具体操作步骤时表现尤为出色,能够给出精确的命令。示例:
gcloud compute instances attach-disk instance-1 --disk=disk-1 --zone=europe-west1-b
这种精准度避免了查找命令语法的时间浪费。
我新增了 TPL_README_DEX.md 和 TPL_README_PROCEDURE.md,并更新了 agents.md。冗长的问题仍在,但通过不断优化 prompts,输出质量持续提升。