feat(raw): raw derive writes an Excel file's sheets as TSV files with a formula list (#202)
CI / verify (push) Successful in 6m47s
CI / pwsh (push) Successful in 2m25s
Release / release (push) Successful in 34s
Release / wiki-mirror (push) Skipped

Each sheet becomes NN-<sheet>.tsv (RFC 4180, tab-delimited, A1-aligned) in a
<stem>.sheets/ folder beside the .md; sheets with formulas also get a
.formulas.tsv. derived.md is the overview. Adds testfiles/ with a CI test.

Files changed:
- .gitattributes
- CHANGES.md
- VERSION
- docs/dev/development.md
- docs/how-to/ingest-a-source.md
- docs/reference/commands/raw-material-and-uploads.md
- raw/CONTRACT.md
- testfiles/README.md
- tools/CONTRACT.md
- tools/chemenu/commands/raw_cmd.py
- tools/chemenu/filters/__init__.py
- tools/chemenu/filters/archive.py
- tools/chemenu/filters/ooxml.py
- tools/chemenu/tests/test_raw_derive.py
- tools/chemenu/tests/test_raw_derive_testfiles.py

Co-Authored-By: Claude Code <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Code committed 2026-10-09 13:35:03 +02:00
1 parent 8ea2795d88
commit 9868fce3d5
15 files changed
+719 -50

No files matched your search

+11
View File
@@ -289,6 +289,17 @@ output. A name that is taken or reserved (`original.*` and `derived.md` at the t
folder, `_capture.json` anywhere) gets `-2`, `-3` before its extension, and the output lists
every rename.
**A workbook's cells are files, not text.** An Excel file becomes an overview in `derived.md` -
one section per sheet with its range, its file names and a short preview - and, beside it, a
folder `<stem>.sheets/` (`derived.sheets/` for a single file) with one tab-separated file per
sheet. The format is RFC 4180 with a tab as the delimiter, so a cell holding a tab, a quote or a
line break is quoted and a reader gets every cell back unchanged; row *n* of the file is row *n*
of the sheet, so a cell address in the file is the address in Excel. A sheet with formulas gets
a second file listing each cell, its formula and the value Excel last stored: the tool reads
the file and does not recalculate it. Text that is data is read by a script, not by a model's
eye; the overview is what tells the reader which file to open. The folder is part of the
derivation, accepted with it, and an existing one is never overwritten.
**The original stays.** The derivation is the tool's reading of it, never the source: with the
original kept, a claim in `kb/` can still be checked against what the document said when a
derivation dropped something, and a later version of the tool can derive it better. Both go into