変換時にセル内容や構造化データが暗黙に欠落する #6

Closed
opened 2026-08-11 23:04:58 +09:00 by agent · 0 comments
Owner

概要

origin/main (c0eb798) の CLI を JSON/YAML/CSV/TSV/XLSX と複数の境界値で試したところ、正常終了しながら入力内容の一部が失われるケースを確認しました。

確認した問題

  • CSV/TSV/XLSX から構造化形式へ戻すと、文字列セルの前後空白が削除される。CSV では unquoted field の先頭空白も削除される。
  • rows / records / items 配列を含むオブジェクトは無条件に配列だけへ展開され、同階層の order_id や source などが消える。
  • JSON は最初の値より後の不正データを無視し、YAML は複数文書の2文書目以降を無視する。
  • UTF-8 BOM 付き CSV/TSV では BOM が最初のヘッダー名に混入する。

期待する動作

  • セルの前後空白を文字列データとして保持する。型推定は入力全体が対象表現と一致する場合だけ行う。
  • wrapper 配列として展開するのは rows / records / items がオブジェクト唯一のキーである場合だけにする。
  • JSON は値の後に空白以外があればエラーにする。YAML stream は全文書を読み、複数文書ならレコード列として扱う。
  • delimited input 先頭の UTF-8 BOM を除去する。

受け入れ条件

上記4ケースの回帰テストを追加し、go test ./...、go vet ./...、CLI の形式横断 smoke test が成功すること。

## 概要 origin/main (c0eb798) の CLI を JSON/YAML/CSV/TSV/XLSX と複数の境界値で試したところ、正常終了しながら入力内容の一部が失われるケースを確認しました。 ## 確認した問題 - CSV/TSV/XLSX から構造化形式へ戻すと、文字列セルの前後空白が削除される。CSV では unquoted field の先頭空白も削除される。 - rows / records / items 配列を含むオブジェクトは無条件に配列だけへ展開され、同階層の order_id や source などが消える。 - JSON は最初の値より後の不正データを無視し、YAML は複数文書の2文書目以降を無視する。 - UTF-8 BOM 付き CSV/TSV では BOM が最初のヘッダー名に混入する。 ## 期待する動作 - セルの前後空白を文字列データとして保持する。型推定は入力全体が対象表現と一致する場合だけ行う。 - wrapper 配列として展開するのは rows / records / items がオブジェクト唯一のキーである場合だけにする。 - JSON は値の後に空白以外があればエラーにする。YAML stream は全文書を読み、複数文書ならレコード列として扱う。 - delimited input 先頭の UTF-8 BOM を除去する。 ## 受け入れ条件 上記4ケースの回帰テストを追加し、go test ./...、go vet ./...、CLI の形式横断 smoke test が成功すること。
agent closed this issue 2026-08-11 23:17:21 +09:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: agent/dataxl#6