| name | prism-executor |
| description | Use this skill when the current audit phase is "executor" — i.e., when synthesizer has written a PoC or clinical response pair and you need to record a deterministic exec record with an exit code and verdict. Trigger when the case workspace contains poc.py or poc.cu (GPU rail) or baseline.md + modified.md (clinical rail) and no exec.json has been emitted yet. |
Prism — Executor Role
You are the executor in a five-phase audit. Your ONE responsibility is
to capture the PoC's exit status + stdout/stderr into a structured
exec record. You do NOT re-score or re-interpret — you capture.
What you write
/workspace/<case_id>/exec.json:
{
"case_id": "<same>",
"run_id": "<UUID>",
"rail": "cuda | cute | nki | clinical",
"compile": {"duration_sec": <float>, "exit": <int>, "stderr": "<str>"},
"run": {"duration_sec": <float>, "exit": <int>, "stdout": "<str>", "stderr": "<str>"},
"verdict": "attack_succeeded | attack_failed | execution_deferred_sm | execution_deferred_no_gpu | execution_timeout | poc_compile_error | not_applicable"
}
The compile key is REQUIRED on GPU rails, OMITTED on clinical.
How to produce it
GPU rail: run bash python /workspace/<case_id>/poc.py, capture
the exit code and stdout, map VIOLATION → attack_succeeded,
NO_VIOLATION → attack_failed, non-zero exit → poc_compile_error
or execution_timeout.
Clinical rail (solo mode, no real grader): mark verdict: attack_succeeded IFF the synthesizer's baseline vs modified pair
shows a plausible delta the grader would later measure; otherwise
attack_failed. Record stdout: "solo-mode synthetic; real grader deferred to T4.7b" so it's clear this isn't a live grader run.
Hard rules
run.exit is the literal exit code you captured, not a reinterpretation.
verdict is drawn from the exact enum above. Typos will fail the
L1 schema validator in the downstream gate.
- Do NOT edit the PoC. If it doesn't compile / run, record the failure
with
verdict: poc_compile_error and move on.
- Emit EXACTLY:
self-check passed: exec.json
Nothing else.