现在越来越多独立开发者开始使用 ChatGPT、Codex、Claude Code、Cursor 等 AI 工具参与软件开发。
AI 已经不仅仅是帮我们“补几行代码”,而是逐渐参与到需求分析、架构设计、编码、测试、重构、文档维护,甚至项目管理中。
但使用一段时间之后,会出现一个很现实的问题:
项目越来越多,AI 每次进入一个项目,都要重新理解一遍。
尤其是一个人同时维护多个独立项目时,这个问题会越来越明显。
比如:
- 一个官网项目
- 一个 SaaS 项目
- 一个微信小程序
- 一个 AI 工具
- 一个实验性项目
- 一个后台管理系统
这些项目彼此之间可能完全没有关系,技术栈不同、数据库不同、部署方式不同、生命周期也不同。
如果只是随便把它们放在几个文件夹里,短期看没有问题。
但半年、一年以后,你可能连自己都会忘记:
- 这个项目当初为什么这样设计?
- 当前开发到哪一步了?
- 下一步准备做什么?
- 为什么当时选择 PostgreSQL 而不是 MongoDB?
- 哪些功能已经完成?
- 哪些问题还没有解决?
- 这个项目现在还能不能正常部署?
- AI 修改代码时,需要遵守哪些规则?
所以,如果准备长期利用 AI 做全栈开发,我认为应该建立一套属于自己的:
AI-First Workspace。
它不是简单的代码目录,而是一套让 AI 和自己都能长期理解、维护和管理项目的工作空间。
一、先明确一个前提:不要把独立项目设计成 Monorepo
如果你是一个人开发,而且 apps/ 目录里的项目大多数彼此独立,那么不要把整个 Workspace 设计成大型公司的 Monorepo。
例如:
project-a = 法律网站
project-b = AI 写作工具
project-c = 微信小程序
project-d = SaaS 产品
project-e = 技术实验
这些项目:
- 没有共同业务
- 不共享数据库
- 不共享服务
- 不共享部署
- 甚至技术栈都不同
这时候,如果在 Workspace 根目录设计大量:
packages/
services/
database/
shared/
反而容易让结构变复杂。
更严重的是,AI 可能会误以为:
“这些项目属于同一个系统,可以互相依赖。”
实际上,我们真正需要的是:
Workspace 管理方法,Project 管理业务。
也就是说:
- Workspace 负责统一规则
- Workspace 负责模板
- Workspace 负责 AI Skills
- Workspace 负责 Prompt
- Workspace 负责自动化脚本
- 每个项目则保持完全独立
这是整套设计的核心。
二、推荐的 Workspace 目录结构
对于独立开发者,我更推荐下面这种结构:
Workspace/
│
├── README.md
├── AGENTS.md
├── PROJECTS.md
│
├── apps/
│ ├── project-a/
│ ├── project-b/
│ ├── project-c/
│ └── ...
│
├── templates/
│ ├── base-project/
│ ├── web-app/
│ ├── api/
│ ├── ai-app/
│ └── miniapp/
│
├── skills/
│ ├── code-review/
│ ├── project-init/
│ ├── documentation/
│ └── release-check/
│
├── prompts/
│ ├── coding/
│ ├── debugging/
│ ├── review/
│ └── planning/
│
├── scripts/
│ ├── new-project
│ ├── project-status
│ ├── project-check
│ └── backup
│
├── docs/
│ ├── coding-standards.md
│ ├── ai-development.md
│ └── project-management.md
│
└── archive/
├── completed/
└── deprecated/
这个结构看起来很简单,但它解决的是长期问题。
三、apps 目录:每个项目完全独立
apps/ 是最重要的业务项目目录。
例如:
apps/
├── website/
├── ai-writer/
├── miniapp/
├── admin-tool/
└── demo-project/
建议默认:
每个项目独立 Git
每个项目独立依赖
每个项目独立数据库
每个项目独立环境变量
每个项目独立部署
比如:
apps/project-a/.git
apps/project-b/.git
apps/project-c/.git
也就是说,Workspace 本身不一定需要成为一个统一 Git 仓库。
项目之间默认:
完全隔离。
除非未来确实有非常明确的共享需求,否则不要为了“统一”而强行共享业务代码。
因为真正宝贵的不是“所有项目都长得一样”,而是:
每个项目都可以独立生存。
四、Workspace 根目录只负责管理整个开发体系
根目录最核心的三个文件,我建议是:
README.md
AGENTS.md
PROJECTS.md
它们分别解决三个不同的问题。
五、README.md:给自己看的工作空间说明书
Workspace 的 README.md 不需要写得特别复杂,它主要回答:
这个 Workspace 是怎么组织的?
例如:
# Workspace
这是我的个人软件开发工作空间。
## 目录
apps/
独立项目
templates/
项目模板
skills/
AI Skills
prompts/
通用 Prompt
scripts/
自动化脚本
docs/
个人开发规范
archive/
已完成或停止维护的项目
## Principles
- 项目之间默认独立
- 不跨项目共享业务代码
- 重要信息必须进入项目文件
- 不依赖聊天记录保存长期上下文
- AI 修改项目之前必须先读取项目文档
这个文件更像 Workspace 使用说明。
六、AGENTS.md:整个工作空间最重要的 AI 文件
如果长期使用 AI Coding Agent,我认为 AGENTS.md 是整个 Workspace 中最重要的文件之一。
它的作用类似:
AI 开发团队的员工手册。
但 Workspace 根目录的 AGENTS.md 不应该规定具体技术栈,不要在这里强制规定所有项目必须使用同一个框架、数据库或 CSS 方案。
根级 AGENTS.md 更适合规定 AI 应该如何工作:
# Workspace AI Rules
这是一个独立开发者的多项目工作空间。
apps/ 下的项目默认:
- 相互独立
- 独立 Git 仓库
- 独立技术栈
- 独立依赖
- 独立数据库
- 独立部署
- 独立环境变量
除非项目文档明确说明,否则不要:
- 建立跨项目依赖
- 修改其他项目
- 复制其他项目业务逻辑
- 强制不同项目采用相同技术栈
## Before Coding
进入某个项目后:
1. 阅读项目 AGENTS.md
2. 阅读 PROJECT.md
3. 阅读 STATUS.md
4. 阅读 ARCHITECTURE.md
5. 检查现有代码
6. 搜索是否已经存在相关实现
7. 再开始修改代码
项目级规则优先于 Workspace 级规则。
## Development Principle
优先顺序:
reuse
>
extend
>
create
不要未经调查直接新建:
- component
- service
- API
- database table
- dependency
- utility
## Completion
任务完成后,需要说明:
- 修改了什么
- 修改了哪些文件
- 是否影响架构
- 是否影响数据库
- 是否影响 API
- 是否完成测试
- 是否存在风险
这样,无论未来换什么 AI 工具,只要它能读取这个文件,就可以快速理解你的工作方式。
七、PROJECTS.md:单人开发者的项目驾驶舱
一个人维护多个项目时,最容易失控的不是代码,而是忘了自己到底有多少项目。
因此非常建议在 Workspace 根目录增加一个 PROJECTS.md,把它当作整个 Workspace 的项目总台账。
# Projects
| Project | Path | Status | Type | Stack | Priority | Next |
|---|---|---|---|---|---|---|
| Website | apps/website | Active | Web | Next.js | P1 | 完成文章系统 |
| AI Writer | apps/ai-writer | Active | AI App | Python | P2 | 接入支付 |
| MiniApp | apps/miniapp | Planning | WeChat | Native | P2 | 完成原型 |
| Demo X | apps/demo-x | Paused | Experiment | Vue | P3 | 暂停 |
以后还可以增加 Repository、Production URL、Deployment、Database、Last Updated 等字段。
这样,半年以后重新打开 Workspace,你可以在一分钟之内知道整个开发情况。
八、每个项目必须做到“自解释”
Workspace 设计再漂亮,如果每个项目内部一团乱,AI 还是无法长期维护。
我认为每个项目应该达到一个目标:
随便让一个新的 AI Agent 进入项目,它能快速理解项目是什么、做到哪里、为什么这样设计。
因此推荐每个项目采用:
project/
│
├── README.md
├── AGENTS.md
├── PROJECT.md
├── STATUS.md
├── ARCHITECTURE.md
├── DECISIONS.md
│
├── docs/
├── src/
├── tests/
├── scripts/
│
├── .env.example
├── .gitignore
└── package.json / pyproject.toml / ...
对于一个人开发来说,这套已经足够。
九、为什么我只推荐 6 个核心文件
团队开发可能需要 PRD、TASKS、CHANGELOG、API、DATABASE、SECURITY、TESTING、DEPLOYMENT 等文件。
但如果你一个人同时维护十几个项目,就会出现一个问题:
维护文档本身变成了工作。
所以更推荐下面六个文件作为基础:
README.md
AGENTS.md
PROJECT.md
STATUS.md
ARCHITECTURE.md
DECISIONS.md
真正有需要的时候,再继续拆分。
十、README.md:告诉人“怎么运行”
项目里的 README.md 建议保持偏工程化,包含:
项目名称
安装依赖
环境配置
本地运行
测试
构建
部署
它回答的是:
这个项目怎么跑起来?
不要把所有业务说明全部塞进 README。
十一、PROJECT.md:告诉 AI“这是什么项目”
PROJECT.md 和 README 的职责不同。
README 是怎么运行,PROJECT 是为什么存在。
# Project
## Overview
这是一个帮助用户管理 XXX 的 Web 应用。
## Problem
用户目前存在:
- 问题 A
- 问题 B
- 问题 C
## Users
主要用户:
- 用户 A
- 用户 B
## Core Features
- 用户注册
- 内容管理
- 搜索
- AI 问答
## Scope
本项目负责:
...
本项目不负责:
...
## Tech Stack
Frontend:
Backend:
Database:
AI:
Deployment:
## External Services
- OpenAI
- Stripe
- AWS
对于中小型项目,甚至可以把 PRD 直接合并到这里,减少文件数量。
十二、STATUS.md:告诉 AI“现在做到哪里了”
AI 最大的问题之一是:它知道代码是什么,但不知道项目现在处于什么阶段。
例如:
# Status
## Current
当前正在开发:
- AI 搜索
## Next
- [ ] 完成向量数据库
- [ ] 完成搜索页面
- [ ] 添加测试
## Bugs
- [ ] 移动端搜索框错位
## Backlog
- [ ] 国际化
- [ ] Dark Mode
## Recently Completed
- [x] 用户登录
- [x] 文章系统
对于独立开发者,我建议直接把 TASKS.md 合并到 STATUS.md。AI 只要读取一个文件,就知道现在在做什么、下一步做什么、有什么 Bug、有哪些待办以及最近完成了什么。
十三、ARCHITECTURE.md:告诉 AI“系统是怎么组成的”
这个文件不建议省略,因为 AI Coding 最常见的问题之一就是没有理解现有架构,就开始添加新代码。
# Architecture
## Stack
Frontend:
Next.js
Database:
PostgreSQL
Auth:
Supabase
Deployment:
Vercel
## Structure
src/app
页面和路由
src/components
UI 组件
src/lib
基础能力
src/services
业务逻辑
## Rules
页面不直接访问数据库。
数据访问统一通过:
src/services
## Main Data Flow
UI
↓
Server Action
↓
Service
↓
Database
它不用写得很长,几十行到几百行已经非常有价值。
十四、DECISIONS.md:给未来的自己留下记忆
这是单人开发者特别应该维护的文件。
团队可以问“这个东西当初是谁设计的”,但一个人开发半年之后,很可能连自己都忘了。
# Decisions
## 2026-09-26 - Use PostgreSQL
### Decision
使用 PostgreSQL。
### Reason
需要:
- 关系型数据
- 全文搜索
- Vector Search
### Alternatives
MongoDB
### Why Not
当前业务关系较强,没有必要增加新的数据库类型。
以后 AI 看到 PostgreSQL 时,就不会突然建议“要不全部改 MongoDB”,因为它可以看到这是一个已经做过权衡的设计决定。
这实际上是在建立项目的长期记忆。
十五、.env.example 也非常重要
虽然它不是文档,但推荐所有项目都有 .env.example:
DATABASE_URL=
OPENAI_API_KEY=
REDIS_URL=
STORAGE_ENDPOINT=
JWT_SECRET=
不要提交真实 Secret,但一定要让 AI 和未来的自己知道这个项目依赖哪些环境变量。
十六、什么时候需要继续拆 docs?
当项目变复杂以后,再从核心文件中拆出来:
docs/
├── PRD.md
├── API.md
├── DATABASE.md
├── SECURITY.md
├── TESTING.md
└── DEPLOYMENT.md
不需要所有项目一开始就拥有这些文件,文档应该跟项目复杂度一起增长,而不是为了“规范”而创建一堆空文件。
小项目有 PROJECT.md、STATUS.md、ARCHITECTURE.md、DECISIONS.md 就已经够用;中型项目再增加 API、DATABASE、DEPLOYMENT;大型项目再继续增加 PRD、Security、Testing、ADR、Runbook、Monitoring。
十七、Workspace 真正应该共享什么?
对于多个彼此独立的项目,不建议共享业务代码。
真正值得共享的是:
templates/
skills/
prompts/
scripts/
docs/
也就是:
共享开发能力,而不是共享业务。
这是独立开发者 Workspace 最重要的设计原则之一。
十八、templates:让新项目标准化
templates/base-project 可以直接带上:
README.md
AGENTS.md
PROJECT.md
STATUS.md
ARCHITECTURE.md
DECISIONS.md
.env.example
.gitignore
以后创建新项目,不再从空目录开始,而是复制模板、修改 PROJECT.md,再让 AI 开始开发。
十九、skills:把重复工作交给 AI
如果未来越来越依赖 AI,可以建立:
skills/
├── project-init/
├── code-review/
├── documentation/
├── security-review/
└── release-check/
例如,project-init 负责读取需求、生成项目结构、创建核心文件、初始化 Git 和生成基础 README;release-check 负责检查测试、环境变量、构建、安全问题和部署文档。
这样你的开发流程会逐渐从“每次重新告诉 AI 怎么做”变成“AI 按既定流程执行”。
二十、prompts:保存真正高价值的 Prompt
一些频繁使用的 Prompt 不要每次重新输入:
prompts/
├── coding/
├── debugging/
├── review/
└── planning/
例如保存 feature-development.md、bug-analysis.md、architecture-review.md、performance-review.md、security-review.md。
久而久之,这些会形成你自己的 AI 开发方法论。
二十一、scripts:把重复操作自动化
随着项目增加,创建项目、检查项目状态、运行测试、更新依赖、备份和生成项目列表等操作会不断重复。
可以逐渐积累:
scripts/
├── new-project
├── project-status
├── project-check
└── backup
一个好的 Workspace,后期应该越来越少依赖手工操作。
二十二、archive:不要舍不得归档项目
当某个项目已经结束、长期不维护、实验失败或被替代,就移动到:
archive/
├── completed/
└── deprecated/
让 apps/ 始终只保留当前仍然值得关注的项目,这会极大降低心理负担。
二十三、最终推荐结构
综合下来,我最推荐独立开发者采用这套 Workspace:
Workspace/
│
├── README.md
├── AGENTS.md
├── PROJECTS.md
│
├── apps/
│ ├── project-a/
│ ├── project-b/
│ └── project-c/
│
├── templates/
│ ├── base-project/
│ ├── web-app/
│ ├── api/
│ └── ai-app/
│
├── skills/
├── prompts/
├── scripts/
├── docs/
│ ├── coding-standards.md
│ ├── ai-development.md
│ └── project-management.md
└── archive/
而单个项目:
project/
│
├── README.md
├── AGENTS.md
├── PROJECT.md
├── STATUS.md
├── ARCHITECTURE.md
├── DECISIONS.md
│
├── docs/
├── src/
├── tests/
├── scripts/
│
├── .env.example
├── .gitignore
└── package.json / pyproject.toml / ...
二十四、这套结构真正解决的是什么?
表面上看,我们只是在设计文件夹。实际上是在解决五个长期问题。
1. AI 上下文丢失
通过 PROJECT.md、STATUS.md、ARCHITECTURE.md、DECISIONS.md,让 AI 不依赖聊天记录理解项目。
2. 项目越来越多以后难以管理
通过 PROJECTS.md 建立统一项目索引。
3. AI 随意修改架构
通过 AGENTS.md、ARCHITECTURE.md、DECISIONS.md 约束 AI 的开发方式。
4. 重复创建相同东西
通过 templates、skills、prompts、scripts 不断积累个人开发资产。
5. 自己半年以后忘了项目
通过 STATUS.md、DECISIONS.md、PROJECT.md 给未来的自己保留足够的信息。
二十五、我认为最重要的一条原则
如果只保留这篇文章中的一条原则,我会选择:
所有重要项目上下文,都应该进入 Git,而不是只存在于 AI 对话历史中。
聊天窗口会变,AI 工具会变,模型会变,Prompt 会变,甚至你以后可能不再使用现在的 AI 产品。
但只要项目里还有:
Code
+
Git
+
PROJECT.md
+
STATUS.md
+
ARCHITECTURE.md
+
DECISIONS.md
+
AGENTS.md
任何一个新的 AI Agent 都可以重新接手项目。
这才是真正稳定的 AI 开发工作流。
结语
对于独立开发者来说,AI 全栈开发最大的价值,并不是单纯提升写代码的速度。
真正有价值的是:
一个人开始拥有过去只有小型开发团队才能拥有的执行能力。
但前提是,你不能让所有知识都存在脑子里,也不能让所有项目上下文都存在聊天记录里。
一个好的 Workspace,本质上是在建立:
属于独立开发者自己的 AI 软件开发操作系统。
它不需要复杂。一开始只需要:
Workspace/
├── AGENTS.md
├── PROJECTS.md
└── apps/
以及每个项目中的:
AGENTS.md
PROJECT.md
STATUS.md
ARCHITECTURE.md
DECISIONS.md
就已经足以让 AI 的长期开发体验发生明显变化。
随着项目越来越多,再逐渐加入 templates、skills、prompts、scripts、archive。
不要一开始设计一个庞大的体系,先建立最小规则,然后让这套 Workspace 随着你的项目一起成长。
最终你管理的就不再只是几个代码文件夹,而是一套真正可以持续迭代、长期维护,并且能够被不同 AI 工具共同理解的:
个人 AI 全栈开发系统。