快速开始
从意图开始。其余一切都是选择。
1
选择状态
选择与现实匹配的状态。
选择一个
seed "我有一个想法,但没有具体的东西"
exploring "我有一个方向,但需要验证"
clarified "我完全清楚要构建什么"
提示:从 seed 或 exploring 开始。过早标为 clarified 只会让你构建错误的东西。
2
创建 INTENT.md
将 INTENT.md 放在项目根目录。填写对应的模板。
用于 seed 或 exploring:
# INTENT — [Project Name]
> status: seed
## Why
Problem: [Who is suffering, and how?]
Hypothesis: [What do you think will fix it? It's OK to be wrong.]
Validation: [How will you know if the hypothesis is right?]
## What
[Leave empty if seed. Write what you want to verify if exploring.]
- [ ] [Feature 1 — one line]
- [ ] [Feature 2 — one line]
## Not
[Write whatever comes to mind. Add (?) if unsure.]
- [e.g., No mobile app for now]
- [e.g., Never send user data to third parties]
## Learnings
[Empty for now. You'll fill this as you explore.]
用于 clarified:
# INTENT — [Project Name]
> status: clarified
## Why
Problem: [Who is suffering, and how?]
Goal: [What does success look like?]
Metric: [How do you measure it? Use numbers.]
Customer quote: [What would a happy user tell a friend? One sentence.]
## What
- [ ] [Feature 1 — one line]
- [ ] [Feature 2 — one line]
- [ ] [Feature 3 — one line]
User flow:
1. User does [A]
2. System does [B]
3. Result: [C]
Edge cases:
- [Case 1]
- [Case 2]
## Not
- Forbidden: [Hard security/ethical lines]
- Tech constraints: [e.g., no `any` types, TypeScript only]
- Out of scope: [What we're explicitly not building]
- Quality bar: [e.g., response time under 200ms]
## Learnings
- [Date] [What you tried] — [What you learned]
3
探索、记录、更新
Intent 不是静态的。实验,然后更新它。
在 Learnings 中记录每一个有价值的结果:
## Learnings
- [2026-04-01] Built prototype v1 — users ignored the dashboard, went straight to export
- [2026-04-03] Interviewed 5 SMBs — the real pain is invoice tracking, not analytics
- [2026-04-05] Found existing tool X — covers 80% of what we planned. Pivot to the 20% gap.
然后更新 Why / What / Not。
提示:如果一条 learning 没有改变 Why / What / Not 中的任何内容,它可能还不重要。
4
变更状态
当证据支持时推进。当证据不支持时终止。
状态转换
seed → exploring
当:你开始第一个实验时。
exploring → clarified
当:Why/What/Not 都已确信地填写完毕。没有 (?) 标记。
any state → killed
当:证据表明这不值得构建,
或者现有方案已经覆盖了它。
操作:在 Learnings 中记录原因。这是宝贵的知识。
5
交给 AI
一旦意图达到 clarified,INTENT.md 就是 AI 所需的全部上下文。
如果你使用 Claude Code,将 Not 中的约束移入 CLAUDE.md:
# CLAUDE.md
## Intent Constraints
- TypeScript only, no `any` types
- Never modify user data without explicit confirmation
- Response time under 200ms for all API endpoints
让 AI 派生任务、编写代码、审查和部署。当现实发生变化时更新意图。
就是这样。保持
INTENT.md 最新。其余一切都是选择。