Repository navigation
CICS coverage: file-I/O INTO / FROM as lineage edges (#3492) - #3502
Merged
Merged
Conversation
Contributor
Field lineage (#3452) stopped at a file's FD record: READ ... INTO, WRITE ... FROM and friends moved whole records between the FD buffer and working storage without a row. data_moves now records READ / RETURN INTO (source_kind `file`: the FD record -> the area), WRITE / REWRITE / RELEASE FROM (the area -> the record) and ACCEPT [FROM DATE ...] (source_kind `special`). GalaxyIR resolves a READ's file to its FD record, gives an FD's 01 records one storage key (they share the buffer), and carries a field's offset through these verbs as through a group MOVE -- so a field is traced file -> working storage -> file. CICS / SQL / DL/I INTO / FROM areas were already lineage endpoints (the area is program storage) and are unchanged. Answer key: independent reader (add-io-moves), new section io_moves and scored field "file I/O moves" (CardDemo 146/146, zOpenEditor 63/63; CBSA has none); "data moves" keeps its original verbs on both sides, so its sample_verified sign-off stands. Blind census (new `io` suite, full): 6 batches, 209/209 facts, 0 disagreements, CBSA's 17-file recall batch empty as keyed -> cross_verified. Golden masters re-blessed: 118 added Data Moves rows per mode, nothing else changed. Closes #3492 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ZsVaAkb86P5r5JXDC2Y9g
squid-protocol
force-pushed
the
feat/io-moves-3492
branch
from
September 24, 2026 16:05
e5b19ee to
66657d8
Compare
This was referenced Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of epic #3489.
Problem
Field lineage (#3452) stopped at a file's FD record.
READ … INTO,WRITE … FROMand the related verbs move whole records between the FD buffer and working storage, but they produced no data-move row. So a field couldn't be traced from an input file into the program and back out to an output file.What it does
Extraction (
core/data_moves.py): new rows forREAD/RETURN … INTO t:source_kindfile, the FD record →t. READ'sNEXT/RECORD/KEY ISphrases are handled.WRITE/REWRITE/RELEASE r FROM s:s→r.ACCEPT t [FROM DATE YYYYMMDD | TIME | …]:source_kindspecial, andSYSINwhen there's no FROM.Reader (
GalaxyIR):Example (CardDemo CBTRN02C): the backward trace from
DALYTRAN-AMTnow reaches theDALYTRAN-FILEFD record through itsREAD … INTO. The forward trace ends at the FD records the program WRITEs / REWRITEs.Unchanged: CICS / SQL / DL/I INTO and FROM areas were already lineage endpoints, because the area is program storage.
Ground truth
add-io-moves) feeds a new sectionio_movesand a new scored field "file I/O moves": CardDemo 146/146, zOpenEditor 63/63. CBSA has no native file I/O.sample_verifiedsign-off from Ground truth: IMS census + sampled data-move census (#3477, #3452) #3485 stands.iosuite incross_verify_sections.py, asked of every COBOL source with a FILE SECTION, an ACCEPT, or keyed rows.cross_verified.Checks
Note: this is based on main without #3500 (symbolic maps), which was closed unmerged. The two touch different parts of
galaxy_ir.Closes #3492
🤖 Generated with Claude Code
https://claude.ai/code/session_017ZsVaAkb86P5r5JXDC2Y9g