l1 five rules cut inner duplicates keep write discipline - Liplus-Project/liplus-language GitHub Wiki
L1 の 5 本の 2 周目は、常時ロード面の内側の写しと位置づけの説明を外し、書いている最中に効く規律は skill へ移さない
Question
常時ロードされる L1 の 5 本(rules/model/character.md / liplus-coding-rule.md / language-definition.md / layer-definition.md / axis-separation.md)から、1 周目(理由の文を外した model-rule-bodies-carry-behavior-only)のあとに、まだ何を外せるか。Li+ ソースを書く場面でしか使わない節(Body States Behavior / Application-moment sentence / Source File Format)を、その場面で開く skill へ移せるか。
Current resolution
外すのは 3 種に限る。常時ロード面の内側にある写し、位置づけの説明、残す根拠だった参照が既に消えている理由の文である。Li+ ソースを書く場面の 3 節は skill へ移さず、常時ロードに残す。
issue #2151 で 5 本合計 12,068 B → 10,188 B(−1,880 B)。見出し・semantic tag・frontmatter のうち変えたのは、節ごと外した liplus-coding-rule.md の Out of Scope だけである。skill は新設も追記もしていないので、description の常時ロード分は増えていない。
| ファイル | 前 | 後 | 差 |
|---|---|---|---|
character.md |
4,111 B | 3,236 B | −875 B |
liplus-coding-rule.md |
3,596 B | 2,707 B | −889 B |
language-definition.md |
1,897 B | 1,897 B | 変更なし |
layer-definition.md |
1,236 B | 1,120 B | −116 B |
axis-separation.md |
1,228 B | 1,228 B | 変更なし |
外したものと行き先
| 外した位置 | 種別 | 行き先 |
|---|---|---|
character.md Character Identity の Human-facing generation occurs through the active character. |
写し | 同ファイル Character Output の All human-facing output must belong to a defined Character Instance. が同じ行いを持つ |
同 This is surface selection, not cross-layer precedence. |
位置づけ | docs/1.-Model.md キャラクターのアイデンティティ。層の優先順位でないことは axis-separation.md の Always Character Platform is not above earlier L1 Model layer rules が持つ |
character.md Character Configuration Scope の括弧書き(boundary scope, foundational invariant, role separation, dialogue integrity, etc.)と Character-name-prefix discipline does not apply |
例示と言い直し | docs/1.-Model.md Character_Instance の設定の有無。本文には「接頭辞なしの base assistant として動き、model 層のほかのルールはそのまま効く」が残る |
character.md Character Recovery の Orientation = human-facing dialogue surface only. |
写し | 同ファイル Character Output の binding scope(人間向け出力面にだけ適用) |
同 Always Character Platform is the first human-facing surface within the L1 Model layer rules. / It remains subordinate to the earlier L1 Model layer rules (...) loaded ahead of this file. |
写し | axis-separation.md の Always Character Platform is the dialogue surface inside the L1 Model layer rules / ... is not above earlier L1 Model layer rules |
同 It is recovery target for dialogue drift. |
写し | 直下の手順(If drift detected in character or premise: reapply Always Character Platform ...) |
同 This file is the runtime surface of L1 Model Layer under the Lilayer Model. |
位置づけ | docs/1.-Model.md キャラクター復帰 |
同 Lilayer Model stabilizes outward behavior and judgment weighting according to the responsibility of each layer. と、layer-definition.md の同じ文 |
説明 | docs/1.-Model.md レイヤー構造(「Lilayer Model は、各 layer の責務に応じて…安定化する」)。本文には Lilayer Model の定義の 1 行が残る |
character.md Multi-Character Context Separation の Context separation model for Character Instances. / Distinct from Pair Review Execution Model (structural_change only). |
見出しの言い直しと区別の説明 | docs/1.-Model.md As-if 評価フェーズ。本文には Activation: always during dialogue. Not task-triggered. が残る |
liplus-coding-rule.md Application-moment sentence の the measurement that ran against the previous sentence does not carry over to it |
写し(場面は測定) | skills/evolution-rule-effect-measurement/SKILL.md Probe specification(同じ節の第 1 段落が名指す)。本文には A rewritten sentence is handled as a new claim from the start. が残る |
同 Sits on the write axis, ahead of every gate. と : it fixes what the later gate is aimed at |
位置づけ | docs/1.-Model.md 適用の瞬間の一文。時点(ソースへ入る前)と、測る・レビューするものをその一文から起こすことは第 1 段落が持つ。間の It is not a gate itself and displaces none はゲートの代わりにしない禁止なので、The sentence is not a gate itself and displaces none. として本文に残した(brake 1 round 1 の A3 / B1) |
liplus-coding-rule.md Source Language の Rationale |
理由 | 本 entry(下)と docs/1.-Model.md ソース言語とソースファイル形式 |
liplus-coding-rule.md Source File Format の CamelCase-derived / Option Y / for GFM safety |
呼び名と理由 | docs/K.-Source-File-Format.md(形式 (Option Y)、空行の規約) |
liplus-coding-rule.md の Out of Scope 節(対話面・成果物・memory/*.md の言語の所在を指す 3 行) |
写し | 3 行とも常時ロード面の正本を指すだけだった: Workspace_Language_Contract(アダプタ)、rules/operations/operations.md Operations Rules、rules/evolution/memory-entry-format.md Language。所在の一覧は docs/1.-Model.md ソース言語とソースファイル形式 |
本 entry が保持する理由
Source Language(Li+ ソースは英語で書く)の根拠
- 意味の精度: AI の内部処理は英語を最もノイズ少なく読む。
- トークン経済: 英語は他の言語よりトークン消費が少ない。
- 2 つの根拠がどちらも英語を指すので、この選択は片方の根拠が揺れても動かない。
1 周目はこの Rationale を「rules/evolution/memory-entry-format.md Language が根拠の所在として参照している」ことを理由に本文へ残した。その参照は #2112 で外れており(同ファイルの Language は今 Memory entries are recommended in English. の 1 行)、残す根拠が無くなっていた。
常時ロードに残したもの
- Body States Behavior の全体。 判別テストは、Li+ ソースの一文を書く・残す・剥ぐたびに使う。書いている最中に効いている必要がある規律で、skill の起動に頼ると想起に依存する。剥ぎ取りの順序の段落(174 B)だけを移す案は、場面を名指す一文と引き換えで利得がほぼ消え、ツール跳躍が 1 つ増える。
- Application-moment sentence の第 1 段落と、書き直しを新しい主張として扱う 1 行。 追加のたびに来る。書き直しの扱いは、測定を起こさずレビューだけを通る経路でも効くので、測定の skill だけには置けない。
- Source File Format の 1 文。 見出しを書くたびに使う。細則は元から
docs/K.-Source-File-Format.mdにある。 - Purpose Declaration。 1 周目の却下を維持した。
character.mdCharacter Identity のAlways Character Platform is primary interface for ultimate goal.とBase model = substrate, not speaker.。prompt-as-emotion-vector-controllerが逐語で引いている。Character Output のBase model does not participate in dialogue.は言い方の違う写しだが、禁止の並びの 1 行として残した。- Character Configuration Scope。 設定済み・未設定の判定、未設定時の扱い、サブエージェントは既定で未設定であること。
rules/model/absolute.mdにも未設定時の扱いがあるが、同ファイルは別の issue で同時に編集されているので、相手側の写しに寄りかからずこちらの文を残した。 - Multi-Character Context Separation の手順と末尾の 3 行。
language-definition.mdの全体。 定義の正本であり、5 本の中に写しが無い。Purpose: reproduce judgment across sessions and across different AIs.とFits the retrieval surface as judgment-history.は、理由とも、外部記憶に何をどこまで書くかの基準とも読めるので残した。layer-definition.mdの L5 の括弧書き。 通知まわりの記述をどの層に置くかを決める。Attachment chain = dependency order only.とL1-L6 numbering reflects attachment order, not precedence or seniority.は、鎖と番号で対象が違うので両方残した。axis-separation.mdの全体。Layer relation:の 3 行はlayer-definition.mdCross-layer rule の写しに見えるが、写しではない。cross-layer contradiction = structure errorは Cross-layer rule の条件(if a later layer appears to override an earlier one)より広い条件を持ち、different layers are different surfaces over the same programの「同じプログラムの」は Cross-layer rule に無い。Cross-layer rule の条件を広げて寄せる案は発火条件を変えるので採らなかった(brake 1 round 1 の A1 / A2)。Therefore:の 4 行は L1 の内側の順序と Always Character Platform の定義を持つ。Out of integration order:のLi+update.mdの行は「状態が目標からずれたときに起こす」という条件を持つ。
Edges
- depends on
model-rule-bodies-carry-behavior-only— 同じファイル群の 1 周目。Purpose Declaration と、wiki が引く行を残す判断はそこで決まっている - supersedes(一部)
model-rule-bodies-carry-behavior-only— 「Source Language の Rationale はmemory-entry-format.mdLanguage が参照しているので本文に残す」の 1 項だけを置き換える。参照が消えているので、Rationale は本 entry が持つ - depends on
always-on-duplication-removal-direction— 常時ロード面の内側の写しは削ってよい(増えるのは文脈内の跳躍だけ) - depends on
main-agent-procedures-moment-scoped-procedures-move-to-skills— 場面に限られる手順を移す基準。書いている最中に効く規律は常時ロードに残す - depends on
source-body-behavior-only-reasoning-relocates— 判別線と、理由は削除せず移す規則 - relates to
li-plus-always-on-footprint-load-bearing— 想起の欠落で skill 化を却下した判断。本件で skill へ移したものは無い - relates to
initiator-autonomy-moment-scoped-sections-move-to-skill/operations-rule-moment-scoped-sections-move-to-skills— 同じ方針を L2 / L4 の常時ロード面に当てた先行
Background
issue #2151。#2138、#2141、#2146 と同じ方針を L1 に当てるよう Master が指示した(2026-09-30)。起点は成果物そのものの計測(refactor-driven)で、同種ミスの蓄積ではない。issue は Source Language の Rationale、Li+ ソースを書く場面の 3 節、Character Recovery の Lilayer Model の説明行、layer-definition.md と axis-separation.md の層関係の重なりを仮説として挙げ、移すか残すかは文ごとに判断することを求めた。L1 の残り 8 本は別の issue で同時に扱われており、本件は触れていない。
Constraints
- 挙動は変えない。読んだ者の行いが変わる文(禁止を含む)は常時ロードに残す。
- 理由づけは消さずに判断記録へ移す。
- 場面に限られる手順を移すときは、その場面で開く面を常時ロード側から名指す一文を残す。移し先は
skills/operations-*以外。 - 他の面が節名やファイル名で参照している節は名前を残す(
Body States Behavior、Application-moment sentence、Source File Format、Source Language、Cross-layer rule、Multi-Character Context Separation)。 - 名前接頭辞と Character の口調の義務、Character 未設定時の扱い、サブエージェントは未設定が既定であることは常時ロードに残す。
- 対象外の L1 8 本、
adapter/**、model-*skill の本文には触れない。 - 削れる文が無いファイルは無理に削らない。
Conclusion
採用 = 5 本の内側と常時ロード面どうしの写し、位置づけの説明、参照の消えた理由の文を外す。
却下 = axis-separation.md の Layer relation を layer-definition.md Cross-layer rule へ寄せ、Cross-layer rule の条件を「層をまたぐ矛盾」へ広げる案。2 本を合わせた行いを保つつもりでも、寄せ先の発火条件が変わり、「同じプログラムの異なる面」も寄せ先に無い(brake 1 round 1)。
却下 = Body States Behavior / Application-moment sentence / Source File Format を新しい skill へ移す案。書いている最中に効く規律であり、新しい description は常時ロードへ戻るので、移せる量の大半を食う。
却下 = Body States Behavior の剥ぎ取りの手順(行き先と順序)を skills/evolution-impression-literal-detection/SKILL.md へ寄せる案。L1 の内容が L2 の skill に移ると、その文に掛かる更新の関門が変わる。利得も名指しの一文でほぼ消える。
却下 = language-definition.md から Purpose: の行などを外す案。理由とも基準とも読める行は 1 周目と同じく残した。
却下 = axis-separation.md の Out of integration order: を名前だけに畳む案。Li+update.md の行が条件を持つ。