Skip to Content

36c - 第2周:设计与开发启动

本文是《AI Agent 实战手册》第 36 章第 3 节。 上一节:第1周:调研·需求·架构 | 下一节:第3-4周:Spec-Driven开发

概述

第 2 周是从”纸上谈兵”到”真刀真枪”的转折点。经过第 1 周的调研、需求定义和架构设计,你手上已经有了完整的 Spec 文件集和技术蓝图。本周的目标是:Day 1 用 AI 工具快速完成 UI/UX 设计,Day 2 建立设计系统并进行设计审查,Day 3-5 初始化项目、配置开发环境并启动核心模块开发。本节提供每一天的详细操作步骤、工具推荐(含价格)、多个提示词模板和完整实战案例,确保你在 5 天内从设计稿走到可运行的核心代码。


1. Day 1:AI 辅助 UI/UX 设计

1.1 为什么 Solo Founder 需要 AI 设计

传统 UI/UX 设计流程需要专业设计师花费 1-2 周完成线框图、高保真原型和交互设计。对于一人公司来说,这个时间成本不可接受。2025-2026 年的 AI 设计工具已经能在数小时内完成 80% 的设计工作,你只需要做 20% 的审查和微调。

AI 设计的核心优势: ├── 速度:从文字描述到高保真原型只需 5-15 分钟 ├── 一致性:AI 生成的组件自动遵循设计规范 ├── 全状态覆盖:提醒 AI 生成空状态、加载、错误、成功等所有状态 ├── 代码就绪:v0.dev 等工具直接输出可用的 React 代码 └── 迭代快速:不满意?修改 prompt 重新生成,成本几乎为零

1.2 AI 设计工具推荐

UI 生成工具

工具用途价格适用场景
v0.dev文字→React 组件/页面代码免费(有限)/ $20/月 Pro首选!直接生成 shadcn/ui + Tailwind 代码
Google Stitch(原 Galileo AI)文字→高保真 UI 设计稿免费(Google Labs)快速生成设计稿,导出到 Figma
Bolt.new文字→全栈应用原型免费(有限)/ $20/月 Pro快速全栈原型,含后端逻辑
Lovable文字→全栈应用免费(有限)/ $20/月类似 Bolt,适合快速验证
Figma AI(Make Designs)AI 辅助 Figma 设计Figma 订阅内含在 Figma 中用 AI 生成和修改设计
Uizard文字/截图→UI 原型免费(有限)/ $12/月快速线框图和原型
CreatieAI 设计生成免费(有限)/ $16/月多风格 UI 生成

设计辅助工具

工具用途价格适用场景
Figma专业设计工具免费(个人)/ $15/月 Pro设计细化、团队协作、设计系统管理
Framer设计+发布一体化免费 / $15/月 ProLanding Page 设计和发布
CoolorsAI 配色方案生成免费 / $3/月 Pro快速生成和谐的配色方案
FontjoyAI 字体搭配免费自动推荐字体组合
Realtime Colors实时预览配色效果免费在真实 UI 中预览配色
MobbinUI 设计参考库免费(有限)/ $12/月参考优秀 App 的设计模式
Screenlane移动端 UI 参考免费移动端设计灵感

图标与素材工具

工具用途价格适用场景
Lucide Icons开源图标库免费shadcn/ui 默认图标库
HeroiconsTailwind 官方图标免费Tailwind 项目首选
Unsplash免费高质量图片免费占位图和产品图片
Midjourney / DALL-EAI 生成自定义图片$10-30/月品牌图片、插画

1.3 操作步骤:用 v0.dev 设计核心页面(Day 1 上午,3-4 小时)

步骤 1:确定需要设计的页面列表(15 分钟)

在开始设计之前,先列出 MVP 需要的所有页面:

MVP 页面清单模板: □ 公开页面(无需登录): ├── Landing Page(首页/营销页) ├── 定价页 ├── 登录/注册页 └── 404 页面 □ 核心功能页面(需登录): ├── Dashboard(仪表板/主页) ├── [核心功能页面 1] ├── [核心功能页面 2] ├── [核心功能页面 3] └── 设置页 □ 每个页面需要覆盖的状态: ├── 空状态(Empty State):首次使用,没有数据 ├── 加载状态(Loading State):数据加载中 ├── 成功状态(Success State):正常显示数据 ├── 错误状态(Error State):请求失败或数据异常 └── 边界状态:数据过多、数据过少、长文本溢出

步骤 2:设计 Landing Page(45 分钟)

Landing Page 是用户的第一印象,也是转化的关键。用 v0.dev 快速生成:

提示词模板 1:v0.dev Landing Page 设计 请生成一个现代化的 SaaS Landing Page,要求如下: 产品名称:[名称] 一句话描述:[产品做什么] 目标用户:[用户画像] 主色调:[颜色,如 blue-600] 风格:简洁现代、专业可信 页面结构: 1. **导航栏**:Logo + 产品名 + 功能/定价/文档链接 + 登录/注册按钮 2. **Hero Section**: - 大标题(一句话说清价值主张) - 副标题(2 行补充说明) - 主 CTA 按钮("免费开始" / "Start Free") - 次 CTA 按钮("查看演示") - Hero 图片/截图占位区域 3. **痛点区域**:3 个用户痛点卡片(图标 + 标题 + 描述) 4. **功能展示**:3-5 个核心功能(左右交替布局,图标 + 标题 + 描述 + 截图占位) 5. **社会证明**:用户评价卡片(3 个,头像 + 姓名 + 职位 + 评价) 6. **定价表**:Free / Pro / Enterprise 三栏定价 7. **FAQ**:5 个常见问题(手风琴展开) 8. **底部 CTA**:再次邮件收集 + CTA 按钮 9. **Footer**:链接分组 + 社交媒体图标 + 版权信息 技术要求: - 使用 shadcn/ui 组件 - Tailwind CSS 样式 - 支持深色/浅色主题 - 完全响应式(移动端优先) - 包含平滑滚动动画

步骤 3:设计 Dashboard 页面(45 分钟)

Dashboard 是用户登录后的主页面,需要覆盖所有状态:

提示词模板 2:Dashboard 页面设计 请生成一个 SaaS Dashboard 页面,要求如下: 产品:[产品描述] 用户角色:[用户画像] Dashboard 需要展示的信息: - [关键指标 1,如"今日审查数"] - [关键指标 2,如"发现的问题数"] - [关键指标 3,如"代码质量评分"] - [最近活动列表] - [快捷操作按钮] 页面结构: 1. **顶部导航**:Logo + 搜索框 + 通知铃铛 + 用户头像下拉菜单 2. **侧边栏**:导航菜单(Dashboard/[功能1]/[功能2]/设置)+ 折叠按钮 3. **主内容区**: a. 欢迎横幅("Good morning, [用户名]") b. 关键指标卡片(4 个,带趋势箭头和迷你图表) c. 最近活动表格(时间/操作/状态/详情链接) d. 快捷操作区域(2-3 个常用操作按钮) 请同时生成以下状态的变体: **空状态**(新用户首次登录): - 指标卡片显示 "—" 或 0 - 活动列表显示引导插画 + "开始你的第一个 [操作]" CTA - 包含新手引导步骤(1-2-3 步骤卡片) **加载状态**: - 指标卡片显示 Skeleton 骨架屏 - 表格显示 Skeleton 行 - 使用 shadcn/ui 的 Skeleton 组件 **错误状态**: - 数据加载失败时显示错误提示卡片 - 包含"重试"按钮 - 友好的错误消息(不显示技术细节) 技术要求: - 使用 shadcn/ui 组件(Card, Table, Badge, Skeleton, Alert) - 响应式:移动端侧边栏变为底部导航或汉堡菜单 - 支持深色/浅色主题

步骤 4:设计核心功能页面(60-90 分钟)

对 MVP 的每个核心功能页面,逐一用 v0.dev 生成:

