Let's Vibe! Let's Chill! Let's Go!
Vibe Coding风靡一时,有个灵感就可以快速上手开发Demo,三五好友碰撞idea无不欣喜若狂。我也算是Vibe Coding比较早接触并使用的一员,也有很多深切的感受。
很多小伙伴在用的过程中逐渐有了很多心得,不过再过两个月会发现Vibe Coding并不如自己想象的一样,跟AI说了很多很多遍的事情还是不理解、想让AI改一个小的Feature怎么都改不动。也有不少小伙伴尝试把Vibe Coding用到企业内部开发,这个故事就更多了。庞大的代码AI还看不过来,推荐的代码都是普普通通的基础代码,难以Merge到现有代码仓库中。企业内部让AI写的Bug比Feature还多(有夸张成分)。

生成式 AI 正在重塑软件工程,但从“灵感 Demo”跃迁到企业级生产系统,挑战不在于能否快速写出代码,而在于能否把需求、约束、行为契约与测试转化为可执行的规格,并在组织现有的安全与治理框架下稳定演进。本文面向架构师、平台工程与 DevOps 团队,系统阐述一种以规格为中心的工程方法——Spec Coding,并结合 Amazon Q Developer、Amazon Bedrock、AWS Lambda、AWS Step Functions 与 CI/CD 的整合方案,呈现从“一句话需求”到“可执行、可验收、可维护”的端到端落地路径。
许多团队在采用 Vibe Coding 时体验过“5 分钟拿到惊艳 Demo”的高效,但一旦进入迭代、协作与合规场景,模型的上下文一致性与代码质量难以跨越“不可合并”的深坑。工程师与 AI 的对话常停留在自然语言层面,导致分歧与误解不断累积。Spec Coding 的核心思想是把口头需求先转化为清晰且可验收的规格(Spec),以此作为生成与评审的基准,再通过自动化审核把关质量,最终与企业流水线顺畅融合。
面向在企业环境中实施 AI 辅助开发的技术负责人、平台工程师与资深开发者。推荐提前安装 Amazon Q Developer 插件与可定制的组织知识、在仓库根目录建立 .amazonq/vibes 目录并准备 spec.md 与 vibe.md 文档。
核心理念与规格结构
Spec Coding 把需求、约束、行为契约与测试统一到一个可执行文档集,作为生成、评审与演进的唯一事实源。文档结构建议采用需求陈述、上下文约束、行为契约、测试用例与任务拆分五个元素,并以明确的验收标准与自动化测试作为“完成”的判据。
|
元素 |
一句话解释 |
最小交付物 |
|
需求陈述 |
为什么要做 |
用户故事与验收标准(Given/When/Then) |
|
上下文约束 |
不能碰的红线 |
技术栈、合规、性能预算、依赖白名单 |
|
行为契约 |
系统长什么样 |
输入输出、状态机、错误码、API 签名 |
|
测试用例 |
怎样算做完 |
至少一条 Happy Path 与一条异常路径的自动化测试 |
|
任务拆分 |
能并行落地 |
可在两天内完成的子任务,单任务不超过四小时 |
项目初始化:.amazonq/vibes 目录与最小规格文档
把规格阶段的产物规范化并持久化,是让 Amazon Q 在 IDE 与流水线中稳定对齐团队上下文的首要步骤。建议在项目根先创建 .amazonq/vibes 目录,并初始化两类最小文档:vibe.md 与 spec.md。前者作为“Vibe 风格”的技术约束与风格基线,后者作为“Spec 驱动”的正式规格。
在 Windows PowerShell 下的最小初始化命令如下:
mkdir .amazonq\vibes
New-Item -ItemType File -Path .amazonq\vibes\vibe.md -Force | Out-Null
New-Item -ItemType File -Path .amazonq\vibes\spec.md -Force | Out-Null
如果需要在流水线或 Bedrock 的 Lambda 中消费这些文档,可在本地提交后把该目录同步到 S3 的项目命名空间,便于规格验证与计划生成:
aws s3 sync .amazonq/vibes s3://<spec-bucket>/<project>/
vibe.md 与 spec.md 的定位与使用方式
vibe.md 用于 Vibe 风格的 AI Coding。它不是需求说明书,而是“技术与风格的护栏”,用于约束生成式输出,使其在架构、命名与依赖上对齐团队基线。典型内容包括技术栈、命名规约、第三方库白名单与黑名单、性能预算、安全红线、分层与目录约定、数据库选型与访问模式等。IDE 中的 Amazon Q 在启用 Customization 后,会读取本文件与代码上下文,在生成时遵循这些约束。
spec.md 用于 Spec 驱动的 AI Coding。它是需求的正式规格与验收依据,适用于超过三天的需求或涉及跨团队协作、合规与安全的场景。典型内容包含需求陈述与验收标准、上下文约束、行为契约(输入输出、状态机、错误码、API 签名)、测试用例(至少一条快乐路径与一条异常路径)、任务拆分(可并行与可分批合并)。在 Bedrock + Lambda 的规格探索阶段,若存在 spec.md,可作为主输入;若不存在,则以 idea.md 补齐为规格后再输出 spec.md。
为了提升复用与一致性,建议把这两类文档作为团队最小事实源,与“架构快照 state.md”和“决策日志 decisions.md”协同演进。下面给出两个可直接使用的模板示例。
vibe.md 的建议模板如下:
# 技术约束与风格基线(vibe.md)
## 技术栈与运行环境
语言与框架:TypeScript + Node.js 20 / Java 17(Spring Boot)
前端:React 18 + Vite;样式:Tailwind(仅白名单组件库)
云区域与网络:AWS us-west-2;通过 VPC 端点访问 Bedrock
## 命名规约与目录约定
后端包前缀:com.<org>.<app>; 前端命名:PascalCase 组件、camelCase 工具
目录:apps/、packages/、infra/;禁止跨层直接依赖,统一通过接口层
## 依赖白名单与黑名单
白名单:axios、zod、jsonwebtoken、pg(或 rds-data)
黑名单:request(弃用)、lodash 全量引入(仅按需)
## 安全红线与合规边界
不得硬编码密钥与账号 ID;全部通过 Secrets Manager 或参数化注入
输入输出必须进行校验与编码;遵循 OWASP Top 10 基线
## 性能预算与资源约束
接口 P99 ≤ 300ms;单 MR 变更 ≤ 400 行;构建时长 ≤ 8 分钟
## 架构分层与集成约束
领域层与应用层隔离;外部集成统一经 adapter;状态变更经事件记录
## 数据库与存储策略
主存储:Amazon RDS(PostgreSQL);缓存:ElastiCache(Redis)
读写分离策略与事务边界;SQL 统一经 ORM/查询构建器;禁止 N+1
spec.md 的建议模板如下:
# 正式规格(spec.md):用户扫码登录,支持微信与 Apple,JWT 签发
## 需求陈述与验收标准
作为用户,我希望使用微信或 Apple 扫码登录,以便快速进入系统。
Given 未登录用户,When 扫码并完成授权,Then 返回已签发的 JWT,并在 24 小时内有效。
## 上下文约束
技术栈与依赖遵循 vibe.md;合规与安全边界遵循团队基线;接口需在 P99 300ms 内完成。
## 行为契约
输入:provider(wechat|apple)、code(string)
输出:JWT(header.payload.signature),exp 为 24h;错误码:E_AUTH_INVALID_CODE、E_AUTH_PROVIDER_UNSUPPORTED
状态机:未登录 → 授权中 → 已登录;异常:授权失败、令牌签发失败
API 签名:POST /api/auth/scan-login
## 测试用例
快乐路径:provider=wechat, code=valid,返回有效 JWT;异常路径:provider=apple, code=invalid,返回 E_AUTH_INVALID_CODE
## 任务拆分
后端接口与签发模块;第三方授权适配器;数据表与索引;前端交互与状态;CI 测试与审核集成
当这两类文档就绪后,Amazon Q 的工作流更易保持上下文一致性。IDE 中的 /start 可让 Q 阅读两者并自动提问补全;每轮编码后的 /sync 更新架构快照,使下一任务基于最新状态继续。对规格的任何变更都应以拉取请求形式合并,联动 CI 的审核与测试,形成可追溯闭环。
参考架构与数据流
下图用文字描述一个可落地的架构,涵盖规格探索、计划生成、代码骨架实施、IDE 生成与补全、CI/CD 审核与度量。
[Developer] --(IDE/Customization)--> [Amazon Q Developer]
| |
v v
(.amazonq/vibes) ----> Spec/Vibe ------> Plan/Review ------> CI Gate
| | |
v v v
Bedrock + Lambda ----> S3 Specs ----> Step Functions ----> Artifact/Comment

