AI Coding 最佳实践(三):Spec 规范层
Spec 层的核心作用
Spec(规范层)回答一个关键问题:
- What:具体要做什么功能?
这是产品视角的完整描述,不涉及技术实现,只关注功能和体验。
Spec 文档结构
# Spec - 规范层
## 1. 功能列表
### 核心功能
### 功能扩展预留
## 2. 用户旅程
## 3. 验收标准
### 功能验收
## 4. 非功能需求
### 性能要求
### SEO 要求
### 可访问性要求
### 兼容性要求
## 5. 内容规范
各部分详解
1. 功能列表
使用表格清晰列出所有功能:
| 功能模块 | 功能点 | 优先级 | 状态 |
|----------|--------|--------|------|
| 首页 | 展示最新文章列表 | P0 | 待开发 |
| 文章 | 文章详情页渲染 | P0 | 待开发 |
| 文章 | 文章目录(TOC) | P1 | 待开发 |
| 导航 | 分类/标签筛选 | P1 | 待开发 |
优先级定义:
- P0:核心功能,必须有
- P1:重要功能,应该有
- P2:可选功能,锦上添花
2. 用户旅程
描述用户的典型使用路径:
### 旅程 1:读者浏览博客
访问首页 → 浏览文章列表 → 点击感兴趣的文章
→ 阅读文章内容 → 通过分类/标签发现更多内容
**关键触点:**
- 首页加载速度 < 2s
- 文章列表需展示:标题、摘要、发布日期
- 文章详情页需展示:标题、正文、目录
写作要点:
- 用箭头描述流程
- 标注关键触点和指标
3. 功能验收标准
每个功能点都要有明确的验收标准:
#### F-001:首页文章列表
- [ ] 按发布时间倒序展示文章
- [ ] 每篇文章显示标题、摘要、日期
- [ ] 支持分页(每页 10 篇)
- [ ] 草稿文章不显示
#### F-002:文章详情页
- [ ] 正确渲染 Markdown 内容
- [ ] 代码块有语法高亮
- [ ] 显示文章目录(H2/H3 级别)
写作要点:
- 使用功能编号(F-001)便于引用
- 每条标准都应该可验证
4. 非功能需求
性能、兼容性等非功能需求同样重要:
### 性能要求
| 指标 | 目标值 | 测量方式 |
|------|--------|----------|
| 首页 LCP | < 2.5s | Lighthouse |
| 整体性能评分 | > 90 | Lighthouse |
### 兼容性要求
- [ ] 支持主流现代浏览器
- [ ] 响应式设计(移动端、平板、桌面端)
5. 内容规范
定义内容格式和字段:
### Frontmatter 字段定义
title: "文章标题" # 必填
date: 2024-01-01 # 必填
category: "技术" # 必填
tags: ["Astro"] # 可选
description: "描述" # 可选
draft: false # 可选
Spec vs Intent 的区别
| 维度 | Intent | Spec |
|---|---|---|
| 抽象度 | 高 | 中 |
| 变更频率 | 低 | 中 |
| 关注点 | 为什么做 | 做什么 |
| 细节程度 | 概览 | 详细 |
与 AI 协作时的使用方式
当需要添加新功能时:
请参考 docs/spec.md 中的功能列表,
实现 F-003 分类与标签功能,
确保满足所有验收标准。
常见问题
Q: Spec 和 PRD 有什么区别?
A: Spec 是精简版的 PRD,去掉了市场分析、竞品分析等内容,专注于功能定义。更适合小型项目和 AI 协作场景。
Q: 需要画原型图吗?
A: 对于简单项目,文字描述足够。复杂交互可以附上简单的草图或参考链接。
下一篇,我们将介绍 Plan 方案层的写法。