#10073: [MICRO] 2026-09-24: 返金/refund/返金保証の話題に入る前に統合1枚 docs/primal-logic-app/primal-logic-web/docs/REFUND_DECISIONS_CONSOLIDATED.md を先に読む(issue #2409、台帳の返金票を単独で読んで推奨を出すのは禁止)
- 本人原文(2026-09-02、issue #2409): 「あと返金についての君全然わかってないからもっとちゃんと同じテーマの議論を無限記憶できないとダメだから 返金関連それは悪がゴミすぎ それだけ記録して タスクに入れとくとか」
- 事実: 返金・返金保証・無条件・自腹補償・60日・Apple/Google Play/Stripe の返金経路に関する決定は #255 #256 #611 #627 #665 #680 #699 #711 #816 #833 #892 #893 #999X-20260902-17 に散在し、本人の設計意図(トライアル→初回有料期間だけ60日→以後返金なし/60日の根拠はカーニボア移行期の離脱の山/自腹補償は一般的でなく効率が悪い/「無条件」の語は逆に怪しく見える/返金保証の出発点は体調が悪くなった人の救済)は別々の票に分かれている。2026-09-02 に親が #711 と #892 だけを拾って推奨を出し、本人に同じ説明を再度させた=No-Repeat 違反。
- 決定: (1) 返金/refund/返金保証/返金窓/自腹補償 のいずれかが話題に入った時は、推奨・実装・文言変更のどれに進む前でも
docs/primal-logic-app/primal-logic-web/docs/REFUND_DECISIONS_CONSOLIDATED.mdを先に読む。台帳の個別の返金票だけを根拠に推奨を出さない。(2) 返金テーマの1枚はこのファイルだけ=分割・改名・日付付きの別名複製をしない。新しく分かったことは同ファイルへ追記する。(3) 本票の見出しの題そのものをポインタにする=decision-reflex-inject.pyは発火時に決定の見出しの題だけをチャットへ出し本文を貼らないため、本文にパスを書いても届かない(handle_prompt実読)。 - 配線(新規フック0本、リポジトリ側のみ): 主経路(a) 統合1枚を
docs/**/*.mdの恒久置き場へ移動=topic-index-build.pyが索引しtopic-recall-inject.pyが発火時に冒頭を再読して貼る。同フックの_TERM_REは漢字連を2文字以上で拾い([一-鿿]{2,})、成果物ファイルのヒットはMIN_HITS_PER_TERM_DOC = 1=「返金」の2文字だけで当たる。ファイル名を...INDEX.mdにしていないのは_POINTER_BASENAMESに当たると順位を下げられるため。補助経路(b) 本票の見出し=decision-reflex-injectの語彙一致で発火し題ごとパスが出る。(c) #999X-20260902-17 の末尾にもポインタ行を追記(台帳を直接読む側向け、フックのチャット出力には乗らない)。 - 🔴 実測した取りこぼし(2026-09-24、返金らしい発話7件で試験): 補助経路(b)で本票が発火したのは 7件中1件、既存の #999X-20260902-17 は 0件。原因は
decision-reflex-inject.pyのextract_tokensが漢字連を3文字以上でしか拾わないこと([一-龠]{3,})=「返金」は2文字なのでこのテーマの主語そのものが語として存在しない。加えてTOKEN_MIN_SCORE = 2で2語一致が要るため「返金の方針どうする」は抽出語0で素通りする。このテーマの想起が壊れ続けた機械的な理由の1つがこれで、issue #2409 の起票理由に対する実測の裏付けになる。∴ 検問の実効は主経路(a)が担い、(b)は補助と位置付ける。 - hard deny にしなかった理由(「書けないから」ではない): フックの staging はリポジトリ内にある=
docs/primal-logic-app/primal-logic-web/scripts/claude-hooks-staging/(origin/main に11ファイル実在)。∴ 返金用の hard deny をここへ置くことは本レーンでも技術的に可能だった。作らなかったのは先行 PR #2805(draft、2026-09-12 以降停止)が同じものを既に持っているため=scripts/hooks-staging/decision-reflex-inject.py1039行で「返金語を含む本人入力に統合票を全文注入し、票が欠落・読取不能ならUserPromptSubmitのdecision: "block"で止める」を実装済み・試験10件通過と記載。重複実装を避けた。なお同 PR はREFUND_DECISION_TIMELINE_2026-09-11.mdという別の返金統合資料も足すため、そのまま入ると統合資料が2枚になり #2409 が直そうとしている散在が再発する(統合時にどちらかへ寄せること。staging のディレクトリ名もscripts/hooks-staging/と既存のscripts/claude-hooks-staging/で食い違っている)。 - 実施していない(稼働コピーは本人環境=本レーンの書き込み許可範囲外): (1) memory
feedback_refund_topic_memory_broken_read_consolidated_first.mdの本文差し替え(現在「統合1枚ができるまでは #2407 と DEC #711/#892」と書いてあり古い。同ファイルと issue #2409 本文が参照する DEC #10008 は origin/main の台帳には無く、未マージの枝(コミット2eae65c80)にだけある=統合1枚 §5⑨。2026-09-24 訂正: 当初「リポジトリ全体に0件」と書いたが、検索が origin/main の木だけだった)、(2)recall-required-gate.pyへの必読ゲート登録、(3)decision-reflex-inject.pyのPROPER_NOUN_ALLOWLISTへ「返金」を追加(上の取りこぼしの直し。「独立検証」が同じ理由で既に入っている前例あり)。∴ 現状は話題が当たったら資料の冒頭が貼られる advisory であって、読むまで手を止める hard deny ではない。 - reversible: ✅(記録と置き場所のみ。返金方針・公開文言・支払い設定は一切変更していない) | 自信度: 🟢85%(配線先の挙動はフック実装を実読+発火をローカルで実測=
decision-reflex-inject.pyのparse_decision_entries/extract_tokensを本票の実文に対して走らせ、題が145文字で_safe_titleの160に収まること・status=active で解析されること・7件の試験発話に対する一致語数を確認。topic-recall-inject.py側は_TERM_RE/MIN_HITS_PER_TERM_DOC/_POINTER_BASENAMESの実読まで。残15%=主経路(a)の発火は索引が~/Downloads/CarnivOSを見るため、origin/main へマージし主作業フォルダが追いつくまで実地確認できない=未検証) | 実行主体: Opus 5(dispatch lane issue-2409) | 関連: issue #2409(項目1・2), issue #2966(項目3), issue #2407, DEC #999X-20260902-17, DEC #711, DEC #892, DEC #893 | last_reverify: 主作業フォルダが本コミットへ追いついた後の最初の返金話題(主経路(a)の発火の実地確認)
---
## 🔀 移植バッチ 2 (2026-09-27): feat/topic-memory-stage1-2026-08-09 → origin/main
> issue #2058 の第2便。2026-08-22 の第1便(同issue、PR #2064、99件)以降に作業枝側だけで書かれ続けた決定エントリ 104件(一意ID 100件、2026-08-22〜2026-09-06) を、内容そのままここへ追記した。
>
> 移植元: origin/feat/topic-memory-stage1-2026-08-09 = 97ed0beac991a0a882fba8cddde18b74a3241aa6(最終コミット 2026-09-06 16:47 JST、以後この枝への追記は無い)。
>
> 番号衝突 7件は再採番した(第1便の「再採番しない」方式を変更): (a) origin/main 側に同番号の別決定が既存=#1000 #1001 #1002(main側は 2026-09-07/09-09 の別決定)→ 移植側を #1000b #1001b #1002b へ。(b) 作業枝内で 2026-08-27 と 2026-08-28 のセッションが同じ番号を独立に使った=#10024 #10025 #10026 #10027 → 後発(08-28)を #10024b〜#10027b へ。方式を変えた理由は、第1便の無改番方式が機械検査 scripts/audits/declog-dup-ids.py を赤にしたまま残しており、同検査が指定する修正手順(下流参照を持つ側が番号を保持し、他方を接尾辞付きへ改番して改番注記を付ける=#713/#713b 方式)に従う方が機械で守られる。改番対象7件の下流参照は実測で #1001 の1件のみで、その1件は origin/main 側の既存エントリを指すため、移植側の改番で参照は壊れない。
>
> 🔴 issue #2058 本文の症状記述の訂正: 本文は「作業枝と origin/main に共通祖先が存在しない(接ぎ木された別系統)」と書いているが、現在の実測と一致しない。git merge-base origin/main origin/feat/topic-memory-stage1-2026-08-09 は 0f4fb390d09f3c3aff0452d19b8235eb91ab78bb(2026-06-06)を返す=共通祖先は存在し、枝は当時の main から分岐した通常の枝である。∴ この件は「履歴の接ぎ木の修復」ではなく「台帳内容の移送」で決着する問題であり、枝を git マージする必要はない(枝は origin/main から見て 2116 コミット分の独自履歴を持ち、その大半は 2026-09-06 以前の古い版のファイルなので、マージすると現行 main の内容を巻き戻す)。
>
> 未実施(別レーン): 移送後の作業枝の retire(origin 上の枝削除)。上記 SHA を記録済みで復元可能だが、外向きの操作のため本レーンでは行わない。第1便より前から赤だった既存の重複ID 37件(#177 ほか)も本バッチの対象外=本バッチは重複を増やしていない。
> 🔀 改番 #1002 → #1002b(2026-09-27、issue #2058 移植バッチ2)。origin/main 側に同番号の別決定が既存=#1002 [MICRO] 2026-09-09: 裸の「依存関係」表示を廃止し、判断前提と作業依存を別の機械項目・表示名で記録する。origin/main 側の既存エントリが番号を保持し、作業枝から移植した本エントリを接尾辞付きへ改番した(#713/#713b 方式)。作業枝上の元IDは #1002。