提示词模板 3:核心功能页面设计 请生成 [功能名称] 页面,要求如下: 功能描述:[详细描述这个功能做什么] 用户流程: 1. 用户 [操作1] 2. 系统 [响应1] 3. 用户 [操作2] 4. 系统 [响应2] 页面布局: - [描述页面的主要区域和布局] 交互要求: - [描述关键交互,如表单提交、列表筛选、拖拽排序等] 请覆盖以下状态: 1. 正常状态:有数据时的完整展示 2. 空状态:没有数据时的引导 3. 加载状态:数据加载中的骨架屏 4. 错误状态:操作失败时的提示 5. 成功状态:操作成功后的反馈(Toast 通知) 技术要求: - 使用 shadcn/ui 组件 - 表单使用 react-hook-form + zod 验证 - 包含适当的加载和错误处理 UI

步骤 5:设计登录/注册页面(30 分钟)

提示词模板 4:认证页面设计 请生成登录和注册页面,要求如下: 认证方式: - 邮箱 + 密码登录/注册 - OAuth 登录(GitHub / Google) - 忘记密码流程 登录页面: - 左侧:产品介绍/品牌图片 - 右侧:登录表单 ├── 邮箱输入框 ├── 密码输入框(带显示/隐藏切换) ├── "记住我" 复选框 ├── "忘记密码?" 链接 ├── 登录按钮 ├── 分隔线 "或" ├── GitHub 登录按钮 ├── Google 登录按钮 └── "没有账号?注册" 链接 注册页面: - 类似布局,表单包含: ├── 用户名输入框 ├── 邮箱输入框 ├── 密码输入框(带强度指示器) ├── 确认密码输入框 ├── 服务条款复选框 └── 注册按钮 错误状态: - 邮箱格式错误 - 密码不符合要求(实时验证提示) - 邮箱已注册 - OAuth 登录失败 技术要求: - 使用 shadcn/ui 组件(Input, Button, Checkbox, Label) - 表单验证使用 zod schema - 响应式:移动端全宽表单 - 支持深色/浅色主题

1.4 全状态设计清单

每个页面都必须覆盖以下状态,这是专业产品和业余产品的关键区别:

全状态设计矩阵: | 状态 | 描述 | 设计要点 | 常见遗漏 | |------|------|---------|---------| | 空状态 | 首次使用,无数据 | 引导插画 + 行动号召 | 只显示空白页面 | | 加载状态 | 数据请求中 | Skeleton 骨架屏 | 无反馈或只有 spinner | | 成功状态 | 正常数据展示 | 清晰的信息层次 | 数据过多时布局崩溃 | | 错误状态 | 请求失败 | 友好提示 + 重试按钮 | 显示技术错误信息 | | 部分加载 | 部分数据成功 | 成功部分正常显示 | 全部失败或全部成功 | | 离线状态 | 网络断开 | 离线提示 + 缓存数据 | 无任何提示 | | 权限不足 | 无权访问 | 403 页面 + 升级引导 | 显示空白或报错 | | 长列表 | 数据量大 | 分页/虚拟滚动 | 一次加载全部数据 | | 长文本 | 内容超长 | 截断 + "查看更多" | 文本溢出破坏布局 |
提示词模板 5:全状态设计审查 请审查以下页面设计,检查是否覆盖了所有必要的 UI 状态: 页面描述:[描述页面功能] 当前设计:[粘贴当前设计代码或描述] 请检查以下状态是否都有对应的 UI 处理: 1. **空状态**:用户首次访问,没有任何数据 - 是否有引导性的空状态插画或文案? - 是否有明确的行动号召(CTA)? 2. **加载状态**:数据正在从服务器获取 - 是否使用了 Skeleton 骨架屏(而非简单的 spinner)? - 骨架屏的形状是否与实际内容匹配? 3. **错误状态**:API 请求失败 - 错误消息是否用户友好(非技术语言)? - 是否提供了重试按钮? - 是否区分了不同类型的错误(网络/服务器/权限)? 4. **成功反馈**:用户操作成功 - 是否有 Toast 通知或其他成功反馈? - 反馈是否在合理时间后自动消失? 5. **表单验证**:用户输入不合法 - 是否有实时验证(输入时)? - 错误提示是否紧邻对应的输入框? - 提交按钮在表单无效时是否禁用? 6. **边界情况**: - 长文本是否正确截断? - 大量数据是否有分页或虚拟滚动? - 图片加载失败是否有 fallback? 请列出缺失的状态,并为每个缺失状态提供设计建议。

1.5 设计输出与组织

Day 1 结束时,你应该有以下设计产出:

Day 1 设计产出清单: □ Landing Page 完整设计(含移动端适配) □ 登录/注册页面设计 □ Dashboard 页面设计(含空/加载/错误/成功 4 种状态) □ 核心功能页面 1 设计(含全状态) □ 核心功能页面 2 设计(含全状态) □ 核心功能页面 3 设计(含全状态) □ 设置页面设计 □ 404 页面设计 组织方式: ├── 方案 A:v0.dev 项目中保存所有生成结果(推荐) │ └── 每个页面一个 v0 对话,方便后续迭代 ├── 方案 B:导出代码到本地项目的 /design 目录 │ └── 作为参考,开发时逐步集成 └── 方案 C:截图保存到 Figma/Notion └── 作为视觉参考文档

1.6 提示词模板:设计风格统一

提示词模板 6:设计风格指南生成 基于以下产品信息,生成一份简洁的设计风格指南: 产品名称:[名称] 产品类型:[SaaS/工具/平台] 目标用户:[用户画像] 品牌调性:[专业/友好/极简/活力/科技感] 请生成: 1. **配色方案**: - 主色(Primary):用于 CTA 按钮、重要链接 - 次色(Secondary):用于次要操作、标签 - 强调色(Accent):用于通知、高亮 - 成功/警告/错误/信息色 - 中性色阶(背景、文字、边框) - 提供 HSL 值(适配 shadcn/ui 的 CSS 变量格式) 2. **字体方案**: - 标题字体 - 正文字体 - 代码字体(如适用) - 字号层级(h1-h6, body, small, caption) 3. **间距系统**: - 基础间距单位 - 组件内间距 - 组件间间距 - 页面边距 4. **圆角规范**: - 按钮圆角 - 卡片圆角 - 输入框圆角 - 头像圆角 5. **阴影层级**: - 卡片阴影 - 下拉菜单阴影 - 模态框阴影 请以 CSS 变量格式输出,兼容 shadcn/ui 的主题系统。

2. Day 2:设计审查与设计系统建立

2.1 为什么需要设计系统

即使是一人公司,设计系统也是必须的。没有设计系统,随着页面增多,你会遇到:

  • 同一个按钮在不同页面有 3 种不同的样式
  • 颜色值散落在各处,改一个主题色要改 50 个地方
  • 间距不一致,页面看起来”不专业”
  • AI 生成的新页面风格与已有页面不统一
Solo Founder 的设计系统 ≠ 大公司的设计系统 大公司:Figma 组件库 + Storybook + 设计文档 + 设计评审流程 Solo Founder:CSS 变量 + shadcn/ui 主题配置 + 简单的风格指南 你需要的是"刚好够用"的设计系统,不是完美的设计系统。

2.2 设计审查工具推荐

工具用途价格适用场景
Claude / ChatGPTAI 设计审查、可用性分析$20/月用 AI 审查设计的可用性和一致性
Figma设计细化和标注免费(个人)/ $15/月需要精细调整时使用
Contrast Checker颜色对比度检查免费确保文字可读性(WCAG 标准)
Responsively多设备预览免费(开源)同时预览多种屏幕尺寸
axe DevTools无障碍检查免费(基础)检查无障碍合规性

2.3 操作步骤:AI 辅助设计审查(Day 2 上午,2 小时)

步骤 1:用 AI 审查设计一致性(30 分钟)

