tally placed under the mechanism name not an adapter home - Liplus-Project/liplus-language GitHub Wiki
promotion tally を memory の外の共有面へ出すとき、どこに置くか。ホスト上には ~/.claude と ~/.codex がいずれも実在し、どちらもアダプタが所有している。
~/.liplus/tally/promotion_tally.md(2026-09-21、Master go-sign。「とりあえず」として承認)。
**アダプタの家には置かない。**採った理由はパスの都合ではなく、禁止(手続き)を名前(構造)へ置き換えたことである。
~/.claude に置く案でも、運用としては同じ結果を出せた。ただしその案の防御は本文に書いた禁止であり、禁止は将来それを読んで従う人を要求する。rules/model/subtractive-structural-beauty.md Application notes の procedure-to-structure rider が置き換えを求めるのは、まさにこの形である。
.liplus は**引力そのものを立てない。**どちらのアダプタから見ても自分の家ではないため、「自分の側に持ってくるのが自然」という読みが成立しない。従う人を要求しない。
**名前と実体も合う。**tally を数えているのは Li+ の床であって、Claude でも codex でもない。.claude に置くと、ファイルの所在がアダプタ所有だと言い続けることになる。移設の purpose が「置き場が性質と合っていない」である以上、直した先で再び合っていないのは避ける。命名は既存語彙の内側にある(LI_PLUS_* / liplus-language / Li+config.md)。
床が 2 つに分かれると、promotion judgment の閾値(3d で 3 件)が機能しない。2 件 + 2 件は永遠に 3 件にならない。
2026-09-21 時点の実データがそれを示している。9 クラスタのうち床に届いているのは 2 本で、その 2 本が両方とも 2 セッションにまたがる(混入 4 件 = Lin 2 / Lay 1 / 共同 1、道具の粒度 3 件 = Lin 1 / Lay 2)。片方だけのクラスタは全て 1 件。分ければ床を越えているもの全てが消える。
そして**割れたことは何も検出しない。**同日に測ったハードリンク破断(Write / Edit ツールが nlink を 2→1 に落とし、以後も両方が読み書きでき、エラーは出ない)と同じ形である。
**アダプタごとに別の tally ファイルを与えてはならない。**名前の据わり・所有感・アダプタ独立性のいずれも、この分割を正当化しない。
構造が引力を消したことと、禁止を消すことは別である。「アダプタごとに持つほうが自然では」という提案は将来出るため、そのときの参照先として残す。消すと次に同じ議論を一からやることになる。
規則(rules/evolution/promotion-judgment.md)には**具体パスを書かない。**codex は ~/.claude/projects/<slug>/memory を持たず(adapter/codex/hooks/on-session-start.ps1:414 / on-session-start.sh:341)、state は $PROJECT_ROOT/.codex/state でワークスペース内にある。書くのは要件のみ ——
tally は memory の外に置く。同一ホスト上では、アダプタが異なっても同一の 1 ファイルに解決すること。
「同一に解決できる場所」ではなく「同一に解決すること」と書く。前者は「役割が同等」と読め、codex が自分の床を別に持つ形が黙って成立する。
-
depends on
workspace-clone-identity-resolved-by-remote— ワークスペース同一性の解決軸。本判断はその外側、ホスト単位の共有面を置く側に立つ
セッションごとにワークスペースを分ける案(issue #2018)から出た。memory はワークスペースパスのスラッグで分かれるため分割されるが、tally だけは性質が異なる —— topic entry / 自己評価ログ / post-merge 観測ログは各自の記録で分かれているのが正しく、tally は共同の計数面である。同じ棚に在るのは歴史的経緯であって性質から来ていない。
- memory 側のフォールバック 3 段(自分スラッグ →
PROJECT_ROOT/memory→ glob 総当たり)には触らない。番人(memory_slug_encloses_project、#1796)も短絡も、memory の他のファイルに対しては正しく働いている - ハードリンクによる共有は採らない(Write / Edit ツールが切り、切れても黙っている)
- ファイル移動と hook 対応は同一の作業単位で行う。hook の cold-start surface が閾値判断の発火時点そのものであり(
rules/evolution/promotion-judgment.mdThreshold Rules:Firing moment = that surfacing.)、見失うとファイルは在るのに誰も判断しないまま溜まる
採用 = ~/.liplus/tally/promotion_tally.md(暫定)。
却下 = ~/.claude/tally/ および ~/.codex/tally/ —— いずれもアダプタの家であり、もう一方から見た引力を立てる。防御が禁止になり、従う人を要求する。
- issue #2018
spec(memory): move the promotion tally out of memory onto a shared counting surface -
rules/evolution/promotion-judgment.mdTally / Threshold Rules -
rules/model/subtractive-structural-beauty.mdApplication notes(procedure-to-structure rider)