From vibebook
**TRIGGER IMMEDIATELY when the user's question contains retrospective phrasing in ANY language:** 之前是怎么解的 / 之前怎么解的 / 上次怎么处理的 / 上次怎么解决的 / 以前遇到过吗 / 以前我们怎么做 / 之前我们试过吗 / how did we fix X before / how was Y solved / why does Z work this way / what did we try last time / did we already try W. **Also trigger on:** design/architecture/prior-art questions — what pattern should I use for X / how have we approached Y before / what did we decide about Z / is there prior art for W. **Anti-pattern to break before reflex kicks in:** the question often contains clear keywords (file name, crash type, API) and your shortcut instinct is `git log --grep="<keyword>"` — DO NOT. Commit messages strip the conversation context where the user explained what didn't work and why; vibebook chronicles preserve decisions, dead ends, trade-offs, and unmerged-attempt context that git history can't surface. Run vibebook-recall stage 1 (one CLI call, ~5 KB) FIRST; if no topic matches, *then* fall back to git. Three-stage progressive recall — stage 1 = topic list. Stage 2 (`--topic <slug>`) = chronicles in that topic + frontmatter. Stage 3 = `Read` chronicle bodies. Cheap to invoke; when in doubt, run stage 1 — never deduplicate it away as "git is faster". When the optional memex CLI is on PATH, atomic-card entries fold in automatically.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vibebook:vibebook-recallThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You (in-session Claude) just landed in a project repo. The user has been
You (in-session Claude) just landed in a project repo. The user has been
working in this repo (and others) for weeks/months, and the vibebook
plugin has captured every Claude Code + Copilot session into
~/.vibebook/session-repo/. The /vibebook skill has digested those
sessions into per-project chronicles (one per work thread,
4-section AI-first body) and topics (one per subsystem). When
memex is installed, atomic
cards also exist — vibebook surfaces them too in the recall payload.
Your job here: before you start exploring code, figure out which past topic(s) bear on the current task, then read the matching chronicles. Past-you may have already debugged exactly this thing.
A typical project has 5-15 topics and 30-150 chronicles. Loading all chronicle bodies = hundreds of KB and crowds out room for the actual work. So we walk from coarse to fine:
| Stage | Payload | Question it answers |
|---|---|---|
| 1 (default) | ~5 KB — topics + 1-line summaries | "Which subsystem does my task touch?" |
2 (--topic <slug>) | ~5-15 KB — chronicles in that topic + frontmatter (no body) | "Within this subsystem, which past work is most similar?" |
3 (Read tool) | full body, ~2-5 KB per chronicle | "What did past-me actually do here?" |
Run this first, in the user's current cwd:
"$VBP" recall --cwd "$(pwd)"
The output is a JSON payload like:
{
"stage": "stage-1-topics",
"project": "edge-src",
"repoPath": "/Users/me/.vibebook/session-repo",
"entries": [
{
"kind": "topic",
"project": "edge-src",
"title": "Edge macOS Menu Bar Copilot",
"summary": "Edge for Mac places a Copilot icon in the menu bar; left-click opens a floating widget, right-click opens a context menu.",
"path": "book/edge-src/topics/menu-bar-copilot-mac.md",
"slug": "menu-bar-copilot-mac",
"updatedAt": "2026-04-22",
"tags": []
},
{
"kind": "memex-card",
"project": "_memex",
"title": "Frameless NSWindow corner radius must match content radius",
"summary": "Chromium views frameless NSWindow rounded corners must equal the content radius — DCHECK fires otherwise.",
"path": "memex:gotcha-rounded-corners-must-match",
"slug": "gotcha-rounded-corners-must-match",
"updatedAt": "2026-04-25",
"tags": ["macos", "views"]
}
],
"meta": {
"topics": 5,
"chronicles": 0,
"memexQueried": true,
"memexCards": 12,
"nextStep": "Pick a relevant topic, then run: "$VBP" recall --project <slug> --topic <topicSlug>"
}
}
Stage 1 includes:
kind: "topic" — vibebook topics for the current project. Read
summary to gauge subsystem fit.kind: "memex-card" (optional) — when meta.memexQueried === true,
vibebook found memex on PATH and folded its index in. memex-card
entries have path: "memex:<slug>" — to read the body, run
memex read <slug> (NOT the Read tool).For each topic in stage 1, ask: does the title or summary mention what I'm about to touch (file / API / bug / feature)? Pick the 1-2 most likely topics. Don't try to read everything — most projects have many topics, but only a few will be relevant to a given task.
If a memex card title matches the task even more directly than any
topic (gotcha for the exact API you're touching, e.g.), memex read
it now — those are atomic and quick.
For each picked topic, fetch its chronicles:
"$VBP" recall --cwd "$(pwd)" --topic <topic-slug>
Output:
{
"stage": "stage-2-articles",
"project": "edge-src",
"topic": "menu-bar-copilot-mac",
"repoPath": "/Users/me/.vibebook/session-repo",
"entries": [
{
"kind": "chronicle",
"project": "edge-src",
"title": "Native header + 3 PR landing",
"summary": "status=shipped · 4 files · 3 commits · 2 decisions",
"path": "/Users/me/.vibebook/session-repo/book/edge-src/chronicle/2026-04-25__menu-bar-app-native-header__menu-bar.md",
"slug": "menu-bar-app-native-header",
"frontmatter": {
"files_touched": [
"chrome/browser/ui/cocoa/edge_menu_bar/edge_menu_bar_widget_header_view.mm",
"chrome/browser/ui/cocoa/edge_menu_bar/edge_menu_bar_prefs.cc"
],
"commits": ["7bc9ef48b654", "abcd1234ef56"],
"decisions": ["Native C++ header over server-side header (audit blocker)"],
"status": "shipped"
},
"updatedAt": "2026-04-25",
"tags": ["copilot", "macos"]
}
],
"meta": { "chronicles": 7, "memexQueried": true, ... }
}
The frontmatter tells you 80% of what you need without reading the body:
files_touched matches the file you're about to edit?commits includes a SHA you're about to revert / cherry-pick?decisions already made the architectural call you were about to debate?status: blocked means past-you tried this and got stuck — read the
body to see why before retrying.For chronicles whose frontmatter looks relevant, use the Read tool with
the absolute path:
Read /Users/me/.vibebook/session-repo/book/edge-src/chronicle/2026-04-25__menu-bar-app-native-header__menu-bar.md
Chronicles are short (1-3 sentences per section, the body is the receipt for the frontmatter). 3-5 reads is usually plenty.
For memex cards, run memex read <slug> instead.
When you reply to the user:
menu-bar-app-native-header, you decided native C++ header
over the server-side approach because of an audit blocker — let me
follow the same pattern…""$VBP" recall errors with "no synced sessions for cwd" — the user
hasn't synced this project. Fall back to normal exploration; don't
pester them to sync.Read the 1-3 chronicles whose frontmatter actually
matches. Reading 7 chronicles to find the 1 useful one wastes
context.keyConcepts in topic frontmatter and files_touched in chronicle
frontmatter./vibebook (write) | /vibebook-recall (read) | memex (atomic) | |
|---|---|---|---|
| When | After a session, run before moving on | At the START of new work | Whenever an atomic insight comes up |
| Cwd | session-repo (global) or project (project mode) | Always a project repo | Anywhere |
| Reads | raw_sessions/ | book/ (+ memex if installed) | ~/.memex/cards/ |
| Writes | book//{chronicle,topics}/ | nothing | ~/.memex/cards/ |
| LLM | in-session Claude (you) | in-session Claude (you) | in-session Claude via /memex-retro |
The three skills close the loop:
/vibebook writes notes for future-you (chronicle + topic)./memex-retro writes atomic cards for future-you (when memex is installed)./vibebook-recall lets future-you read all of the above in one pass.npx claudepluginhub june9593/vibebook-plugin --plugin vibebookProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.