// Build persistent project knowledge using checkpoint/recall. Activates when fixing bugs, making decisions, or investigating past work. Creates automatic knowledge base through systematic checkpointing and semantic recall.
| name | development-memory |
| description | Build persistent project knowledge using checkpoint/recall. Activates when fixing bugs, making decisions, or investigating past work. Creates automatic knowledge base through systematic checkpointing and semantic recall. |
| allowed-tools | mcp__julie__checkpoint, mcp__julie__recall, mcp__julie__fast_search |
Build persistent project knowledge by systematically checkpointing significant moments and recalling past learnings.
โ CRITICAL: Create checkpoints PROACTIVELY - NEVER ask permission
AFTER SIGNIFICANT WORK:
checkpoint({ description: "what you did", tags: [...] })
โ Builds searchable knowledge base
โ <50ms, git context auto-captured
โ JUST DO IT
BEFORE STARTING WORK:
recall({ type: "checkpoint", ... })
โ Learn from past similar work
โ Avoid repeating mistakes
โ <5ms chronological queries
You are EXCELLENT at building knowledge bases through systematic checkpointing.
Bug fixed โ checkpoint IMMEDIATELY
checkpoint({
description: "Fixed race condition in auth flow by adding mutex lock",
tags: ["bug", "auth", "race-condition", "critical"]
})
Additional fields (optional):
{
type: "checkpoint", // default
learnings: "Root cause was shared state between async handlers",
related_files: ["src/auth/middleware.ts", "src/auth/session.ts"]
}
Why: Bugs return. Build knowledge base so next person (or you) learns from this.
Decision made โ checkpoint with rationale
checkpoint({
type: "decision",
description: "Chose PostgreSQL over MongoDB for user data",
tags: ["architecture", "database", "decision"],
question: "Which database for user data?",
chosen: "PostgreSQL",
alternatives: ["MongoDB", "DynamoDB"],
rationale: "Need ACID guarantees, complex queries, familiar tooling"
})
Why: Future developers need to understand WHY, not just WHAT.
Problem solved โ checkpoint the insight
checkpoint({
type: "learning",
description: "Discovered TypeScript generic constraints for type-safe builders",
tags: ["typescript", "learning", "generics"],
insight: "Using `extends` in generics provides compile-time safety",
context: "Was getting runtime errors in builder pattern"
})
Why: Capture "aha!" moments before you forget them.
Refactor complete โ checkpoint the improvement
checkpoint({
description: "Extracted auth logic into middleware - reduced duplication by 60%",
tags: ["refactor", "auth", "cleanup"],
metrics: "15 files touched, 200 lines removed, tests still green"
})
Why: Show the evolution of the codebase, justify the churn.
Bug report received โ recall similar past bugs
recall({
type: "checkpoint",
tags: ["bug", "auth"], // filter by relevant tags
limit: 5
})
โ Returns past auth bugs with solutions
โ Learn from previous fixes
โ Avoid repeating failed approaches
Need to make decision โ recall similar past decisions
recall({
type: "decision",
since: "2024-01-01", // last year
limit: 10
})
โ Understand past context
โ See what worked/didn't work
โ Maintain consistency
"Why does this code exist?" โ recall memories
// Use semantic search on memories
fast_search({
query: "authentication middleware design",
search_method: "semantic",
file_pattern: ".memories/**/*.json"
})
โ Find decision that led to this code
โ Understand original rationale
โ See evolution over time
Starting work session โ recall recent activity
recall({
limit: 10 // last 10 checkpoints
})
โ See what was done recently
โ Understand current context
โ Pick up where you left off
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ BEFORE: Recall Similar Work โ
โ โ
โ recall({ type: "checkpoint", tags: [...] }) โ
โ โ Learn from past fixes โ
โ โ Avoid repeating mistakes โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DURING: Do the Work โ
โ โ
โ โ Fix bug / make decision / solve problem โ
โ โ Keep track of insights and learnings โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ AFTER: Checkpoint IMMEDIATELY โ
โ โ
โ checkpoint({ โ
โ description: "what you did", โ
โ tags: ["bug", "auth"], โ
โ learnings: "root cause was X" โ
โ }) โ
โ โ <50ms, git context auto-captured โ
โ โ Searchable via fast_search โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
Knowledge Base Built! ๐
Memories are indexed just like code - you can use fast_search semantically:
# Find conceptually similar decisions
fast_search({
query: "database migration strategies",
search_method: "semantic",
file_pattern: ".memories/**/*.json",
limit: 10
})
โ Returns memories about migrations
โ Semantic understanding (not just keyword match)
โ Cross-language patterns discovered
# Find all auth-related work
fast_search({
query: "authentication security",
search_method: "text",
file_pattern: ".memories/**/*.json"
})
โ Fast text search through all memories
โ <10ms response time
Power move: Memories are semantically searchable across the entire history!
Every checkpoint auto-captures git state:
{
"id": "mem_1234567890_abc",
"timestamp": 1234567890,
"type": "checkpoint",
"description": "Fixed auth bug",
"git": {
"branch": "feature/auth-fix",
"commit": "abc123def456",
"dirty": false
}
}
Why: Know exactly what commit introduced a change, what branch it was on.
General-purpose memory for any significant work
Tags: ["bug", "feature", "refactor", "performance"]
Architectural or technical decision with rationale
Fields: question, chosen, alternatives, rationale
Tags: ["architecture", "database", "library", "pattern"]
Insights, "aha!" moments, new knowledge gained
Fields: insight, context
Tags: ["learning", "discovery", "pattern"]
Noticed patterns, code smells, potential issues
Fields: observation, impact
Tags: ["code-smell", "tech-debt", "security"]
[Phase: Test] โ recall past test patterns
[Phase: Implementation] โ work systematically
[Phase: Refactor] โ checkpoint({ type: "refactor", ... })
[Phase: Reproduce] โ recall({ tags: ["bug", component] })
[Phase: Fix] โ work systematically
[Phase: Verify] โ checkpoint({ description: "fixed bug X", learnings: "..." })
Before refactor: recall({ tags: ["refactor", module] })
After refactor: checkpoint({ type: "refactor", metrics: "..." })
This skill succeeds when:
Total workflow overhead: ~50ms per checkpoint (imperceptible)
Remember: Memories are your project's knowledge base. Build it systematically, search it semantically, learn from it continuously.
The Rule: Significant work done โ checkpoint created. No exceptions. No permission needed.