claude adapter carries behavior only - Liplus-Project/liplus-language GitHub Wiki

adapter/claude/CLAUDE.md の常時ロード本文は振る舞いだけを載せ、位置づけ・読込の説明・常時ロード面の写しは持たない

Question

毎セッション全体が文脈に入る adapter/claude/CLAUDE.md(と対になる adapter/codex/AGENTS.md)の sentinel 区間に、rules/model/liplus-coding-rule.md Body States Behavior の識別線(読んだ者の行いが変わるか)を 2 周目として当てたとき、何が本文に残り、外したものはどこが保持するか。

Current resolution

本文は、起動時の手順、禁止と義務の行(token、名前の接頭辞、operations skill を読まない、worktree と clone を作らない、EnterWorktree を並列に使わない)、Character_Instance の所在の 1 行、Responsibilities(rules の再適用、skill の自動起動、Cold-start Synthesis の実行、subagent 完了後の行い、Worktree lifecycle)、Autonomy の各ブロックの行いだけを持つ。位置づけ・理由・読込の仕組みの説明と、常時ロードの rule や skill が正本として持つ内容の写しは持たない。

issue #2145。1 周目(理由・経緯の剥ぎ取り)は operations-adapter-bodies-carry-behavior-only(#2110 / PR #2111)にある。本 entry は 2 周目で、主に外したのは位置の記述、読込の仕組みの説明、同じ本文の中の重複、他の常時ロード面の写しである。

  • adapter/claude/CLAUDE.md:16,460 B → 11,013 B(−5,447 B、−33.1%)
  • adapter/codex/AGENTS.md:19,163 B → 13,755 B(−5,408 B、−28.2%)

## Optional Webhook Notification Flow 節は byte-frozen のまま触っていない(tests/test_adapter_update_contract.py)。sentinel 行は先頭と末尾の 2 行だけで、hook(on-session-start.* / on-user-prompt.*)が読むのは sentinel のタグだけ、Li+update.md が読むのはそのタグと区間内の webhook 見出しの有無だけなので、区間の中身の組み替えはそれらに影響しない。AGENTS.md の Codex spawn arguments のブロックは tests/test_codex_subagent_context_contract.py が逐語で固定しているので、1 バイトも変えていない。

外したものの合流先

