QUICKSTART.md
# クイックスタート ## 3分で始める ### Step 1: ClaudeCodeを起動 ### Step 2: SYSTEM_PROMPT.mdをコピペ ### Step 3: 意図を伝える ``` 「○○を作りたい」 ``` これだけ。 --- ## 対話例 ### 例1: 電卓(Tier 1) ```` User: 電卓を作りたい System: ## 複雑性分析 意図: 基本的な四則演算ができる電卓 | 軸 | スコア | 理由 | |:--|:--|:--| | 閉鎖性 | 1 | 外部連携なし | | 静的性 | 1 | 状態単純 | | 単独性 | 1 | シングルユーザー | Tier: 1 期間: 数時間 この分析で進めますか? User: はい System: ## Vision Contract ```yaml vision: name: "Calculator" purpose: "基本的な四則演算を行う" value: "シンプルで直感的な計算体験" success: - "加減乗除ができる" - "小数点計算ができる" - "クリア機能がある" non_goals: - "関数電卓機能" - "履歴機能" ```` この契約で合意しますか? User: 履歴も欲しい System: 契約を更新します: ```yaml success: - "加減乗除ができる" - "小数点計算ができる" - "クリア機能がある" - "計算履歴を表示できる" # 追加 ``` この契約で合意しますか? User: はい System: ## 導出開始 Module Contract: Calculator - Display: 表示部 - Keypad: 入力部 - Engine: 計算エンジン - History: 履歴管理 (導出が進む...) ``` ### 例2: CRM基盤(Tier 4) ``` User: Salesforceみたいなものを作りたい System: ## 複雑性分析 意図: カスタマイズ可能なCRMプラットフォーム | 軸 | スコア | 理由 | | :----- | :----- | :------------------- | | 閉鎖性 | 4 | API, DB, 通知 | | 静的性 | 5 | 動的スキーマ | | 単独性 | 5 | マルチテナント, 権限 | Tier: 4 期間: 2-4ヶ月 「ユーザーが自分でエンティティやワークフローを 定義できる」ことが核心ですね。 これはMeta Contractが必要なTier 4です。 この分析で進めますか? User: はい System: ## 意図の確認 より詳細に確認させてください: 1. カスタムエンティティ - ユーザーがフィールドを自由に追加できる? - リレーション(参照関係)も定義可能? 2. ワークフロー - どんなトリガーが必要?(作成時、更新時、スケジュール) - どんなアクション?(通知、フィールド更新、API呼び出し) 3. 権限 - ロールベース? - 行レベルのセキュリティは必要? 4. マルチテナント - データは完全分離? - テナントごとのカスタマイズは? User: 1. はい、両方 2. 全部のトリガー、通知とフィールド更新 3. ロールベース、行レベルも 4. 完全分離、ブランディングカスタマイズ可能 System: ## Vision Contract ```yaml vision: name: "CustomCRM Platform" purpose: | ユーザーが自分のビジネスに最適化された CRMをノーコードで構築できるプラットフォーム value: | 「自分だけのCRM」を、コードなしで構築 target_users: primary: "中小企業の管理者" success: functional: - "エンティティ定義が5分以内" - "ワークフロー作成が10分以内" - "インポート/エクスポート可能" non_functional: - "1000エンティティ、100万レコードで応答1秒以内" - "テナント間データ漏洩ゼロ" - "99.9% uptime" non_goals: - "高度なBI機能(v2以降)" - "モバイルアプリ(v2以降)" ``` この契約で合意しますか? User: はい System: ## Domain分析 5つのドメインを特定しました: 1. EntityDefinition カスタムエンティティの定義と管理 2. DataManagement カスタムエンティティのデータCRUD 3. WorkflowEngine ワークフローの定義と実行 4. PermissionSystem 権限とアクセス制御 5. TenantManagement マルチテナント管理 各ドメインの契約定義に進みますか? (対話が続く...) ``` --- ## よくある質問 ### Q: どのくらいで完成する? ``` Tier 1: 数時間(電卓、テトリス) Tier 2: 数日(ゲーム、エディタ) Tier 3: 数週間(協調ツール) Tier 4: 数ヶ月(CRM基盤) ``` ### Q: 本当にバグゼロ? ``` はい。ただし「最初から完璧」ではない。 「深化サイクル」により、最終的にバグゼロになる。 Tier 2のゲーム開発では: - 最初の契約: 不足あり - 3回の深化: 契約を更新 - 最終結果: 53テスト全パス、バグゼロ ``` ### Q: 契約が曖昧なときは? ``` システムが質問する。 「○○の意味を明確にしてください」 「△△はどちらの動作を期待しますか?」 曖昧なまま進めることはない。 ``` ### Q: 途中で要件が変わったら? ``` 契約を更新する。 1. 変更内容を伝える 2. 契約の更新案を確認 3. 影響範囲を分析 4. 必要な部分を再導出 「変更 = やり直し」ではない。 「変更 = 契約の更新」として構造的に対応。 ``` --- ## チェックリスト ### 開始前 - [ ] ClaudeCodeが使える - [ ] 作りたいものの意図がある - [ ] 時間の見積もりを理解している ### 契約フェーズ - [ ] 複雑性分析が完了 - [ ] Vision Contractに合意 - [ ] Domain Contractが定義済み(Tier 3+) - [ ] Meta Contractが定義済み(Tier 4+) ### 導出フェーズ - [ ] 型定義が完了 - [ ] インターフェースが完了 - [ ] 実装が完了 - [ ] テストが完了 ### 検証フェーズ - [ ] 静的チェックがパス - [ ] 単体テストがパス - [ ] 統合テストがパス - [ ] 契約適合テストがパス ### 完了 - [ ] すべてのテストがパス - [ ] ドキュメントが完成 - [ ] 成果物が完成 --- ## トラブルシューティング ### 問題: 複雑性の判断に迷う ``` 対処: 具体例を示して確認する 「これはTier 3か4か迷っています。 ユーザーがフィールドを追加できる必要がありますか? Yes → Tier 4(Meta Contract必要) No → Tier 3」 ``` ### 問題: 契約が大きくなりすぎる ``` 対処: スコープを絞る 「MVP(最小限の製品)として、 どの機能が必須ですか? 残りはv2以降に」 ``` ### 問題: テストが失敗する ``` 対処: 原因を分析 「このテストが失敗しています。 契約: [期待] 実装: [実際] 契約が間違っていますか? それとも実装が間違っていますか?」 ``` --- *クイックスタート v1.0* ```