idkmesh

Project Turn: Phase B2 successor Task 001 first bounded attempt

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

User direction

Continue maintaining IDKMesh directly in the public repository.

Preconditions completed before this attempt

The fresh successor cohort was merged by PR #182 as:

d331d635718bef5561ba815e76675b434e7c2bea

Frozen cohort:

benchmark/phase-b2-successor-five

Frozen definition digest:

sha256:3182d8710e1239c19cb95daddd0677241c0cd9123614786fd919b036922dbdd9

Every successor task still had evidence.status = pending at merge. No outcome was used to tune the definition.

Scope of this execution

Only successor Task 001 was executed:

benchmark/phase-b2-successor/001-negative-evidence-type-boundary

Frozen source:

a69aa0ae1ae4862e507511cbd9ad854237d0ad32

Frozen WorkUnit digest:

sha256:04258ad63d36368ae6780b351f5e3729fe5f7a12de66aee16d1bc475a8b69096

Frozen EvaluatorPlan v0.4 digest:

sha256:1abee7b4886e8c4626af8714cfad72c04cac6e93a42920af8dddf598a2236ddc

Structural signature:

single-worker-baseline-v1

Seeded bug

On the frozen source, _validate_negative_case() first checks the JSON digest and only applies semantic VerificationResult validation when evidence_type == verification_result.

Therefore a seeded negative declaring canonical category security could use evidence_type = other and a digest-valid but semantically unrelated JSON object, and validation accepted it.

The attempt harness proved this baseline behavior before modifying the isolated source.

Candidate transform

The bounded deterministic baseline edited only:

tools/benchmark_cohort.py

The candidate changed the trust boundary to:

  1. require evidence_type == verification_result whenever expected_category is one of the canonical finding categories;
  2. return early for non-VerificationResult evidence only after that category-aware gate;
  3. preserve canonical VerificationResult schema/recommendation/category validation.

Independent evidence channels

Frozen metadata-only evaluator

The canonical EvaluatorPlan v0.4 checked the committed transition:

The verifier remained metadata-only and did not execute candidate code.

Behavioral seeded negative

The harness independently created the same schema-valid cohort negative before and after the candidate using:

Observed result:

frozen source -> accepted the opaque security evidence
candidate     -> rejected it because canonical categories require VerificationResult evidence

A separate schema-valid VerificationResult was emitted for this deliberately invalid security negative with recommendation = reject_candidate and a security finding. This seeded-negative object is not the candidate acceptance verdict.

Exact execution result

PR #187 exact head:

bcd3ad77cbd4d20339b4236ab2e5d785a63629db

Workflow:

Candidate evidence:

Seeded-negative evidence:

Temporary GitHub Actions artifact:

A durable machine-readable receipt is stored at:

docs/evidence/phase-b2-successor-task001-attempt001.json

Authority boundary

This attempt did not:

The worker self-report and verifier recommendation remain decision evidence only.

Lifecycle decision

PR #187 is attempt-specific evidence instrumentation. Its useful result is the exact evidence bundle and reproducibility record, not a permanent Task-001 workflow on main.

After preserving this record and the machine-readable receipt, the PR should be closed unmerged. The frozen cohort definition remains unchanged.