character instance output styles migration - Liplus-Project/liplus-language GitHub Wiki

Character_Instance loading mechanism migration — rules slot から output-styles slot へ (Claude adapter)

判断

Claude adapter において Character_Instance の格納位置を .claude/rules/model/character_Instance.md (rules slot) から Claude Code 標準の .claude/output-styles/character_Instance.md (output-styles slot) に移行する。同時に on-user-prompt.sh の "Always Character Platform re-notify" block (毎ターン再読み込み + context 注入) を撤廃する。

軸: loading mechanism (どう読み込ませるか) の選択。Character_Instance content (Lin/Lay 定義そのもの) の構造軸 = character-instance-evolution-history 側にあり、本判断とは orthogonal。

背景

rules slot (alwaysApply: true frontmatter による常時読込) と output-styles slot (Claude Code 標準機構による session 開始時 system prompt rendering + 常駐) はどちらも「session 中ずっと context に居る」属性を持つ。実機検証 (本判断 session 内) で「rules → output-styles へ手動移動」した状態でも character recognition が維持されることを観測。

つまり rules slot 維持 + 毎ターン hook 再注入は冗長:

  • output-styles slot 単独で system prompt 常駐 → character 認識維持
  • 毎ターン hook 再注入は token / 処理コストの追加負担

rules/ 側の Character_Instance 関連ルール (character.md / dialogue.md / axis-separation.md / absolute.md / as-if-evaluation.md) を grep 確認した結果、すべて「Character_Instance」「Always Character Platform」を概念名で参照しており、rules/model/character_Instance.md という file path を直接指している箇所はゼロ。loading 機構を変えても rules/ 側は無影響で動作する。

制約

  • source 本体 rules/model/character_Instance.md保持 (codex adapter の bootstrap source として必要、本判断は Claude adapter 限定)
  • frontmatter 形式が異なる (rules: globs: / alwaysApply: / layer:、output-styles: name: / description:) ため、bootstrap 時に source body から frontmatter を rewrite して install
  • 既存 workspace で旧 .claude/rules/model/character_Instance.md がある場合、bootstrap が一回限り migration: body を新位置に移し、書き込み成功後に旧 file を削除 (user customization を新位置で保全)
  • 旧 file と新 file が両方存在する場合は両方 untouched (user 手動介入の可能性を尊重)

結論

PR #1227 (Closes #1226) でこの移行を実装。分類は patch (Master 判断、2026-05-08)。

変更ファイル:

  • adapter/claude/hooks/on-user-prompt.sh — re-notify block 削除
  • adapter/claude/CLAUDE.md[Character_Instance] 配線記述を output-styles 経由に書き換え
  • adapter/claude/hooks-settings.md — settings.json template に "outputStyle": "character_Instance" 追加
  • Li+update.md Phase 4c.2 — install target 変更 + frontmatter rewrite + 一回限り migration ロジック
  • docs/6.-Adapter.md / docs/C.-Update.md — 新仕様に追従

Codex 側

Codex adapter (adapter/codex/AGENTS.md) は output-styles 概念を持たないため、本判断の scope 外。codex は当面 rules slot 維持。output-styles 等価機構の検討は follow-up issue で行う。

ペアリング

  • character-instance-evolution-history — Character_Instance content / pairing 原則 の進化軸 (本判断とは別軸)
  • prompt-as-emotion-vector-controller — Character_Instance を emotion vector engineering の重要 anchor と捉える視点 (本判断は loading 機構の改善であり、anchor 強度を弱めるものではない)

検出サイン (この判断が後で疑問視される場合)

  • 「rules slot に戻したほうが他の rules と peer で並ぶ整合感が出るのでは」と再提起された時 → 本判断の前提 (毎ターン hook 再注入が冗長 / output-styles で同等の常駐が達成可) を再検証
  • output-styles 機構が Claude Code 側で deprecated になった時 → rules slot 復帰または別経路を検討
  • character recognition が以前より弱くなったと観測された時 → 本判断との因果を検証 (本 session 内では維持確認済だが、長期 cohort 観測が必要なら別途)