ralphex-plan
Create structured implementation plan in docs/plans/
Convert plans from various source formats (OpenSpec, spec-kit, GitHub/GitLab issues with checklists, generic task-lists, free-form markdown) into ralphex-format plans in docs/plans/. Triggers on "ralphex-adopt", "adopt plan", "convert plan to ralphex", "import plan as ralphex".
$ npx -y skills add umputun/ralphex --skill ralphex-adopt --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ralphex-adoptContext preview
The summary Claude sees to decide when to auto-load this skill.
Convert plans from various source formats (OpenSpec, spec-kit, GitHub/GitLab issues with checklists, generic task-lists, free-form markdown) into ralphex-format plans in docs/plans/. Triggers on "ralphex-adopt", "adopt plan", "convert plan to ralphex", "import plan as ralphex".
description: Convert plans from various source formats (OpenSpec, spec-kit, GitHub/GitLab issues with checklists, generic task-lists, free-form markdown) into ralphex-format plans in docs/plans/. Triggers on "ralphex-adopt", "adopt plan", "convert plan to ralphex", "import plan as ralphex". allowed-tools: [Bash, Read, Write, Glob, Grep, AskUserQuestion]
**SCOPE**: Read a source plan in some other format and produce a new ralphex-format plan at `docs/plans/YYYYMMDD-<slug>.md`. The source is never modified. Existing target files are never silently overwritten.
Supported source shapes:
This is a single-skill conversion: discover, classify, ask focused questions when in doubt, draft, review, write. Do not modify code, do not run tests, do not commit. Output is the new plan file only.
This check is **informational only**. Missing ralphex CLI must NOT break the flow — conversion does not require it. Do NOT block, exit, prompt the user, or wait for installation. Always continue to Step 1 regardless of the result.
which ralphex
If `which ralphex` returns non-zero, briefly mention that ralphex is needed to execute the converted plan later (not now), list install options once, and continue immediately:
If `which ralphex` succeeds, say nothing and proceed.
Inspect `$ARGUMENTS` and pick exactly one source by shape, in this order:
1. **Full URL** (starts with `http://` or `https://`):
2. **Bare reference** `#N`:
3. **Qualified reference** `owner/repo#N` or `group/project#N`:
4. **Existing path** — first probe the literal argument as a filesystem path with `test -e "$ARGUMENTS"`:
5. **Bare name** — only if the argument failed every check above (not a URL, not `#N` or `owner/repo#N`, and `test -e` returned false). A bare name has no path separators and contains no path-like characters:
6. **No argument**:
After resolving, store: source kind (`github-issue`, `gitlab-issue`, `file`, `directory`, `pasted`), source content (full text or directory listing + key files), and source identifier for the slug suggestion.
Look at the resolved content and classify it as one of:
If multiple signals point in different directions (e.g., a directory with both a `proposal.md` and a clearly spec-kit-shaped `plan.md`), AskUser to confirm which format to use before drafting.
Before writing any draft, scan the source for items the agent cannot confidently map. For each uncertainty, AskUser **before drafting**, never embed placeholder markers (`???`, `TBD`, `[FIXME]`) into the converted plan.
Common uncertainties:
Create structured implementation plan in docs/plans/
Smart-merge updated ralphex defaults into customized prompts/agents