Skip to content

refactor(model): drop inner duplicates and positioning from five always-on L1 rules [rules/model, docs] - #2154

Merged
liplus-lin-lay merged 3 commits into
mainfrom
2151-l1-five-rules-distill
Sep 30, 2026
Merged

liplus-lin-lay merged 3 commits into
mainfrom
2151-l1-five-rules-distill

Conversation

@liplus-lin-lay

@liplus-lin-lay liplus-lin-lay commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Closes #2151
常時ロードの L1 ルール 5 本に 2 周目を当て、常時ロード面の内側にある写し、位置づけの説明、参照が消えて残す理由の無くなった根拠の文を外した。挙動は変えていない。
Li+ ソースを書く場面の 3 節(Body States Behavior / Application-moment sentence / Source File Format)は、書いている最中に効く規律として常時ロードに残した。skill の新設・追記は無く、description の常時ロード分は増えていない。

起点

refactor-driven(成果物そのものの計測、skills/evolution-l1-update-gating/SKILL.md Change-origin scope)。Master が部屋で L1 へ進むよう指示(2026-09-30、issue 本文に記録)。promotion ラベルは無い。L1 の観測しきい値は前提にならないが、brake 1 とマージ後の Post-L1-Merge Runtime Observation はそのまま掛かる。

バイト数(wc -c、LF)

ファイル 前 後 差
rules/model/character.md 4,111 3,236 −875
rules/model/liplus-coding-rule.md 3,596 2,707 −889
rules/model/language-definition.md 1,897 1,897 変更なし
rules/model/layer-definition.md 1,236 1,120 −116
rules/model/axis-separation.md 1,228 1,228 変更なし
計 12,068 10,188 −1,880

外した文と行き先

  • 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 Configuration Scope の括弧書きの例示と Character-name-prefix discipline does not apply → docs/1.-Model.md 新設の「Character_Instance の設定の有無」。本文には「接頭辞なしの base assistant、model 層のほかのルールはそのまま効く」が残る
  • 同 Character Recovery の 6 行: Orientation = ... → Character Output の binding scope(写し)/first human-facing surface と remains subordinate ... → axis-separation.md の Therefore の 2 行(写し)/recovery target for dialogue drift → 直下の手順(写し)/runtime surface of L1 ... under the Lilayer Model → docs/1.-Model.md キャラクター復帰/Lilayer Model stabilizes ... → docs/1.-Model.md レイヤー構造
  • 同 Multi-Character の Context separation model for Character Instances. と Distinct from Pair Review Execution Model (...) → docs/1.-Model.md As-if 評価フェーズ。本文に Activation: always during dialogue. Not task-triggered. が残る
  • liplus-coding-rule.md Application-moment sentence の「前の一文に対する測定は持ち越さない」→ 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 適用の瞬間の一文(既に同内容あり)。間の It is not a gate itself and displaces none は禁止として本文に残した(brake 1 round 1 の A3 / B1)
  • 同 Source Language の Rationale(2 軸と overdetermined)→ wiki 判断記録と docs/1.-Model.md 新設の「ソース言語とソースファイル形式」。1 周目がこれを残した理由(memory-entry-format.md Language からの参照)は refactor(rules): distill reasoning out of evolution and task rule bodies [rules/evolution, rules/task] #2112 で既に消えていた
  • 同 Source File Format の CamelCase-derived / Option Y / for GFM safety → docs/K.-Source-File-Format.md(既に同内容あり)
  • 同 Out of Scope 節(3 行とも常時ロード面の正本を指すだけ)→ 正本は Workspace_Language_Contract / rules/operations/operations.md / rules/evolution/memory-entry-format.md。所在の一覧は docs/1.-Model.md ソース言語とソースファイル形式
  • layer-definition.md Under Lilayer Model, each layer stabilizes ... → docs/1.-Model.md レイヤー構造(既に同内容あり)

