Repository navigation
cold start rule carries behavior only
常時ロードされる rules/evolution/cold-start-synthesis.md の本文から、rules/model/liplus-coding-rule.md Body States Behavior の判別線(読んだ者の行いが変わるか)でフックの実装仕様を外したとき、何が本文に残り、外した仕様はどこが保持するか。
本文は、エージェントが「どの場面で何をするか・何を禁じるか」を決める文だけを持つ。フックの出力仕様は docs/2.-Evolution.md Cold-start Synthesis 節の「フックの出力契約」(と、既存の docs/6.-Adapter.md on-session-start.sh 節)が持つ。
PR #2119(issue #2118)で本文 10,822 B → 5,671 B(−5,151 B、−47.6%)。フックが anchor として出す preamble(Scope = Li+ state, ... の行まで)で変えたのは 1 か所だけで、Operational criterion の no-new-material marker に出力の実際の文言(No new orientation material since last session)を添えた。marker の定義は移した Hook Emission Contract 節にあったため、常駐面で語と出力の 1 行を結び付けるために残した(brake 1 round 3 の R3-3)。見出し・semantic tag・frontmatter も不変。本文にポインタは置かない(judgment-record-pointer-requirement-dropped)。
判別線を節ごとに当てた結果は次のとおり。
-
Hook Emission Contract節(3,290 B)は全体が「フックの出力仕様」であり、冒頭にRead on demand; not applied at the step 3 moment.と自分で書いていた。読んだ者の行いを変える文がないので、節ごと docs へ移した。 - 4 つの Surface 節は、フック実装側の記述だけを外し、surface が表示されたときの振る舞いを残した。
| 外した記述 | 移し先 |
|---|---|
Hook Emission Contract の anchor 切り出し、startup の 3 状態、非 startup matcher(fork を含む)、last_emit_at 読み戻し行、no-new-material marker の抑止 |
docs/2.-Evolution.md Cold-start Synthesis 節(既存の 3 状態表と resume / clear / compact の段落) |
Hook Emission Contract の fail-safe の集合(PowerShell port では sha256 不在と node 不在が発火しない差を含む)、パーティション |
docs/2.-Evolution.md「フックの出力契約」、docs/6.-Adapter.md(fail-safe 動作、パーティション分割 #1811)、cold-start-state-partitioned-by-agent-key
|
各 Surface 節の Material gathering and concrete surfacing logic belong to the adapter cold-start path
|
docs/2.-Evolution.md「フックの出力契約」冒頭(素材の収集と表示はアダプタの選択で、規則は固定しない) |
各 Surface 節の Silent skip when ...、section key / diff-only の扱い |
docs/2.-Evolution.md「フックの出力契約」の surface ごとの表 |
| Tally 節の「tally は memory と独立に解決する(memory dir が解決しない session でも tally に届く)」 | 同表の promotion tally expiry の行、docs/6.-Adapter.md
|
Clone 節の LI_PLUS_UPDATE_STATUS に載せないこと |
同表の clone branch fetch の行、evolution-task-rule-bodies-carry-behavior-only(載せない理由) |
Dependency 節の GraphQL で読むこと、走査は open issue 1 ページ分で超過時は emission に書くこと、section key(open_blocked_by_open_issues)と diff-only 集合 |
同表の dependency ordering の行、docs/6.-Adapter.md
|
- Observation:
observation due/observation overdue, human judgment neededの条件、両方成立なら overdue のみ、Surfacing is observation, not auto-action、verdict 遷移は format spec の lifecycle を通ること。 - Tally:
tally expiry reached/overdueの条件、overdue のみ、emission が解決したパスと occurrence 数を載せること(rules/evolution/promotion-judgment.mdTally がこのパス提示を引いている)、verdict 欄を持たないので残っている cluster が未判定の印であり毎 session 再 surface されること、閾値判定は Threshold Rules に従い actor と firing moment が surfacing であること。 - Clone:
clone cannot fetch branchesの条件、refspec 述語の読み方(src 側だけを読む、--single-branchは該当しない、dst 側だけのrefs/heads/と^<pattern>は満たさない。Li+update.md手順 2a で agent 自身が clone の refspec を判定するときにも使う読み方なので、brake 1 round 1 の指摘 X-1 を受けて本文に戻した)、state 駆動、条件が消えた瞬間に emission が止まりverdict_state/expires/ 除去手順を持たないこと(不在は設計であり足さない)、actor と firing moment、人に条件を名指すだけで修理は go-sign を待つこと、hook-surfaced items = silentがこの面を黙らせないこと。 - Dependency: open な blocker を名指すこと(別リポジトリなら
<owner>/<repo>#<n>)、closed の blocker は数えないこと、書かれた関係だけを読み親子構造から辺を導出せず欠けた辺を補修しないこと、どの issue に着手するかはセッションを持つ agent の判断であること。
Clone 節の見出しと state-driven / verdict_state / expires は、tests/test_clone_refspec_branch_check.py が固定しているため残した(lifecycle 不在の宣言であり、振る舞いでもある)。
- 付け替えた(移した内容を指していたもの): フック 3 本のコメント(Hook Emission Contract、anchor cut)、
adapter/claude/hooks-settings.md、adapter/codex/hooks-config.md、Li+update.md(LI_PLUS_UPDATE_STATUSに載せない理由)、docs/2.-Evolution.md/docs/6.-Adapter.md/docs/C.-Update.md/docs/L.-Hop-Count-Instrument.md、tests の docstring。cold-start-state-partitioned-by-agent-keyの同節への参照も本 entry と同時に付け替えた。 - 付け替えなかった:
rules/evolution/memory-entry-format.md/promotion-judgment.md/rules/operations/main-agent-procedures.md/docs/3.-Task.mdから Surface 節を名指す参照。それらの節は本文に残り、参照が指す振る舞い(actor、firing moment、パス提示、書かれた関係だけを読むこと)も本文に残っている。
-
depends on
source-body-behavior-only-reasoning-relocates— 判別線と移設の規則そのもの -
depends on
judgment-record-pointer-requirement-dropped— 本文にポインタを残さない -
relates to
evolution-task-rule-bodies-carry-behavior-only— 同じファイルに 1 周目(#2109)で当てた理由の剥ぎ取り。本 entry は 2 周目で、対象が理由ではなくフックの実装仕様である点が違う -
relates to
cold-start-state-partitioned-by-agent-key— パーティションと fail-safe の判断。移し先の参照を本 entry と同時に更新した
issue #2118。常時ロードされる rules/ と adapter/claude/CLAUDE.md の合計は 146,129 B(build-2026-09-29.3)。ほぼ同文の重複を整理しても全体の約 5%(スキル本体との間では約 2.5%)で効果が小さいため、先にこちらを取った。フックは rules/evolution/cold-start-synthesis.md の冒頭(H1 から最初の H2 まで)だけを取り出して起動時に出し、H2 以降は本文に置かれてもエージェントが適用瞬間に使わないフック自身の仕様であった(adapter/claude/hooks/on-session-start.sh の anchor 切り出しのコメント)。
- 振る舞いは変えない。移すのはフックの実装仕様だけで、エージェントが surface を受け取ったときに何をするか・何を禁じるかは本文に残す。
- 移し先は
docs/内に置く。旧節への名指し参照は移した内容を指していたものをすべて付け替え、grep で残りを確認する。 -
tests/の期待(assert)は変えない。テストが固定している節見出しと文字列は本文側に保つ。 - 本文の変更は
rules/evolution/cold-start-synthesis.mdに限る。preamble(フックが anchor として出す部分)は、移した節にあった定義を常駐面に残すための追記(no-new-material marker に出力の文言を添えた 1 か所)を除いて変えない。
採用: Hook Emission Contract 節を全体移設し、4 つの Surface 節はフック実装側の記述だけを外して振る舞いを残す。移し先は docs/2.-Evolution.md Cold-start Synthesis 節の「フックの出力契約」に一本化し、docs/6.-Adapter.md が既に持つ詳細は重ねて書かない。
却下: 4 つの Surface 節も丸ごと docs へ移す案。actor / firing moment / 人に条件を名指すだけで修理しないこと / lifecycle を足さないことは、surface が表示された場面でエージェントが従う振る舞いであり、tests/test_clone_refspec_branch_check.py も Clone 節の文字列を固定している。
この Wiki は、Li+ に基づく開発・運用を支えるための情報整理空間です。
数字で始まるページは、 Li+プログラムの各レイヤーの仕様を定義するページです。
- 要求(何を満たすか)と仕様(どう振る舞うか)を一体として記述する
- 実装前に作成または更新する
- issue群から採用された要件を集約する
これらのページは 安定性と一貫性を重視して管理されます。
アルファベットで始まるページは、 Li+の構想・設定・導入手順などの参照用ページです。
- 設計思想・背景
- 設定リファレンス・インストール手順
これらのページは 必要に応じて更新・拡張されます。
リポジトリ内の rules/**/*.md(L1–L4 の常時ロード分、subdir 含む)、skills/**/SKILL.md(トリガー起動分)、adapter/claude/CLAUDE.md、adapter/claude/hooks-settings.md、adapter/claude/hooks/*.sh、adapter/codex/AGENTS.md、およびルート直下の Li+config.md、Li+update.md は、
AIやランタイムが直接読む実行用プログラム / 定義ファイルです。
-
docs/は人間向けの仕様書・要求仕様・手順書 -
rules/,skills/および adapter / update は実行時に読み込まれる本体
両者は対応しているが、役割は同じではない。
Home | 1. Model | 2. Evolution | 3. Task | 4. Operations | A. Concept
要求仕様書 (1-6)
参考文書 (A-L)
- A. Concept
- B. Configuration
- C. Update
- D. Installation
- DiDD(対話駆動開発)
- E. Li+ language
- F. Behavior-First
- G. Sheepdog Engineering
- H. Roles and Evaluation
- K. Source File Format
- L. Hop Count Instrument
判断構造
- Decision Structure
- layer reorg rationale
- github app user-to-server token expiration
- sheepdog engineering concept
- prerelease tag recovery procedure
- release flip drift patterns
- Li+ long-term vision (feedback only)
- Master role as client-architect
- current architecture as concession
- Li+ license Apache-2.0 rationale
- Character_Instance evolution history
- prompt as emotion vector controller
- agentic-search five-phase refactor
- Character_Instance output-styles migration
- Li+ lightening L1 gate override
- subagent state-machine label mechanism
- LSP integration out of scope
- Character_Instance opt-in and surface scope
- parallel-subagent-eval three-axis decomposition
- parallel-subagent-eval cost acceptance
- parallel-subagent-eval model floor
- release version rule always-on relocation
- bootstrap walkthrough skip and gh install relocation
- wiki sync sidebar integrity check
- decision structure rename rationale
- decision structure industry positioning
- subtractive structural beauty framing
- Li+ authorship is collaborative
- Li+ design intent vs current limit
- Li+ history is empirical
- Master verification at runtime not spec
- rules cache fetch address table
- dialogue-evaluator scoring redesign
- Li+ always-on footprint is load-bearing
- DiDD umbrella naming
- milestone subsystem removal
- L1 brake 2 root-criteria evaluator
- Hook-driven gate trigger
- ゲート適用漏れは強制より先に測る
- dynamic-workflows non-adoption
- ACE context-engineering non-adoption
- memory GraphRAG SQLite exploration
- Li+ context-rot tension
- Li+ structure as retrieval surface
- 常時ロード分の重複を削る向き
- Li+ evaluation criterion
- Li+ self-evolution lineage
- Li+ judgment-learning telos
- Sheepdog Engineering publish intent
- Implementation always delegated
- brake evaluator baseline integrity
- brake1 single-round cap
- brake1 の再実行可否は監査内容で決める
- brake 指摘の裁定を再開した著者が持つ
- brake1 の発火条件を基準で閉じる
- skill の発火条件は description 内に置く
- subagent parallel-width cap
- brake1 operational-copy target-conditional
- brake1 findings は親を経由する
- brake1 の per-draft 軸を 2 本に固定する
- brake 2 の DEVIATION を人間が上書きする
- wiki sync code-notation strip
- wiki sync drift-targeted mirror
- decision structure writer surface activation
- decision structure state-form edge binding
- Neuron Graph RAG integrated prototype
- issue 完了条件フィールドの射程
- body 節と description の被覆ずれの解き方
- グラフエンジニアリング非採用
- Li+ の配布形式は GitHub 直配布
- 配布される source に config の解決値を書かない
- ルールは基準を持ち、来歴は git に置く
- 人間と AI の関係条項を absolute.md に置く
- 来歴を預けた retrieval 面が実際に答えるか
- 存在側の欠陥は空欄ラベルの可視性に届かない
- brake 2 の判定対象は変更の内容
- エージェント定義の判定基準を sentinel 区画で所有
- brake 2 を廃し L1 のゲートを brake 1 へ一本化
- 多セッションが効くのは入力が変わるとき
- source 本文は振る舞いのみ、理由は移設
- parallel-agent-eval 本文は振る舞いのみ
- agentic-search 蒸留版は full と同等(実測)
- 読みの除去テストが通した削除を実測が差し戻した
- brake1 の評価者数の床を N=1 へ
- Judgment record ポインタ要件を撤廃
- brake1 を上限 3 往復の収束ループへ
- 受け皿より先に縮んだ検出幅の窓を閉じる
- issue constraints の「対象ではない」は宣言
- クローン同一性は remote で解決
- tally は機構の名前の下に置く
- config 値比較は厳格に、外れた値は名指し
- webhook 到着通知の消去は確認を伴う
- 検索性能比較コーパスは既存リポジトリ内の path で隔離する
- MSYS のパス変換は argv だけに効く
- 観測不能な主張は書き手を替えても記録にならない
- parallel-agent-eval の 1 周目の跡に残っていたのは再掲
- 実装委譲エージェントに定義ファイルを与え effort を固定
- cold-start diff-only 状態は agent key でパーティション分割
- 観測不能の宣告はホストの母集団に対する主張
- 検出器は到達可能な位置にあって初めて検出器である
- ランタイムの rules はタグへ解決する
- 記録面の除外は読み直しで捕まる行にだけ成り立つ
- 再開プロンプトの注入項目は基準で閉じる
- 委譲プロンプトが運ぶのは境界であって手順ではない
- 規則の効きの実測の各条件は観測された失敗の上に置かれている
- parallel-agent-eval は蒸留で約 5,340 トークン、残りの超過は受容
- brake 1 の往復上限を撤廃し、同じ指摘の再発を人間へ上げる
- rules/evolution と rules/task の本文は振る舞いのみ
- rules/operations と adapter の本文は振る舞いのみ
- rules/model(L1)の本文は振る舞いのみ
- main-agent-procedures の常時ロード本文はメインの運用場面で行いを決める文のみ
- cold-start-synthesis の本文は振る舞いのみ、フックの仕様は docs へ
- initiator-autonomy の常時ロード本文は振る舞いのみ、tests の散文規則は skill へ
- operations.md の常時ロード本文は振る舞いのみ、索引と label 辞書の写しは持たない
- memory-entry-format.md の常時ロード本文は書式と保守のみ、observation 手順は skill へ
- promotion-judgment の常時ロード本文は振る舞いのみ、軸の関係の説明は docs へ
- execution-mode.md の常時ロード本文は、マトリクスを言い直さず、他の常時ロード面の写しも持たない
- task.md の常時ロード本文は issue とラベルの行いだけを持ち、写しと層の説明は持たない
- main-agent-procedures の場面に限られる手順は、名指しが届く skill へ
- evolution.md の常時ロード本文は振る舞いのみ、レイヤーの位置づけと他面の写しは持たない
- operations.md の場面に限られる節は、名指しが届く skill へ
- CLAUDE.md の常時ロード本文は振る舞いのみ、位置づけ・読込の説明・常時ロード面の写しは持たない
- initiator-autonomy の場面に限られる記述は、brake 1 の skill へ
- skill description の詰めは、場面を狭めない句だけを切る
- L1 の 5 本の 2 周目は内側の写しと位置づけの説明を外し、書く規律は常時ロードに残す
- subtractive-structural-beauty と trigger-check-gate の常時ロード本文は振る舞いのみ、言い直し・位置づけ・他所の再掲は持たない
- absolute.md の常時ロード本文は振る舞いのみ、Name prefix scope の言い直し・位置づけは持たない
- サブエージェント起動の着地点の目安と数値の出典