save-progresslisted
Install: claude install-skill jgjake2/claude-usage-limit-monitor
# save-progress
Writes a timestamped JSON checkpoint (plus a readable `.md` copy) to `progress/`, and
updates `progress/latest.json` so resuming never requires a hand-copied filename.
## How to call it
The two fields are long multi-line prose, so they go through a JSON file rather than
command-line arguments (which would be a quoting minefield on Windows).
**Step 1** -- write the payload to `progress-payload.json`:
```json
{
"task": "One-line description of what the overall task is",
"progress": "Everything accomplished so far: files changed, decisions made, intermediate results, anything already verified.",
"resumePlan": "The concrete next steps, remaining work, and any dependencies or prerequisites.",
"notes": "Optional. Anything else the next session needs."
}
```
**Step 2** -- run:
```
node .claude/skills/save-progress/save-progress.js --payload progress-payload.json --consume
```
`--consume` deletes the payload file after a successful save.
`progress` and `resumePlan` are required and must be non-empty.
To pipe the JSON on standard input instead, pass `--stdin` explicitly:
```
... | node .claude/skills/save-progress/save-progress.js --stdin
```
`--stdin` is opt-in on purpose: without it, a harness that leaves stdin open would block
this script forever, and it runs precisely when the budget is nearly gone.
## Response
```json
{ "saved": true, "path": "...", "markdownPath": "...", "latestPointer": "...", "savedAt": "..." }
```
On failure: `{