idkmesh

Conversation record: Phase B2 Task 001 evidence and evaluator calibration

Date: 2026-08-28 Repository: MSKazemi/idkmesh

User instruction

The project owner instructed: Continue.

The standing project rule is to preserve substantive collaboration in the public repository and to prefer measurable, executable progress over additional untested theory when the next engineering step is clear.

Starting repository state

The repository had advanced substantially since the earlier canonical-node integration work:

The first frozen task was:

benchmark/phase-b2/001-cohort-path-boundary

with frozen source revision:

9c53bb4069a5db1c0688dbbe7a8f028540cbf7c2.

It targeted a real repository-boundary bug in tools/benchmark_cohort.py: the public validate and definition-digest commands directly resolved --cohort with (ROOT / args.cohort).resolve() instead of using the existing repository-bounded resolve_repo_file(...) guard.

Scientific boundary

The frozen Task 001 WorkUnit intentionally contains no node-specific execution extension. Adding such an extension after the task was frozen would change the canonical WorkUnit digest and invalidate the already-bound public EvaluatorPlan.

Therefore this turn did not mutate the frozen task definition to force it through idkmesh-node.

A worker-neutral deterministic baseline instead:

  1. checked out the exact frozen source separately;
  2. replaced exactly the two vulnerable cohort-loading lines with the existing fail-closed repository resolver;
  3. changed only tools/benchmark_cohort.py;
  4. emitted a canonical ResultManifest v0.1 plus a strict unified-diff candidate;
  5. passed four controlled negative regressions:
    • validate with an absolute path;
    • definition-digest with an absolute path;
    • validate with traversal;
    • definition-digest with traversal;
  6. routed the candidate through the exact frozen public EvaluatorPlan v0.2.

First observed outcome: valid fix rejected

The frozen evaluator rejected the straightforward candidate.

The reason was not provenance, scope, schema, artifact digest, log integrity, or worker status. Those checks passed. The only missing semantic item was:

resolve_repo_file(args.cohort

The frozen plan stores that value as required_added_text, while deterministic patch verifier v0.1.1 interprets each entry as exact full added-line membership. The correct candidate adds full Python statements containing the fragment, so the exact-line predicate does not match.

This was a legitimate benchmark failure signal: changing the meaning of required_added_text after seeing the candidate would violate the pre-outcome freeze.

Concurrent mainline convergence

While this experiment was running, the repository independently converged on the same integrity decision:

The original frozen definition digest remains:

sha256:4fdec8a2768e32dc223b218ed70aec3a67aefcd87c64b72c5675c9921a4eab5c.

This branch therefore stopped trying to attach Task 001 as a verified benchmark outcome and became diagnostic/evaluator-calibration work only.

Stronger calibration: false negative and false positive

The experiment then tested whether the exact-line evaluator was merely too strict or was also gameable.

An adversarial calibration candidate was constructed on the same frozen source. It intentionally did not repair the security bug. It only added an inert valid-Python multiline string containing an exact added line:

resolve_repo_file(args.cohort

The candidate stayed inside the WorkUnit path scope and produced schema-valid, digest-consistent metadata.

The frozen evaluator accepted this decoy with recommendation accept_candidate.

A separate controlled execution against that decoy source then passed an absolute out-of-repository cohort file to definition-digest. The command returned exit code 0 and printed the cohort definition digest, proving that the original path-boundary vulnerability remained present.

Therefore the frozen Task 001 evaluator demonstrates both:

  1. false negative — rejects the straightforward correct fix that passes the seeded security regressions;
  2. false positive — accepts an inert exact-line decoy while the indexed security bug remains.

This is stronger evidence than a simple matching mismatch. The exact-line proxy is not calibrated to the task objective and can be Goodharted.

Final reproducible evidence

The final exact-head GitHub Actions run was:

Key canonical evidence digests reported by the finalizer:

The decoy boundary observation independently returned:

New executable artifacts

This branch adds:

Decision and next step

Do not reinterpret or mutate the frozen evaluator plan after this result.

Retain the first-five cohort as burned diagnostic evidence and continue through issue #157 with an explicitly versioned successor semantic contract, for example a field whose name and implementation unambiguously specify substring matching. The successor evaluator should contain tests showing the difference between exact-line and substring semantics and should be frozen before the next cohort sees candidate outcomes.

Task 001 is already solved in the live repository and is no longer untouched held-out evidence.

Authority boundary

This experiment grants no:

Worker success is not acceptance. Verifier recommendation is decision support, not integration authority. Even the adversarial verifier acceptance is explicitly treated as a calibration false positive, not as evidence that the decoy solves the task.