# REPAIR34 — structural step submitted P04-01 remains incomplete. This step changes only the checker structural C qualification and the two local fixture boundaries, plus this status and the static-check record. The checker returns structure_qualified true and provenance_verified_by_checker false with C/S/M/C_tree/Q joins. Prospective roles return candidate_structure null. The provenance roster is documentation only, never consumed. Other parent, tree, checker-blob and binding guards were left unchanged. Candidate fixtures now expect honest structural qualification for a manufactured same-tree C. A separate --pure-only path contains three identity negatives and one exact positive with literal 40-hex inputs; it requires no Git or engine. The two role cases expect structural verification and separately record actual downstream --verify-only returncode/stdout/stderr without asserting acceptance. Both boundaries assert stderr has no 'qualification context gap'. Other negative expectations remain unchanged. These fixtures have not been executed; their downstream outcomes are pending Root execution, not inferred here. Actual verification is limited to py_compile for the three changed Python files and AST checks recorded with their real output in REPAIR34_STATIC_CHECKS.json. Temporary compilation bytecode was created only inside the allowed execution directory and removed. Every discovered fixture, including the pure candidate controls, is unexecuted. An initial editing command failed with a Python SyntaxError before any file writes; edits were then applied in place. That command was not a validation check. Explicitly pending in this same unit: - normal_c_join and its fixtures: unchanged and unexecuted here; post-final Root SQL candidate/M/S/approval/validation/review/integration/final joins remain mandatory before original credit. - Wrapper/descriptor: separate pre-run configuration with Root-derived M/S/Q and pinned source/material references, not after-run binding.runner_inputs receipts. Root JSON and exact-candidate qualification remain pending. - S5 destruction, midnight and exit drivers; S1–S4 and collector fresh Q. - All 184 executable suites / 329 parse verification; truthful index. - Root run order, independent review, integration/final and provenance joins. scratch_fixture_adapter.py routing is unchanged. No Git commands or writes, engine runs, fixture runs, Runner operations, permissions or cap changes were performed. Runner core and Owner CLI were not read; this step does not depend on them. External provenance remains a required pending context, not a reason to block the authorized structural step. All seven domains plus EV, all six D05 approvals, formal 16/88, original 30/88 and P04 credit 0 remain fixed. Frozen M is c0ea009b28a7649aca6a433a1a24dc0be5e7ab81. No condition credit, self-reported acceptance, original completion or new counted unit is claimed.