Skip to content

Phase 22 — execution correction increment

This page preserves the initial increment's implementation/evidence scope. The current implementation status records later changes and the user-authorized deferral of the full paid benchmark and pilots.

This increment restores benchmark execution. Phase 22 technical acceptance is not complete: the new detector catalog, shared discovery/compatibility, review context, campaign scheduling and report migration remain under implementation. The user authorized the frozen corpus and tested Git environment on September 7, 2026 UTC; the separate decision record is artifacts/phase22/authorization.json. External pilot acceptance also remains pending. Draft PR #22 contains the execution fixes and approved expansion contract.

Static execution

The initial rules-only run completes 45/45 exposed Phase 20 inputs, up from 32/45 in the accepted baseline. The four formerly timed-out inputs finish in 25.2–31.0 seconds; the nine Helm-blocked inputs finish in 37.4–47.7 seconds. These are observed input wall times with concurrent local verification, not isolated throughput measurements. The static deadline remains 120 seconds.

A full-deadline diagnostic profile of atlassian-ssrf-vulnerable showed SENT-004 spending 95.0 seconds repeatedly walking branch events, and Semgrep spending 22.6 seconds. Indexing possible prompt sinks once and reusing event sink lists reduced the profiled scan to 27.6 seconds. Functions with no supported sink still participate in source/coverage inventory. No relevant source, detector or deadline was removed. The branch-heavy failing-before test includes a separate real prompt sink, so a fast empty result cannot satisfy it.

Helm templates keep their original bytes for generic text/secret checks and emit static_helm_template_unparsed for omitted structured YAML analysis. Ordinary YAML, chart values and Sentinel configuration stay strict. A failing-before test proves secret detection at its original template path and line without rendering or executing target tooling.

All 32 previously completed inputs retain identical stable findings and coverage, checked against the accepted Phase 20 completion-v2 native reports. This is not evidence of improved recall. Newly completed findings remain unadjudicated in this execution increment; historical labels, captures, costs and results are unchanged. No live model calls were made.

The first measurement was exploratory while the sink-cache ordering was being finalized. The final-source repeat against commit 96f25354797b79ded04a65ae273c117b9dbc57d1 completes 45/45 with identical stable findings, coverage and warnings. Its production source SHA-256 is 35fe999814921e9eb16a01e94da6be52cc929a54630dbcc6eea98e889b9fd24f. Summed input wall times are 700.644 seconds initially and 750.727 seconds in the repeat, both overlapping other verification. The prior 32 completed reports are also unchanged against this final source. Diagnostic profiles are intermediate implementation evidence, not final acceptance measurements.

Git environment proposal

The separately prepared mcp==1.29.0 environment initializes all 13/13 eligible Git inputs and discovers 12 tools per input. Every dependency check passes and all containers are removed. Tests use the existing DockerSandbox read-only source/root, no-network, CPU/memory/PID limits, no-new-privileges and ephemeral scratch boundary. No attack or security defense was measured.

The exact proposal, installed dependency lock, image identity, configurations, tool schemas, process state, container inspections, logs, cleanup and timings are retained under artifacts/phase22/git-environment-v1-tested/. Its approval-packet.md requests adoption separately from the original Phase 20 environment. The user subsequently approved adoption for Phase 22; the original proposal is preserved and the decision recorded separately. Initial host sandbox-denied diagnostics are retained separately under artifacts/phase22/git-environment-v1/.

Verification and reproduction

The targeted static suite passes 226 tests. Ruff, formatting, strict mypy, native schema checks, dependency audit/notices and the strict documentation build pass. The full suite records 677 passes and four loopback bind failures caused by host sandbox permissions; all four pass when rerun with those permissions. This gives 681 passing tests across the full run and corrected rerun, with 36 opt-in tests skipped. Branch coverage is 86.74%, above the 80% floor. Both original failures and the passing rerun are retained. Hosted CI remains in progress. Raw evidence is under artifacts/phase22/execution/.

Run the existing harness with a fresh Phase 22 output directory; do not invoke its historical report command to overwrite Phase 20 artifacts:

python -m scripts.run_phase20_benchmark rules --output /tmp/phase22-rules
python -m scripts.run_phase20_benchmark rules --output /tmp/phase22-rules-repeat --compare-to /tmp/phase22-rules
python -m scripts.prepare_phase22_git_environment --output /tmp/phase22-git-proposal

The last command requires Docker and may build dependency images using the existing restricted installation boundary. It performs discovery only and does not adopt the resulting proposal or send model requests. Rebuilding a dependency image must be compared with the recorded lock; immutable image IDs identify the environments actually tested.