提示词模板 7:设计一致性审查 请审查以下页面设计的一致性: [粘贴所有页面的设计代码或截图描述] 审查维度: 1. **颜色一致性**: - 所有页面是否使用相同的主色/次色/强调色? - 状态颜色(成功/警告/错误)是否统一? - 背景色和文字色是否一致? 2. **排版一致性**: - 标题层级(h1-h6)的字号是否统一? - 正文字号和行高是否一致? - 字体粗细使用是否规范? 3. **间距一致性**: - 卡片内间距是否统一? - 组件间距是否遵循统一的间距系统? - 页面边距是否一致? 4. **组件一致性**: - 按钮样式(大小、圆角、颜色)是否统一? - 输入框样式是否统一? - 卡片样式是否统一? - 表格样式是否统一? 5. **交互一致性**: - Hover 效果是否统一? - 加载状态的表现是否统一? - 错误提示的方式是否统一? 6. **响应式一致性**: - 断点是否统一(sm/md/lg/xl)? - 移动端布局策略是否一致? 请列出所有不一致的地方,并建议统一方案。

步骤 2:用 AI 审查可用性(30 分钟)

提示词模板 8:可用性审查 请从用户体验角度审查以下页面设计: [粘贴页面设计代码或描述] 审查维度: 1. **信息层次**: - 用户能否在 3 秒内理解页面的主要功能? - 最重要的信息是否最突出? - 视觉层次是否清晰(标题 > 副标题 > 正文 > 辅助信息)? 2. **操作效率**: - 核心操作是否在 3 次点击内完成? - CTA 按钮是否足够醒目? - 常用操作是否有快捷方式? 3. **认知负荷**: - 页面信息是否过多? - 是否有不必要的选项或功能? - 表单字段是否可以减少? 4. **错误预防**: - 危险操作(删除、取消)是否有确认步骤? - 表单是否有实时验证? - 是否有撤销功能? 5. **无障碍基础**: - 颜色对比度是否足够(WCAG AA 标准,4.5:1)? - 是否仅依赖颜色传达信息? - 交互元素是否有足够的点击区域(至少 44×44px)? 6. **移动端体验**: - 触摸目标是否足够大? - 是否有不适合移动端的交互(如 hover 依赖)? - 表单在移动端是否易于填写? 请为每个问题给出 1-5 分评分,并提供改进建议。

步骤 3:修复设计问题(60 分钟)

根据 AI 审查结果,回到 v0.dev 修复发现的问题:

修复优先级: ├── P0(必须修复):颜色对比度不足、核心操作不明显、缺少错误状态 ├── P1(应该修复):间距不一致、组件样式不统一、移动端布局问题 ├── P2(可以延后):动画效果、微交互、边缘情况的 UI └── 原则:P0 今天修复,P1 开发时修复,P2 上线后迭代

2.4 操作步骤:建立设计系统(Day 2 下午,2-3 小时)

步骤 4:创建 CSS 变量文件(45 分钟)

这是设计系统的核心——所有颜色、间距、圆角等设计 Token 都定义为 CSS 变量:

提示词模板 9:CSS 变量 / Design Token 生成 基于以下设计风格指南,生成完整的 CSS 变量文件: 配色方案:[粘贴之前生成的配色方案] 字体方案:[字体选择] 间距系统:[间距规范] 请生成 globals.css 文件,包含: 1. **颜色变量**(HSL 格式,兼容 shadcn/ui): ```css :root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: [主色 HSL]; --primary-foreground: [主色前景 HSL]; --secondary: [次色 HSL]; --secondary-foreground: [次色前景 HSL]; --muted: [柔和色 HSL]; --muted-foreground: [柔和前景 HSL]; --accent: [强调色 HSL]; --accent-foreground: [强调前景 HSL]; --destructive: [危险色 HSL]; --destructive-foreground: [危险前景 HSL]; --border: [边框色 HSL]; --input: [输入框边框 HSL]; --ring: [焦点环 HSL]; --radius: 0.5rem; } .dark { /* 深色主题对应变量 */ }
  1. 自定义扩展变量
    :root { /* 成功/警告/信息色 */ --success: [HSL]; --warning: [HSL]; --info: [HSL]; /* 间距系统 */ --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; --spacing-2xl: 3rem; /* 字体大小 */ --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.25rem; --font-size-2xl: 1.5rem; --font-size-3xl: 1.875rem; --font-size-4xl: 2.25rem; }

请确保浅色和深色主题都完整定义。

#### 步骤 5:选择和配置组件库(30 分钟) Solo Founder 的组件库选择标准:AI 友好、可定制、零运行时依赖。

组件库对比(2026 年推荐):

组件库价格AI 友好度定制性适用场景
shadcn/ui免费⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐首选!代码复制到项目,完全可控
Radix UI免费⭐⭐⭐⭐⭐⭐⭐⭐⭐shadcn/ui 的底层,需要自己写样式
Headless UI免费⭐⭐⭐⭐⭐⭐⭐⭐⭐Tailwind 官方,无样式组件
Ant Design免费⭐⭐⭐⭐⭐⭐功能全面但定制较难
Material UI免费⭐⭐⭐⭐⭐⭐Google 风格,包体积较大
Chakra UI免费⭐⭐⭐⭐⭐⭐⭐开发体验好但社区较小

推荐方案:shadcn/ui + Radix UI + Tailwind CSS

理由: ├── v0.dev 默认输出 shadcn/ui 代码,无缝衔接 ├── 代码复制到项目中,不是 npm 依赖,完全可控 ├── AI 训练数据中 shadcn/ui 示例丰富,生成质量高 ├── 基于 Radix UI 的无障碍原语,开箱即用的 a11y └── Tailwind CSS 样式,与设计系统 CSS 变量完美配合

shadcn/ui 初始化配置: ```bash # 在 Next.js 项目中初始化 shadcn/ui npx shadcn@latest init # 选择配置: # Style: Default # Base color: 根据你的设计选择 # CSS variables: Yes(重要!启用 CSS 变量模式) # 安装常用组件 npx shadcn@latest add button card input label npx shadcn@latest add dialog dropdown-menu select npx shadcn@latest add table badge skeleton toast npx shadcn@latest add form tabs alert avatar npx shadcn@latest add sheet separator scroll-area

步骤 6:创建设计系统文档(45 分钟)

提示词模板 10:设计系统文档生成 基于以下配置,生成一份简洁的设计系统文档(Markdown 格式): CSS 变量文件:[粘贴 globals.css] 组件库:shadcn/ui 技术栈:Next.js + TypeScript + Tailwind CSS 请生成 docs/design-system.md,包含: 1. **配色方案**: - 颜色色板(列出所有颜色及其用途) - 使用规则(什么场景用什么颜色) - 深色主题对应关系 2. **排版规范**: - 字体层级表(标签/字号/行高/字重/用途) - 使用示例 3. **间距规范**: - 间距值表 - 使用场景(组件内/组件间/页面边距) 4. **组件使用规范**: - 按钮:变体(primary/secondary/outline/ghost/destructive)和使用场景 - 输入框:变体和验证状态 - 卡片:使用场景和内容结构 - 表格:列对齐、排序、分页规范 - Toast:类型(success/error/warning/info)和持续时间 5. **布局规范**: - 页面最大宽度 - 网格系统 - 响应式断点 - 侧边栏宽度 6. **图标规范**: - 图标库(Lucide Icons) - 图标大小(sm/md/lg) - 使用规则 这份文档将作为 AI 编码时的上下文参考, 确保后续生成的代码风格一致。

2.5 提示词模板:Tailwind 主题配置

提示词模板 11:Tailwind 配置生成 基于以下设计系统,生成 tailwind.config.ts 的自定义配置: 设计系统:[粘贴设计系统文档] 请生成 tailwind.config.ts,包含: 1. **颜色扩展**:映射 CSS 变量到 Tailwind 类名 2. **字体扩展**:自定义字体族 3. **间距扩展**:自定义间距值(如果默认不够用) 4. **动画扩展**:常用动画(fade-in, slide-up, scale-in) 5. **屏幕断点**:确认或自定义断点 6. **插件**:tailwindcss-animate(shadcn/ui 需要) 同时生成 components.json(shadcn/ui 配置文件),确保: - style: "default" - tailwind.cssVariables: true - aliases 配置正确

