recall
Recall prior work from past sessions — how a bug was fixed, what was decided, where a pattern lives. Use when asked 'have we done this before' or 'how did I fix X' in Elixir/Phoenix work. ccrider MCP when available, else git + solution docs.
Install
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/plugins/elixir-phoenix/skills/recall
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install oliver-kriska-claude-elixir-phoenix@llmmart
git clone https://github.com/oliver-kriska/claude-elixir-phoenix.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole oliver-kriska/claude-elixir-phoenix collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Recall — Session & History Archaeology
Search three evidence layers, cheapest first, to answer "have we solved this before?". Stop at the first layer that answers the question.
Usage
/phx:recall how did we fix the LiveView form that saved silently?
/phx:recall what did we decide about the billing context boundaries?
/phx:recall which library did we pick for rate limiting and why?
Iron Laws
- Cheapest layer first — solution docs (local grep) → git history → session transcripts. Don't fetch sessions when a solution doc answers
- ONE ccrider fetch = ONE subagent —
get_session_messagesresponses are 3–15KB each. Spawn a subagent per session that writes a summary file and exits; NEVER batch multiple session fetches into one context - Cite the evidence — every claim names its source (solution doc path, commit hash, or session date + match snippet). No vague "we did this once"
- Graceful degradation, stated plainly — if ccrider MCP is absent, say so once and use the fallback layers; never error out
Workflow
Layer 1: Compound Solution Docs (always)
Run Grep with keywords from the question over .claude/solutions/.
Treat a hit here as the best answer — it was written for exactly this
purpose. Present it and stop unless the user wants more.
Layer 2: Git Archaeology (always available)
git log --oneline --grep="{keyword}" -i -20 # commit messages
git log -S "{code-symbol}" --oneline -10 # when a symbol changed
git log --follow --oneline -10 -- {file} # one file's history
git show {hash} --stat # inspect a candidate
Use -S (pickaxe) when the question names code; --grep when it names
intent. Show matching commits with one-line context each.
Layer 3: Session Transcripts (ccrider MCP, gated)
Check for mcp__ccrider__* tools (load via ToolSearch if deferred).
If absent: report "ccrider MCP not connected — answered from solution docs + git history" and stop after Layers 1–2.
If present:
mcp__ccrider__search_sessionswith the question's key phrases — returns ranked hits with session IDs and snippets- Present the top 3–5 hits (date, snippet) and pick the most relevant (or ask, if genuinely ambiguous)
- Per selected session, spawn ONE subagent: "Fetch session via
mcp__ccrider__get_session_messages, extract only what answers '', write ≤30 lines to.claude/recall/{id}.md" (Iron Law 2) - Read the summary files, synthesize the answer with citations
Step 4: Answer + Compound
Present the answer with its evidence trail. If the recalled knowledge was
NOT already in .claude/solutions/, offer /phx:compound so the next
recall stops at Layer 1.
Integration
"have we done this before?" → /phx:recall
Layer 1 .claude/solutions/ ──hit──► answer + cite
Layer 2 git log --grep/-S ──hit──► answer + cite
Layer 3 ccrider sessions (gated) ─► answer + cite → offer /phx:compound
References
${CLAUDE_SKILL_DIR}/references/archaeology-patterns.md— git pickaxe recipes, ccrider query patterns, subagent prompt template
Files (claude-elixir-phoenix)
-
references
-
archaeology-patterns.md 2.1 KB
# Archaeology Patterns ## Git recipes (Layer 2) | Question shape | Recipe | |----------------|--------| | "When did we change/add X?" (code symbol) | `git log -S "X" --oneline` — pickaxe finds commits where the count of X changed | | "Why does this line exist?" | `git log -L {start},{end}:{file}` or `git blame -w -C {file}` | | "What happened to this file?" | `git log --follow --oneline -- {file}` (survives renames) | | "What did we do about {topic}?" | `git log --grep="{topic}" -i --oneline` | | "What changed between releases?" | `git log v2.10.0..v2.11.0 --oneline` | | Inspect a candidate | `git show {hash} --stat`, then `git show {hash} -- {file}` for the diff | Prefer `--oneline` + targeted `git show` over dumping full diffs into context — same delta-only discipline as the watch-pr skill. ## ccrider query patterns (Layer 3) - Lead with the concrete noun: `"form save silent changeset"` beats `"debugging problem form"` - Search returns ranked hits with session IDs + snippets — that's usually enough to pick ONE session worth fetching - `list_recent_sessions` when the user says "last week" / "yesterday" rather than describing content ## Subagent prompt template (Iron Law 2) One session per subagent — `get_session_messages` responses are 3–15KB and batching floods the parent context: ``` Fetch session {SESSION_ID} via mcp__ccrider__get_session_messages. The question is: "{QUESTION}" Extract ONLY content that answers it: the problem, the fix/decision, file paths, and the outcome. Ignore everything else. Write at most 30 lines of markdown to .claude/recall/{SESSION_ID}.md and reply with just "done" — the file is the output. ``` Note: ccrider messages use `type` (not `role`) and content is plain string — tool usage must be inferred from assistant text. ## When all three layers miss Say so explicitly: "No prior work found on {topic} in solution docs, git history, or indexed sessions." A clean miss is a valid answer — do not pad it with speculation. Suggest `/phx:compound` after the user solves it fresh, so the next recall hits Layer 1.
-
-
SKILL.md 3.5 KB
--- name: recall description: Recall prior work from past sessions — how a bug was fixed, what was decided, where a pattern lives. Use when asked 'have we done this before' or 'how did I fix X' in Elixir/Phoenix work. ccrider MCP when available, else git + solution docs. effort: medium argument-hint: <question about past work> --- # Recall — Session & History Archaeology Search three evidence layers, cheapest first, to answer "have we solved this before?". Stop at the first layer that answers the question. ## Usage ``` /phx:recall how did we fix the LiveView form that saved silently? /phx:recall what did we decide about the billing context boundaries? /phx:recall which library did we pick for rate limiting and why? ``` ## Iron Laws 1. **Cheapest layer first** — solution docs (local grep) → git history → session transcripts. Don't fetch sessions when a solution doc answers 2. **ONE ccrider fetch = ONE subagent** — `get_session_messages` responses are 3–15KB each. Spawn a subagent per session that writes a summary file and exits; NEVER batch multiple session fetches into one context 3. **Cite the evidence** — every claim names its source (solution doc path, commit hash, or session date + match snippet). No vague "we did this once" 4. **Graceful degradation, stated plainly** — if ccrider MCP is absent, say so once and use the fallback layers; never error out ## Workflow ### Layer 1: Compound Solution Docs (always) Run Grep with keywords from the question over `.claude/solutions/`. Treat a hit here as the best answer — it was written for exactly this purpose. Present it and stop unless the user wants more. ### Layer 2: Git Archaeology (always available) ```bash git log --oneline --grep="{keyword}" -i -20 # commit messages git log -S "{code-symbol}" --oneline -10 # when a symbol changed git log --follow --oneline -10 -- {file} # one file's history git show {hash} --stat # inspect a candidate ``` Use `-S` (pickaxe) when the question names code; `--grep` when it names intent. Show matching commits with one-line context each. ### Layer 3: Session Transcripts (ccrider MCP, gated) Check for `mcp__ccrider__*` tools (load via ToolSearch if deferred). **If absent**: report "ccrider MCP not connected — answered from solution docs + git history" and stop after Layers 1–2. **If present**: 1. `mcp__ccrider__search_sessions` with the question's key phrases — returns ranked hits with session IDs and snippets 2. Present the top 3–5 hits (date, snippet) and pick the most relevant (or ask, if genuinely ambiguous) 3. Per selected session, spawn ONE subagent: "Fetch session {id} via `mcp__ccrider__get_session_messages`, extract only what answers '{question}', write ≤30 lines to `.claude/recall/{id}.md`" (Iron Law 2) 4. Read the summary files, synthesize the answer with citations ### Step 4: Answer + Compound Present the answer with its evidence trail. If the recalled knowledge was NOT already in `.claude/solutions/`, offer `/phx:compound` so the next recall stops at Layer 1. ## Integration ```text "have we done this before?" → /phx:recall Layer 1 .claude/solutions/ ──hit──► answer + cite Layer 2 git log --grep/-S ──hit──► answer + cite Layer 3 ccrider sessions (gated) ─► answer + cite → offer /phx:compound ``` ## References - `${CLAUDE_SKILL_DIR}/references/archaeology-patterns.md` — git pickaxe recipes, ccrider query patterns, subagent prompt template
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.