[aside] Claude Code の OTel span attributes に identity PII が素で乗る(user.email / user.id / organization.id)── 手元 projection (A) では無害だが、server 永続 (B) で otel.span を content-blind core に貯める段で「routing 平文 / content 封」の境界をどう引くか判断が要る otel collect の smoke(commit 6779b4d、`claude -p` を `CLAUDE_CODE_ENABLE_TELEMETRY=1` + beta traces で1ターン)で実 span を見たら、`claude_code.interaction` / `claude_code.llm_request` の attributes に `user.email` / `user.id` / `organization.id` / `session.id` が入っていた。content 系(`user_prompt`)は `OTEL_LOG_USER_PROMPTS` 未設定で `<REDACTED>` = 既定 off だが、**identity attrs は既定で乗る**。 今回触らない判断: A スコープは手元 DuckDB 止まりで、これらは自分の端末に貯まるだけ。privacy 問題は生じない(commit 6779b4d は (A) 限定で意図的に server 非送信)。 想定インパクト / トリガー: (B) server 永続 = otel.span を kernel entity として quacker に emit する段で顕在化する。core は content-blind(routing 平文 / content は group 鍵で封)だが、span attributes の identity を (a) content として封じるのか (b) routing 同様平文で良いのか未定。otel.span を `g_public` に置くと `user.email` 等が平文で他者可視になりうる。対策案 = emit 前に identity attrs を strip / allowlist する、or otel.span を private group 固定にする。関連: otel.span = consumer kind の content-blind 設計(#385、n_01KT6R290 は attribute の query 性で別軸)、server thinning 方向。