2.6 Day 2 产出清单

Day 2 结束时,你应该有以下产出: □ 设计审查报告(一致性 + 可用性问题列表) □ 修复后的设计稿(P0 问题已修复) □ CSS 变量文件(globals.css,含浅色/深色主题) □ Tailwind 配置文件(tailwind.config.ts) □ shadcn/ui 配置和常用组件安装 □ 设计系统文档(docs/design-system.md) □ 组件库选择决策记录 这些产出将确保 Day 3-5 的开发工作风格一致、效率最高。

3. Day 3-5:核心开发启动

3.1 开发启动的核心目标

Day 3-5 是从”设计”到”代码”的关键转换。目标不是完成所有功能,而是:

Day 3-5 的核心目标: ├── 项目初始化:创建项目骨架,配置开发环境 ├── CI/CD 配置:自动化构建和部署流水线 ├── Steering 配置:确保 AI 编码的一致性 ├── MCP 配置:连接必要的外部服务 ├── 核心模块 v1:完成 1-2 个核心模块的基础实现 └── 输出:可运行的项目骨架 + 核心模块 v1 注意:不要试图在 3 天内完成所有功能! 核心开发将在 Week 3-4 通过 Spec-Driven 工作流系统化推进。

3.2 项目初始化工具推荐

工具用途价格适用场景
create-next-appNext.js 项目脚手架免费Next.js 项目初始化
create-t3-appT3 Stack 脚手架免费Next.js + tRPC + Prisma + Tailwind
Kiro(Spec 任务执行)AI 辅助代码生成免费 / $20/月 ProSpec-Driven 开发
GitHub代码托管 + CI/CD免费版本控制和自动化
Vercel部署平台免费 / $20/月 Pro零配置部署
pnpm包管理器免费比 npm 更快、更省空间
Biome代码格式化 + Lint免费替代 ESLint + Prettier,更快

3.3 操作步骤:项目初始化(Day 3 上午,2-3 小时)

步骤 1:创建项目(15 分钟)

# 方案 A:标准 Next.js 项目(推荐) pnpm create next-app@latest my-saas \ --typescript \ --tailwind \ --eslint \ --app \ --src-dir \ --import-alias "@/*" cd my-saas # 方案 B:T3 Stack(如果需要 tRPC + Prisma) pnpm create t3-app@latest my-saas # 方案 C:Tauri 桌面应用 pnpm create tauri-app my-desktop-app \ --template react-ts

步骤 2:安装核心依赖(15 分钟)

提示词模板 12:项目依赖清单生成 基于以下技术栈和功能需求,生成项目依赖清单: 技术栈:Next.js 15 + TypeScript + Tailwind CSS + shadcn/ui 数据库:Supabase 认证:Supabase Auth 支付:Stripe 邮件:Resend 功能需求:[MVP 功能列表] 请分类列出需要安装的依赖: 1. **核心依赖**(dependencies): - UI 相关 - 数据获取相关 - 认证相关 - 表单验证相关 - 工具库 2. **开发依赖**(devDependencies): - 类型定义 - 测试框架 - 代码质量工具 3. **安装命令**: ```bash # 核心依赖 pnpm add [依赖列表] # 开发依赖 pnpm add -D [依赖列表]
  1. 不推荐安装的依赖(及原因):
    • [依赖名]:[为什么不推荐]

原则:最小化依赖,优先使用 Next.js 内置功能。

常用依赖安装示例(Web SaaS): ```bash # UI 组件(shadcn/ui 已在 Day 2 初始化) # 表单验证 pnpm add zod react-hook-form @hookform/resolvers # Supabase pnpm add @supabase/supabase-js @supabase/ssr # Stripe(如需支付) pnpm add stripe @stripe/stripe-js # 邮件(如需发送邮件) pnpm add resend @react-email/components # 工具库 pnpm add date-fns clsx tailwind-merge lucide-react # 开发依赖 pnpm add -D @types/node vitest @vitejs/plugin-react pnpm add -D @playwright/test

步骤 3:配置项目结构(30 分钟)

提示词模板 13:项目目录结构生成 基于以下技术栈,生成推荐的项目目录结构: 技术栈:Next.js 15 App Router + TypeScript + Tailwind CSS + shadcn/ui 数据库:Supabase 功能模块:[列出 MVP 功能模块] 请生成目录结构,遵循以下原则: - 按功能模块组织(Feature-based),不按技术层组织 - 共享组件放在 components/ui/(shadcn/ui 组件) - 业务组件放在对应功能目录下 - Server Actions 放在对应功能目录的 actions.ts 中 - 类型定义放在对应功能目录的 types.ts 中 示例结构:
src/ ├── app/ # Next.js App Router │ ├── (auth)/ # 认证相关页面(分组路由) │ │ ├── login/page.tsx │ │ ├── register/page.tsx │ │ └── layout.tsx │ ├── (dashboard)/ # 需登录的页面(分组路由) │ │ ├── dashboard/page.tsx │ │ ├── [feature1]/page.tsx │ │ ├── [feature2]/page.tsx │ │ ├── settings/page.tsx │ │ └── layout.tsx # 含侧边栏的布局 │ ├── api/ # API Routes(Webhook 等) │ │ └── webhook/route.ts │ ├── layout.tsx # 根布局 │ ├── page.tsx # Landing Page │ └── globals.css # 全局样式 + CSS 变量 ├── components/ │ ├── ui/ # shadcn/ui 组件(自动生成) │ │ ├── button.tsx │ │ ├── card.tsx │ │ └── ... │ ├── layout/ # 布局组件 │ │ ├── header.tsx │ │ ├── sidebar.tsx │ │ └── footer.tsx │ └── shared/ # 共享业务组件 │ ├── empty-state.tsx │ ├── loading-skeleton.tsx │ └── error-boundary.tsx ├── features/ # 功能模块(核心!) │ ├── auth/ # 认证模块 │ │ ├── components/ │ │ ├── actions.ts # Server Actions │ │ ├── hooks.ts # 自定义 Hooks │ │ └── types.ts # 类型定义 │ ├── [feature1]/ # 功能模块 1 │ │ ├── components/ │ │ ├── actions.ts │ │ ├── hooks.ts │ │ └── types.ts │ └── [feature2]/ # 功能模块 2 │ ├── components/ │ ├── actions.ts │ ├── hooks.ts │ └── types.ts ├── lib/ # 工具库 │ ├── supabase/ │ │ ├── client.ts # 浏览器端 Supabase 客户端 │ │ ├── server.ts # 服务端 Supabase 客户端 │ │ └── middleware.ts # 认证中间件 │ ├── stripe.ts # Stripe 配置 │ ├── utils.ts # 通用工具函数(cn 等) │ └── constants.ts # 常量定义 ├── types/ # 全局类型定义 │ └── index.ts └── middleware.ts # Next.js 中间件(认证守卫)

步骤 4:配置环境变量(15 分钟)

# .env.local(本地开发,不提交到 Git) # Supabase NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # Stripe(如需支付) STRIPE_SECRET_KEY=sk_test_xxx NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx STRIPE_WEBHOOK_SECRET=whsec_xxx # Resend(如需邮件) RESEND_API_KEY=re_xxx # 应用配置 NEXT_PUBLIC_APP_URL=http://localhost:3000
# .env.example(提交到 Git,作为模板) # Supabase NEXT_PUBLIC_SUPABASE_URL= NEXT_PUBLIC_SUPABASE_ANON_KEY= SUPABASE_SERVICE_ROLE_KEY= # Stripe STRIPE_SECRET_KEY= NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY= STRIPE_WEBHOOK_SECRET= # Resend RESEND_API_KEY= # App NEXT_PUBLIC_APP_URL=http://localhost:3000

3.4 操作步骤:CI/CD 配置(Day 3 下午,1-2 小时)

步骤 5:配置 GitHub Actions(45 分钟)

