クイックスタート

Intentから始めよう。それ以外はすべて選択である。

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]

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]
3

探索し、書き換える

Intentは静的ではない。実験し、それからWhy / What / Notを書き換えて、今信じていることを述べるようにする。INTENT.mdに結果のログを追記してはならない。ファイルは常に現在のIntentとして読めるべきである。

各結果は一つの編集になる。インタビューで、本当の痛みは分析ではなく請求書の追跡だと判明したとする:

 ## Why

-Problem: SMB owners can't see where their revenue comes from.
+Problem: SMB owners lose track of unpaid invoices.

 ## What

-- [ ] Revenue analytics dashboard
+- [ ] Overdue invoice list with one-click reminder

 ## Not

+- Out of scope: analytics dashboards (interviews: nobody opened them)

変更をコミットし、学んだことをメッセージに書く。ファイルは現在を保持し、git log は道筋を保持する。

git commit -m "Why: pivot from analytics to invoice tracking

Interviewed 5 SMBs. All five named unpaid invoices as the top pain;
none asked for analytics."
ヒント: 学びがWhy / What / Notの何も変えないなら、おそらくまだ重要ではない。
4

状態を変更する

証拠が裏付けたら進む。裏付けないなら終了する。

状態遷移

seed → exploring
  タイミング:最初の実験を開始したとき。

exploring → clarified
  タイミング:Why/What/Notがすべて確信を持って埋まったとき。(?)マークが残っていないこと。

どの状態からでも → dropped
  タイミング:証拠により構築する価値がないと判明したとき、
        または既存のソリューションがカバーしているとき。
  アクション:statusをdroppedにする。理由をコミットメッセージに書く。
          これは貴重な知識である。
5

AIに引き渡す

Intentが 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を更新する。

以上である。 INTENT.md を最新に保つこと。それ以外はすべて選択である。
English 한국어 中文