Install any skill in seconds. Free to start, no credit card required.
Get Started Free →tzachbon/ralph-specum-cancel
This skill should be used only when the user explicitly asks to use `$ralph-specum-cancel`, or explicitly asks Ralph Specum in Codex to stop execution or remove a spec.
Passed 12 of 16 test cases with the skill, and 4 of 16 without it.
and 13 more in the full report
12 fixed4 passed either way5 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
During full spec removal, the user asks if remote git tracking branches should also be pruned automatically. What rule applies?
| Checked | Without skill | With skill |
|---|---|---|
| Refuses to delete remote branches under any condition | Missed | Passed |
The instructions your model reads when the skill loads.
Use this to stop execution safely and optionally remove a spec. Safe cancel preserves the spec and every prototype source path.
Derive RALPH_CODEX_PLUGIN_ROOT from this loaded skill by resolving two parent directories from the SKILL.md directory. Never derive it from the project working directory.
.current-specactivePrototypes field as an empty map.ralph-state.json when present and summarize the current phase and progress.activePrototypes is non-empty, use the resolved basePath and run "$RALPH_CODEX_PLUGIN_ROOT/scripts/prototype_records.py" reconcile before cancellation. Process active IDs by created, then ID, at the next safe tool boundary.owner, leaseToken, and harnessRun.id. When owner and leaseToken are both null or absent, verify that harnessRun.id is also null or absent and no builder is associated, then skip interrupt and release and continue cancellation. If those fields disagree, treat the entry as inconsistent builder ownership: retain the lease and active entry and stop for that ID. Otherwise, interrupt only its recorded child builder through the bounded harness contract. Release through locked_state.py release-lease --id <id> --lease-token <leaseToken> only after the harness verifies that the recorded builder and descendants stopped. If interruption is unavailable or unverified, or reports any failed termination attempt, retain the lease and active entry and stop cancellation for that ID.verdict: cancelled, gateApproved: false, and sourceDisposition: retained. Never overwrite existing candidate or final bytes; allocate a new publication ID with supersedes: ["<original-id>"] on collision.candidateHash. Update the existing original entry through compare-and-set transition, or reserve a separate superseding ID through create-only locked_state.py upsert-prototype with the copied recovery fields and exact candidateHash. Retain the original active entry unchanged while the superseding record is reviewed. A reservation collision preserves both entries and candidates and allocates another ID.REVIEW_PASS, then call review-candidate and publish with the publication ID and exact candidate hash.locked_state.py without changing unrelated state.cancelled record, delete only .ralph-state.json through locked_state.py delete-state. Keep the spec directory, .current-spec, terminal records, prototype source, partial work, scratch paths, worktrees, and local branches.test cases passed, vs 4 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.