提示词模板 14:GitHub Actions CI/CD 配置 请为以下项目生成 GitHub Actions CI/CD 配置: 技术栈:Next.js 15 + TypeScript + pnpm 部署平台:Vercel 测试框架:Vitest(单元测试)+ Playwright(E2E) 请生成 .github/workflows/ci.yml,包含: 1. **触发条件**: - push 到 main 分支 - Pull Request 到 main 分支 2. **CI 流程**: - 安装依赖(pnpm,带缓存) - 类型检查(tsc --noEmit) - Lint 检查(eslint 或 biome) - 单元测试(vitest run) - 构建检查(next build) 3. **部署流程**(仅 main 分支 push): - Vercel 自动部署(通过 Vercel GitHub 集成) - 或手动触发 Vercel CLI 部署 4. **优化**: - pnpm store 缓存 - Next.js 构建缓存 - 并行执行独立步骤 注意:Vercel 通常自带 Git 集成自动部署, GitHub Actions 主要用于 CI 检查(类型/lint/测试)。

示例 CI 配置:

# .github/workflows/ci.yml name: CI on: push: branches: [main] pull_request: branches: [main] jobs: ci: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 9 - uses: actions/setup-node@v4 with: node-version: 22 cache: 'pnpm' - run: pnpm install --frozen-lockfile - name: Type Check run: pnpm tsc --noEmit - name: Lint run: pnpm lint - name: Unit Tests run: pnpm test -- --run - name: Build run: pnpm build

步骤 6:配置 Vercel 部署(15 分钟)

Vercel 部署配置清单: □ 在 Vercel 中导入 GitHub 仓库 □ 配置环境变量(从 .env.local 复制到 Vercel Dashboard) □ 确认构建设置: ├── Framework Preset: Next.js ├── Build Command: pnpm build(或默认) ├── Output Directory: .next(默认) └── Install Command: pnpm install □ 配置自定义域名(可选) □ 启用 Preview Deployments(PR 自动预览) □ 测试部署:push 一次代码,确认自动部署成功

3.5 操作步骤:Steering 文件配置(Day 3 下午,30-45 分钟)

Steering 文件是 AI 编码质量的关键保障。在 Day 5(第 1 周)你已经创建了初版,现在需要根据实际项目结构完善它。

步骤 7:完善 Steering 规则文件

提示词模板 15:Steering 规则文件完善 基于以下实际项目结构和技术栈,完善 Kiro Steering 规则文件: 项目结构:[粘贴实际目录结构] 技术栈:Next.js 15 App Router + TypeScript + Tailwind CSS + shadcn/ui + Supabase 设计系统:[粘贴设计系统文档摘要] 请生成 .kiro/steering/coding-standards.md,包含: ## 技术栈约束 - 框架:Next.js 15 App Router(不使用 Pages Router) - 语言:TypeScript strict 模式 - 样式:Tailwind CSS + shadcn/ui(不使用 CSS Modules 或 styled-components) - 数据获取:优先使用 Server Components + Server Actions - 状态管理:React 内置状态(useState/useReducer),不使用 Redux/Zustand - 表单:react-hook-form + zod 验证 ## 文件组织规则 - 按功能模块组织代码(features/ 目录) - 每个功能模块包含:components/, actions.ts, hooks.ts, types.ts - 共享 UI 组件放在 components/ui/(shadcn/ui) - 共享业务组件放在 components/shared/ - 工具函数放在 lib/ ## 命名规范 - 文件名:kebab-case(如 user-profile.tsx) - 组件名:PascalCase(如 UserProfile) - 函数名:camelCase(如 getUserProfile) - 常量名:UPPER_SNAKE_CASE(如 MAX_FILE_SIZE) - 类型名:PascalCase(如 UserProfile) - CSS 变量:kebab-case(如 --primary-foreground) ## 组件规则 - 优先使用 Server Components(默认) - 仅在需要交互时使用 Client Components('use client') - Client Components 尽量小,只包装交互部分 - 使用 shadcn/ui 组件,不自己造轮子 - 每个组件文件只导出一个组件 ## 数据获取规则 - 服务端数据获取使用 Server Components 直接查询 - 表单提交使用 Server Actions - 仅在需要实时更新时使用客户端数据获取 - Supabase 查询使用 server.ts 中的客户端(服务端) - 浏览器端 Supabase 操作使用 client.ts 中的客户端 ## 错误处理规则 - Server Actions 返回 { success: boolean, data?, error? } 格式 - 使用 Error Boundary 捕获渲染错误 - 使用 Toast 通知用户操作结果 - API 错误返回标准格式 { error: string, code: number } - 不在客户端暴露敏感错误信息 ## 安全规则 - 所有环境变量通过 process.env 访问,不硬编码 - 公开变量使用 NEXT_PUBLIC_ 前缀 - 服务端密钥绝不暴露到客户端 - 所有用户输入使用 zod 验证 - Supabase RLS 策略保护数据访问 - API Routes 验证认证状态 ## 测试规则 - 核心业务逻辑使用 Vitest 单元测试 - 关键用户流程使用 Playwright E2E 测试 - 测试文件与源文件同目录,命名为 *.test.ts - 不 mock 数据库,使用测试数据库 ## 禁止事项 - 禁止使用 any 类型(使用 unknown 或具体类型) - 禁止使用 var(使用 const/let) - 禁止在 Server Components 中使用 useEffect/useState - 禁止直接操作 DOM(使用 React 方式) - 禁止在客户端暴露 SUPABASE_SERVICE_ROLE_KEY - 禁止跳过 TypeScript 类型检查(@ts-ignore)

3.6 操作步骤:MCP 配置(Day 3 下午,30 分钟)

MCP(Model Context Protocol)让 AI 编码助手能够连接外部工具和数据源,提升代码生成的准确性。

步骤 8:配置 MCP 连接

提示词模板 16:MCP 配置生成 基于以下项目需求,生成 Kiro MCP 配置: 项目技术栈:[技术栈] 需要连接的服务: - 数据库:Supabase PostgreSQL - 文件系统:项目文件读写 - API 文档:[外部 API 文档 URL] 请生成 .kiro/mcp.json 配置文件,包含: 1. **文件系统 MCP**:读取项目文件(用于上下文) 2. **数据库 MCP**(如适用):查询 Supabase schema 3. **浏览器 MCP**(如适用):访问 API 文档 每个 MCP Server 配置包含: - server 名称 - 命令和参数 - 环境变量(如需要)

常用 MCP 配置示例:

{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "./src", "./docs" ] }, "postgres": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-postgres" ], "env": { "DATABASE_URL": "postgresql://..." } } } }
MCP 配置决策树: 你的项目需要 MCP 吗? ├── 需要查询数据库 schema? │ └── 是 → 配置 PostgreSQL MCP ├── 需要读取外部 API 文档? │ └── 是 → 配置 Fetch/Browser MCP ├── 需要搜索代码仓库? │ └── 是 → Kiro 内置文件搜索已足够 └── MVP 阶段通常不需要复杂的 MCP 配置 └── 先用 Kiro 内置功能,遇到瓶颈再添加

3.7 操作步骤:核心模块开发启动(Day 4-5,2 天)

步骤 9:确定开发优先级(15 分钟)

核心模块开发优先级: 1. 认证模块(Day 4 上午) ├── Supabase Auth 集成 ├── 登录/注册页面连接 ├── 中间件保护路由 └── 用户会话管理 2. 数据库 Schema(Day 4 下午) ├── Supabase 中创建表 ├── RLS 策略配置 ├── TypeScript 类型生成 └── 基础 CRUD 操作 3. 布局和导航(Day 4 下午) ├── 根布局(Header + Footer) ├── Dashboard 布局(Sidebar + Main) ├── 响应式导航 └── 主题切换 4. 核心功能模块 v1(Day 5) ├── 选择最核心的 1 个功能模块 ├── 实现基础 CRUD ├── 连接 UI 和数据 └── 基本的错误处理 注意:使用 Kiro Spec-Driven 工作流执行任务!

步骤 10:用 Kiro Spec-Driven 执行开发任务

