checkpoint
Checkpoint — Save Developer Memory
When to Checkpoint
When in doubt, checkpoint — a few extra checkpoints are better than lost context.
- Completed a deliverable — feature slice, bug fix, refactor step
- Made a key decision — architecture, tradeoffs, approach choices that future sessions must follow
- Committed or pushed work — natural checkpoint moment after code lands
- Reaching a stopping point — end of a work session or switching tasks
- Before context compaction — preserve active state (PreCompact hook handles this automatically)
- Found something non-obvious — blockers, root causes, discoveries worth preserving
- User shared requirements/constraints — preserve what future work must honor
Space out checkpoints so each one captures a distinct piece of progress — one per logical milestone is the right cadence.
How to Write Good Descriptions
Your description becomes the markdown body of a .md file. Format it with structure — headers, bullet points, bold, code spans.
The WHAT/WHY/HOW/IMPACT Formula
mcp__goldfish__checkpoint({
description: "## Implemented JWT refresh token rotation\n\nThe existing single-token approach was vulnerable to token theft.\n\n- **Approach:** Rotate tokens on each use, limiting the attack window\n- **Added:** `RefreshTokenStore` with atomic file writes and 7-day expiry\n- **Tests:** All 12 auth tests passing\n- **Impact:** Unblocks the session management PR",
tags: ["feature", "auth", "security", "jwt", "refresh-token", "token-rotation", "session-management"]
})
Good vs Bad
GOOD (structured markdown):
## Fixed race condition in checkpoint writes
Concurrent saves could corrupt the daily markdown file.
- **Root cause:** Non-atomic write pattern
- **Fix:** Switched to write-tmp-then-rename with file locking
- **Verified:** Reproduced with parallel test, confirmed fix
BAD (no structure): "Fixed race condition in checkpoint file writes where concurrent saves could corrupt the daily markdown file. Root cause was non-atomic write pattern."
BAD (no context): "Fixed file writing bug"
Structured Fields
Use type to classify your checkpoint for better searchability:
type: "decision"→ includedecision+alternativestype: "incident"→ includecontext+evidencetype: "learning"→ includeimpact
All types benefit from symbols, next, and impact.
Tags — Think About Future Search
Tags power fuzzy search recall. Write them for discoverability — how would future-you search for this?
Category tags (1-2):
- Type:
feature,bug-fix,refactor,docs,test - Area:
auth,api,ui,database,build - Status:
wip,blocked,discovery,decision
Concept tags (2-5) — the important part:
- Include synonyms and related terms for the core topic
- Include the problem domain, not just the solution
- Think: "what words might I use when searching for this later?"
Example: a checkpoint about implementing retry logic for payment webhooks:
- BAD tags:
["bug-fix", "payments"] - GOOD tags:
["bug-fix", "payments", "retry", "resilience", "webhooks", "fault-tolerance", "idempotency"]
Example: a decision to use WebSockets over SSE for real-time updates:
- BAD tags:
["decision", "api"] - GOOD tags:
["decision", "real-time", "websockets", "sse", "push", "streaming", "notifications"]
What Gets Captured Automatically
You don't need to include these — Goldfish captures them:
- Git branch — current branch name
- Git commit — current HEAD short hash
- Changed files — files modified since last commit (
.memories/excluded) - Timestamp — UTC, always
Focus your description on the MEANING, not the mechanics.
More from anortham/goldfish
recall
Restore context from Goldfish developer memory — use when starting a new session, after context loss, searching for past work, or when the user asks what happened previously, wants to find old decisions, or needs cross-project context
13plan
Create and manage persistent plans in Goldfish memory — use when starting multi-session work, making architectural decisions, or when the user discusses project direction, roadmaps, or design decisions that need to persist across sessions
13plan-status
Assess progress against the active Goldfish plan using checkpoints and plan data — use when the user asks about project progress, how things are going, what's been accomplished, or wants a status check against their plan
12standup
Generate a standup report from Goldfish memory across all projects — use when the user asks for a standup, daily update, progress summary, what they've been working on, or needs a report for a team sync
11session-memory
Automatically restore session context from persistent memory at the start of every coding session. Use this skill IMMEDIATELY when starting work to recall previous checkpoints, active plans, and git context. MANDATORY for context restoration.
2progress-tracking
Proactively checkpoint work progress at key moments without asking permission. Use when completing tasks, fixing bugs, making discoveries, or reaching milestones. Builds persistent memory across sessions.
2