Skip to content

Commit 400fc60

Browse files
web-flowclaude
andcommitted
LoopExporter: 分割の発生位置と、件数に頼らない判別法を §3.2 に足す
no text block 警告は「何件出たか」では性質が決まらない。標本 2 件(L00556 1 件・ L00583 3 件)はどちらもツール使用の途中で分割されており、これが一般なら件数は その回のツール使用量に従うだけで、跳ね上がっても異常ではないことになる。 そこで判別の基準を件数から非対称の一致へ移した——警告件数がヘッダの assistant − human の超過分と一致すればターン分割、一致しなければ別事象として §1 の再採取手順へ進む。ツール使用量との相関そのものは標本 2 件の観察であって 確定ではないので、その旨を本文に明記している。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 921325b commit 400fc60

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

LoopExporter/docs/SCHEMA_NOTES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ truncated, attachments, files, sync_sources, parent_message_uuid
5656
- `sync_sources[]` は標本内では常に空配列(外部連携の同期ソースがあるメッセージが標本に含まれなかったため、非空時の形状は未確認)。
5757
- `truncated` は真偽値フィールド。標本では常に `false`
5858
- **`input_mode` は 2026-07-16 の運用初日に出現した後付けフィールド(スキーマドリフト実測第一号)**。Phase 0 標本(同日 14 時台採取)には存在せず、同日中の再採取で一部の human メッセージにのみ付与されていた(実測 2 件)。入力方式(音声/キーボード等)のメタデータと推定されるが値・意味は未確認。Loop 変換には不要のため gateway の既知フィールド台帳に登録済み(警告は出ない)。NFR-3 の未知フィールド検知が設計どおり「うるさく」機能したことの記録として残す。
59-
- **`compaction_summary` は 2026-07-18 に出現した後付けフィールド(スキーマドリフト実測第二号)**。L00556 エクスポート時に警告 `Unknown field "compaction_summary" on chat_messages[9]` として検知(1 メッセージのみ)。claude.ai のコンテキスト圧縮機能(長い会話でモデル側の文脈が要約される)由来のメタデータと推定されるが、値・形状は未採取(§5 残課題)。**圧縮が起きても `chat_messages[]` には全メッセージが残る**ことを FR-6 連鎖検証の通過(leaf→root 完走・ファイル出力成功・全 51 メッセージ直列化)で確認済みのため、Loop の完全性には影響しない。Loop 変換には不要のため gateway の既知フィールド台帳に登録済み(警告は出ない・回帰テストあり)。なお同じエクスポートで併発した警告 `Assistant message ... has no text block` は**別事象**——assistant ターンが 2 メッセージに分割された会話固有の状態(Loop 上は `## Claude` 見出しの連続、ヘッダ件数 human 25 / assistant 26 の非対称として正しく出力される)に対する integrity.js の設計どおりの注意喚起であり、スキーマドリフトではない。2026-08-23 の L00583 エクスポートでは `compaction_summary` を伴わず **no text block 単独 3 件**として再来した。台帳登録後は前者が黙るため、**以後の標準形はこちら**(ヘッダ件数 human 39 / assistant 42 の差 3 と警告数が一致、FR-6 通過)。2 件セット・単独のどちらで来ても切り分けはこの段落で足りる。
59+
- **`compaction_summary` は 2026-07-18 に出現した後付けフィールド(スキーマドリフト実測第二号)**。L00556 エクスポート時に警告 `Unknown field "compaction_summary" on chat_messages[9]` として検知(1 メッセージのみ)。claude.ai のコンテキスト圧縮機能(長い会話でモデル側の文脈が要約される)由来のメタデータと推定されるが、値・形状は未採取(§5 残課題)。**圧縮が起きても `chat_messages[]` には全メッセージが残る**ことを FR-6 連鎖検証の通過(leaf→root 完走・ファイル出力成功・全 51 メッセージ直列化)で確認済みのため、Loop の完全性には影響しない。Loop 変換には不要のため gateway の既知フィールド台帳に登録済み(警告は出ない・回帰テストあり)。なお同じエクスポートで併発した警告 `Assistant message ... has no text block` は**別事象**——assistant ターンが 2 メッセージに分割された会話固有の状態(Loop 上は `## Claude` 見出しの連続、ヘッダ件数 human 25 / assistant 26 の非対称として正しく出力される)に対する integrity.js の設計どおりの注意喚起であり、スキーマドリフトではない。2026-08-23 の L00583 エクスポートでは `compaction_summary` を伴わず **no text block 単独 3 件**として再来した。台帳登録後は前者が黙るため、**以後の標準形はこちら**(ヘッダ件数 human 39 / assistant 42 の差 3 と警告数が一致、FR-6 通過)。2 件セット・単独のどちらで来ても切り分けはこの段落で足りる。分割位置は標本 2 件ともツール使用の途中だった(L00556 は 1 件、L00583 は 3 件=`visualize:read_me`→`show_widget` の境目 1 箇所と bash_tool 長連鎖の途中 2 箇所)。**ツールを長く回すターンほど分割されるという読みは標本 2 件の観察であって確定ではない**が、これが正しければ警告件数はその回のツール使用量の粗い指標にすぎず、件数が跳ね上がっても異常ではない。判別は件数でなく非対称の一致で行う——**警告件数がヘッダの assistant − human の超過分と一致すればターン分割**、一致しなければ別事象として §1 の再採取手順へ進む。
6060

6161
### 3.3 `content[]` ブロック 4 種の実測形状
6262

0 commit comments

Comments
 (0)