# Savepoint

> Recoverable coding-session checkpoint at .savepoint/SAVEPOINT.md for context reset/session transfer. Use for 세이브포인트 만들어줘, 세이브포인트 로드해줘, 세이브포인트 읽어줘, 세이브포인트 이어서 해줘. Not for SQL SAVEPOINT, ordinary summaries, direct code/docs edits without checkpoint intent, /status, /new, PTY/session control, session rotation, or app features named savepoint.

- Skill: `dd3ok/savepoint` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add dd3ok/savepoint`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dd3ok/savepoint/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: dd3ok (https://skillmd.com/u/dd3ok)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dd3ok/savepoint

---


Modes:
- default or `save`: create or refresh `.savepoint/SAVEPOINT.md`
- `load`: verify an existing savepoint and report whether continuation is safe
- `text`: response-only copy-paste handoff; no file recovery guarantee

## Rules

- During save/load verification, stay in savepoint scope; do not edit application code.
- Resolve `<savepoint-skill-dir>` before running commands; Claude Code: `${CLAUDE_SKILL_DIR}`.
- Do not run `/new`, `/status`, PTY/session rotation, threshold policy, or background process control.
- Run the bundled CLI; do not inspect implementation source during normal use.
- Prefer current disk/Git/durable state over chat memory.
- Do not paste transcripts, diffs, logs, shell history, PRDs, ADRs, issues, or commit text; cite paths, URLs, branches, or commits.
- Redact API keys, tokens, cookies, credentials, private keys, passwords, `.env` values, and PII as `<redacted>`; never put raw secrets in input.
- File savepoints must end with exactly one `SAVEPOINT_V1` marker block.
- Keep top-level `SAVEPOINT.md` compact; use generated `details/*.md` only when needed for recovery.

## Create / Save

1. Treat any focus text only as next-session focus.
2. Prepare compact input JSON with `goal`, `current_state`, `next_action`, `files_to_inspect_first`, and `unresolved_blockers`; if none exists, run `python3 <savepoint-skill-dir>/scripts/savepoint.py init-input --output .savepoint/input.json`.
3. Set `validation.project.status` to `passed`, `failed-expected`, `failed-blocking`, `not-run-justified`, or `not-run-unknown`. `failed-expected` needs failed command/result/summary, reason, next validation; `not-run-justified` needs reason and next validation.
4. Run `python3 <savepoint-skill-dir>/scripts/savepoint.py save --input .savepoint/input.json --output .savepoint/SAVEPOINT.md --assert-no-active-commands --scan-redaction --validate`.
5. Inspect only generated `.savepoint/SAVEPOINT.md`; report exact path, `RESUME_READY`, blockers if any, and the first next action.

Exit code `2` may write not-ready `SAVEPOINT.md`; inspect, report blockers, and do not continue unless `RESUME_READY: yes`.

## Load / Resume

1. Select user path first, else `.savepoint/SAVEPOINT.md`; run `python3 <savepoint-skill-dir>/scripts/savepoint.py inspect <path> --json`.
2. Verify cwd, Git root, branch, short HEAD, status, and diff against disk state.
3. Disk state wins over savepoint text. Report drift before edits.
4. Continue only when the user requested continuation and `RESUME_READY` is `yes`, with no blocking drift or missing required file.
5. For inspect-only requests, do not clean up by default.

## Text Mode

Use text mode only for explicit copy-paste, text-only, `no-file`, `no files`, `in-response`, or `in the response` requests.

Prepare `.savepoint/input.json` as in Save, then run `python3 <savepoint-skill-dir>/scripts/savepoint.py text --input .savepoint/input.json`.

Text mode must not claim `.savepoint/SAVEPOINT.md` was written, repo recovery is guaranteed, or `RESUME_READY: yes`.

## Advanced Cases

Read references only when normal CLI use is insufficient: `references/contract.md` for marker/resume/cleanup/stale/detail/overwrite, `references/safety.md` for secrets, `references/template.md` for renderer fallback.

For refresh, append `--force` only when existing `.savepoint/SAVEPOINT.md` is the generated, untracked, valid default artifact and no history preservation was requested; otherwise preserve or ask.

