ralph-specum-start
ralph-specum-start initializes or resumes a specification-driven development workflow within the Ralph Specum system. It parses user intent to identify or create a spec, resolves its location, initializes state tracking with phases and iteration limits, and sets up progress documentation. Use this skill when explicitly requested to start a new spec, resume an existing one, or begin work on a named specification goal.
git clone --depth 1 https://github.com/tzachbon/smart-ralph /tmp/ralph-specum-start && cp -r /tmp/ralph-specum-start/plugins/ralph-specum-codex/skills/ralph-specum-start ~/.claude/skills/ralph-specum-startSKILL.md
# Ralph Specum Start Use this for the `start` and `new` entrypoints. 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` - Keep `.current-spec` in the default specs root - Keep the standard Ralph files stable - Merge `.ralph-state.json`. Do not replace the full object ## Action 1. Parse explicit name, goal, exact `--quick` or exact `--interactive`, `--resume <prototype-id>`, commit flags, optional specs root, and optional `--tasks-size fine|coarse`. Reject both mode flags together, `-q`, variants, and natural-language substitutes. 2. Classify new versus resume intent, then resolve the classified target by explicit path, exact name, or `.current-spec`. A new-spec request does not inherit or recover the existing current spec. 3. If the same name exists in multiple configured roots, stop and require a full path. 4. Check active epic context from `specs/.current-epic` when no explicit spec was chosen. 5. For large or cross-cutting goals, route to triage instead of forcing a single spec. 6. `new` is an alias here. Create the spec directory if needed. 7. Initialize or merge state with: - `source: "spec"` - `name` - exact `goal` text used by the context gate - `basePath` - `phase: "research"` - `taskIndex: 0` - `totalTasks: 0` - `taskIteration: 1` - `maxTaskIterations: settings default or 5` - `globalIteration: 1` - `maxGlobalIterations: 100` - `commitSpec: settings auto_commit_spec or true` - `relatedSpecs: []` - `awaitingApproval: false` while the goal interview is active - preserve or set `quickMode` - preserve or set `granularity` when `--tasks-size` was supplied - preserve or set `epicName` when starting from an epic suggestion 8. Update `.current-spec`. 9. Write `.progress.md` with goal, current phase, next step, blockers, learnings, and skill discovery results. 10. On resume, prefer `tasks.md` and present files over stale state when they disagree. 11. Run `phase_gate.py mode` through `"$RALPH_CODEX_PLUGIN_ROOT/scripts/phase_gate.py"` with `STATE` and the exact supplied mode flag. No flag normalizes invalid legacy quick state to interactive. 12. Run skill discovery pass 1 against the goal. Collect plugin skills, project `.agents/skills`, project `.claude/skills`, and the current Codex harness catalog. Always select explicitly named skills and record shadowed duplicates. 13. Load `"$RALPH_CODEX_PLUGIN_ROOT/skills/interview-framework-codex/SKILL.md"`, its required algorithm and domain-modeling references, and every selected domain contract in both interactive and quick mode. In interactive mode, follow that algorithm for the start goal territory: outcome and observable success, material scope boundaries, critical constraints, and viable high-level approach. Ask no spec-path, branch, task-size, or discoverable question. 14. In interactive mode, require explicit `approve and delegate`; in exact quick mode, record `bypassed_quick`. In both modes, run `phase_gate.py check-delegation` with the current loaded-manifest identity before creating a `research-analyst` child. 15. Pass the absolute helper path, state path, identity tuple, a unique teammate dispatch identity, and the verbatim `phaseSkillLoad` manifest. The child must record its loads and pass `check-agent-write` with that unique identity before writing `research.md`. 16. Validate `research.md`, merge `phase: "research"` and `awaitingApproval: true` in interactive mode or `false` in exact quick mode, update progress, and present artifact approval when interactive. 17. In exact quick mode, record the quick bypass, generate missing artifacts in order, skip normal approval pauses, and continue into implementation in the same run. ## Prototype Reconciliation and Resume After resolving the classified target and before normal resume or quick routing. Skip existing-current-spec recovery for new-spec intent: 1. Use `"$RALPH_CODEX_PLUGIN_ROOT/scripts/resolve_spec_paths.py"` and only its resolved `basePath`. When both `basePath` and `<basePath>/.ralph-state.json` exist, run `"$RALPH_CODEX_PLUGIN_ROOT/scripts/prototype_records.py" reconcile --base-path "$BASE_PATH" --state "$BASE_PATH/.ralph-state.json"`, then re-read state. 2. Treat a missing `activePrototypes` field as an empty map. Sort entries by `created`, then ID. 3. Resume an explicit active ID through `$ralph-specum-prototype --resume <id>` and stop this skill. In normal mode, resume the sole active entry automatically. When several remain, list deterministic IDs with question, status, blocker, `returnPhase`, and `returnTaskIndex`, then stop for an explicit ID. 4. In quick mode, ask no question. Sort entries that block design by `created`, then ID. At the post-requirements boundary, route through `$ralph-specum-prototype --quick`; the prototype skill takes over the oldest design blocker and owns every decision. Preserve earlier quick flow and unrelated entries. 5. Treat each `resume_review` candidate as recovery work, not terminal evidence. Parse the exact candidate, verify its ID and hash, and reconstruct a minimal recovery entry from the record and source pointers. Before reviewer dispatch, reserve its ID through create-only `locked_state.py upsert-prototype` with `status: reviewing`, the exact `candidateHash`, null owner and lease fields, a null or absent `harnessRun.id`, blocker and return fields, source pointers, and recovery timestamps. This is a recovery-only entry: cancellation verifies that `owner`, `leaseToken`, and `harnessRun.id` are all null or absent and that no builder is associated, then skips interrupt and release; inconsistent builder ownership fails closed. On a concurrent reservation, re-read and continue only if its `candidateHash` matches; never overwrite it. Route the restored entry through d
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.
This skill should be used when the user asks to "add MCP server", "integrate MCP", "configure MCP in plugin", "use .mcp.json", "set up Model Context Protocol", "connect external service", mentions "${CLAUDE_PLUGIN_ROOT} with MCP", or discusses MCP server types (SSE, stdio, HTTP, WebSocket). Provides comprehensive guidance for integrating Model Context Protocol servers into Claude Code plugins for external tool and service integration.
This skill should be used when the user asks about "plugin settings", "store plugin configuration", "user-configurable plugin", ".local.md files", "plugin state files", "read YAML frontmatter", "per-project plugin settings", or wants to make plugin behavior configurable. Documents the .claude/plugin-name.local.md pattern for storing plugin-specific configuration with YAML frontmatter and markdown content.
This skill should be used when the user asks to "create a plugin", "scaffold a plugin", "understand plugin structure", "organize plugin components", "set up plugin.json", "use ${CLAUDE_PLUGIN_ROOT}", "add commands/agents/skills/hooks", "configure auto-discovery", or needs guidance on plugin directory layout, manifest configuration, component organization, file naming conventions, or Claude Code plugin architecture best practices.
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
Generate a custom checklist for the current feature based on user requirements.