ralph-specum-status
This skill should be used only when the user explicitly asks to use `$ralph-specum-status`, or explicitly asks Ralph Specum in Codex for status or active spec progress.
Install
npx skills add https://github.com/tzachbon/smart-ralph/tree/main/plugins/ralph-specum-codex/skills/ralph-specum-status
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install tzachbon-smart-ralph@llmmart
git clone https://github.com/tzachbon/smart-ralph.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole tzachbon/smart-ralph collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Ralph Specum Status
Use this to report Ralph state across configured spec roots.
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.mdwhen present - Default specs root is
./specs .current-speclives in the default specs root- Hidden directories do not count as specs
Action
- Resolve configured roots.
- Read
.current-specto identify the active spec.- If
.current-specis missing or empty, report that there is no active spec and continue listing specs across roots.
- If
- Read
specs/.current-epicwhen present and summarize epic status. - For each spec directory, inspect:
.ralph-state.jsonresearch.mdrequirements.mddesign.mdtasks.md
- When state exists, use the resolved spec path as
basePath, run"$RALPH_CODEX_PLUGIN_ROOT/scripts/prototype_records.py" reconcile --base-path "$BASE_PATH" --state "$BASE_PATH/.ralph-state.json", then re-read state. Never constructspecs/<name>after resolution. - Inventory prototype records in lexical order:
- Read
activePrototypes, treating a missing field as an empty map. - List
prototypes/.*.candidate.md, immutableprototypes/*.mdfinals, and visible or dot-prefixed*.quarantine.mdfiles. - Parse candidates and finals with
prototype_records.py parse; useselect-downstreamwith state to derive blockers and stale dependencies.
- Read
- If
tasks.mdexists, count completed and incomplete tasks. - Group results by spec root.
- Show the active spec, current phase, backlog state, approval state, granularity when present, and which artifacts exist.
Output
- Specs in the default root can be shown by name.
- Specs in other roots should include the root suffix for disambiguation.
- Include the next likely command when it is obvious.
- If an epic is active, include the next unblocked spec.
- If approval is pending, explicitly tell the user to approve the current artifact, request changes, or continue to the named next step.
- When prototype data exists, report counts and deterministic rows for active entries, candidates, immutable finals, and quarantines. Include prototype ID, lifecycle status or verdict, blocker targets,
returnPhase,returnTaskIndex,sourceDispositionor source pointer, gate approval, and quarantine reason. - Include derived
activeBlockers,staleArtifacts, andstaleTaskIndexes. Omit the prototype section when all overlay counts are zero so legacy output stays unchanged.
Files (smart-ralph)
-
agents
-
openai.yaml 290 B
interface: display_name: "Ralph Specum Status" short_description: "Show active spec and backlog status" default_prompt: "Use $ralph-specum-status to show Ralph progress, approval state, and the next explicit action across configured specs." policy: allow_implicit_invocation: false
-
-
SKILL.md 2.8 KB
--- name: ralph-specum-status description: This skill should be used only when the user explicitly asks to use `$ralph-specum-status`, or explicitly asks Ralph Specum in Codex for status or active spec progress. metadata: surface: helper action: status --- # Ralph Specum Status Use this to report Ralph state across configured spec roots. 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 - Default specs root is `./specs` - `.current-spec` lives in the default specs root - Hidden directories do not count as specs ## Action 1. Resolve configured roots. 2. Read `.current-spec` to identify the active spec. - If `.current-spec` is missing or empty, report that there is no active spec and continue listing specs across roots. 3. Read `specs/.current-epic` when present and summarize epic status. 4. For each spec directory, inspect: - `.ralph-state.json` - `research.md` - `requirements.md` - `design.md` - `tasks.md` 5. When state exists, use the resolved spec path as `basePath`, run `"$RALPH_CODEX_PLUGIN_ROOT/scripts/prototype_records.py" reconcile --base-path "$BASE_PATH" --state "$BASE_PATH/.ralph-state.json"`, then re-read state. Never construct `specs/<name>` after resolution. 6. Inventory prototype records in lexical order: - Read `activePrototypes`, treating a missing field as an empty map. - List `prototypes/.*.candidate.md`, immutable `prototypes/*.md` finals, and visible or dot-prefixed `*.quarantine.md` files. - Parse candidates and finals with `prototype_records.py parse`; use `select-downstream` with state to derive blockers and stale dependencies. 7. If `tasks.md` exists, count completed and incomplete tasks. 8. Group results by spec root. 9. Show the active spec, current phase, backlog state, approval state, granularity when present, and which artifacts exist. ## Output - Specs in the default root can be shown by name. - Specs in other roots should include the root suffix for disambiguation. - Include the next likely command when it is obvious. - If an epic is active, include the next unblocked spec. - If approval is pending, explicitly tell the user to approve the current artifact, request changes, or continue to the named next step. - When prototype data exists, report counts and deterministic rows for active entries, candidates, immutable finals, and quarantines. Include prototype ID, lifecycle status or verdict, blocker targets, `returnPhase`, `returnTaskIndex`, `sourceDisposition` or source pointer, gate approval, and quarantine reason. - Include derived `activeBlockers`, `staleArtifacts`, and `staleTaskIndexes`. Omit the prototype section when all overlay counts are zero so legacy output stays unchanged.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.