Repository navigation
readiness scanner: support matrix per burned estate -- inventory x levels x refusals x rule catalogue (Part of #4724) - #5096
Merged
Conversation
…idence levels x refusal map x rule catalogue (Part of #4724) tests/tools/support_matrix.py joins committed outputs only: each inventoried feature is supported and proven / supported, unproven / refused by name / unknown, with the charter section 5 conditions it does not meet. docs/language_status/refusal_map.json maps every refusal and hole of the burned evidence reports to an issue, an agreed refusal family, or an IBM product library (system copybooks: a configuration gap; MQ: translates, not provable). The rule catalogue (#4711) is optional: absent, every feature is 'not yet catalogued'. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…de *.json ignore, as its siblings) (Part of #4724) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
This was referenced Oct 14, 2026
…fusal now fails acceptance (Part of #4724) accept-sysin, site-routine, dto-property, unbound-file, le-condition-handling (and its API), multi-program-call, procedure-pointer and soap carry issue 5106. support_matrix.owned(): an entry needs an issue, an agreed refusal family or a system library, and an unmodelled API its issue; the matrix flags any other as an acceptance gap and test_support_matrix.py fails on one in the map or in a burned estate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
No description provided. |
squid-protocol
marked this pull request as ready for review
October 14, 2026 11:59
squid-protocol
enabled auto-merge (squash)
October 14, 2026 11:59
Owner
Author
|
No description provided. |
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 #4724 (readiness-scanner epic #4721).
What
tests/tools/support_matrix.py: the support matrix for each burned estate. It reads committed files only, with no corpus and no scan:cobolrt_rules.json(cobolrt: rule catalogue — an ID, IBM reference, option dependencies and register status for every runtime rule #4711, merged as cobolrt rule catalogue: an ID, IBM reference, options, register and calibration per runtime rule (Part of #4711) #5086 while this PR was in flight). Without it, every feature reads "not yet catalogued", as charter section 5 says;Each feature gets one of the issue's four statuses:
Beside the status, it lists the conditions of "supported" from
definition_of_done.mdsection 5 that the feature does not meet yet: modelled, catalogued, proven (L2), IBM-matched (an ASSUMED or DIFFERS rule means "uncalibrated"), calibrated on z/OS. For each estate it also lists:Usage:
python tests/tools/support_matrix.py [ESTATE ...] [--json] [--catalogue PATH] [--out FILE].docs/language_status/refusal_map.json: 29 entries. Each refusal or hole text of the burned reports, and each missing copybook of the inventory, maps to one of:charterkeys, each checked to appear indefinition_of_done.md);Force-added, like its sibling JSON files, because of the repo-wide
*.jsonignore.tests/cobol_mainframe/test_support_matrix.py(19 tests):Docs: a "Support matrix" section in
feature_inventory.md, and a pointer in charter section 5.Matrix today (rule catalogue on main)
RETRIEVE 01327507). The matrix lists them for triage.0d74a18). A gap fixed since then shows until the nightly evidence refresh. For example, CBSA DELCUS READ/DELETE TOKEN (det/CICS: READ / REWRITE / DELETE / UNLOCK TOKEN (update tokens; makes CBSA whole) #5078, fixed by CICS: file update TOKEN (READ UPDATE / REWRITE / DELETE / UNLOCK TOKEN); DELCUS translates whole (Part of #5078) #5090) and BANKDATA CEEGMT/CEEDATM (det: LE date/time services (CEEGMT, CEEDATM, CEESECS, CEEDATE, CEEISEC, CEEQCEN) so CBSA BANKDATA translates whole #4949, modelled by det: LE date/time services CEEGMT, CEEDATM, CEESECS, CEEDATE, CEEISEC, CEEQCEN (Part of #4949) #5002).Class
Readiness-scanner support status per inventory feature, joined from committed tool outputs. This PR covers every member: the four statuses; the refusal kinds (issue, charter family, system copybook, unmodelled API, needs an issue); the catalogue absent, present and uncalibrated; the compile-option join.
Refusals owned by #5106 (the consolidated siblings issue): ACCEPT FROM SYSIN; CALL MVSWAIT; a COMMAREA DTO property the port cannot convert (
List<String>); files with no repository in the generated project; LE condition handling (CEEHDLR / CEEHDLU, also as the unmodelled API); CALLs to sibling programs of a multi-program source; procedure pointers (SET TO ENTRY); SOAPFAULT CREATE. Acceptance is now enforced:support_matrix.owned()requires each entry to have an issue, an agreed refusal family or a system library, and an unmodelled API to have its issue. The matrix flags any other entry as an acceptance gap, andtest_every_refusal_map_entry_has_an_owner/test_no_burned_estate_has_an_unowned_refusalfail on it.Sibling gaps (not this PR):
generated. It needs agenerated-docs.ymledit, which was out of bounds here: the publish step lists its pages, andtest_generated_branch.pypins that list toPAGES. Until then, render it with--out.feature_inventory.fallback_parsedoes not strip them).cobolrt_rules.json. Until it has them, the join is a title heuristic.Older CICS estates to consider (not cloned)
IBM's own CICS TS product samples, from the customer's SDFHSAMP: the FILEA sample programs (DFH$AMNU / DFH$ALLB family), the NACT account sample from the CICS Application Programming Primer, and the CICS catalog manager example (DFH0XCMN ...). All three are IBM-licensed and would be scanned customer-side (#4726), never shipped. I did not open the blind estate-4 candidate list.
Gates
pr_gates.py --fast(heavy-run, JDK 17 env): 6/6 pass (lint with CI's ruff 0.16.10, audits, secrets, xray, gen-docs, gauntlet).pr_gates.py --ratchets: 7/7 pass, 0 skipped (cics-spec, ports, port-surface, estate, fact-crosscheck, completeness, ground-truth). No engine, translator or parser change, so no golden bless.audit_check.py: all clear. Support-matrix tests: 19 pass (head a90312d,pr_gates --fast6/6 re-run), run with plainpytestfrom/tmp.Cross-repo
None.
🤖 Generated with Claude Code