Skip to content
Back to writing
· 9 min read

Reliability is not safety: Compiled context raised observed correctness and unsafe acceptance

A pinned local Qwen3-4B study made every compiled-context answer structurally valid while observed correctness and unsafe acceptance both rose.

One arm produced 61 malformed answers. The other produced none. The second arm was less safe.

The study ran one pinned local Qwen3-4B model against the same questions and schedule. Raw context produced valid primary answers in 75 of 118 conditions. Compiled context produced valid primary answers in all 118.

Correctness rose by 8.98 points. Review burden fell by 26.28 points. Unsafe acceptance rose by 16.75 points and crossed the preregistered +5-point harm threshold.

The overall outcome was negative.

Evidence boundary: this is one completed local Qwen3-4B A versus C study. It compares raw and compiled context under a frozen protocol. It does not compare model sizes, establish a scaling law, calibrate confidence, prove general determinism, or provide an unconditional benchmark.

Reliable structure is not safe judgment.

What changed between A and C

Arm A received raw context. Arm C received context built through the deterministic compiler described in Context should be a build artifact, not a prompt assembled at runtime.

The model, questions, bases, schedule, scoring rules, and run boundary stayed fixed. Context construction changed.

The completed attempt covered 14 independent bases, split evenly between Distill and LLMTraceFX. It scheduled 118 conditions and 332 observations, including the repeat subset. The result contained 271 valid observations, 61 malformed JSON observations, and zero adapter errors.

This was not a retry chosen after seeing model output. The v2 protocol was frozen before any v2 model output. The corrected runner landed in Distill PR #109 at commit 670a48a, with all 12 CI checks green.

One model. Two context paths.

Primary conditions / equal-weight base rates
Preregistered outcome negative
Raw context arm A and compiled context arm C results
MetricArm AArm CDelta
Format validity63.6%100%+36.4 points
Correctness28.35%37.34%+8.98 points
Review burden57.21%30.93%-26.28 points
Unsafe acceptance26.77%43.53%+16.75 points
A = raw context C = compiled context Harm threshold = +5 points unsafe acceptance
Figure 1. Compiled context made every primary answer structurally valid and raised observed equal-weight correctness by 8.98 points. Unsafe acceptance rose by 16.75 points, which crossed the preregistered harm threshold and made the overall outcome negative.

The correctness test used equal weight per independent base. Arm A scored 28.35%. Arm C scored 37.34%. The exact two-sided base-clustered sign-flip test gave p=0.09375. That result is not conventionally significant. The p-value applies only to correctness.

Review burden fell from 57.21% to 30.93%. Unsafe acceptance rose from 26.77% to 43.53%. No p-value was computed for unsafe acceptance. The preregistered decision rule did not need one: a rise above 5 points was harm. The observed rise was 16.75 points.

The malformed answers were accidental abstentions

The result looks odd until the scoring rule is visible.

A malformed observation scored correctness=false, review=true, and unsafe=false. It could not become an unsafe acceptance because it never produced a valid decision. The format failure sent the case to review.

Arm A had 105 valid observations and 61 malformed observations across the full schedule. Arm C had 166 valid observations and none malformed.

Compiled context did what it was meant to do. It removed structure failures. But that change also removed 61 accidental review decisions. More outputs reached the judgment stage. Some were correct. More were also unsupported accepts.

Figure 2. The scoring rule counted malformed output as review, not unsafe acceptance. Compiled context removed that accidental abstention and exposed both better answers and more unsupported accepts.

Malformed JSON is not a safety control. A system should not rely on broken output to stop an action. But the comparison exposes a real dependency: if a malformed response currently forces review, fixing the format changes the safety behavior of the whole pipeline.

The compiler improved the answer channel. It did not improve the permission policy.

What held up under scrutiny

There was exactly one completed attempt. Independent runner verification regenerated the summary byte for byte with SHA-256:

bea16fbb9fe5de39bb128be76f3874a3faecdc3c59c3cc7073743afa259130f4

The execution report SHA-256 was:

1fcf50d28d4dadb3997de77eff88db918b9e06e52d177aa9dae1c4b034913e7b

A custody recheck preserved the bound result. The repeat subset covered 48 arm pairs. Decision agreement, route agreement, malformed agreement, and evidence-ID Jaccard were all 1.0. That is realized repeatability for this subset, not general determinism.

Leave-one-base-out checks kept both movements in the same direction for every omitted base:

Measure Range across omitted bases
Correctness delta +4.78 to +10.96 points
Unsafe-acceptance delta +11.63 to +19.58 points

Threshold development selected no-safe-auto-action. Confidence was unavailable, so the study did not calibrate confidence.

Arm C used 2.4622 times the input tokens. Mean latency rose by 3.06%. Both numbers are descriptive. They are conditioned on the quiescent host and are not clean causal performance results. The quality phase captured no Metal trace.

The failed starts are part of the result

The run history matters because each stop protected the one-attempt rule.

Failures stopped the run before evidence moved.

Method history / one completed attempt
  1. v1 invalid
    consumed attempt

    Adapter startup stopped before observation 1.

    0 model loads / 0 observations
  2. v2 prep 1 NO_RUN
    pre-authorization

    Readiness stopped with Colima at or above the 1 GiB limit.

    No authorization / load / inference
  3. v2 prep 2 NO_RUN
    pre-authorization

    Adapter-check rejected a null versus empty-array binding.

    No authorization / load / inference
  4. amendment corrected
    outcome-independent

    The producer binding changed before any model outcome existed.

    Reviewed and merged in PR #109
  5. v2 completed
    sole attempt

    The authorized run completed all 332 scheduled observations.

    1 attempt / 0 adapter errors
stopped before v2 authorization consumed model run
Figure 3. V1 ended before observation 1. Two v2 preparations stopped before authorization, model load, and inference. The outcome-independent correction landed before one authorized v2 attempt completed.

V1 became invalid during adapter startup before observation 1. It recorded zero model loads and zero observations.

The first v2 preparation stopped at readiness because Colima met or exceeded the frozen 1 GiB unrelated-process limit. The second stopped during adapter-check because a Go host snapshot encoded empty arrays as null, while the strict Python binding required [].

Both v2 stops happened before authorization, model load, and inference. Neither consumed the attempt.

The producer fix changed the binding, not the protocol or scientific identities. It was outcome-independent because no model outcome existed. Reviewers merged the correction before a new authorization. Then one attempt ran to completion.

That chronology is not setup drama. It is evidence that the method failed closed.

What this result does not show

This result does not show that compiled context beats a larger model. No larger model ran.

It does not show that more context tokens caused the correctness or safety changes. The arms changed context construction, and the token and latency measurements remain descriptive.

It does not establish a scaling claim, calibrated confidence, general model determinism, production safety, or an unconditional benchmark. It does not transfer beyond the pinned local Qwen3-4B, the frozen A and C contexts, and this schedule.

A model that answers every time still needs permission to say no.


Evidence: Corrected implementation PR #109 · Exact merged implementation · Frozen v2 preregistration · V1 status and v2 amendment · Public evidence draft PR #110 · Public aggregate · Result report · Public evidence checksums

Support independent writing

If this post was useful, consider supporting my open source work and independent writing.