核心数据流为:规格探索把一句话需求转为可执行规格;计划生成把规格转为可实施计划;代码骨架实施把计划转为可合并骨架与测试;IDE 中的 Amazon Q Developer 在团队定制的上下文下生成高质量代码与解释;CI/CD 阶段用 Amazon Q CLI 扫描安全与质量问题并给出结构化建议与差异对比。
使用Customization定制 Amazon Q Developer:让模型成为“内部人”
要让 IDE 中的 AI 生成结果可直接合并,必须把团队的私有代码、框架、命名与风格注入到 Amazon Q。建议挑选 2 MB 到 20 GB 代表性代码(至少十个文件或多语言),去除明显重复与第三方依赖,补充关键模块的注释与调用示例。通过 Amazon Q Developer 控制台创建 Customization,选择数据源(S3 或 CodeConnections)并命名,完成训练后为相关开发者与用户组启用。在 IDE 中选择该 Customization 后,模型的补全与解释将自然对齐你的代码风格与架构约束。
经验显示,引入 Customization 能显著提升建议的可采纳性。在一个大型金融场景中,AI 代码的采纳率从三成提升到六成,并显著减少了“风格不一致”与“误解业务契约”的返工成本。结合本方案的规格驱动与流水线审核,可以把“生成式速度”与“企业级质量与治理”并行成立。
在 IDE 中使用 Amazon Q:对齐风格与架构快照
当团队在项目根维护 .amazonq/vibes/ 最小文档(vibe.md 与 spec.md),并启用 Amazon Q 的 Customization 后,IDE 内的 Q 就能在生成与解释时自然遵循团队约束。建议在每轮编码后执行“/sync”把架构快照刷新为最新状态;下一轮任务始终基于最新快照继续,降低模型失忆带来的偏差。通过这种“对话即文档,文档可执行”的方式,AI 的生成与人工的复核能围绕同一个事实源协同。
初始化项目时,可以使用类似如下的命令生成更完整的五件套模板,并绑定到当前工程:
spec-kit init_project my-app --ai q-developer
在此基础上,IDE 中的 Q 将读取 .amazonq/vibes 与代码上下文,为接口签名、错误码、状态机与目录结构提供一致的补全与解释。
我们需要从Vibe Coding走向Spec Coding,或者说简单需求Vibe搞定、复杂&专业场景用Spec搞定。Vibe Coding让我们充分发挥创意,真正落地还需要规范Spec。
Spec也是一种思想、方法,基于Amazon Q也可以实现,通过这种方式能够更好的理解为什么要有Kiro、为什么Kiro会更合适企业级开发。下一篇继续聊。
探索、实践、进阶!
Spec驱动的企业级开发流程
1501

被折叠的 条评论
为什么被折叠?



