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.
npx skills add jcwleo/oh-no-harness --skill ralphgit clone --depth 1 https://github.com/jcwleo/oh-no-harnessWrote 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.
[](https://agentmods.dev/skills/jcwleo/oh-no-harness/ralph)<a href="https://agentmods.dev/skills/jcwleo/oh-no-harness/ralph"><img src="https://agentmods.dev/badge/skills/jcwleo/oh-no-harness/ralph/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.
<a href="https://agentmods.dev/skills/jcwleo/oh-no-harness/ralph"><img src="https://agentmods.dev/badge/skills/jcwleo/oh-no-harness/ralph.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00052 | $0.15640 |
| Opus 5 | $0.00026 | $0.07820 |
| Sonnet 5 | $0.00010 | $0.03128 |
| Haiku 4.5 | $0.00005 | $0.01564 |
Grade A, and why
ralph 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 1,272 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ralph for Claude Code
This generated file is the Claude Code-facing runtime skill document. Claude Code slash commands should read this file directly; maintainers edit the source documents listed below instead.
Generated Runtime Composition
Source order:
../../docs/skill-core/ralph.md../../docs/platforms/claude-code-ralph.md
The sections below are already composed for this platform. Do not ask the runtime model to load another platform's runtime document or invocation syntax.
Source: docs/skill-core/ralph.md
Ralph
Ralph is a mode-gated execution loop: it works until acceptance criteria are
satisfied with fresh evidence, required review and cleanup gates are handled,
and the final report is written. Ralph's main agent is the orchestrator: it
owns .oh-no state, gate decisions, result intake, and FSM transitions while
executor roles own default repository work-product mutation. Ralph owns
execution mode selection or enforcement for
ordinary implementation. Do not route concrete add/fix/refactor/implement
requests directly to test-driven-development; Ralph invokes TDD internally
when behavior-changing edits require it.
Do not use when requirements are still vague — use interview or ralplan
first. Entering directly from interview, accept the path only if the spec's
provisional Ralph mode is LIGHT; a non-LIGHT spec without a ralplan plan
needs user re-confirmation before editing.
Invariants
E1. Copy the approved Direction Contract without reinterpretation before
editing. If execution would change it, stop for explicit approval instead
of silently rescoping. If the approved plan or an AC is itself wrong or
infeasible as written, stop and route back to the user or `ralplan`
(present options; never auto-invoke).
E2. An execution mode is recorded before any file change. Source priority:
approved ralplan profile > explicit user instruction > interview LIGHT
hint > Ralph-derived. Never de-escalate below an approved plan's mode
without user approval.
E3. No source edit until a `Worktree decision` is recorded from the allowed
table. A registered Git worktree is the direct-Ralph default; substitutes
(`git clone`, `cp -R`, plain directories) are forbidden.
E4. Behavior-changing work requires RED evidence (fails against old behavior)
before implementation and GREEN evidence before story completion; bug
fixes need a reproduction; refactors need characterization; exceptions
are recorded compactly.
E5. Every changed file and meaningful changed line traces to approved work;
out-of-scope findings become residual risk or follow-ups, not diff growth.
E6. Parallel dispatch only for disjoint write scopes with no inter-dependency
and clear ownership; create the whole eligible batch before waiting; a
timeout or empty wait is never a final result.
E7. Review-then-verify: when a verifier trigger fires, the selected code-review
stage completes before the single independent self-host verifier starts; on
blocking findings, the verifier starts only after the single fix manifest is
recorded. The verifier is never the maker and never a pair. The canonical
`### Independent Verifier Trigger Predicate` alone selects it; mode, size,
same authorship, reviewer presence, and imminent completion are non-triggers.
E8. Review topology is risk-gated with a one-round budget: exactly one review
round. STANDARD and ordinary THOROUGH dispatch ONE full-role code-reviewer;
only a named high-risk or diversity trigger selects the perspective-diverse
pair. Accepted blocking findings get one executor-owned focused fix; the
triggered independent verifier then audits the fixed revision as the safety
net. A blocker unresolved after that goes to rescope or user direction.
E9. Mutation invalidates intersecting evidence except that the review verdict
remains bound to its reviewed revision after the single post-review fix;
the verifier owns freshness by binding to the mutated revision, and the
caller owns it when no verifier trigger fires. Fresh revision-bound
reviewer, verifier, and command evidence is REUSED as-is: imminent
completion alone never justifies a rerun, a new test, or a fresh dispatch. A
success status without the observable effect is missing evidence. Redact
secrets/PII before writing evidence.
E10. Budget gates stop for rescope; a budget breach never authorizes
automatic expansion.
E11. The run is invalid until every completion criterion is individually
recorded in the session ledger; a silently omitted step is a named
ledger gap, not a pass.
E12. Cleanup is trigger-gated after the behavior lock and BEFORE the single
review round; rerun relevant verification whenever cleanup changes files;
post-review cleanup is read-only (findings become residual risk or
follow-ups).
E13. A direct-Ralph automatic worktree is not complete while work sits in the
worktree: merge back with post-merge verification, or report the
branch/PR handoff; on failure leave the worktree intact.
E14. Resume reconstructs state from artifacts, never working memory.
E15. Ralph is terminal: after the final report, no workflow skill is
auto-invoked. Mid-loop skills (`test-driven-development`, `simplify`,
`verification-before-completion`, `systematic-debugging`,
`fusion-rescue`) are documented loop internals, not chaining events.
E17. The main agent is the orchestrator and sole owner of `.oh-no` state and
FSM transitions. Repository work-product mutation, including
REVIEW-to-EXECUTE focused fixes, dispatches `executor` by default; inline
mutation is only a recorded LIGHT-tiny or dispatch-unavailable fallback.
A fired review or audit trigger is exempt and never runs inline.
Role result enums are caller gate inputs, never autonomous transitions.
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.
- 10d ago First seen · 1,272 lines · 52 tokens per session scan A 40be71d65460
ralph is a skill published in the GitHub repository jcwleo/oh-no-harness (11 stars, last pushed 1mo ago), licensed MIT. It adds 52 tokens to every session and 15,640 once invoked, about $0.0003 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.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…