README.md
# ATLAS YAML Configuration Guide ## 概要 ATLASフレームワークをYAML形式で活用するための3つのファイル構成。 ``` .atlas/ ├── atlas.yaml # プロジェクト固有の設定(必須) ├── atlas-rules.yaml # ルール定義(共有) └── atlas-catalog.yaml # 技術カタログ(共有、定期更新) ``` --- ## ファイルの役割 | ファイル | 役割 | 配置場所 | 更新頻度 | | -------------------- | -------------------------- | -------------------------- | -------------------- | | `atlas.yaml` | プロジェクト固有の技術選定 | プロジェクトルート | プロジェクトごと | | `atlas-rules.yaml` | アンチパターン・推奨ルール | グローバル or プロジェクト | フレームワーク更新時 | | `atlas-catalog.yaml` | 具体的技術の特性一覧 | グローバル | 半年ごと | --- ## 使い方 ### 1. 新規プロジェクト開始時 ```bash # .atlasディレクトリを作成 mkdir .atlas # atlas.yamlをコピーして編集 cp templates/atlas.yaml .atlas/atlas.yaml ``` ### 2. atlas.yamlの記入 ```yaml # 最小構成 atlas_version: "1.0" project: name: "My Project" classification: primary_archetype: A3_CONSUMER_APP tier: T1_MVP stack: compute: category: SERVERLESS_REGIONAL selected: vercel_functions database: primary: category: SERVERLESS_POSTGRES selected: neon ``` ### 3. Claude Codeでの活用 ``` User: このプロジェクトの初期設定をして Claude Code: .atlas/atlas.yamlを確認しました。 - Tier: T1_MVP - Compute: Vercel Functions - Database: Neon 以下の設定を行います: 1. next.config.js にNeon接続設定 2. 環境変数テンプレート作成 3. 推奨パッケージのインストール ``` --- ## atlas.yaml 構造 ### 必須セクション ```yaml atlas_version: "1.0" project: name: "プロジェクト名" classification: primary_archetype: A1-A7 tier: T1-T4 stack: compute: category: カテゴリ名 selected: 技術名 database: primary: category: カテゴリ名 selected: 技術名 ``` ### 推奨セクション ```yaml requirements: scale: expected_mau: 数値 features: realtime: boolean background_processing: none|light|medium|heavy antipattern_checks: - id: AP-XX status: PASSED|FAILED|MITIGATED|NOT_APPLICABLE exit_strategy: next_tier: T2-T4 migration_triggers: - condition: "条件" action: "アクション" claude_instructions: implementation_notes: - "注意点1" prohibited: - "禁止事項1" ``` --- ## アーキタイプ一覧 | ID | 名称 | 用途 | | ------------------ | ------------------ | ---------------------- | | A1_STATIC_PRESENCE | 静的プレゼンス | コーポレート、IR、採用 | | A2_CAMPAIGN | キャンペーン | LP、プロモーション | | A3_CONSUMER_APP | 消費者向けアプリ | toC Webサービス | | A4_BUSINESS_SAAS | 業務SaaS | toB システム | | A5_MARKETPLACE | マーケットプレイス | EC、マッチング | | A6_REALTIME | リアルタイム | チャット、コラボ | | A7_AI_COMPUTE | AI/計算 | 生成AI、分析 | --- ## Tier一覧 | ID | 対象 | 月額予算 | チーム | | ------------- | ---------------- | --------- | ------ | | T1_MVP | 個人・MVP | ~$50 | 1-2人 | | T2_STARTUP | スタートアップ | $50-500 | 2-5人 | | T3_GROWTH | 成長期 | $500-5000 | 5-20人 | | T4_ENTERPRISE | エンタープライズ | $5000+ | 20人+ | --- ## 技術カテゴリ一覧 ### Compute - `SERVERLESS_EDGE` - エッジ関数 - `SERVERLESS_REGIONAL` - リージョナル関数 - `CONTAINER_PAAS` - コンテナPaaS - `SELF_HOSTED` - セルフホスト - `KUBERNETES` - K8s ### Database - `SERVERLESS_POSTGRES` - サーバーレスPG - `MANAGED_POSTGRES` - マネージドPG - `EDGE_SQLITE` - エッジSQLite - `DOCUMENT_DB` - ドキュメントDB - `VECTOR_DB` - ベクトルDB ### Worker - `DURABLE_WORKFLOW` - 耐久ワークフロー - `EXTERNAL_COMPUTE` - 外部コンピュート - `SELF_HOSTED_QUEUE` - セルフホストキュー - `SIMPLE_WEBHOOK` - シンプルWebhook ### Auth - `DX_FIRST_AUTH` - DX重視 - `DB_INTEGRATED_AUTH` - DB統合 - `ENTERPRISE_AUTH` - エンタープライズ - `SELF_HOSTED_AUTH` - セルフホスト ### Payment - `PAYMENT_PROCESSOR` - 決済処理 - `MERCHANT_OF_RECORD` - 販売代行 --- ## アンチパターンチェック ### 記入例 ```yaml antipattern_checks: - id: AP-C1 name: "Serverless + 常駐Worker" status: NOT_APPLICABLE note: "Container PaaS選択により該当なし" - id: AP-D1 name: "Serverless + 標準DB接続" status: PASSED note: "Neonコネクションプーラー使用" ``` ### ステータス | Status | 意味 | | -------------- | ------------------ | | PASSED | 問題なし | | FAILED | 問題あり(要対応) | | MITIGATED | 対策済み | | NOT_APPLICABLE | 該当なし | --- ## Exit Strategy ```yaml exit_strategy: next_tier: T3_GROWTH migration_triggers: - condition: "MAU > 50,000" action: "Container PaaS検討" - condition: "月額 > $500" action: "セルフホスト検討" lock_in_assessment: - component: vercel risk: medium mitigation: "OpenNext移行パス確保" ``` --- ## Claude Code Instructions AIが実装時に参照する指示: ```yaml claude_instructions: implementation_notes: - "Neon接続は必ずpooler URL使用" - "ファイルアップロードはPresigned URL経由" prohibited: - "BullMQの直接実装" - "60秒超の同期処理" recommended_patterns: - "Server Actions活用" - "Suspenseによる段階的表示" ``` --- ## ワークフロー例 ### 新規プロジェクト ``` 1. アーキタイプ判定(ATLAS Part 1参照) 2. Tier判定(予算・チーム規模) 3. atlas.yaml作成 4. アンチパターンチェック 5. Claude Codeで実装開始 ``` ### 既存プロジェクト移行 ``` 1. 現状の技術スタック棚卸し 2. atlas.yamlに記録 3. アンチパターン検知 4. 問題があれば移行計画 5. Exit Strategy更新 ``` ### レビュー・再評価 ``` 1. review.next_review_date確認 2. migration_triggers確認 3. 該当すれば移行検討 4. atlas.yaml更新 5. history追記 ``` --- ## ファイル配置パターン ### パターン1: プロジェクト内完結 ``` my-project/ ├── .atlas/ │ ├── atlas.yaml # プロジェクト固有 │ ├── atlas-rules.yaml # ルール(コピー) │ └── atlas-catalog.yaml # カタログ(コピー) └── src/ ``` ### パターン2: グローバル共有 ``` ~/.atlas/ ├── atlas-rules.yaml # 共有ルール └── atlas-catalog.yaml # 共有カタログ my-project/ ├── .atlas/ │ └── atlas.yaml # プロジェクト固有のみ └── src/ ``` ### パターン3: モノレポ ``` monorepo/ ├── .atlas/ │ ├── atlas-rules.yaml # 共有 │ └── atlas-catalog.yaml ├── apps/ │ ├── web/ │ │ └── atlas.yaml # アプリ固有 │ └── api/ │ └── atlas.yaml └── packages/ ``` --- ## バリデーション(将来構想) ```bash # CLIでの検証(未実装) atlas validate .atlas/atlas.yaml # 出力例 ✓ Schema valid ✓ Archetype: A3_CONSUMER_APP ✓ Tier: T1_MVP ⚠ Warning: AP-D1 not checked ✗ Error: bullmq incompatible with SERVERLESS_REGIONAL ``` --- ## 更新履歴 | Version | Date | Changes | | ------- | ------- | ------- | | 1.0 | 2025-01 | 初版 |