摘要 :在 AI 辅助编程的下半场,单纯的"提示词工程"已不足以支撑复杂的企业级开发。本文将探讨如何通过优化数据源、视觉化表达及 "双重指令"文档工程 ,构建一条从"设计意图"到"代码实现"的高效语义链路,让 Cursor 和 Claude Code 真正实现"图文并茂"的深度理解。
引言:从"Chat"到"Vibe Coding" 的范式转移
随着 Cursor、Claude Code 等新一代智能 IDE 的普及,我们的编程方式正在经历一场静默的变革------我们称之为 "Vibe Coding"。
这不仅仅是一个流行词,它代表了一种新的交互范式:开发者不再机械地编写每一行代码,而是更像一位"指挥家",通过上下文、草图和意图,指挥 AI 完成构建。
然而,在实际落地中,许多工程师遇到了同一个瓶颈:AI 总是"get"不到我的点。 无论是查询公司内部文档,还是根据 UI 草图生成前端代码,AI 经常表现得像个"懂的很多但听不懂人话"的助手。
问题的根源不在于 AI 模型的智商,而在于我们喂给它的"饲料"。本文将从数据源、视觉语言和文档工程三个维度,手把手教你如何打造让 AI "秒懂"的开发环境。
第一维度:数据降噪 ------ 源文件才是 AI 的"母语"
1.1 拒绝"消化不良"的 HTML
许多公司习惯将文档托管为 Web 在线形式(如 Sphinx 编译的 HTML)。但在 AI 眼中,经过渲染的 HTML 就像是一顿充满了垃圾食品的大餐:
- 低信噪比 :大量的
<div>,<nav>,<script>标签不仅毫无营养,还会疯狂消耗 Token。 - 逻辑碎片化:为了 Web 阅读体验,长文档往往被切分为多页,切断了 AI 的上下文链路。
结论:永远不要试图通过爬取 Web 网页来喂给 AI。
1.2 拥抱"纯净"的 RST/Markdown
相比之下,.rst 或 .md 源文件就是 AI 的"健康食品":
- 高信息密度:只有纯粹的内容和结构化标记。
- 完整性:保留了完整的章节逻辑和文档结构。
实战策略:
- 首选:在本地 Clone 文档库,直接加载到 Workspace。
- 次选 :使用 MCP (Model Context Protocol) 连接内网 GitLab,直接读取 Raw File。这既保证了数据的纯净性,又符合企业安全规范。
第二维度:视觉转译 ------ 让 AI "看见"逻辑与图形
UI 设计和架构图是开发中最难描述的部分。如何让 AI 理解你的图?核心原则是:代码 > 图片。
2.1 流程图与架构图:AI 也能"读图"
基于代码的绘图工具是 AI 的强项。因为它们本质是文本,AI 能够解析其中的逻辑节点和连线关系。在 RST/Sphinx 生态中,三大金刚各显神通:
- Mermaid :现代、流行。语法简洁,非常适合流程图、时序图和简单的状态图。它是目前 AI 生成和理解的最佳选择。
- PlantUML :标准化。严格遵循 UML 标准,适合类图、用例图等需要标准建模的场景。
- Graphviz (DOT) :原生与自动化 。这是 Sphinx 的原生亲儿子 (通过
.. graphviz::指令)。- AI 优势 :AI 对 DOT 语言(
digraph G { ... })的理解非常成熟。 - 独特价值 :相比手动调整节点位置,Graphviz 拥有强大的自动布局引擎。当你描述复杂的依赖关系或拓扑结构时,你只需告诉 AI "画出 A 到 B 的依赖",AI 生成 DOT 代码,Graphviz 负责把它画得漂亮。这是"AI + 工具"完美协作的典范。
- AI 优势 :AI 对 DOT 语言(
反例:
- Drawio / PNG:对于静态图片,AI 默认是"盲"的(除非手动上传)。它只能检索文字,无法理解连线逻辑。
最佳实践 :优先使用代码绘图。对于复杂的网络拓扑或依赖树,首选 Graphviz;对于业务流程,首选 Mermaid。
2.2 UI 设计:HTML/Tailwind 伪代码胜过一切
很多团队尝试用 PlantUML (Wireframe/Salt) 或 Figma 截图来描述 UI,但在与 AI 交互时,这往往效率低下。
为什么 HTML/Tailwind 伪代码是王者?
- 同构性 :AI 的训练数据中包含海量 HTML/CSS。当你写一个
<div class="flex justify-center">时,AI 不仅看到了布局,还看到了样式语义。 - 无损传递:AI 无需"猜测"间距、圆角或对齐方式,直接将伪代码转化为可运行的 React/Vue 组件。
第三维度:文档工程 ------ "双重指令"策略
当你已经准备好完美的 HTML/Tailwind 草图,准备放入 RST 文档时,你会遇到一个经典的"鱼与熊掌不可兼得"的矛盾:
- 人类需求 :希望在 Sphinx 编译的网页上直接看到渲染后的 UI 效果 (这需要
raw指令)。 - AI 需求 :希望 AI 能读取到源代码文本 ,以便理解结构和样式(这需要
literalinclude指令)。
许多开发者的做法是只使用 raw,然后试图在提示词中告诉 AI:"请去读取 ../examples/login.html 文件"。
这种做法是"反 Vibe Coding"的。 这打破了 AI 的阅读流,迫使它从"理解模式"切换到"搜索模式"。
3.1 终极方案:双重指令
不要在两者之间二选一,而是将它们叠加使用。
rst
.. _login_ui:
登录页 UI 设计
===============
**设计预览:**
以下为渲染后的实际效果:
.. raw:: html
:file: ../examples/login.html
**源码参考:**
以下是该设计的 HTML/Tailwind 源代码结构(供 AI 生成组件时参考):
.. literalinclude:: ../examples/login.html
:language: html
:lines: 1-20
为什么这是"核武器"级别的方案?
-
对 AI(Cursor/Claude Code) :
当 AI 扫描这段 RST 时,
literalinclude指令会将文件的纯文本内容直接展开 在 AI 的上下文窗口中。AI 无需任何额外指令,无需跨文件跳转,就能瞬间"看到"完整的 UI 结构。这种**"即读即懂"**的体验是 Vibe Coding 的核心。 -
对 Sphinx(编译器) :
在生成 Web 文档时,
raw指令会被执行。HTML 文件的内容会被原封不动地嵌入网页,读者可以直接看到设计效果。 -
对 Graphviz 等代码图 :
如果你使用的是 Graphviz,RST 原生的
.. graphviz::指令本身就支持直接嵌入 DOT 代码。这实际上已经具备了"既渲染给人看,又是文本供 AI 读"的双重属性,无需额外配置。
3.2 进阶技巧:解决样式冲突
值得注意的是,Sphinx 的默认主题通常不包含 Tailwind CSS 库。这意味着 raw 指令嵌入的 HTML 可能会因为缺少样式而显示为"白底黑字"的丑陋样子。
为了解决这个问题,建议在编写 HTML 草图时,采用 "Tailwind 类名 + 内联 Style" 的混合写法:
html
<!--
class="..." 是给 AI 看的(语义化、现代化)
style="..." 是给 Sphinx 看的(保证基本渲染效果)
-->
<div class="p-4 bg-blue-500 text-white rounded-lg"
style="padding: 1rem; background-color: #3b82f6; color: white; border-radius: 0.5rem;">
Hello World
</div>
这样,既保证了 AI 读到的是现代化的 bg-blue-500,又保证了文档渲染出基本的蓝色背景,一举两得。
结语:构建"AI Native" 的开发工作流
Vibe Coding 的核心,不在于你如何"说",而在于你如何"构建上下文"。
通过RST 源文件 提供纯净的知识底座,通过 Mermaid/PlantUML/Graphviz 构建可视化的逻辑语言,再通过 "双重指令" 彻底打破文档渲染与代码理解之间的边界------这不仅是写给人类看的文档,更是 写给 AI 看的高精度指令集 。
当你的文档、草图和代码融为一体,Cursor 和 Claude Code 就不再只是简单的补全工具,而是真正能够"看懂"你心中蓝图的超级合伙人。
让 AI 读懂你的意图,从优化你的 .rst 文件开始。