ralph-specum-cancel

ralph-specum-cancel is a skill for Codex from tzachbon/smart-ralph. It costs 45 tokens per session (930 once invoked), scanned A, original, MIT.

A cancellation tool for Ralph Specum, a workflow that runs coding tasks from written specifications. It safely stops a run and can remove its local specification.

In plain words
What is it for?
Stopping Ralph Specum execution, checking its current progress, reconciling active prototypes, and optionally deleting a confirmed local specification. It does not remove remote branches.
Why use it?
It prevents an in-progress specification run from being stopped halfway without recording what happened or confirming which files are affected.

Skill for Codex

Written for Codex: agents/openai.yaml present. Also seen: mentions Codex; $skill-name invocation.

Good fit Stopping Ralph Specum execution, checking its current progress, reconciling active prototypes, and optionally deleting a confirmed local specification. It does not remove remote branches.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tzachbon/smart-ralph/ralph-specum-cancel
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add tzachbon/smart-ralph --skill ralph-specum-cancel
Clone the repo
git clone --depth 1 https://github.com/tzachbon/smart-ralph

Made for: Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ralph-specum-cancel

README.md
[![agentmods](https://agentmods.dev/badge/skills/tzachbon/smart-ralph/ralph-specum-cancel/github.svg)](https://agentmods.dev/skills/tzachbon/smart-ralph/ralph-specum-cancel)
Your own site
<a href="https://agentmods.dev/skills/tzachbon/smart-ralph/ralph-specum-cancel"><img src="https://agentmods.dev/badge/skills/tzachbon/smart-ralph/ralph-specum-cancel/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ralph-specum-cancel

Your own site · 80×15
<a href="https://agentmods.dev/skills/tzachbon/smart-ralph/ralph-specum-cancel"><img src="https://agentmods.dev/badge/skills/tzachbon/smart-ralph/ralph-specum-cancel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 45 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 930 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00045 $0.00930
Opus 5 $0.00023 $0.00465
Sonnet 5 $0.00009 $0.00186
Haiku 4.5 $0.00005 $0.00093

Measured 12d ago against content hash e43cbacc5825, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

ralph-specum-cancel scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/ralph-specum-codex/skills/ralph-specum-cancel/SKILL.md · 40 lines

How it starts

The opening of the file, as written. The whole thing — 40 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Ralph Specum Cancel

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.

Contract

  • Resolve the target by explicit path, exact name, or .current-spec
  • Treat a missing activePrototypes field as an empty map
  • Publish reviewed immutable cancellation evidence before removing active state
  • Confirm the exact local target before any deletion
  • Never delete a remote branch or perform another remote action
  • Do not guess on ambiguous names

Action

  1. Resolve the target spec. If none exists, report that there is nothing to cancel.
  2. Read .ralph-state.json when present and summarize the current phase and progress.
  3. If 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.
  4. For each active prototype:
    • Inspect its 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.
    • Preserve its question, blocker, return phase and task, timestamps, local branch, isolation pointers, partial implementation, run evidence, stale metadata, and downstream artifacts.
    • Render an exclusive terminal candidate with 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.
    • Before review, store the exact returned 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.
    • Send the exact candidate bytes and source pointers to the reviewer. Continue only after REVIEW_PASS, then call review-candidate and publish with the publication ID and exact candidate hash.
    • Re-read and parse the immutable final and verify its hash. Publication removes its own active publication entry. When a superseding ID was used, remove the original active entry only after final verification succeeds; any earlier failure retains it. Reconcile, then restore the recorded main phase and task index through locked_state.py without changing unrelated state.
  5. Safe cancel is the default. After every active prototype has a verified immutable 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.
  6. If full removal was explicitly requested, show the resolved spec directory and every prototype isolation path and branch. Require confirmation naming the exact spec directory before removing it. Prototype paths and local branches require separate exact confirmations and are never included in recursive spec cleanup. Never delete a remote branch.
  7. If no state exists, report that no active loop exists and remove nothing unless the exact full-removal confirmation is complete.
  8. Keep active epic files unless the user separately requests their removal. Report exactly what was removed and what was preserved.

Read the full file on GitHub · 40 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 40 lines · 45 tokens per session scan A e43cbacc5825

Subscribe to this mod's changes

ralph-specum-cancel is a skill published in the GitHub repository tzachbon/smart-ralph (536 stars, last pushed 2d ago), licensed MIT. It adds 45 tokens to every session and 930 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.