历史作品 · 全栈工程师 这里住的是工程师做过的真实交付作品——每份作品都是一次已经验证过的架构 / 代码库 / 部署方案,也是下次接类似项目的最佳参照源。 1. 为什么要有这个库 1.1 脚手架可跨项目复用 工程师一号位做到第 3 个 Next.js + Supabase 项目时会发现:目录结构、ESLint 配置、Sentry 接入、Supabase 客户端封装、shadcn 组件库这些部分 80% 可复用。历史作品库是公司级脚手架的原料。 1.2 典型架构模式的沉淀 第一次用 Claude Tool Use 做多轮对话 → 下次直接抄状态管理模式 第一次用 pgvector 做 RAG → 下次直接抄 embedding 策略 第一次用 Supabase Realtime 做协同 → 下次直接抄订阅 + 冲突解决 1.3 踩坑记录的价值 失败作品比成功作品更值钱: - 那次选型错了,浪费了 3 天 → 下次避雷 - 那次 schema 没设索引,上线后爆慢 → 下次默认加 - 那次 RLS 没开,被用户薅羊毛 → 下次默认开 1.4 跨岗位的"案例库" AI PM 和设计师也会读这里: - AI PM 想看"上次那个 Agent 项目的实际响应时延是多少" - 设计师想看"上次那个状态集在实际代码里是怎么实现的" 2. 谁往这里写 只有 CKO 可以往这里写。 2.1 写入时机 项目 status=已交付 后,CKO 在蒸馏流程的第 5 步走"路径 B 公司脑库建设"时: 1. 不复制整个代码库(太大且有敏感数据),而是复制: - 代码仓库链接 + 最终 commit hash - 20 / 22 / 23 / 26 / 27 等核心文档副本 - 脱敏后的关键代码片段(架构 / schema / 关键业务 / Prompt) - Sentry 项目链接 + 关键告警截图 - 部署 URL(若仍可访问) 2. 原件留在项目盒子里不动 3. 添加一份"作品说明"文件 2.2 写入后不允许修改 历史作品是只读归档。 3. 命名规范 YYYY-MM-DD_项目名_交付类型.md 4. 每个作品的配套文件 --- work: 2026-04-15_示例项目_技术架构.md from_project: 02_项目/项目_示例/ project_type: APP类 tech_stack: [Next.js 14, Supabase, Claude API, Vercel] delivered_at: 2026-04-15 distilled_at: 2026-04-16 distilled_by: CKO prod_url: {若仍可访问} commit_hash: {最终 commit} --- ## 项目背景 {这个项目当时是为什么启动的 + 约束条件} ## 架构摘要 {3–5 句话说清楚这个项目的技术骨架} - 前端:Next.js 14 App Router + RSC - 后端:Server Actions + Supabase - 数据库:Postgres + pgvector + Drizzle ORM - AI:Claude API(Tool Use 多轮对话) - 部署:Vercel + Supabase ## 这份作品的特殊价值 {为什么这份值得进历史作品库} - 例:第一次成功落地 Claude Tool Use 多轮对话的状态管理 - 例:pgvector embedding 策略的首次验证 - 例:Supabase RLS 在多租户场景的实战 ## 关键技术决策 | 决策点 | 选了什么 | 为什么 | 事后回看是否正确 | |---|---|---|---| | 状态管理 | Zustand | 简单、无样板 | ✅ | | ORM | Drizzle | 类型安全、迁移优雅 | ✅ | | AI 调用 | Vercel AI SDK | 流式响应统一层 | ⚠️(多轮状态有坑) | ## 可复用部分 - [x] 项目目录结构 - [x] ESLint / Prettier / husky 配置 - [x] Supabase 客户端封装 - [x] Claude Tool Use 状态管理模式 - [x] 埋点 + Sentry 接入模板 - [ ] 具体业务逻辑(客户专属,不可复用) - [ ] 具体 Prompt(业务专属,需脱敏后才能参考) ## 踩过的坑 {按严重度排序} 1. **严重**:初期没给 `todos.user_id` 加索引,上线后 p95 飙到 3s,后来加了索引降到 50ms 2. **中**:Claude Tool Use 多轮对话时没存完整 messages 数组,第 3 轮开始丢上下文 3. **轻**:Tailwind 配置没继承 design-tokens,手抄了一遍值 ## 性能与成本数据 - Lighthouse:94 - FCP:1.2s - API p95:180ms - Claude API 月成本:~$45(1000 DAU) - Vercel 月成本:免费额度内 - Supabase 月成本:$25 ## 关联蒸馏记录 `01_部门/档案部/首席知识官CKO/蒸馏记录/{项目_YYYY-MM-DD}.md` 5. 组织方式 历史作品/ ├── 2026-04-15_示例项目_技术架构.md ├── 2026-04-15_示例项目_技术架构_作品说明.md ├── 2026-04-15_示例项目_数据库设计.md ├── 2026-04-15_示例项目_AI集成.md ├── 2026-04-15_示例项目_Prompt库/ · 脱敏后的 Prompt ├── 2026-04-15_示例项目_仓库链接.md · 私有库链接 + commit hash ├── 2026-04-20_示例产品_技术架构.md ├── ... └── _索引.md · 按技术栈 + 项目类型双维索引 5.1 _索引.md 示例结构 ## 按技术栈 ### Next.js + Supabase + Claude API - 2026-04-15 示例项目(ADHD 待办 APP) - [技术架构](2026-04-15_示例项目_技术架构.md) - [数据库](2026-04-15_示例项目_数据库设计.md) - [AI 集成](2026-04-15_示例项目_AI集成.md) - [Prompt 库](2026-04-15_示例项目_Prompt库/) ### Next.js + Supabase(无 AI) - 2026-04-20 示例产品(SaaS 后台) ## 按项目类型 ### APP 类 - 2026-04-15 示例项目 ### Web 后台类 - 2026-04-20 示例产品 ## 按复用价值 ### 架构模板级 - 2026-04-15 示例项目(Next.js + Supabase + Claude 的参考实现) ### 单点技术级 - 2026-04-15 示例项目 的 Claude Tool Use 多轮状态管理 ## 按踩坑记录 ### 数据库 - 2026-04-15 示例项目 的索引缺失事故 ### AI 集成 - 2026-04-15 示例项目 的 Tool Use 上下文丢失 6. 跨岗位访问规则 AI PM / 设计师 / 运营 / CKO 都可以读这里,但: ❌ 不允许从这里复制修改后当作新项目的交付物——C2 物理隔离 ❌ 不允许把客户 A 的业务代码 / 数据 / Prompt 直接用到客户 B ❌ 不允许把真实密钥 / 生产数据写进历史作品(必须脱敏) ✅ 可以借鉴架构模式、命名规范、配置思路、踩坑记录等抽象能力 ✅ 可以学习"某个技术决策的事后回看是对是错" 7. 公司级脚手架的沉淀路径 这是工程师一号位 v1.1 的核心升级目标: 第 1 个项目:历史作品里有 1 份技术架构 第 3 个项目:能看出 Next.js + Supabase 的基础配置高度相似 第 5 个项目:CKO 蒸馏出"公司级 Next.js + Supabase 脚手架"进 方法论/ 第 10 个项目:新项目基于脚手架起步,只写业务代码 8. 红线 ❌ 不允许工程师自己往这里写(只有 CKO 有写权限) ❌ 不允许事后修改历史作品(归档即冻结) ❌ 不允许删除(即使项目失败,失败作品也保留——失败的工程更值钱) ❌ 不允许把未经 CKO 蒸馏的草稿复制进来 ❌ 不允许省略 _作品说明.md ❌ 不允许保存真实密钥 / Token / 生产数据(必须脱敏) ❌ 不允许跨客户共享业务代码