From clp
Save a structured checkpoint of the current working state. This skill should be used before compacting, before switching tasks, at natural breakpoints, or to preserve decisions and progress. It enriches the handoff manifest with the actual understanding of the session state.
How this skill is triggered — by the user, by Claude, or both
Slash command
/clp:clp-checkpointThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<context>
Write the checkpoint to .claude/handoffs/ as a JSON manifest.
<output_schema> Write the file using this exact JSON structure:
{
"version": "1.0",
"session_id": "[current session ID]",
"timestamp": "[ISO 8601]",
"trigger": "manual_checkpoint",
"project": "[project path]",
"state": {
"current_goal": "[one clear sentence]",
"status": "in_progress | blocked | complete",
"phase": "planning | implementation | testing | debugging | review"
},
"context": {
"decisions": [
{ "decision": "[what]", "rationale": "[why]", "timestamp": "[when]" }
],
"discoveries": [ "[insight 1]", "[insight 2]" ],
"errors_resolved": [
{ "error": "[what broke]", "resolution": "[how we fixed it]", "file": "[where]" }
]
},
"files": {
"modified": [ { "path": "[file]", "change": "[what changed]" } ],
"created": [ { "path": "[file]", "change": "[what it does]" } ]
},
"tasks": {
"completed": [ "[task 1]", "[task 2]" ],
"pending": [ "[task 3 - highest priority first]" ],
"blocked": [ { "task": "[what]", "blocker": "[why]" } ]
},
"active_skills": [ "[file paths of loaded skill docs]" ],
"budget": {
"kernel": { "allocated": 22000, "used": 0 },
"active": { "allocated": 40000, "used": 0 },
"working": { "allocated": 133000, "used": 0 },
"buffer": { "allocated": 5000, "used": 0 }
}
}
</output_schema>
- Be specific in decisions and discoveries. "Chose NextAuth" is bad. "Chose NextAuth over custom OAuth because it integrates with our existing Next.js middleware and handles PKCE automatically" is good. - Pending tasks should be in priority order — the most important one first. - File changes should describe WHAT changed, not just that it changed. - After writing the manifest, update `.claude/handoffs/latest.json` to point to it. - Confirm to the user what was saved with a 3-line summary: goal, completed count, pending count. - If $ARGUMENTS is provided, use it as the current_goal override.npx claudepluginhub ryannle1/clp --plugin clpSaves and resumes state for multi-phase commands like /debug, /epic, /feature, /implement, and /plan, enabling work to survive session interruptions.
Captures current Claude Code session state as a reviewable snapshot without stopping work. Summarizes focus, progress, decisions, files touched, and current thread; optionally saves to Markdown file. Ideal for checkpoints, sharing, or reorientation in long sessions.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.