You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the local execution lane for the only remaining pre-cohort apparatus gate. Parent direction: #24. Contract/integration branch: PR #27 (reviewer/cohort-contract-v0).
Do not run another real benchmark case until this issue's canary gate passes.
Target condition
Preferred on this Windows host: Claude Code running inside WSL2 with its native Bash sandbox enabled. Current Claude Code docs state native Windows sandboxing is unsupported; Linux/WSL2 uses bubblewrap, and sandbox.failIfUnavailable: true converts missing sandbox support into a hard failure.
The standardized condition must preserve normal useful agent capabilities while making benchmark answers/private host context inaccessible.
Minimum settings invariants:
sandbox.enabled: true
sandbox.failIfUnavailable: true
sandbox.allowUnsandboxedCommands: false
filesystem isolation remains enabled
no excludedCommands that bridge around the boundary
seccomp sandbox runtime installed on WSL2 so Windows interop Unix-socket escape is blocked
workspace under Linux filesystem, not /mnt/c/...
sandbox filesystem.denyRead covers UpdAPI answer-bearing repo paths and Windows user tree; only required runtime/project paths re-opened
matching permissions.denyRead(...) rules for answer-bearing paths so built-in file tools cannot bypass the Bash sandbox
explicit web/network/MCP/tool policy matching the future cohort cell
Use --bare if an already-available API-key/provider credential makes it viable. If bare would require creating a new credential, do not silently change the auth model; use a demonstrably sterile supported context path or escalate the one-time auth action to the owner. No host-context run can qualify.
Implement a local/portable qualification command/script that emits a JSON record conforming to schemas/isolation-canary-evidence.schema.json plus a retained artifact index/raw Claude stream.
Run two passes with fresh random nonces. Each pass must empirically prove:
built-in Read can reveal the allowed workspace nonce;
Bash/subprocess can reveal the allowed workspace nonce;
built-in Read attempts the forbidden answer-vault path but cannot reveal its nonce;
Bash/subprocess attempts that same forbidden path but cannot reveal its nonce;
a throwaway context nonce outside the standardized context is absent;
Use claude -p structured/stream output so raw tool-use/tool-result evidence is retained. A final natural-language statement like “permission denied” is not sufficient proof on its own.
The sandbox profile must also deny the real UpdAPI benchmark/controls/validators root; the randomized answer-vault sentinel is the observable proof of the same deny mechanism without dirtying benchmark files.
Evidence / binding
The resulting evidence must include/bind:
Claude Code product/CLI version
requested model configuration
adapter source SHA
context mode/profile SHA
normalized execution-policy SHA
isolation mode/profile SHA
two nonce-pass hashes + raw artifact-index hashes
qualification timestamp/status
Then create the frozen one-cell N=5 MCP plan and run:
npm run bench:cohort:validate -- <plan.json> --canary <isolation-evidence.json>
The exact plan bytes/SHA printed by that gate must be retained before attempt 1.
After that, implement/wire repeated-trial orchestration and execute exactly five scored MCP attempts under the frozen plan (max two apparatus-invalid replacements, no scored-failure replacement).
Purpose
This is the local execution lane for the only remaining pre-cohort apparatus gate. Parent direction: #24. Contract/integration branch: PR #27 (
reviewer/cohort-contract-v0).Do not run another real benchmark case until this issue's canary gate passes.
Target condition
Preferred on this Windows host: Claude Code running inside WSL2 with its native Bash sandbox enabled. Current Claude Code docs state native Windows sandboxing is unsupported; Linux/WSL2 uses bubblewrap, and
sandbox.failIfUnavailable: trueconverts missing sandbox support into a hard failure.The standardized condition must preserve normal useful agent capabilities while making benchmark answers/private host context inaccessible.
Minimum settings invariants:
sandbox.enabled: truesandbox.failIfUnavailable: truesandbox.allowUnsandboxedCommands: falseexcludedCommandsthat bridge around the boundary/mnt/c/...filesystem.denyReadcovers UpdAPI answer-bearing repo paths and Windows user tree; only required runtime/project paths re-openedpermissions.denyRead(...)rules for answer-bearing paths so built-in file tools cannot bypass the Bash sandboxUse
--bareif an already-available API-key/provider credential makes it viable. If bare would require creating a new credential, do not silently change the auth model; use a demonstrably sterile supported context path or escalate the one-time auth action to the owner. No host-context run can qualify.First work on PR #27
Before touching paid/model execution:
reviewer/cohort-contract-v0at its exact head;npm ci;npm testandnpm run bench:validate;test/cohort-contract.test.cjs, schema compilation andnpm run bench:cohort:validateCLI;Canary implementation
Implement a local/portable qualification command/script that emits a JSON record conforming to
schemas/isolation-canary-evidence.schema.jsonplus a retained artifact index/raw Claude stream.Run two passes with fresh random nonces. Each pass must empirically prove:
Use
claude -pstructured/stream output so raw tool-use/tool-result evidence is retained. A final natural-language statement like “permission denied” is not sufficient proof on its own.The sandbox profile must also deny the real UpdAPI benchmark/controls/validators root; the randomized answer-vault sentinel is the observable proof of the same deny mechanism without dirtying benchmark files.
Evidence / binding
The resulting evidence must include/bind:
Then create the frozen one-cell N=5 MCP plan and run:
The exact plan bytes/SHA printed by that gate must be retained before attempt 1.
Exit gate
This issue is complete only when:
After that, implement/wire repeated-trial orchestration and execute exactly five scored MCP attempts under the frozen plan (max two apparatus-invalid replacements, no scored-failure replacement).
No GitHub Actions.