---
name: run-pars-comparison
description: Run the frozen Arkhē control-versus-PARS comparison through fresh, sequential Codex contexts and produce a deterministic local receipt. Use when a user asks to test, compare, benchmark, reproduce, audit, or contrast PARS against a one-sentence prompt, simple checklist, or short verifier. Use the bundled pinned $apply-pars-deep Skill only for the PARS arm. Do not use this skill merely to apply PARS to an ordinary task; invoke $apply-pars-deep directly for that.
---

# Run the PARS comparison

Run a visitor-owned experiment without an OpenAI API key. Keep arm generation outside the controlling conversation, use a mechanical answer key, and preserve the boundary between a local receipt and a scientific result.

## Select the path

- For an ordinary request to use PARS, invoke `$apply-pars-deep` and solve the task. Do not run this benchmark.
- For a comparison or reproduction request, read [protocol.md](references/protocol.md), then use the automated path below.
- For a question about the audit's result, open the public audit rather than rerunning the benchmark unless the user asks for a new run.

## Run the controlled comparison

1. Require a local `codex` executable authenticated through ChatGPT. Do not request or accept an API key.
2. Do not open `assets/ANSWER_KEY.json` in the model context before arm generation. Let the deterministic runner consume it privately.
3. Choose a new output directory that does not contain prior arm answers.
4. Execute:

   `python3 scripts/run_frozen_comparison.py --output <new-output-directory>`

5. Do not retry failed arms automatically. Preserve the recorded order, failure status, logs, hashes, and receipt.
6. Report each arm's deterministic score, severe false-support flags, reported tokens when observable, and execution status.
7. State that the run is a self-run replication input, not canonical audit evidence or proof of general superiority.

The runner launches arms sequentially in cryptographically shuffled order. Every arm gets the same frozen task packet. Only arm D receives the byte-frozen upstream `$apply-pars-deep` Skill.

## Handle unavailable local execution

If nested Codex execution is unavailable, do not simulate four independent arms in this conversation. Explain that the host cannot establish clean contexts and provide the four prompts from `assets/CONDITIONS.json` plus `assets/TASK_PACKET.md` for separate fresh tasks. Score only after the user supplies the resulting directories.

To score supplied arm directories without generating new answers, execute:

`python3 scripts/run_frozen_comparison.py --score-only <run-directory>`

## Preserve the proof boundary

- Treat hashes as byte-identity evidence only.
- Treat the deterministic score as correctness on this frozen bank only.
- Do not use the same model response as an independent semantic judge.
- Do not infer model identity beyond the observable client surface.
- Do not claim sampling equivalence, PARS superiority, PARS uselessness, or component causality from one run.
- Keep raw outputs and receipts local unless the user explicitly chooses to share them.

## Validate the installation

Run the deterministic installation check before the first live experiment:

`python3 scripts/run_frozen_comparison.py --self-test`

This checks the frozen hashes, exact scorer, mutation rejection, and upstream Skill identity without spending model usage.
