# 各ルールファイルのメタデータ
# 各ルールの概要、タグ、典型的な使用場面、サイズを管理

rules:
  typescript:
    file: "typescript.md"
    tags: [implementation, type-safety, async, refactoring, coding-style, functional-programming, dependency-injection, branded-types]
    typical-use: "TypeScriptコードの作成・修正・リファクタリング、モダンな型機能活用"
    size: medium
    key-references:
      - "YAGNI原則 - Kent Beck"
      - "Clean Code - Robert C. Martin"
      - "DRY原則 - The Pragmatic Programmer"
      - "Refactoring - Martin Fowler"
      - "TypeScript 4.9 satisfies演算子 - Microsoft"
      - "Branded Types - TypeScript Community"
      - "Effect-TS / fp-ts - 関数型プログラミング"
      - "Dependency Injection - Martin Fowler"
    sections:
      - "基本原則"
      - "コメント記述ルール"
      - "型安全性"
      - "コーディング規約"
      - "エラーハンドリング"
      - "リファクタリング手法"
      - "パフォーマンス最適化"

  typescript-testing:
    file: "typescript-testing.md"
    tags: [quality, testing, tdd, coverage, vitest, implementation, debugging, refactoring]
    typical-use: "テスト作成、品質チェック、コード修正・バグ修正・リファクタリング・新機能実装時の開発ステップ"
    size: medium
    key-references:
      - "Test-Driven Development - Kent Beck"
      - "Rule of Three - Martin Fowler"
      - "Red-Green-Refactor - Kent Beck"
      - "AAAパターン - Arrange-Act-Assert"
    sections:
      - "テストフレームワーク"
      - "テストの基本方針"
      - "Red-Green-Refactorプロセス（テストファースト開発）"
      - "テストの設計原則"
      - "テストヘルパーの活用ルール"
      - "テストの実装規約"
      - "Vitestの基本例"

  ai-development-guide:
    file: "ai-development-guide.md"
    tags: [anti-patterns, technical-judgment, debugging, quality-commands, rule-of-three, implementation, type-safety, refactoring, code-reading, best-practices]
    typical-use: "技術的判断基準、アンチパターン検出、デバッグ手法、品質チェックコマンド、実装時のベストプラクティス"
    size: medium
    key-references:
      - "Rule of Three - Martin Fowler"
      - "5 Whys - トヨタ生産方式"
      - "DRY原則 - The Pragmatic Programmer"
      - "単一責任原則（SRP） - Clean Code"
      - "YAGNI原則 - Extreme Programming"
    sections:
      - "技術的アンチパターン（赤信号パターン）"
      - "Rule of Three - コード重複の判断基準"
      - "よくある失敗パターンと回避方法"
      - "デバッグ手法"
      - "品質チェックコマンドリファレンス"
      - "技術的判断が必要な場面"
      - "継続的改善のマインドセット"

  technical-spec:
    file: "technical-spec.md"
    tags: [architecture, design, documentation, environment, data-flow, implementation]
    typical-use: "技術設計、環境設定、ドキュメント作成プロセス、実装方針決定"
    size: medium
    key-references:
      - "ADRフォーマット - Michael Nygard"
      - "単一データソース原則 - Single Source of Truth"
    sections:
      - "技術スタックの基本方針"
      - "環境変数管理とセキュリティ"
      - "アーキテクチャ設計"
      - "データフロー統一原則"
      - "ビルドとテスト"

  project-context:
    file: "project-context.md"
    tags: [context, project-specific, implementation]
    typical-use: "プロジェクト固有情報、実装原則の理解"
    size: small
    key-references:
      - "プロジェクト固有（経験則）"
    sections:
      - "基本設定"
      - "実装原則"
      - "カスタマイズガイド"

  documentation-criteria:
    file: "documentation-criteria.md"
    tags: [documentation, decision-making, adr, prd, design-doc, planning, process]
    typical-use: "実装開始時の規模判定、ドキュメント作成判定、ADR/PRD/Design Doc/作業計画書の作成基準"
    size: medium
    key-references:
      - "ADR手法 - Michael Nygard"
      - "Design Doc文化 - Google Engineering Practices"
      - "Single Source of Truth"
    sections:
      - "作成判定マトリクス"
      - "ADR作成条件（いずれか該当で必須）"
      - "各ドキュメントの詳細定義"
      - "作成プロセス"
      - "保存場所"
      - "ADRステータス"
      - "AI自動化ルール"
      - "図表作成要件"
      - "共通ADRとの関係性"

  vertical-slice-architecture:
    file: "architecture/vertical-slice/rules.md"
    tags: [architecture, vertical-slice, llm-optimized, single-file, implementation]
    typical-use: "Vertical Slice Architecture採用時、機能実装"
    size: medium
    key-references:
      - "Vertical Slice Architecture - Jimmy Bogard"
      - "Anthropic LLM Research"
    sections:
      - "コア実装ルール"
      - "実装ガイドライン"
      - "共通化の判断基準"
      - "LLM向け実装チェックリスト"
      - "アンチパターン"
      - "ベストプラクティス"
      - "LLM向け実装指針"
      - "まとめ"

  hybrid-progressive-architecture:
    file: "architecture/hybrid-progressive/rules.md"
    tags: [architecture, scalable, progressive, layered, implementation]
    typical-use: "段階的に成長するプロジェクト、実装ルール適用"
    size: medium
    key-references:
      - "Evolutionary Architecture - Neal Ford"
      - "Building Microservices - Sam Newman"
    sections:
      - "基本原則"
      - "Stage別実装ルール"
      - "移行ルール"
      - "判断フローチャート"
      - "コーディング規約"
      - "品質管理"
      - "LLM向け実装指針"
      - "まとめ"

  implementation-approach:
    file: "architecture/implementation-approach.md"
    tags: [architecture, implementation, task-decomposition, strategy-patterns, strangler-pattern, facade-pattern, design, planning, confirmation-levels]
    typical-use: "実装戦略の選択、タスク分解、設計判断、大規模変更の計画"
    size: medium
    key-references:
      - "Strangler Fig Pattern - Martin Fowler"
      - "Feature Slicing - Martin Fowler"
      - "Walking Skeleton - Alistair Cockburn"
      - "Facade Pattern - Gang of Four"
    sections:
      - "メタ認知的戦略選択プロセス"
      - "確認レベル定義"
      - "統合ポイントの定義"
      - "アンチパターン"
      - "メタ認知的実行のための指針"