npx claudepluginhub pragnition/pragnition-public-plugins --plugin rapidThis skill is limited to using the following tools:
You are the RAPID pause handler. This skill pauses an executing set and saves its state to a HANDOFF.md file so a new context window can resume later. Follow these steps IN ORDER. Do not skip steps.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
You are the RAPID pause handler. This skill pauses an executing set and saves its state to a HANDOFF.md file so a new context window can resume later. Follow these steps IN ORDER. Do not skip steps.
if [ -z "${RAPID_TOOLS:-}" ] && [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "${CLAUDE_SKILL_DIR}/../../.env" ]; then export $(grep -v '^#' "${CLAUDE_SKILL_DIR}/../../.env" | xargs); fi
if [ -z "${RAPID_TOOLS}" ]; then echo "[RAPID ERROR] RAPID_TOOLS is not set. Run /rapid:install or ./setup.sh to configure RAPID."; exit 1; fi
echo "Environment loaded. RAPID_TOOLS=${RAPID_TOOLS}"
If the user provided a set name as argument (/rapid:pause {setName} or /rapid:pause 1):
Resolve the set argument through the numeric ID resolver:
# (env preamble here)
RESOLVE_RESULT=$(node "${RAPID_TOOLS}" resolve set "<user-input>" 2>&1)
RESOLVE_EXIT=$?
if [ $RESOLVE_EXIT -ne 0 ]; then
echo "$RESOLVE_RESULT"
# Display the error message from the JSON and STOP
fi
SET_NAME=$(echo "$RESOLVE_RESULT" | node -e "d=JSON.parse(require('fs').readFileSync(0,'utf-8')); console.log(d.resolvedId)")
Use SET_NAME for all subsequent operations. Skip to Step 3.
If no set name was provided, find executing sets:
node "${RAPID_TOOLS}" execute wave-status 2>/dev/null
Parse the JSON output and filter for sets with phase "Executing".
If multiple executing sets: Use AskUserQuestion with:
If exactly one executing set: Use AskUserQuestion with:
If no sets are executing: Print: "No sets are currently executing. Pause is only available for sets in the Executing phase." and end.
Use AskUserQuestion to ask for pause notes:
If "Add notes": Ask freeform: "What notes should the next session see when resuming?" Capture the response as userNotes.
If "Skip notes": Set userNotes to empty string.
Read STATE.json for the current wave/job status snapshot:
node "${RAPID_TOOLS}" state get --all 2>/dev/null
Parse the state to extract the set's current wave/job progress. Build a checkpoint JSON:
{
"handoff_done": "Set paused by user",
"handoff_remaining": "Resume from current wave/job position",
"handoff_resume": "{userNotes or 'No notes provided'}",
"wave_snapshot": { "current_wave": N, "completed_jobs": M, "total_jobs": T },
"timestamp": "ISO-8601"
}
Pipe the checkpoint to the pause CLI:
echo '{...checkpoint JSON...}' | node "${RAPID_TOOLS}" execute pause {setName}
Parse the JSON output which contains { paused, setName, pauseCycles, handoffPath }.
Display the pause result:
Set '{setName}' paused successfully.
- Handoff file:
{handoffPath}- Pause cycle: {pauseCycles}
- Registry phase updated to: Paused
If pauseCycles >= 3: Show warning:
Warning: This set has been paused {pauseCycles} times. Consider replanning this set -- frequent pauses may indicate the set scope is too large.
Use AskUserQuestion with:
Handle accordingly or end.
/rapid:execute -- the orchestrator handles that path directly..planning/sets/{setName}/HANDOFF.md