残した候補と理由

  • Body States Behavior 全体: Li+ ソースの一文を書く・残す・剥ぐたびに使う規律。順序の段落(174 B)だけを移しても名指しの一文と引き換えで利得がほぼ消え、ツール跳躍が 1 増える。新しい skill は description が常時ロードへ戻る。L2 の skill へ寄せると、その文の更新の関門が変わる
  • Application-moment sentence 第 1 段落と書き直しの 1 行: 追加のたびに来る。書き直しの扱いは測定を起こさないレビュー経路でも効く
  • Source File Format の 1 文: 見出しを書くたびに使う
  • Purpose Declaration: 1 周目(refactor(model): distill reasoning out of rules/model bodies [rules/model, docs] #2115)の却下を維持
  • Character Identity の Always Character Platform is primary interface ... と Base model = substrate, not speaker.: wiki prompt-as-emotion-vector-controller が逐語で引用。Character Output の Base model does not participate in dialogue. は禁止の並びの 1 行として残した
  • Character Configuration Scope(issue 制約 5): absolute.md と重なるが、同ファイルは別 issue で同時に編集中なので、相手側の写しに寄りかからない
  • language-definition.md 全体: 定義の正本で、5 本の中に写しが無い。Purpose: reproduce judgment ... と Fits the retrieval surface as judgment-history. は理由とも基準とも読める
  • layer-definition.md の L5 の括弧書き(置き場所を決める)、Attachment chain = dependency order only. と番号の行(対象が違う)
  • axis-separation.md 全体: Layer relation は Cross-layer rule より広い条件(層をまたぐ矛盾すべて)と「同じプログラムの異なる面」を持ち、写しではない(brake 1 round 1 の A1 / A2 で戻した)。Therefore 4 行は L1 内の順序と Always Character Platform の定義、Out of integration order は Li+update.md の行が起こす条件を持つ

書き換えた行

Character の未設定時、書き直しとゲートの行、Source File Format は残した文の言い直しで、行いは元のまま。新しい行いを足す行は無い。

brake 1

round 1 の指摘 A1・A2・A3/B1 をすべて採用した(裁定は PR スレッドのコメント)。

判断記録

wiki l1-five-rules-cut-inner-duplicates-keep-write-discipline と docs/Decision-Structure.md の索引行。

version type: patch(ガバナンス文面の整理、利用者・システムから観測できる影響なし)

🤖 Generated with Claude Code

https://claude.ai/code/session_01DbKrCn6bhEx36j63F8fTZw

…ys-on L1 rules [rules/model, docs]

Second pass over five always-on L1 rules (character, liplus-coding-rule,
language-definition, layer-definition, axis-separation). Only three kinds
of text are removed: copies of behavior another always-on line already
carries, positioning prose, and a rationale whose citing reference is gone.
The Li+ source writing disciplines (Body States Behavior,
Application-moment sentence, Source File Format) stay always-on; no skill
is added or extended.

常時ロードの L1 ルール 5 本から、常時ロード面の内側にある写しと位置づけの説明、参照が消えて残す理由の無くなった根拠の文を外し、合計 12,068 B を 10,002 B にした。
character.md では Character Recovery の位置づけ 6 行、Character Identity の写し 2 行、未設定時の例示と言い直し、Multi-Character の呼び名とペアレビューとの区別を外した。
liplus-coding-rule.md では Application-moment sentence の測定の持ち越し(skill の Probe specification が持つ)と位置づけの段落、Source Language の Rationale、Source File Format の呼び名と理由、Out of Scope 節を外した。
axis-separation.md の Layer relation は layer-definition.md の Cross-layer rule への 1 行にし、Cross-layer rule の条件を「層をまたぐ矛盾」まで広げて両方の行いを保った。Lilayer Model の説明文は docs に任せた。
language-definition.md は変えていない。docs/1.-Model.md と docs/4.-Operations.md を追随させ、docs/Decision-Structure.md に判断記録 l1-five-rules-cut-inner-duplicates-keep-write-discipline の索引行を足した。

Refs #2151

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbKrCn6bhEx36j63F8fTZw
@liplus-lin-lay

Copy link
Copy Markdown
Member Author

Adjudicate each finding below by checking its literal against the source at the revision its path:line is given at, and adopt or drop it on that. No count enters that judgment, and no axis is exempt from it: the fixed impression-literal axis is adjudicated the same way, on the flagged phrase against the removal test its own spec fixes (skills/evolution-impression-literal-detection/SKILL.md), and it fixes no threshold.

対象: PR #2154 / SHA a96cd81 / 紐づく issue #2151

Axis A — issue requirement

A1. 制約 1「挙動は変えない」と layer-definition.md の条件文の書き換え

  • issue 本文: 「1. 挙動は変えない。読んだ者の行動が変わる文(禁止を含む)は常時ロードに残す。」
  • diff: rules/model/layer-definition.md:28-29(SHA 時点)
    • 削除: if a later layer appears to override an earlier one:
    • 追加: on a cross-layer contradiction, a later layer appearing to override an earlier one included:
  • 食い違い: 「後の層が前の層を上書きするように見えるとき」だけが条件だった節が、「層をまたぐ矛盾すべて」へ広がった。発火条件が変わっており、挙動不変の制約に合わない。PR 本文は「条件を広げた」と述べているが、issue 側に条件を広げてよいとする文は無い(制約 1 と 8 は削る方向のみ)。axis-separation.md 側の cross-layer contradiction = structure error を寄せた結果だと読めるが、寄せ先の条件を書き換えることは制約 1 の例外にならない。

A2. 制約 1 と axis-separation.md Layer relation の 3 行削除

  • issue 本文: 制約 1(上記)。
  • diff: rules/model/axis-separation.md:16。削除した different layers are different surfaces over the same program の「同じプログラムの異なる面」という要素が、寄せ先 layer-definition.md の Cross-layer rule(layers differ by role and visible surface)には無い。docs/1.-Model.md:327 は「同じプログラムの異なる面」を Cross-layer rule が正本として持つと書いているが、layer-definition.md にその語句は無い(SHA 時点で grep 済み)。
  • 併せて、置換後の Layer relation and attachment chain = layer-definition.md (Cross-layer rule) は、attachment chain を Cross-layer rule の括弧で名指すが、attachment chain は layer-definition.md の別ブロック(Attachment chain:)にある。指す先の名がずれている。

A3. 制約 1 と Application-moment sentence の Sits on the write axis... 削除

  • issue 本文: 制約 1、および「Body States Behavior / Application-moment sentence / Source File Format は(候補)」
  • diff: rules/model/liplus-coding-rule.md:47-49 付近で削除した Sits on the write axis, ahead of every gate. It is not a gate itself and displaces none: it fixes what the later gate is aimed at.
  • 食い違い: It is not a gate itself and displaces none は、読んだ者がこの一文をゲートとして走らせない、他のゲートの代わりにしない、という行動を定める。Body States Behavior の Test(読んだ者の行動が変わるか)では behavior 側に寄る。PR 本文は同じ節を「書いている最中に効く規律として常時ロードに残した」と言うが、この一文は常時ロードから外れ、docs/1.-Model.md へ移っただけである。

一致を確認したもの(1 行)

  • 制約 2(Source Language Rationale の移設先 wiki l1-five-rules-cut-inner-duplicates-keep-write-discipline は HTTP 200 で存在、docs/Decision-Structure.md:258 に索引あり)、制約 4(Out of Scope / Layer relation を節名で引く面は docs 内の言及のみで、docs/4.-Operations.md:129 は追随済み)、制約 5(base assistant・subagent 未設定の行は character.md に残存)、制約 6(対象外の L1 8 本・adapter・model-* skill に diff なし)、language-definition.md 変更なし(制約 8)、Probe specification 側に持ち越し禁止の文あり(skills/evolution-rule-effect-measurement/SKILL.md:58)。読んだもの: issue refactor(model): move non-behavior and moment-scoped text out of five always-on L1 rules #2151 本文、PR 本文、全 diff 7 ファイル。

Axis B — rule violation

B1. Body States Behavior の Test に対する A3 の行

  • ルール: rules/model/liplus-coding-rule.md Body States Behavior「Test: does the conduct of whoever reads the sentence change? Changes ... -> behavior, keep it in the body.」
  • 行: 削除された It is not a gate itself and displaces none(上記 A3)。行動を変える文(禁止形を含む)を本文から外しており、この節の literal が許さない。

違反なしと確認したもの(1 行)

  • 追加・変更された英語 6 行(axis-separation 1、character 2、layer-definition 1、liplus-coding-rule 2)は、Source Language(英語)、Source File Format(タグ構造は維持)に適合。docs 側の追加は実装と同一 PR(operations.md Docs update 規則)に載っている。(#2151) は docs 本文のみで、instruction として読み込まれる面には入っていない。

固定軸 — impression-literal detection

旗なし。対象ドラフト(PR #2154)の追加・変更された Li+ ソース行 6 行(rules/model/ 4 ファイルのみ。docs は対象面外)を掃いたが、除去すると挙動が変わる行ばかりだった。

liplus-lin-lay and others added 2 commits October 1, 2026 02:37
PR #2153(L1 の残り 8 本)のマージに追随し、docs/Decision-Structure.md の索引末尾で両方の行を残した。
Refs #2151

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbKrCn6bhEx36j63F8fTZw
…on [rules/model, docs]

Brake 1 round 1 on PR #2154: findings A1, A2 and A3/B1 accepted.

A1/A2: axis-separation.md Layer relation is restored whole and the
Cross-layer rule condition in layer-definition.md is back to its original
text. The three lines were not a copy: "cross-layer contradiction" is a
wider condition than "a later layer appears to override an earlier one",
and "over the same program" is absent from Cross-layer rule. Widening the
target condition changed where the rule fires.

A3/B1: "is not a gate itself and displaces none" is a prohibition on
substituting the sentence for a gate, so it returns to the
Application-moment sentence body. Only the timing and aim restatements
stay out.

ブレーキ 1 第 1 ラウンドの A1・A2・A3/B1 を採用し、axis-separation.md を元に戻し、Cross-layer rule の条件を元の文に戻し、「ゲートではなく、どのゲートも置き換えない」を本文に戻した。
docs/1.-Model.md と docs/4.-Operations.md、docs/Decision-Structure.md の索引行、wiki の判断記録を追随させた。5 本合計は 12,068 B → 10,188 B。

Refs #2151

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbKrCn6bhEx36j63F8fTZw
@liplus-lin-lay

Copy link
Copy Markdown
Member Author

著者の裁定(brake 1 round 1、対象 SHA a96cd81 → 修正 d439608)

その前に origin/main(#2153)をマージした(ada392a)。docs/Decision-Structure.md の索引末尾は両方の行を残した。

  • A1 採用。 rules/model/layer-definition.md の Cross-layer rule の条件を元の if a later layer appears to override an earlier one: に戻した。寄せ先の条件を広げると発火条件が変わる、という指摘は literal どおり。
  • A2 採用。 rules/model/axis-separation.md を main と同じ内容に戻した(Layer relation の 3 行と attachment chain の参照)。different layers are different surfaces over the same program の「同じプログラムの」は Cross-layer rule に無く、cross-layer contradiction = structure error も寄せ先より広い条件を持つので、写しではなかった。1 行の名指しは消えたので、名指しの名のずれもなくなった。docs/1.-Model.md の 2 か所の注記と docs/4.-Operations.md の参照先の書き換えも戻した。
  • A3 / B1 採用。 It is not a gate itself and displaces none は、この一文をゲートの代わりにしないという禁止として働く。rules/model/liplus-coding-rule.md Application-moment sentence に The sentence is not a gate itself and displaces none. として戻した(直前の文が「書き直した一文」なので、主語を It から The sentence にした)。外したままなのは Sits on the write axis, ahead of every gate. と it fixes what the later gate is aimed at の 2 句だけ。前者の時点(ゲートの手前)は第 1 段落の Before a line or section enters Li+ source と Fix the sentence first, then let whatever measures or reviews the addition be raised from it が持ち、後者の狙いの固定も同じ文が持つ。

5 本合計は 12,068 B → 10,188 B(−1,880 B)になった。character.md 3,236、liplus-coding-rule.md 2,707、language-definition.md 1,897(変更なし)、layer-definition.md 1,120、axis-separation.md 1,228(変更なし)。索引行と wiki の判断記録 l1-five-rules-cut-inner-duplicates-keep-write-discipline もこの結果に合わせた。

@liplus-lin-lay

Copy link
Copy Markdown
Member Author

Adjudicate each finding below by checking its literal against the source at the revision its path:line is given at, and adopt or drop it on that. No count enters that judgment, and no axis is exempt from it: the fixed impression-literal axis is adjudicated the same way, on the flagged phrase against the removal test its own spec fixes (skills/evolution-impression-literal-detection/SKILL.md), and it fixes no threshold.

対象: PR #2154 / SHA d439608 / 紐づく issue #2151(brake 1 round 2。round 1 の A1〜A3・B1 は著者が採用し修正済みのため再掲しない)

Axis A — issue requirement

所見なし。issue #2151 本文(目的・制約 1〜8・対象ファイル・完了条件)と、SHA 時点の全 diff(docs 3 ファイル、rules/model/ 3 ファイル)を読み、一致を確認した。

  • 制約 1・5: character.md の未設定時の行(base assistant、接頭辞なし)と subagent 未設定の行は残存。layer-definition.md は削除のみで Cross-layer rule の条件は main と同一、axis-separation.md は main と同一。
  • 制約 6・8: 対象外の L1 8 本・adapter・model-* skill に diff なし。language-definition.md・axis-separation.md は変更なし。
  • 制約 7: SHA 時点の wc -c(CR 除去)は character 3,236 / liplus-coding-rule 2,707 / language-definition 1,897 / layer-definition 1,120 / axis-separation 1,228 で、PR 本文の表と一致。

Axis B — rule violation

所見なし。追加・変更された Li+ ソースの英語 4 行(character.md 2、liplus-coding-rule.md 2)は Source Language(英語)、Source File Format(タグ構造維持)、Body States Behavior の Test に適合(削除した Distinct from Pair Review Execution Model は直後の Not task-triggered. が行いを保つ)。docs の追記は実装と同一 PR で、(#2151) は docs 本文のみ。Out of Scope / Option Y / CamelCase を名指す面は docs のみで、参照は解決している。

固定軸 — impression-literal detection

旗なし。対象ドラフト(PR #2154、SHA d439608)の追加・変更された Li+ ソース行 4 行(rules/model/character.md 2、rules/model/liplus-coding-rule.md 2)を掃いたが、いずれも除去すると挙動が変わる。

@liplus-lin-lay liplus-lin-lay left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

自己レビュー(親、semi_auto)

受け入れ条件: issue #2151 の制約 1〜8 と diff を突き合わせた。挙動を決める文と禁止は残り、外したのは写し・位置づけ・参照の切れた理由づけだけ。行き先は PR 本文に 1 文ずつある。対象外の L1 8 本、adapter、model-* skill の本文には diff がない。5 本合計は 12,068 → 10,188 B(−1,880 B)。

brake 1: 2 巡(各巡 N=1、sonnet / low)。1 巡目は 4 件(A1・A2・A3、A3 と同じ箇所を指す B1)で、作業役がすべて採用して直した。2 巡目は全軸で所見なし。いずれも採用が妥当で、却下されたまま残る指摘はない。2 巡目の対象 SHA d439608 は origin/main(#2153)の取り込み後のもの。

rule effect measurement: 未計測。このセッションでは測定を回しておらず、主な差分が削除と写しの除去であることを記録しておく。

範囲外: 作業役が見つけた Character Output の古い一文(定義場所の記述)は、別 issue #2155 に記録した。

ワークスペース側の後処理: マージ後にセッションごとの clone を消し、観察エントリを付ける。issue #2151 の完了条件(Post-L1-Merge Runtime Observation)は、変更後のルールを読み込んだ最初のセッションで行う。ワークスペースは tag 同期なので、ここでは先送りを記録し、issue は開け直す。

version type: patch(観測できる影響のないガバナンス文面の整理)。次はマージ。

@liplus-lin-lay
liplus-lin-lay merged commit a7a90bf into main Sep 30, 2026
2 checks passed
@liplus-lin-lay
liplus-lin-lay deleted the 2151-l1-five-rules-distill branch September 30, 2026 17:49
@liplus-lin-lay

Copy link
Copy Markdown
Member Author

観察エントリ settle: 2026-10-01 build-2026-10-01.5 で character.md の発火を観察(訂正の評価と自己修正が対話に現れ、両面でトーン維持)。 この変更に対する miss / 人の訂正 / revert はなし。

— Claude Lay

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(model): move non-behavior and moment-scoped text out of five always-on L1 rules

1 participant