I read this as an implementation task - I’ll trace the Task26 receipt and verification contracts, add execution-backed qualification tests first, then implement and run focused diagnostics/tests.


I found the receipt is currently a self-consistent literal (`749 passed`) with no execution. I’m moving to a v2 receipt backed by an isolated Python 3.12 pytest runner, raw streams, a machine-written item manifest, before/after source digests, and hard-bound interpreter/wheel/runner identities; the standalone verifiers will enforce the same closed schema.


The execution path is green on a real 749-item disposable suite. I’m now exercising the legacy final-state and standalone verifier tests against the v2 artifact graph and tightening any compatibility fixtures that still encode the old synthetic log.


The final-state, bootstrap, and independent-verifier paths now reject coherently rehashed substitutions across source-after, exit status, interpreter, runner, raw stdout, and collection manifest. I’m at final verification: all focused suites together, then Ruff and Ty over the scoped implementation and dedicated tests.


I read this as completed implementation - execution-bound Task26 profile qualification is now enforced and verified.

Implemented:
- Actual isolated Python 3.12 pytest execution with a bounded timeout.
- Exactly 749 collected, executed, and passed test IDs required.
- Raw stdout/stderr, collection manifest, runner, interpreter, pytest, wheel, environment, command, and source before/after bindings.
- Immutable successful qualification artifacts and receipt self-hash.
- Final-state, bootstrap, and independent verifier rejection of substitutions and coherent rehashing.
- Removed the synthetic `749 passed` receipt path.

Verification:
- Focused tests: **99 passed**
- Ruff: passed
- Ty on scoped implementation/dedicated test: passed
- Python compilation and diff checks: passed
- No commit, candidate, evidence, ledger, or live artifacts created.


I read this as a read-only implementation summary - I’ll report the exact scoped files, schema, commands, and proof tests without running or editing anything.

### Changed files

- `gateway/platforms/task26_final_state.py`
- `scripts/task26_frozen_bootstrap.py`
- `scripts/independent_verify_candidate.py`
- `tests/gateway/test_task26_profile_qualification_execution.py`
- `tests/gateway/test_task26_final_state.py`
- `tests/gateway/test_task26_frozen_bootstrap.py`
- `tests/gateway/test_task26_independent_candidate_verifier.py`

### Receipt schema

Schema:

```text
task26-profile-qualification-receipt-v2
```

Required fields:

```text
schema
profile_source_tree_digest
source_tree_sha256_before
source_tree_sha256_after
profile_wheel_sha256
command_identity
environment_contract
source_root_role
timeout_seconds
test_count
status
exit_code
interpreter
pytest_version
runner_tool
stdout
stderr
collection_manifest
receipt_sha256
```

### Exact 99-test command

```bash
.venv/bin/pytest -q tests/gateway/test_task26_profile_qualification_execution.py tests/gateway/test_task26_final_state.py tests/gateway/test_task26_frozen_bootstrap.py tests/gateway/test_task26_independent_candidate_verifier.py
```

### Exact Ruff command

```bash
.venv/bin/ruff check gateway/platforms/task26_final_state.py scripts/task26_frozen_bootstrap.py scripts/independent_verify_candidate.py tests/gateway/test_task26_profile_qualification_execution.py tests/gateway/test_task26_final_state.py tests/gateway/test_task26_frozen_bootstrap.py tests/gateway/test_task26_independent_candidate_verifier.py
```

### Exact scoped Ty command

```bash
.venv/bin/ty check gateway/platforms/task26_final_state.py scripts/task26_frozen_bootstrap.py scripts/independent_verify_candidate.py tests/gateway/test_task26_profile_qualification_execution.py
```

### Principal proof tests

Actual subprocess execution:

- `test_receipt_executes_exact_profile_suite_and_persists_execution_proof`
- `test_receipt_rejects_an_actual_run_with_fewer_than_749_tests`
- `test_receipt_rejects_source_drift_during_actual_run`

Final-state substitution rejection:

- `test_profile_qualification_rejects_coherently_rehashed_forgery`

Standalone bootstrap rejection:

- `test_bootstrap_rejects_profile_qualification_forgery_before_runtime`
- `test_standalone_bootstrap_ignores_caller_shadow_and_scrubs_runtime`

Independent verifier rejection:

- `test_independent_verifier_rejects_profile_qualification_forgery`
- `test_independent_verifier_rehydrates_after_original_runtime_cleanup`