Méthode SOCLE 是做什么的?
框架式数字产品创建方法,分5步走:结构化、工具化、构建、交付、扩展。启动任何新项目(网页、应用、SaaS或内部工具)时系统化应用。每个步骤产出具体可交付物,并作为下一步的输入。
原则
在构建第一个可见功能之前,先行准备完整的基盘。每个决策只做一次,并按顺序进行。技术基础一次性铺设,包括未来将要构建的部分。通过短暂增量推进开发,每个增量都完整且部署完成后,才进入下一个增量。
5个步骤
S — 结构化选择
从最重要的决策开始:目标用户是谁?解决什么问题?采用哪些技术?如何衡量成功?一次一个,按顺序进行,每个决策为下一个打开大门。
本步骤的可交付物:
- 一句话产品愿景
- 目标用户(主要和次要人物角色)
- 解决的问题(具体、可衡量)
- 锁定的技术栈
- 选定的视觉方向
- 确定的变现模式(即使是免费增值或后期盈利)
- 产品名称
操作方式:
- 使用封闭式提问进行框架性对话(避免开放式的头脑风暴)
- 在进入下一个决策之前,锁定当前决策
- 将已锁定的决策整理到决策表中
- 识别竞争对手和差异化因素
阅读 references/structurer-checklist.md 获取完整的决策清单。
O — 工具化基盘
一次性准备好所有基础:数据库、路由、认证、监控、约定。一切都准备好,包括未来要构建的部分。
本步骤的可交付物:
- 最终的路由结构(URL 将不再变更)
- 完整的数据库模式(包括所有表,即使 V0.1 未使用)
- CSS 设计令牌(变量、排版、颜色、间距)
- 动画变体(Framer Motion 或同类工具)
- 分析标签计划(事件、转化漏斗)
- CI/CD 流水线(lint、类型检查、测试、自动构建)
- CLAUDE.md 文件(供 Claude Code 使用的项目指令)
- CURRENT_INCREMENT.md 文件(首批增量的范围)
- 中间件配置(认证、重定向、安全标头)
- 文档化的环境变量
操作方式:
- 生成完整的路由结构(营销、认证、应用、管理、API)
- 编写包含枚举、索引、行级安全、触发器的完整 SQL 模式
- 配置设计系统(globals.css + tailwind.config.ts)
- 创建项目上下文文件(CLAUDE.md、ARCHITECTURE.md 等)
- 搭建项目骨架,安装所有依赖项,首次提交,部署
阅读 references/outiller-templates.md 获取每个文件的模板。
C — 分块构建
通过短暂增量推进开发。每个增量产出完整、可展示、可测试、可使用的成果。一个真正的产品模块,从头到尾都能工作。
原则:
- 每个增量都有在 CURRENT_INCREMENT.md 中编写的封闭范围
- 每个增量都有可测试的完成标准
- 每个增量都有明确列出范围外的内容
- 任务按顺序排列:每个任务只依赖于前面的任务
- 每个任务遵循循环:编码、测试、验证、提交
增量结构:
# V0.X — [增量名称]
## 目标
[用户在此增量结束时能做什么]
## 任务(按顺序)
[编号列表,包含详细任务]
## 完成标准
[具体的检查清单]
## 范围外
[明确列出不在本增量内的所有内容]
每次任务后的系统性检查:
- 类型检查通过
- 测试通过
- 没有
any类型 - props 已类型化
- API 输入已验证
- 提交遵循常规提交规范
L — 每一步都交付
每个模块在上线后立即交付给真实用户,然后才进入下一个模块。反馈尽早到来,调整也及时。
原则:
- 每个增量完成后立即部署到生产环境(或预览环境)
- 部署是自动的(推送到 main 分支 = Vercel 部署)
- 生产错误立即被检测到(监控、错误边界)
- 分析事件从第一个增量起就激活
- 只有在前一个增量稳定后,才启动下一个增量
交付检查清单:
- CI 构建通过
- 生产环境控制台零错误
- 页面包含元数据(标题、描述)
- 响应式布局正常(在移动设备上检查)
- 分析事件已跟踪
- URL 可访问且功能正常
E — 扩展而不重构
产品自然成长。新功能构建在现有基础上,设计进化,集成连接。结构保持稳定,因为从一开始基盘就已准备好。
原则:
- 新增量永远不会使之前的增量失效
- 数据库表已准备好(在 O 步骤中添加)
- CSS 变量允许在不触及组件的情况下更改样式
- 路由稳定(URL 不改变)
- 从第一个增量到最后一个增量,代码约定保持一致
添加增量时:
- 使用新范围更新 CURRENT_INCREMENT.md
- 检查基础(O 步骤)是否覆盖了需求
- 如果缺少表或路由:通过迁移添加,而不是重建
- 按照与 V0.1 相同的约定:编码、测试、部署
如何将 SOCLE 应用于新项目
完整流程
1. 结构化
│ 框架性对话(封闭式提问)
│ 已锁定决策表
│ 愿景、目标、技术栈、变现
↓
2. 工具化
│ 生成所有基础文件
│ 路由、数据库、令牌、分析、CI/CD
│ 搭建骨架、部署、首次空提交
↓
3. 构建(V0.1)
│ 首批增量:最小核心
│ 认证 + 一个核心功能 + 一个导出
│ 测试、提交、部署
↓
4. 交付(V0.1)
│ 上线生产环境,由真实用户测试
│ 分析激活,错误被监控
│ 在进入 V0.2 之前保持稳定
↓
5. 扩展(V0.2、V0.3 等)
│ 每个增量遵循 C → L
│ 基础吸收增长
│ 无需重构
需要生成的项目文件(O 步骤)
| 文件 | 角色 |
|---|---|
CLAUDE.md | Claude Code 指令:约定、工作流、检查 |
CURRENT_INCREMENT.md | 当前增量的范围、有序任务、完成标准 |
ARCHITECTURE.md | 最终的路由、文件结构、数据流 |
DB_SCHEMA.sql | 完整的数据库模式 |
DESIGN_TOKENS.md | CSS 变量、Tailwind 配置、动画变体 |
AGENT_PROMPTS.md | 如果项目使用 AI 代理,则提供系统提示 |
ROADMAP.md | 所有计划增量的概览 |
复杂度审计(在 S 和 O 之间)
在进入 O 步骤之前,盘点项目所有组件并评估其复杂度。如果高复杂度组件数量超过 5 个,则拆分为更多增量。规则:每个增量最多包含 3 到 5 个新组件。
| 组件 | 复杂度 | 计划增量 |
|---|---|---|
| [名称] | 低 / 中 / 高 | V0.X |
如果项目看起来像一座大教堂(超过 20 个组件,其中 6 个以上高复杂度),则重新审视范围。简化 V0.1,直到一个人在一到两周内可实现。
推荐的技术栈
SOCLE 方法适用于任何技术栈。以下是用户没有偏好时的默认技术栈:
| 层 | 技术 |
|---|---|
| 框架 | Next.js 14+ (App Router) |
| 语言 | 严格 TypeScript |
| 样式 | Tailwind CSS + shadcn/ui |
| 动画 | Framer Motion |
| 状态管理 | Zustand |
| 认证 | Supabase Auth |
| 数据库 | Supabase (PostgreSQL) |
| 验证 | Zod |
| 测试 | Vitest + Testing Library |
| CI/CD | GitHub Actions |
| 部署 | Vercel |
如果用户使用不同的技术栈,请相应调整 O 步骤的模板。无论使用何种技术栈,SOCLE 原则保持不变。
语气与姿态
在与用户应用 SOCLE 时:
- 专业、成熟、对话式的语气
- 清晰且直接有用的句子
- 与非开发人员交谈时,不解释未加说明的技术术语
- 不摆出居高临下的姿态
- 不使用修辞手法("这不是 X,这是 Y")
- 我们引导、传递、一起前进