Repository navigation
T103: the T074 files' composed reds, respelled to their carved homes and the composed tree (plan 038, T094's R2-INV-R9) - #49
Conversation
…(plan 038) Repairs the composed reds of T094's map (R2-INV-R9, slice T103) that need nothing from T095: - tests/test_completeness.py (2 nodes): the purity check reads the scoring module at its carved home (carved_module_path), and doc_health.lines where this process imports it from; the gating bound scans this leg's import root (src/) and expects openxdox/generator.py and openxdox/kickoff.py; its doc_health half scans the doc_health package this process imports, which the carve had left scanning a directory this leg does not have. - tests/test_round_trip.py (1 of 24): the shared-predicate pin reads round_trip.py at its carved home and families.py where it is imported from. - tests/test_gate_console.py: the two in-test CLI imports are respelled to opendox.cli (the collection error stays until the T095-dependent half). Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…y_root() and CONTRACTS_DIR (plan 038) The half of T094's slice T103 that codes against T095's interface (#46): - tests/test_doxbench_packet.py, the rail node: the status-read drift check reads openxFactory's corpus (docs/) from the composed tree through openxfactory_root(), not this checkout's docs/, which holds too few documents for the check to be one. - tests/test_round_trip.py (23 nodes) and tests/test_gate_console.py (the collection error): openxFactory's forward gate, scripts/proposal-support.py, which the carve left in openxFactory, is read from the composed tree. - tests/test_gate_console.py, OQ-R9-3: the conformance group's skip condition reads each schema where the pinned validator reads it (gate-action-record from the installed distribution's packaged copy, gate-intent from the contracts directory CONTRACTS_DIR names), so its five cases run composed; a lone checkout has no CONTRACTS_DIR and the group still skips there. The gate console's two gate-parsing cases and its receipt case need T095's DECLARED_HOST_SUITES and CONTRACTS_DIR, and nothing more in this file. Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reviewer's GuideThis draft adapts four test suites to the post-carve composed workflow by resolving source modules, support scripts, corpus documents, and contract schemas from the locations actually used by openDox and openxFactory. The changes are limited to test read paths and imports, including activation of previously vacuous contract checks in composed runs while retaining skips for incomplete lone-checkout environments. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
A missing composed schema is incorrectly converted into passing test skips.
Review effort: Balanced
Findings: 1
What changed in this PR
Updates four test suites for carved module locations and composed openxFactory resources.
Changes:
- Resolve source modules and schemas from their owning packages.
- Read composed tooling and documentation through
openxfactory_root(). - Switch CLI tests to
opendox.cli.
| File | Description |
|---|---|
tests/test_completeness.py |
Updates purity and importer scans. |
tests/test_round_trip.py |
Resolves mover and predicate sources. |
tests/test_doxbench_packet.py |
Scans the composed documentation corpus. |
tests/test_gate_console.py |
Updates CLI, support script, and schema resolution. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…skipping it (Copilot r4199436303) Once a composed run supplies CONTRACTS_DIR, a gate-intent or gate-action-record schema that cannot be read is a broken composed source, not an unreleased contract. The OSError handler made it read as "verbs not released", so the five conformance cases skipped and the file passed. The read error is now left to fail collection. A lone checkout, with no CONTRACTS_DIR, still skips the group as before. Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Sorry @brettheap, you've used your own review budget of 250,000 diff characters for the last 7 days. You can request another review in 16 hours and 54 minutes by commenting |
|
|
READY at 7383719 Lane: openxfactory-4 (openXfactory-4-openDox_extraction) Holder, automatic READY on Brett's word "land lane 3's PRs when green" (2026-10-06). At the head: |
Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings T101 (#48), T098 (#51), T103 (#49), T096 (#53), T100 (#54), T099 (#47), T021's follow-on (#55), T102 (#52), T022 (#41, landed as aefd109), T097 (#50) and T096's follow-on (#56). Conflicted: scripts/composed_placements.py and tests/test_composed_placements.py, both T022's files, which this branch carried from #41 through #44. Main's landed side is kept for both. tests/declared_exclusion.yaml merged clean (T101's entry edits beside T073's header and open_until). Lane: openXfactory-3 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>




Lane: openxfactory-4 (openXfactory-4-openDox_extraction)
Authored by lane openXfactory-3, delegated by lane openxfactory-4 (#656 6021862323)
Arc: neutral-product-standalone-operability
T103: the T074 files (plan 038; T094's map R2-INV-R9, slice outline row T103)
There is no
tasks.mdentry yet: lane 4 records T094's slices after T002 (openxFactory#1251). Until then, the contract is the slice outline row plus the holder's rulings, openxFactory#6566021830531.test_gate_console.py.test_gate_console.pythen reads 127 passed and 5 skipped. Its 5 skips are OQ-R9-3, which this slice respells so they run composed: it reads 132 passed, 0 skipped.6021830531:6016982816(ARC-Q2 (a)).e2340bb6), which this PR codes against:openxfactory_root(),CONTRACTS_DIRandDECLARED_HOST_SUITES. T021 (T021, U-2: the gate console's schemas, each read where its owner keeps it, nothing vendored (plan 038, P4F-4) #40) landed asf70bc9c3. Both are met.What changed (4 test files, nothing else)
tests/test_completeness.pycompleteness.pyat its carved home (carved_module_path), anddoc_health.lineswhere this process imports it from. The gating bound scans this leg's import rootsrc/and expectsopenxdox/generator.pyandopenxdox/kickoff.py. Itsdoc_healthhalf scans thedoc_healthpackage this process imports.tests/test_round_trip.py_MOVERreads openxFactory'sscripts/proposal-support.pythroughopenxfactory_root()(23 nodes). The shared-predicate pin readsround_trip.pyat its carved home andfamilies.pyfromfamilies.__file__(1 node).tests/test_doxbench_packet.pyopenxfactory_root() / "docs", instead of this checkout'sdocs/.tests/test_gate_console.pyopenxfactory_root(). The two in-testfrom ideation_dashboard import cliimports becomefrom opendox import cli. HR (the two cases that parsegate) is T095'sDECLARED_HOST_SUITES, and CS (the receipt case) is T095'sCONTRACTS_DIR; neither needs an edit in this file.tests/test_gate_console.py, OQ-R9-3_contract_carries_the_new_verbsreads each schema where the pinned validator reads it.gate-action-recordcomes from the installed distribution's packaged copy (openxdox.contracts.verified_path).gate-intentcomes from the directoryCONTRACTS_DIRnames. A lone checkout has noCONTRACTS_DIR, so the group still skips there. OnceCONTRACTS_DIRis supplied, a schema that cannot be read fails collection instead of reading as "not released" (Copilot r4199436303).Edits are kept local to the failing reads, so T074's later respelling of these files'
doc_healthimports stays clean. The twodoc_healthreads in completeness and round_trip resolve through the import system, so they follow whatever T074 makes those imports.Flagged, a widening beyond the failing assertion:
test_the_scoring_modules_only_importers_are_the_generator_and_the_guard's second loop scannedREPO_ROOT / "scripts" / "doc_health". This leg has no such directory, so since the carve the loop has scanned nothing and passed vacuously. It now scans the composeddoc_healthpackage, 38 modules, and passes. Mutant M2b below shows the check is live.The falsifier, measured
Measured in R1Q23 (a)'s composed form:
92010d3e(DRAFT: T029, U-9: the composed run, permanent: composed.yml and its openxFactory pin (plan 038) #44'stests/composed_host_pin.yaml), withopenDox,openXdoxandopenXwalletinitialized recursively, and itsscripts/onPYTHONPATH;main84f8ed83;TERM=dumb;python -m pytest -q -p no:cacheprovider -rfE --junitxml=… <file>.The integration branches are LOCAL and never pushed:
maine2340bb6, which carries T021 (T021, U-2: the gate console's schemas, each read where its owner keeps it, nothing vendored (plan 038, P4F-4) #40) and T095 (T095: the composed harness for the declared integration tests (plan 038, T094's R2-INV-R9) #46), both landed;683b9562, which ismainmerged in and differs from it by exactly these four files.Earlier runs over local integrations read the same, file for file:
maind45a0939+ #40 + #46 at6aeb6797, andmainf70bc9c3+ #46c2192e3eat57a970fc.The rail node needs T073's status-exemption rail. Without it, the node fails on
pk.STATUS_SCAN_LINES, at the rail, before it reaches its corpus read. So the four files are also measured with #4526fe63e7merged in, with T022's placement made first and removed after.Base + #45, 28 red:
Head + #45, 0 red:
The 28 red at base, each with its first failure:
test_completeness.py:test_the_scoring_module_touches_nothing_outside_its_arguments(FileNotFoundError,scripts/ideation_dashboard/completeness.py);test_the_scoring_modules_only_importers_are_the_generator_and_the_guard(AssertionError: []).test_doxbench_packet.py::test_the_status_read_agrees_with_the_repositorys_own_corpus_reader: "the drift check needs real documents to be a check".test_gate_console.py: a collection error (FileNotFoundError,scripts/proposal-support.py).test_round_trip.py:test_both_gates_agree_where_a_documents_status_header_is×12,test_the_mover_agrees_with_the_other_fence_implementations×10 andtest_the_movers_line_split_is_the_three_real_endings_and_nothing_else: FileNotFoundError,scripts/proposal-support.py;test_the_shared_predicate_is_spelled_the_same_in_all_three: FileNotFoundError,scripts/ideation_dashboard/round_trip.py.Without #45, base vs head reads completeness 2→0, round_trip 24→0 and gate_console 1→0 (132 passed). Packet reads 57 red at both: its 56 rail nodes and the rail node all fail at the rail, which is T073's.
The two "rejected" conformance cases are rejected by the schema (validator exit 1), not by a harness failure (exit 2). Run by hand with the farm:
promote-to-stagingrecord: exit 0;derive-possiblesrecord with nocluster_id: exit 1, "1 error(s)".Mutants of the respellings
This slice adds no guard and no fixture. Each mutant reverts or misdirects one respelled read; every one was run with that file alone, composed, over head + #45.
generator.py, notcompleteness.pyAssertionErroron the import set)doc_healthloop scanssrc/insteadcompleteness.py)REPO_ROOT / "scripts"AssertionError: [])gate_console.pyREPO_ROOT / "docs"CONTRACTS_DIRtest invertedgate-intent.schema.yamlfrom the farm after the conftest builds it6aeb6797, before the fix: 127 passed, 5 skipped, so it survived (the masking Copilot r4199436303 named). At57a970fc: a collection error (FileNotFoundError), so it is killedUnchanged
Base (
maine2340bb6) vs head (683b9562), each file alone and composed: 974 nodes, 0 differ, and no node goes from green to red anywhere.test_column_contributions_governed.py: 9 passed at both.tests/test_declared_exclusion.py, lone (noPYTHONPATH): 207 passed at base and at head.CI
T095 has landed, so this head carries
openxfactory_rootandCONTRACTS_DIRfrommain. Locally, in validate's lone form at683b9562(pinned openDoxdede32b4,--deselectof LEFT_OUT):selected=1165 passed=1161 skipped=4 failures=0 errors=0, against the floors 1099 / 1095 / 4.tests/test_declared_exclusion.pyrun alone reads 207 passed at base and at head.CI at
683b9562:validatepassed (run 37548600589):selected=1165 passed=1161 skipped=4 failures=0 errors=0, against the floors 1099 / 1095 / 4 (margin 66);683b9562: Findings: None. It rates the PR "Needs a closer look" only because the PR was a draft and the composed packet result depends on T073's rail, which lands separately.Threads: 1 in all (r4199436303, fixed at
57a970fc, answered and resolved), 0 unresolved.Not done / what remains
maine2340bb6. Ifmainmoves again, the holder's loop updates the branch.doc_healthimports; this PR leaves them alone.🤖 Generated with Claude Code
Summary by Sourcery
Update composed-workflow test paths and imports so the carved repositories validate their own and shared sources correctly.
Bug Fixes:
Enhancements:
Tests: