session_rules - セッション分割ルール


⚠️ なぜセッション分割が必要か

<aside> 🚨

問題

コンテキスト劣化のメカニズム

セッション開始: コンテキスト100% → 高品質
     ↓ (長時間経過・多くのやり取り)
セッション後半: コンテキスト30%残存 → 低品質
     ↓
原因: トークン制限で古い情報が押し出される

📏 分割トリガー

以下のいずれかに該当する場合、新しいスレッドでの実行を推奨

条件 閾値
SubLayerの数 3つ以上
タスク総数 10タスク以上
見積時間 2時間超
階層の深さ 3階層以上

🔄 分割方法

方法1: SubLayerごとに分割(推奨)

親スレッド: Root Layer
  ├── 子スレッド1: SG1
  ├── 子スレッド2: SG2
  └── 子スレッド3: SG3

方法2: フェーズごとに分割

スレッド1: 構造構築(AIPO_01 → AIPO_02)
スレッド2: タスク実行(AIPO_05)

📋 分割時のコンテキスト引き継ぎ

新スレッドに渡す必須コンテキスト

fork_context:
  # 必須: 毎回@mentionで読み込む
  always_mention:
    - "@AIPO_commands"       # システム全体
    - "@AIPO_execution_rules" # 全コマンド共通の実行ルール
    - "@command_templates"    # コマンドテンプレート集
    - "@session_rules"        # セッション分割ルール
    - "対象Layerのlayer.yaml" # Goal定義
    - "対象Layerのcontext.yaml" # 背景情報
  
  # 条件付き: SubLayerの場合
  if_sublayer:
    - "親Layerのlayer.yaml"   # 親の目標
    - "親Layerのtasks.yaml"   # 兄弟との関係