Kiro Spec-Driven 开发流程(每个任务): 1. 打开 tasks.md,找到当前要执行的任务 2. 告诉 Kiro:"执行任务 X.Y" 3. Kiro 读取 Spec 上下文(requirements + design + tasks) 4. Kiro 生成代码 5. 你审查代码: ├── 代码逻辑是否正确? ├── 是否遵循 Steering 规则? ├── 是否有安全问题? ├── 是否有遗漏的错误处理? └── 类型定义是否完整? 6. 运行测试验证 7. 标记任务完成 8. 进入下一个任务 每个任务预计 15-30 分钟(含审查时间) Day 4-5 预计完成 8-12 个任务
提示词模板 17:认证模块实现指导 请实现 Supabase Auth 认证模块,要求如下: 技术栈:Next.js 15 App Router + Supabase Auth + TypeScript Steering 规则:[参考 .kiro/steering/coding-standards.md] 需要实现: 1. **Supabase 客户端配置**: - lib/supabase/client.ts(浏览器端) - lib/supabase/server.ts(服务端) - lib/supabase/middleware.ts(中间件) 2. **认证中间件**: - middleware.ts(根目录) - 保护 /dashboard/* 路由 - 未登录用户重定向到 /login - 已登录用户访问 /login 重定向到 /dashboard 3. **登录页面**: - app/(auth)/login/page.tsx - 邮箱+密码登录 - OAuth 登录(GitHub) - 错误处理和加载状态 4. **注册页面**: - app/(auth)/register/page.tsx - 邮箱+密码注册 - 表单验证(zod) - 注册成功后发送验证邮件 5. **Server Actions**: - features/auth/actions.ts - signIn, signUp, signOut, resetPassword 请遵循 Steering 规则中的错误处理格式和命名规范。
提示词模板 18:数据库 Schema 实现指导 请在 Supabase 中创建以下数据库 Schema: 数据模型:[粘贴 design.md 中的数据模型] 需要实现: 1. **SQL 迁移文件**: - CREATE TABLE 语句 - 索引定义 - 外键约束 2. **RLS 策略**: - 每个表的行级安全策略 - 用户只能访问自己的数据 - 管理员可以访问所有数据(如适用) 3. **TypeScript 类型**: - 使用 Supabase CLI 生成类型 - 或手动定义与 Schema 对应的 TypeScript 接口 4. **基础查询函数**: - features/[module]/actions.ts 中的 CRUD 操作 - 使用 Server Actions 格式 - 包含错误处理 命令参考: ```bash # 生成 TypeScript 类型 npx supabase gen types typescript --project-id your-project-id > src/types/database.ts
### 3.8 Day 3-5 每日检查清单 #### Day 3 检查清单

□ 项目初始化完成(Next.js + TypeScript + Tailwind) □ shadcn/ui 配置完成,常用组件已安装 □ 设计系统 CSS 变量已集成到项目 □ 项目目录结构已创建 □ 环境变量已配置(.env.local + .env.example) □ GitHub 仓库已创建,代码已推送 □ GitHub Actions CI 配置完成 □ Vercel 部署配置完成,首次部署成功 □ Kiro Steering 文件已完善 □ MCP 配置完成(如需要) □ 输出:可运行的项目骨架 + CI/CD 流水线

#### Day 4 检查清单

□ Supabase 项目已创建 □ 数据库 Schema 已创建(SQL 迁移) □ RLS 策略已配置 □ TypeScript 类型已生成 □ 认证模块已实现(登录/注册/登出) □ 中间件路由保护已配置 □ Dashboard 布局已实现(Header + Sidebar + Main) □ 主题切换已实现(深色/浅色) □ 输出:可登录的应用骨架

#### Day 5 检查清单

□ 核心功能模块 1 基础 CRUD 已实现 □ UI 页面已连接数据(空状态/加载/成功/错误) □ 基础错误处理已实现 □ 至少 3 个 Spec 任务已完成 □ 所有代码已通过 CI 检查(类型/lint/构建) □ 代码已部署到 Vercel Preview □ 输出:可演示的核心功能 v1

--- ## 实战案例:5 天完成"AI 代码审查工具"的设计与开发启动 ### 案例背景 延续第 1 周的案例——一位全栈开发者正在构建 CodeLens,一个面向中小团队的 AI 代码审查工具。第 1 周已完成调研、需求定义和架构设计,现在进入第 2 周。 ### Day 1:UI/UX 设计

09:00 - 09:15 确定页面清单 ├── 公开页面:Landing Page、定价页、登录/注册 ├── 核心页面:Dashboard、PR 审查详情、设置 └── 总计 7 个页面需要设计

09:15 - 10:00 v0.dev 生成 Landing Page ├── 输入 prompt:产品名 CodeLens + 核心卖点 + 页面结构 ├── v0 生成第一版 → 调整 Hero 文案和配色 ├── 第二轮迭代 → 添加代码审查动画效果 └── 输出:完整的 Landing Page 代码

10:00 - 10:45 v0.dev 生成 Dashboard ├── 输入 prompt:审查统计 + 最近 PR 列表 + 快捷操作 ├── 生成正常状态 → 生成空状态 → 生成加载状态 ├── 调整卡片布局和数据展示 └── 输出:Dashboard 4 种状态的代码

10:45 - 12:00 v0.dev 生成核心功能页面 ├── PR 审查详情页:代码 diff + AI 评论 + 严重程度标签 ├── 设置页:GitHub 连接 + 审查规则 + 通知偏好 └── 输出:2 个核心功能页面代码

13:00 - 14:00 v0.dev 生成认证页面 ├── 登录页:邮箱+密码 + GitHub OAuth ├── 注册页:表单验证 + 密码强度 └── 输出:认证页面代码

14:00 - 15:00 全状态审查 ├── 检查每个页面的空/加载/错误/成功状态 ├── 发现 PR 详情页缺少”审查中”加载状态 → 补充 ├── 发现设置页缺少保存成功的 Toast → 补充 └── 输出:全状态覆盖的设计稿

Day 1 产出: ├── 7 个页面的完整设计(v0.dev 代码) ├── 每个页面覆盖 4 种状态 ├── 总耗时:约 5 小时 └── 成本:v0.dev 免费层足够(约 15 次生成)

### Day 2:设计审查与设计系统

09:00 - 10:00 AI 设计审查 ├── 用 Claude 审查所有页面的一致性 ├── 发现问题: │ ├── Dashboard 和 PR 详情页的卡片圆角不一致(8px vs 12px) │ ├── 两个页面的主色调略有偏差 │ └── 移动端 Sidebar 没有折叠方案 ├── 修复:统一圆角为 8px,统一主色 HSL 值 └── 输出:设计审查报告

10:00 - 11:00 建立 CSS 变量文件 ├── 从 v0.dev 生成的代码中提取颜色值 ├── 统一为 HSL 格式的 CSS 变量 ├── 创建深色主题变体 └── 输出:globals.css(含完整的设计 Token)

11:00 - 12:00 配置 shadcn/ui ├── 初始化 shadcn/ui(CSS variables 模式) ├── 安装常用组件(Button, Card, Input, Table, Badge…) ├── 自定义主题色匹配设计稿 └── 输出:配置好的 shadcn/ui

13:00 - 14:00 创建设计系统文档 ├── 配色方案文档 ├── 排版规范 ├── 组件使用规范 ├── 布局规范 └── 输出:docs/design-system.md

14:00 - 15:00 Tailwind 配置 ├── 自定义 tailwind.config.ts ├── 添加自定义动画 ├── 配置 content 路径 └── 输出:完整的 Tailwind 配置

Day 2 产出: ├── 设计审查报告(3 个问题已修复) ├── globals.css(浅色 + 深色主题) ├── tailwind.config.ts(自定义配置) ├── shadcn/ui 配置 + 15 个常用组件 ├── docs/design-system.md ├── 总耗时:约 5 小时 └── 成本:$0(全部免费工具)

### Day 3:项目初始化与 CI/CD

09:00 - 09:30 创建 Next.js 项目 ├── pnpm create next-app@latest codelens ├── 配置 TypeScript strict 模式 ├── 集成 Tailwind CSS └── 输出:基础项目骨架

09:30 - 10:30 安装依赖 + 配置项目结构 ├── 安装核心依赖(Supabase, Stripe, zod, react-hook-form) ├── 创建 features/ 目录结构 ├── 集成 Day 2 的设计系统(globals.css, tailwind.config.ts) ├── 复制 shadcn/ui 组件到项目 └── 输出:完整的项目结构

10:30 - 11:00 配置环境变量 ├── 创建 Supabase 项目 ├── 获取 API Keys ├── 配置 .env.local 和 .env.example └── 输出:环境变量配置完成

11:00 - 12:00 配置 CI/CD ├── 创建 GitHub 仓库 ├── 编写 .github/workflows/ci.yml ├── 在 Vercel 中导入项目 ├── 配置 Vercel 环境变量 ├── 测试:push 代码 → CI 通过 → 自动部署 └── 输出:CI/CD 流水线就绪

13:00 - 13:30 配置 Kiro Steering ├── 完善 .kiro/steering/coding-standards.md ├── 添加项目特定的规则(GitHub API 使用规范等) └── 输出:Steering 文件就绪

13:30 - 14:00 配置 MCP(可选) ├── 配置 PostgreSQL MCP(连接 Supabase) ├── 测试 MCP 连接 └── 输出:MCP 配置就绪

14:00 - 17:00 开始认证模块开发 ├── 使用 Kiro Spec-Driven 执行认证相关任务 ├── 实现 Supabase Auth 客户端配置 ├── 实现登录/注册 Server Actions ├── 实现中间件路由保护 ├── 连接登录/注册 UI 页面 └── 输出:可登录的应用

Day 3 产出: ├── 完整的项目骨架(可运行) ├── CI/CD 流水线(GitHub Actions + Vercel) ├── Steering + MCP 配置 ├── 认证模块 v1(登录/注册/登出) ├── 总耗时:约 7 小时 ├── 完成 Spec 任务:4 个 └── 成本:$0

### Day 4-5:核心模块开发

Day 4:

09:00 - 12:00 数据库 + 布局 ├── 在 Supabase 中创建数据库表 │ ├── users(用户信息扩展) │ ├── repositories(连接的 GitHub 仓库) │ ├── reviews(审查记录) │ └── comments(审查评论) ├── 配置 RLS 策略 ├── 生成 TypeScript 类型 ├── 实现 Dashboard 布局(Header + Sidebar + Main) ├── 实现主题切换(深色/浅色) └── 完成 Spec 任务:3 个

13:00 - 17:00 GitHub App 集成 ├── 注册 GitHub App ├── 实现 Webhook 接收端点(/api/webhook/github) ├── 实现 PR diff 获取逻辑 ├── 实现 GitHub App 安装流程 UI └── 完成 Spec 任务:3 个

Day 5:

09:00 - 12:00 AI 审查引擎 v1 ├── 实现 Claude API 集成 ├── 设计代码审查 Prompt ├── 实现 PR diff → AI 分析 → 审查意见生成 ├── 实现审查结果存储 └── 完成 Spec 任务:2 个

13:00 - 16:00 Dashboard 数据连接 ├── Dashboard 页面连接真实数据 ├── 实现空状态/加载状态/错误状态 ├── 实现最近审查列表 ├── 基本的错误处理和 Toast 通知 └── 完成 Spec 任务:2 个

16:00 - 17:00 Week 2 收尾 ├── 运行所有 CI 检查(类型/lint/构建) ├── 修复发现的问题 ├── 部署到 Vercel Preview ├── 更新 Spec 任务状态 └── 规划 Week 3 的任务

Day 4-5 产出: ├── 数据库 Schema + RLS 策略 ├── Dashboard 布局 + 主题切换 ├── GitHub App 集成(Webhook + 安装流程) ├── AI 审查引擎 v1(Claude API 集成) ├── Dashboard 数据连接(含全状态 UI) ├── 总耗时:约 14 小时(2 天) ├── 完成 Spec 任务:10 个 └── 成本:~$3(Claude API 调用)

### 案例总结

第 2 周总产出: ├── 7 个页面的完整 UI 设计(含全状态) ├── 设计系统(CSS 变量 + shadcn/ui 主题 + 文档) ├── 完整的项目骨架 + CI/CD 流水线 ├── Steering + MCP 配置 ├── 认证模块(登录/注册/登出/路由保护) ├── 数据库 Schema + RLS ├── GitHub App 集成 ├── AI 审查引擎 v1 ├── Dashboard 数据连接 ├── 完成 Spec 任务:14 个(总 42 个中的 33%) ├── 总耗时:约 31 小时(5 天) └── 总成本:~$3

关键成功因素:

  1. Day 1 用 v0.dev 快速完成设计,不追求完美
  2. Day 2 建立设计系统,确保后续开发一致性
  3. Day 3 先搭好基础设施(CI/CD + Steering),再写业务代码
  4. Day 4-5 用 Spec-Driven 工作流系统化推进
  5. 每天结束时确保代码可构建、可部署
--- ## 避坑指南 ### ❌ 常见错误 1. **在设计上花太多时间** - 问题:花 3 天打磨 Landing Page 的每一个像素,核心功能还没开始 - 正确做法:Day 1 用 v0.dev 快速生成"够用"的设计,上线后再迭代。80% 的设计质量只需要 20% 的时间 - 检验标准:Day 1 结束时所有页面都有设计稿,即使不完美 2. **跳过设计系统直接开发** - 问题:每个页面的颜色、间距、组件样式都不一样,后期统一成本极高 - 正确做法:Day 2 花半天建立 CSS 变量和组件规范,这是"磨刀不误砍柴工" - 检验标准:所有颜色和间距都通过 CSS 变量引用,没有硬编码的颜色值 3. **忽视全状态设计** - 问题:只设计了"有数据"的正常状态,上线后用户看到空白页面、无限 loading、神秘报错 - 正确做法:每个页面必须覆盖空状态、加载状态、错误状态、成功状态 - 检验标准:用"新用户首次登录"的视角走一遍所有页面 4. **CI/CD 配置拖到最后** - 问题:开发了 3 周才配置 CI/CD,发现一堆类型错误和 lint 问题需要修复 - 正确做法:Day 3 就配置好 CI/CD,每次 push 都自动检查,问题早发现早修复 - 检验标准:第一次 push 就触发 CI 检查并通过 5. **不配置 Steering 文件就开始编码** - 问题:AI 生成的代码风格不一致——有的用 CSS Modules,有的用 Tailwind;有的用 Pages Router,有的用 App Router - 正确做法:在写第一行业务代码之前,先配置好 Steering 规则 - 检验标准:Steering 文件至少包含技术栈约束、命名规范、组件规则、安全规则 6. **试图在 Day 3-5 完成所有功能** - 问题:急于求成,代码质量差,bug 多,后面花更多时间修复 - 正确做法:Day 3-5 只完成项目骨架 + 1-2 个核心模块的基础实现,核心开发在 Week 3-4 系统化推进 - 检验标准:Day 5 结束时有一个可登录、可演示核心功能的应用,而不是一个半成品 7. **手动部署而不是自动化** - 问题:每次部署都要手动执行 10 个步骤,容易出错,浪费时间 - 正确做法:Vercel + GitHub 集成,push 到 main 自动部署,PR 自动生成 Preview - 检验标准:从 push 代码到线上更新,零手动操作 8. **设计和开发完全脱节** - 问题:v0.dev 生成的设计代码和实际项目代码是两套,需要手动"翻译" - 正确做法:v0.dev 生成的代码直接基于 shadcn/ui + Tailwind,可以直接复制到项目中使用 - 检验标准:v0.dev 生成的组件代码复制到项目后,只需要少量修改就能运行 ### ✅ 最佳实践 1. **设计→系统→代码的顺序不能乱**:先有设计稿,再建设计系统,最后写代码。跳过任何一步都会在后面付出代价 2. **v0.dev 是原型工具,不是最终产品**:用它快速生成 80% 的 UI,剩下 20% 在开发中迭代 3. **CSS 变量是设计系统的核心**:所有视觉属性(颜色、间距、圆角、阴影)都通过 CSS 变量管理 4. **shadcn/ui 是 Solo Founder 的最佳选择**:代码在你的项目中,完全可控,AI 生成质量高 5. **CI/CD 从 Day 1 就配置**:自动化检查是代码质量的第一道防线 6. **Steering 文件是 AI 编码的"说明书"**:投入 30 分钟配置,节省后续数小时的代码修复 7. **每天结束时确保代码可部署**:不要积累"技术债"到周末才处理 8. **用 Spec-Driven 工作流而不是随意编码**:每个任务都有明确的输入(Spec)和输出(代码),可追踪、可审查 --- ## 第 2 周每日检查清单 ### Day 1 检查清单(UI/UX 设计)

□ 确定 MVP 页面清单(公开页面 + 核心功能页面) □ v0.dev 生成 Landing Page 设计 □ v0.dev 生成 Dashboard 设计(含 4 种状态) □ v0.dev 生成核心功能页面设计(含全状态) □ v0.dev 生成登录/注册页面设计 □ 全状态审查:每个页面覆盖空/加载/错误/成功状态 □ 设计风格指南初稿(配色、字体、间距) □ 输出:所有页面的设计稿(v0.dev 代码)

### Day 2 检查清单(设计审查与设计系统)

□ AI 辅助设计一致性审查 □ AI 辅助可用性审查 □ 修复 P0 设计问题 □ 创建 CSS 变量文件(globals.css) □ 配置 shadcn/ui(CSS variables 模式) □ 安装常用 shadcn/ui 组件 □ 创建设计系统文档 □ 配置 tailwind.config.ts □ 输出:设计系统 + 组件库配置

### Day 3 检查清单(项目初始化与 CI/CD)

□ 创建 Next.js 项目 □ 安装核心依赖 □ 创建项目目录结构 □ 集成设计系统到项目 □ 配置环境变量 □ 创建 GitHub 仓库 □ 配置 GitHub Actions CI □ 配置 Vercel 部署 □ 完善 Kiro Steering 文件 □ 配置 MCP(如需要) □ 首次部署成功 □ 输出:可运行的项目骨架 + CI/CD

### Day 4 检查清单(认证与数据库)

□ 创建 Supabase 项目和数据库表 □ 配置 RLS 策略 □ 生成 TypeScript 类型 □ 实现 Supabase Auth 集成 □ 实现登录/注册页面 □ 实现中间件路由保护 □ 实现 Dashboard 布局 □ 实现主题切换 □ 输出:可登录的应用骨架

### Day 5 检查清单(核心模块 v1)

□ 核心功能模块 1 基础实现 □ UI 连接真实数据 □ 全状态 UI 实现(空/加载/错误/成功) □ 基础错误处理 □ CI 检查全部通过 □ 部署到 Vercel Preview □ 更新 Spec 任务状态 □ 规划 Week 3 任务 □ 输出:可演示的核心功能 v1

--- ## 相关资源与延伸阅读 ### AI 设计工具 | 资源 | 类型 | 链接 | 说明 | |------|------|------|------| | v0.dev | AI UI 生成 | [v0.dev](https://v0.dev) | Vercel 的 AI UI 生成工具,直接输出 React + shadcn/ui 代码 | | Google Stitch | AI UI 设计 | [stitch.withgoogle.com](https://stitch.withgoogle.com) | 原 Galileo AI,被 Google 收购后重新发布 | | Figma AI | 设计辅助 | [figma.com](https://www.figma.com) | Figma 内置 AI 功能,辅助设计生成和修改 | | Realtime Colors | 配色预览 | [realtimecolors.com](https://realtimecolors.com) | 在真实 UI 中实时预览配色方案 | | Coolors | 配色生成 | [coolors.co](https://coolors.co) | AI 驱动的配色方案生成器 | ### 设计系统与组件库 | 资源 | 类型 | 链接 | 说明 | |------|------|------|------| | shadcn/ui | 组件库 | [ui.shadcn.com](https://ui.shadcn.com) | 2026 年最流行的 React 组件集合,代码复制模式 | | Radix UI | 无障碍原语 | [radix-ui.com](https://www.radix-ui.com) | shadcn/ui 的底层,提供无障碍交互原语 | | Tailwind CSS | 样式框架 | [tailwindcss.com](https://tailwindcss.com) | 实用优先的 CSS 框架 | | CSS Variables Guide | 教程 | [frontendtools.tech](https://www.frontendtools.tech/blog/css-variables-guide-design-tokens-theming-2025) | CSS 变量与设计 Token 的完整指南 | ### 开发工具与平台 | 资源 | 类型 | 链接 | 说明 | |------|------|------|------| | Kiro | AI IDE | [kiro.dev](https://kiro.dev) | Spec-Driven 开发的 AI IDE | | Vercel | 部署平台 | [vercel.com](https://vercel.com) | Next.js 零配置部署 | | Supabase | 后端即服务 | [supabase.com](https://supabase.com) | 开源 Firebase 替代,内置 Auth + DB + Storage | | GitHub Actions | CI/CD | [github.com/features/actions](https://github.com/features/actions) | 自动化构建、测试和部署 | ### 设计最佳实践 | 资源 | 类型 | 链接 | 说明 | |------|------|------|------| | Mobbin | 设计参考 | [mobbin.com](https://mobbin.com) | 优秀 App 的 UI 设计参考库 | | Refactoring UI | 书籍 | [refactoringui.com](https://www.refactoringui.com) | 开发者学设计的经典书籍 | | Laws of UX | 设计原则 | [lawsofux.com](https://lawsofux.com) | UX 设计的核心法则 | | Checklist Design | 清单 | [checklist.design](https://www.checklist.design) | UI 组件设计检查清单 | --- ## 参考来源 - [Skywork AI - Vercel v0 Review 2025: AI-Powered UI Code Generation](https://skywork.ai/blog/vercel-v0-review-2025-ai-ui-code-generation-nextjs/)(2025-09) - [AI Chief - v0 dev Review: Cost, Use Cases & Alternatives 2026](https://www.aichief.com/ai-development-tools/v0-dev/)(2025-09) - [Gapsy Studio - From Galileo AI to Google Stitch: Your Guide to AI Design](https://gapsystudio.com/blog/galileo-ai-design/)(2025-12) - [Design Revision - shadcn UI: Complete Guide to the Most Popular React Component Collection 2026](https://designrevision.com/blog/shadcn-ui-guide)(2026-02) - [Frontend Tools - CSS Variables Guide: Design Tokens & Theming 2025](https://www.frontendtools.tech/blog/css-variables-guide-design-tokens-theming-2025)(2026-01) - [Kiro Documentation - Your First Project](https://kiro.dev/docs/getting-started/first-project)(2025-07) - [Kiro Documentation - Extending Kiro with MCP](https://kiro.dev/docs/guides/learn-by-playing/07-extending-kiro-with-mcp/)(2025-07) - [Brian Beach - Teaching Kiro New Tricks with Agent Steering and MCP](https://blog.brianbeach.com/publications/2025-10-23-teaching-kiro-new-tricks/)(2025-10) - [Vercel - How to Use GitHub Actions with Vercel](https://vercel.com/guides/how-can-i-use-github-actions-with-vercel)(2025-11) - [AI Founder Kit - Galileo AI Review 2025: Instant UI Design Generation](https://aifounderkit.com/ai-tools/galileo-ai-review-features-pricing-alternatives/)(2025-06) Content was rephrased for compliance with licensing restrictions. --- > 📖 返回 [总览与导航](../00-总览与导航.md) | 上一节:[第1周:调研·需求·架构](36b-第1周-调研需求架构.md) | 下一节:[第3-4周:Spec-Driven开发](36d-第3-4周-Spec-Driven开发.md)
Last updated on