Repository navigation
Conversation
The facade manifest _exports.py is at 499 of 500 lines. Move the contiguous runtime-fact binding-plane family into _runtime_fact_exports.py and spread it in place, so PUBLIC_EXPORTS keeps identical order and membership and the next contract family fits under the cap.
Specification-coverage release 69.0.0 and formal-validation release 70.0.0 bind the current implementation digest; outcomes and claim limits are unchanged.
Open pull requests from doublewhy: index and suggested merge orderThis lists the 81 open pull requests from this account across rae, lilrae, env-packs, hub, adapters and workbench, grouped by area, with a suggested merge order. Nothing here needs a reply. Any order works: when something merges, I rebase the PRs that depend on it and republish evidence where needed. The order below needs the fewest rebases and evidence regenerations. State at 2026-10-10 14:10 UTC:
Second review, 2026-10-10A second, independent review of every ready PR found a real problem in 37 of the 49 that were ready on 2026-10-09. All 37 are now fixed: three needed only a description change (#1424, #1440 and #1456), and the other 34 were fixed and then re-reviewed by a separate reviewer, who passed each one. Each PR's description says what changed. Every required check passes on those PRs except where a known secret problem applies: rae: changes that leave the research evidence aloneThese PRs touch nothing the research evidence binds, so they never force a republish. They can merge at any time, in any order, including between the evidence merges below. One exception: #1426 asserts the exact text of a diagnostic that #1446 rewords. Whichever of the two merges second needs a one-line test update, and I will push it.
Two stacks. I rebase the next PR after each merge.
#1422 (#712) adds a gate over every schema under
Git sees no conflict, so whichever side merges second would turn rae: changes bound by the research evidenceThese 20 PRs change source that the research evidence binds. Each one carries the next releases, so only one can merge at a time.
The stacked PRs (#1436, #1449, #1444, #1465, #1467, #1469) already carry releases one above the PR below them. After the lower PR merges, a stacked PR conflicts until I rebase it to drop the lower PR's commits. That rebase needs no regeneration, but CI runs again. About 1,800 added lines in each evidence PR are the regenerated captures and pins. The code change is in the commits before the last one.
One size limit also shapes the order. Why this order:
lilraeOpenRAE/lilrae#1270 goes first. It fixes the dependency-vulnerability and Trivy filesystem scans and every image lane except Once the scans pass on
The issue 965 and issue 1218 stacks each add a row at the same place in env-packsOpenRAE/env-packs#433 (part of issue 413), then OpenRAE/env-packs#434 (completes issue 413). #434 contains #433's commit, so I will rebase it after #433 merges. Issue 414 is blocked by #1481, and neither PR addresses it. hubOpenRAE/hub#44 (issue 41) and OpenRAE/hub#45 (issue 39), in either order. Both wait on OpenRAE/hub#46. adaptersOpenRAE/adapters#98, #99, #100, then #101: the inventories for issues 87, 85, 86 and 88.
workbench
After #74 merges, I will rebase #71 to #73 so that |
Summary
implementations/python/packages/raes_contracts/contracts/_exports.pyis 499 lines. Package files are capped at 500 lines, and the oversized-file allowlist is empty. Publishing the #1366 inject-trigger contracts through theraes_contracts.contractsfacade adds a manifest import and a spread entry, which would push the file over the cap. This PR moves the contiguous runtime-fact binding-plane family (18 names) into_runtime_fact_exports.pyand spreads it where the names were.PUBLIC_EXPORTSkeeps the same membership and order, and_exports.pydrops to 483 lines.Any
.pychange underimplementations/python/packageschanges the implementation digest that the research-evidence captures pin. This PR therefore also republishes both captures against this source, as #1404 did. Outcomes and claim limits are unchanged.Requirement UIDs
Related Issues
Closes #1418
ADR Impact
Changes
raes_contracts/contracts/_runtime_fact_exports.py: newRUNTIME_FACT_EXPORTSlist with the same 18 names in the same order, following_mixed_composition_exports.py.raes_contracts/contracts/_exports.py: importsRUNTIME_FACT_EXPORTSand spreads it in place of the 18 literal names.contract-modelsdigests. Their revision pins advance intools/check_specification_coverage.py,tools/formal_semantic_validation/, the three evidence test modules and both research indexes, and the stale "through 66.0.0" historical-validation message in_releases.pyis corrected to 69.0.0 (dev's historical retest set already ends at 68.0.0). The formal current-release assertion now expects no deviations, because nothing changed compiled output.Test Plan
_exports.pyimports, andcanonical / coverage-reduceruns in CI.PUBLIC_EXPORTSbuilt fromorigin/dev's_exports.pyand from this branch are identical in order and membership (570 names), andraes_contracts.contracts.__all__ == PUBLIC_EXPORTS.Before the republish, at 0e79e14,
tools/check_specification_coverage.pyreportedresearch-evidence-source-stateand a stalecontract-modelsdigest, andtools/check_formal_semantic_validation.pyreportedresearch-evidence-source-state. After it, both checkers pass.pytestovertest_specification_coverage.py,test_formal_semantic_validation.py,test_issue_989_versioned_evidence.py,test_contracts_facade_exports.pyandtest_conformance_facade_parity.pypassed: 214 passed and 19 deselected in the default selection, and 19 passed and 214 deselected with-m integration.test_conformance_facade_parity.pycovers the separateraes_conformance.conformancefacade and is unrelated to this change.nox -s contracts -- --base-rev origin/devpassed all 14 stages, including schema publication, generated-schema drift, specification coverage, formal semantic validation and JSON artifact validation.nox -s lintandmake policypassed.nox -s verify-fast-feedback -- --base-rev origin/devpassed every stage it ran. It skipped YAML syntax because no YAML changed, and requirement governance because the branch carries no requirement UID.Ground Control Checks
make policypassed locally, with requirement governance skipped as described in the Test Plan.Traceability
test_contracts_facade_exports.pychecks thatPUBLIC_EXPORTSnames are unique and resolve on the facade, but no test pins the manifest's order or that the 18 moved names stay in it. Order and membership were compared once againstorigin/dev(570 names), as the Test Plan records, not by a test)Checklist
ruff formatandruff checkpass on both modulestools/check_generated_schemas.pypassesrefactorbecause nothing user-visible changesautomodule, not the facade's__all__Documentation
Updated: the specification-coverage and formal-validation research indexes record the new releases.