# memory: instinct-constraint-outlives-its-reason

別枝から文字クラスや閾値をコピーすると、制限の理由が成立しない場所にまで制限が効いて fail-open を作る。粒度を揃えるつもりのコピーほど危ない。xreview の「値が次の行から始まる秘密」を拾う枝で、クォートの中身に裸値と同じ文字クラスを課していた。裸値をその範囲に絞る理由は「クォートが無いので地の文と紛れる」ことなのに、閉じクォートで境界を保証できる側にまで持ち込んだ結果、`P@ssw0rd123!` / JWT のドット / base64 の `=` パディングが落ちなくなった。同じ値が 1 行なら除外され、改行を 1 つ入れただけで外部送信される。

## ポイント
- 別枝から文字クラスや閾値をコピーすると、制限の理由が成立しない場所にまで制限が効いて fail-open を作る。
- 粒度を揃えるつもりのコピーほど危ない。
- xreview の「値が次の行から始まる秘密」を拾う枝で、クォートの中身に裸値と同じ文字クラスを課していた。
- 裸値をその範囲に絞る理由は「クォートが無いので地の文と紛れる」ことなのに、閉じクォートで境界を保証できる側にまで持ち込んだ結果、`P@ssw0rd123!` / JWT のドット / base64 の `=` パディングが落ちなくなった。
- 同じ値が 1 行なら除外され、改行を 1 つ入れただけで外部送信される。

## 関連ページ
[[instinct-or-branches-leave-an-intersection-hole]] [[instinct-mutation-survivor-needs-the-right-input]] [[instinct-colon-is-not-always-assignment]]

## 関連概念(未作成)
`fail-open` `文字クラス` `閾値` `xreview` `クォート`