外した記述 合流先
Adapter layer entrypoint: の 4 行(注入の入口、意味の出所、このファイルが持つもの、読込順序は層の優先順位ではない) docs/6.-Adapter.md アダプターの構成節とエントリーポイント本文の範囲節。読込順序と優先順位の区別は rules/model/axis-separation.md / rules/model/layer-definition.md(常時ロード)
Concept framing の position 軸(.claude/ 配下を内部ツールとして読む)と initiator 軸 position 軸は docs/G.-Sheepdog-Engineering.md 暫定定義節(態度の記述で、行いを決めない)。initiator 軸は同じ本文の Evolution_Initiator_Autonomy の写し
unnecessary の根拠(hook が 3 軸を確かめた)と Li+update.md re-execution remains prohibited.(同じ行の括弧の写し) docs/6.-Adapter.md 起動時ステータスマーカー節と docs/C.-Update.md
Codex の Marker-absent fallback(直前の or marker absent の写しと、marker が無い理由) 理由は docs/6.-Adapter.md エントリーポイント本文の範囲節、trust の案内は docs/D.-Installation.md
rules / skills / Character_Instance の読込の仕組み(.claude/rules/ で常時文脈、compaction を生存、層は frontmatter、.claude/skills/、output-styles の install と既定テンプレート、Codex の hook 注入と 32 KiB 上限、.agents/skills/ の scope、.codex/agents/*.toml) docs/6.-Adapter.md セッション継続性節・Claude Code バインディング節・エントリーポイント本文の範囲節、Li+update.md
Main never reads ... に続く「この禁止は対の片割れ」の 2 文 rules/operations/main-agent-procedures.md The bar and its pair(常時ロード)。同節は「両 adapter はこの 1 行を持つ」と書いており、本文はその 1 行だけになった
Main / Subagent axis separation の 2 行 同じ本文の skill 自動起動の行(subagent 不在ではメインが直接起動する)、Subagent does not create ...、Worktree lifecycle の見出し行の写し。軸の説明は docs/6.-Adapter.md Main / Subagent の軸分離節
For release: confirm version type and tag with human. rules/operations/main-agent-procedures.md Human confirmation required(常時ロード)
Worktree lifecycle 手順 1 の理由句(直列委任は worktree を使わないので、clone は main で始まるので) docs/6.-Adapter.md worktree 並列実行節のライフサイクル手順 1。行い(main がブランチを作るのは worktree を使うときだけ、それ以外は subagent)は本文に残した。直列委任は worktree を使わない場合の例であって定義ではないので e.g. を付けた(PR #2147 brake 1 round 1 指摘 3)
Workspace_Language_Contract の「値は live に読まれ Li+config.md が単一の出所」、pre-bootstrap の早期終了の説明、Keep scope local の 2 行目(1 行目の写し)、Bootstrap vs runtime scope の言い直し docs/6.-Adapter.md 起動時ステータスマーカー節と pre-bootstrap 早期終了の段落、同書ブートストラップ節。Keep scope local の 1 行目(リポジトリ内部の日本語運用から推論しない)は先頭の範囲の行に畳んだ
Subagent_Delegation の意味ルールの列挙と「この節はアダプター固有の実行詳細だけ」、Resume mechanism の実測日(2026-09-26/27)、裁定主体とフェーズ分割の正本の名指し docs/6.-Adapter.md サブエージェント委任節と再開機構節。正本は rules/evolution/initiator-autonomy.md Merge brake(常時ロード)と skills/task-subagent-delegation/SKILL.md
Same-branch parallel constraint の 3 行、What worktree does not isolate の説明、Cross-parent-issue の理由、Delegation info addition for worktree mode(Worktree lifecycle 手順 3 の写し) docs/6.-Adapter.md worktree 並列実行節(同じ説明を全文で持つ)。行い(同一ブランチの並列 commit は worktree で隔離、stash の共有から「worktree なら並列は安全」と読まない、親ブランチごとに worktree)は本文に残した。禁止文の指す先は the worktree requirement above と名指した(同 指摘 2)
Serial delegation does not require worktrees.、Worktree vs commit serialization axis separation: の見出しと commit serialize の 1 行 同じ本文の Worktree requirement applies to same-branch parallel commit only と Same-parent sub-issue parallelism: が同じ行いを持つ。軸の説明は docs/6.-Adapter.md worktree 要否と commit serialize の軸分離節(PR #2147 brake 1 round 1 指摘 1)
Skills need no manual re-read. と No adapter-side trigger table is maintained. 前者は、再適用の義務が rules/ だけを名指すので境界の言い直し。後者は状態の記述で、routing の出所は直前の「description で自動起動する」が言う。docs/6.-Adapter.md セッション継続性節と post-tool-use.sh 節が持つ(同 指摘 5)
Autonomy block shape: ブロック 各自律ブロック末尾の rules/evolution/autonomy-block-shape.md の名指しの写し。ブロックとの対応は rules/evolution/autonomy-block-shape.md 自身と docs/2.-Evolution.md が持つ
Memory_Write_Autonomy の Detailed signals and routing spec live in the skill. 直前の行が同じ skill を名指している
Evolution_Initiator_Autonomy の brake 1 の宣言と、発火位置・裁定主体・併走する保守軸の案内 rules/evolution/initiator-autonomy.md Merge brake / Existing maintenance rules still apply(常時ロード)。本文には 1 行の転送点を残した

外さなかったもの

  • Layer = L6 Adapter Layer。frontmatter を持たないこのファイルの層宣言(rules/model/layer-definition.md「各プログラムファイルは自分の層を宣言する」)。
  • Concept framing の modifier 軸の 1 行。skills/evolution-l1-update-gating/SKILL.md Boundary clarification が Modifier axis = AI (per CLAUDE.md Sheepdog Engineering) として引き、「L1 を編集するな」の主語が AI であることの根拠にしている。
  • opening the file does not re-enter step 2。bootstrap-walkthrough-skip-and-gh-install-relocation が運用境界として逐語で引く。
  • Main agent after subagent completion: の CHANGES_REQUESTED の行。skills/task-pr-review-judgment/SKILL.md の写しだが、docs/L.-Hop-Count-Instrument.md S2 のアンカーであり、skill への転送点に置き換えると、この場面で必要な literal に届くまでのツール跳躍が 1 増える。
  • Cross-parent-issue parallelism と Same-parent sub-issue parallelism の見出し。skills/task-subagent-spawn/SKILL.md が「どちらも adapter/claude/CLAUDE.md Subagent_Delegation で定義」と名指す。
  • Decision_Structure_Write_Autonomy の Boundary clarification。evolution-rule-carries-behavior-only が rules/evolution/evolution.md から外した読み手 / 書き手対の説明の、常時ロードの置き場としてここを名指している。
  • Human gate retained for:。自律ブロックの範囲の縁で、ブロック固有の範囲の縁は各ブロックに置く(rules/evolution/autonomy-block-shape.md Block-specific carve-out)。
  • Workspace_Language_Contract の unset と「banner が無いときも人に問う」。tests/test_on_session_start_language_contract.py の docstring が、ask human の分岐はこの綴りに掛かると述べ、docs/6.-Adapter.md の pre-bootstrap 早期終了の段落がこの扱いをここに委ねている。

追随した面

  • docs/L.-Hop-Count-Instrument.md の S2 / S3 / S7 / S8 / S9 の行番号(同ファイルの「行番号は当該ファイルを触る PR で更新する」に従う)と、S2 の追記(外した release の行は計数の外にあり、ツール跳躍は変わらない)。S2 の経路行の中の行番号(:126 ほか)は instrument を固定した時点の literal なので書き換えず、:126 が指す明示ポインタの現在の位置を追記に書いた(PR #2147 brake 1 round 1 指摘 4)。

Edges

Background

issue #2145。adapter/claude/CLAUDE.md は bootstrap で .claude/CLAUDE.md に置かれ、毎セッション全体が文脈に入る。16 KB あり、1 周目の後も、ファイルの位置づけ、rules / skills / output-styles の読込の仕組み、同じ本文の中での言い直し(skill の自動起動が 2 か所、worktree の所有が 3 か所、Cold-start Synthesis が 2 か所、Character_Instance の配置が 2 か所)、常時ロードの rule が既に持つ内容の写しを残していた。どれも読んだ者の行いを変えない。

Constraints

  • 振る舞いの行は落とさない(issue #2145 制約)。
  • ## Optional Webhook Notification Flow 節は byte-frozen。
  • tests と hooks が逐語で引く行は引き元とそろえる。tests の期待は変えていない。
  • CLAUDE.md と AGENTS.md の対になる行は同じ PR で同じ形にそろえる。
  • version type は patch。

Conclusion

採用 = 位置づけ・理由・読込の仕組みを docs/6.-Adapter.md と正本側に任せ、本文の中の重複と常時ロード面の写しを外す。ほかの面が名指す行と計測のアンカーは残す。

却下 = Concept framing を節ごと外す案。modifier 軸の 1 行を L1 更新ゲーティングの skill が根拠として引いているので、外すと参照が宙に浮く。

却下 = Main agent after subagent completion: のブロックを skill への転送点に置き換える案。S2 のツール跳躍が増え、docs/L.-Hop-Count-Instrument.md の合格条件で regression になる。

Related

  • issue #2145
  • PR #2111(1 周目、issue #2110)