Skip to content
Development
Skill

/ralph-specum-switch

This skill should be used only when the user explicitly asks to use `$ralph-specum-switch`, or explicitly asks Ralph Specum in Codex to switch the active spec.

From plugin
smart-ralph
54424 skills13 agents24 commands
Install
$ npx -y skills add tzachbon/smart-ralph --skill ralph-specum-switch --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ralph-specum-switch

Context preview

The summary Claude sees to decide when to auto-load this skill.

This skill should be used only when the user explicitly asks to use `$ralph-specum-switch`, or explicitly asks Ralph Specum in Codex to switch the active spec.

SKILL.md

ralph-specum-switch.SKILL.md
name: ralph-specum-switch
description: This skill should be used only when the user explicitly asks to use `$ralph-specum-switch`, or explicitly asks Ralph Specum in Codex to switch the active spec.
metadata:
  surface: helper
  action: switch

Ralph Specum Switch

Use this to switch the active spec.

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

  • Read `.claude/ralph-specum.local.md` when present
  • Parse `specs_dirs` from frontmatter to discover all spec roots
  • Treat the first `specs_dirs` entry as the default root
  • Default specs root is `./specs`
  • `.current-spec` lives in the default specs root
  • Do not guess on ambiguous names

Action

1. Resolve the requested target by full path or exact name. 2. If no target was provided, list available specs grouped by root. 3. If the name is ambiguous across roots, stop and require a full path. 4. Update `.current-spec`:

  • bare name for the default root
  • full path for non-default roots

5. Read the target spec state and summarize phase, progress, approval state, and present files. 6. Report prototype dependencies without mutating them:

  • Treat a missing `activePrototypes` field as an empty map.
  • When state exists, run `"$RALPH_CODEX_PLUGIN_ROOT/scripts/prototype_records.py" select-downstream --base-path "$BASE_PATH" --state "$BASE_PATH/.ralph-state.json"` using the selected spec's resolved `basePath`.
  • Show each blocker from `activeBlockers` with prototype ID, status, blocked artifact or transition, `returnPhase`, and `returnTaskIndex`.
  • Show `staleArtifacts` and `staleTaskIndexes` from the selection result.
  • Do not reconcile, remove active entries, edit records, or change blocker data. If no overlay or stale dependency exists, preserve the existing switch output.
Read more
Ships withsmart-ralph

Spec-driven development with smart compaction. Claude Code plugin combining Ralph Wiggum loop with structured specification workflow.

Get the whole plugin

Other skills on smart-ralph.