schemas/evaluator-plan-v0.1.schema.json; experiments/local_validator.pyIDKMesh now has separate WorkUnit, worker ResultManifest, and independent VerificationResult contracts. The remaining trust problem is control of the evaluator itself.
If a candidate worker can modify the tests, verification policy, baseline, or evaluator configuration used to judge its own work, independent verification collapses even if the final result object has a separate verifier identity.
At the same time, immediately executing arbitrary hidden tests or WorkUnit commands on the host would create a new remote-code-execution risk.
Adopt Evaluator Sovereignty as an IDKMesh invariant.
The evaluator’s control data is a separate verifier-owned object (EvaluatorPlan) that:
The first local validator backend is intentionally metadata_only. It performs deterministic schema, scope, artifact-digest, provenance, and verification-request checks but never executes candidate-controlled code on the host.
This preserves two independent security boundaries:
worker cannot rewrite evaluator
verifier cannot automatically integrate candidate
It also lets IDKMesh make useful progress on independent verification before a safe sandbox execution backend exists.
The deterministic scope rule is:
Delta = complete_candidate_snapshot XOR trusted_baseline_snapshot
Authorized(p) =
Allowed(p)
AND Writable(p)
AND NOT Forbidden(p)
ScopePass = all(Authorized(p) for p in Delta)
The verifier derives Delta itself rather than trusting the candidate’s declared output list.
Rejected as the sole design. Public declarative validator requirements belong in WorkUnit, but the worker should not control the concrete evaluator implementation used to judge its own output.
Rejected. The worker could omit unauthorized changes. The verifier must derive the changed-path set independently.
Rejected for v0.1. This creates an unnecessary code-execution risk before sandbox/resource/network boundaries are implemented.
Rejected. Verification evidence and integration authority remain separate layers.
The next verifier execution backend should run trusted hidden evaluator code plus an untrusted candidate inside a disposable sandbox, with the evaluator mounted read-only and outside candidate write authority. The metadata-only backend should remain available as a cheap deterministic preflight layer.