Date: 2026-08-28
Repository: MSKazemi/idkmesh
Primary issues: #5, #14, #16, #37
The project owner asked IDKMesh to continue autonomously from the previous verification/backpressure work and keep the substantive project output in the public repository.
The immediately preceding work had added:
While an independent-validator implementation was being prepared, the repository was changing concurrently.
A first branch/PR (#73) attempted to add a local metadata-only validator. During that work, PR #72 — Build zero-cost executable independent verifier MVP merged into main and solved the same core gap with:
experiments/local_verifier.py;Rather than keep two competing verifier implementations, PR #73 was explicitly closed as superseded.
This is an important collaboration rule for IDKMesh itself: when parallel branches converge on the same subsystem, prefer reconciliation and incremental differentiation over duplicating architecture.
PR #72 separated verifier policy from the candidate workspace, but the policy object itself was still a small untyped control file. The remaining trust gap was evaluator-control binding:
IDKMesh adopted Evaluator Sovereignty as ADR-0009.
The core principle is:
A worker must not control the evaluator used to judge its own candidate, and evaluator independence must be content-bound rather than inferred only from filesystem location.
The trust chain is now:
WorkUnit -> public requirements and authority
ResultManifest -> untrusted worker self-report
EvaluatorPlan -> verifier-owned, content-bound control plane
VerificationResult-> independent evidence and recommendation
integration -> separate later policy/human authority
Added:
schemas/evaluator-plan-v0.1.schema.jsonverification/fixtures/verifier-smoke-evaluator-plan.jsonThe plan binds:
Let:
H_W = SHA256(canonical_json(WorkUnit))
H_E = SHA256(canonical_json(EvaluatorPlan))
V_W = RequiredValidatorIDs(WorkUnit)
V_E = EvaluatorPlan.required_validator_ids
Before evaluation:
Plan.work_unit_id = WorkUnit.id
Plan.work_unit_version = WorkUnit.version
Plan.work_unit_digest = H_W
Plan.source_revision = ResultManifest.source_revision
V_E = V_W
Plan.verifier.id != ResultManifest.worker.id
Plan.path not-in CandidateRoot
VerificationOutput not-in CandidateRoot
After evaluation:
VerificationResult.provenance.verifier_config_digest = H_E
Mismatch means fail closed before positive decision support.
Added experiments/evaluator_plan_runner.py.
It is intentionally a guard/wrapper, not a second verifier. It delegates candidate evaluation to the already merged experiments/local_verifier.py from PR #72.
The guard:
The evaluator-plan self-test first confirms the existing PR #72 known-good candidate still passes and known-bad self-consistent candidate still fails.
It then requires rejection of:
It also confirms that the successful VerificationResult contains the SHA-256 of the complete EvaluatorPlan.
Added .github/workflows/evaluator-plan-binding.yml.
The workflow runs only metadata/deterministic checks and does not execute candidate code.
For PR #81, all triggered workflows completed successfully. The dedicated Evaluator plan binding job explicitly passed:
PR #81 — Bind verifier control to exact WorkUnit with EvaluatorPlan was squash-merged into main.
Merge commit:
403658833ed484fbd71b4c9140176a4de7d1e542
Issue #5 was updated with the completion evidence and remains open.
This work does not claim that repository-level hidden tests are safely executable yet.
It does not:
The next high-value verifier step is gated by issue #37: run the canonical idkmesh-node smoke on a controlled Docker host and bind evidence to the exact tested commit.
After that gate is satisfied, extend the existing verifier with a disposable sandbox backend where:
verifier-owned hidden evaluator/test bundle (read-only, digest-bound)
+
untrusted candidate workspace
|
v
disposable sandbox
|
v
normalized VerificationResult evidence
EvaluatorPlan should become the content-addressed control object for those hidden/regression/security checks rather than inventing another parallel verifier protocol.