Skip to content

Mainframe fact channel: JCL job flow: step order, COND/IF, GDG and dataset producer/consumer across jobs #3451

Closed

Description

@squid-protocol

Problem

dataset_data carries each step's DDs and resolved DSNs, but not the job flow: the step order, conditional execution (COND=, IF/THEN/ELSE), and which job produces a dataset that another consumes. That last one covers GDG generations ((+1) written, (0) read) and DISP=NEW/MOD vs SHR/OLD.

Evidence

CardDemo: 24 COND=, 1 IF, 34 GDG relative generations, 43 DISP=NEW/MOD, SORT/ICETOOL steps, PROC calls. CBSA: 7 COND=, 15 DISP=NEW/MOD, and 138 PROC EXECs.

Proposal

Per job: an ordered step list with conditions. Globally: dataset producer → consumer edges derived from DISP and GDG generation, which gives a batch data-flow DAG. Scheduler dependencies (CA-7, TWS) aren't in the repository; record that in SCOPE.

Acceptance (ground truth, as for every channel since #3210)

  • An independent draft reader in tests/tools/cobol_answer_key.py. It must not import the engine; test_draft_readers_never_import_the_parsers_they_grade enforces this.
  • A new answer-key section, drafted for all three pinned corpora (zopeneditor, CBSA, CardDemo).
  • A blind census of that section with tests/tools/cross_verify.py census, with every disagreement ruled against the source.
  • A new scored field in tests/tools/ground_truth_ledger.py, so mainframe-ground-truth.yml fails CI on any regression.
  • The channel follows gitgalaxy/core/how_to_add_a_fact_channel.md: extractor, *_data table, delta restore, galaxy_ir.EngineFile reader and SCOPE update.

Part of #3445.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-engineModifications to the central physics and parsing engineenhancementNew feature, sensor, or structural signaturelegacy-modernizationCOBOL refractor, dead-code extraction, and JCL forging

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions