vaultr-recap
Reviews content against the Vaultr knowledge base (_knowledge/) and surfaces what's related and what's in tension. Covers two scenarios: (1) associative recap — cross-check a single short note, daily note, draft, or pasted text against the knowledge base right now, while the thou
Install
npx skills add https://github.com/skoowoo/vaultr-notes/tree/main/skills/vaultr-recap
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install skoowoo-vaultr-notes@llmmart
git clone https://github.com/skoowoo/vaultr-notes.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole skoowoo/vaultr-notes collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Vaultr Recap — Router
Environment check
vaultr --help
If vaultr is not found, inform the user and stop.
Identify intent → load sub-skill
| Scenario | Trigger signals | Sub-skill |
|---|---|---|
| Associative recap | user shares/references a single note, short note, draft, or pasted text and wants related or conflicting knowledge surfaced right now | @associative.md |
| Periodic review | "weekly review", "回顾一下这周/这个月", review of everything created/updated over a past window rather than one piece of content | @periodic-review.md |
Load the matching sub-skill. If the request is ambiguous (e.g. just "recap" with no note and no time window named), ask the user which they mean before proceeding.
Both sub-skills share references/extract.md for partial-read commands, and both produce a conversational recap only — never a saved file.
Files (vaultr-notes)
-
references
-
extract.md 1.3 KB
# Extract — Partial Note Reading `vaultr extract` reads parts of a note without loading the full content. Use it whenever the full note is not needed. ## Subcommands **Outline** — heading structure only: ```bash vaultr extract outline <path-or-name> ``` **Section** — one named section and its content (ends at the next heading of equal or higher level): ```bash vaultr extract section <path-or-name> "<heading>" # case-insensitive vaultr extract section today.md "## meeting notes" ``` **Segment** — line range: ```bash vaultr extract segment <path-or-name> --head 20 # first N lines vaultr extract segment <path-or-name> --tail 10 # last N lines vaultr extract segment <path-or-name> --start 5 --end 30 # specific range (1-based, inclusive) ``` **Tags** — front-matter tags only: ```bash vaultr extract tag <path-or-name> ``` **Code blocks** — all fenced code blocks: ```bash vaultr extract code <path-or-name> ``` **Lists** — all bullet and numbered lists: ```bash vaultr extract list <path-or-name> ``` **Links** — all links (wikilinks and markdown links); each result shows type and target: ```bash vaultr extract link <path-or-name> ``` ## Path rules Same as `vaultr read`: accepts vault-absolute paths (`/journal/today.md`) or bare filenames (resolves to most recently updated match).
-
-
associative.md 4.5 KB
# Associative Recap Given a piece of freshly written content, cross-check it against the knowledge base and surface two things: knowledge that **reinforces or extends** it, and knowledge that's in **tension** with it. This is a real-time recall aid, not a compile step — the output is always a conversational recap, never a saved file. **Run all steps to completion without stopping. Only speak at the end (Step 5), presenting the recap.** --- ## Inputs 1. **Source content** — one of: - Inline text the user pasted directly into the request - A note reference (vault-absolute path or bare filename) — a short note, daily note, journal entry, or draft 2. **Knowledge directory** — default `_knowledge/` (relative to cwd, which is always the vault root) --- ## Step 1 — Get the source content - **Inline text**: use it directly as `source_text`. - **A named note**: `vaultr read <path-or-name>`. If it's long (a draft, article), don't load it all — `vaultr extract outline <path>` first, then pull only the sections carrying the main claims via `vaultr extract section` or `vaultr extract segment --head/--tail`. `references/extract.md` documents these commands. - **"My latest short note" / "today's shorts"**: `vaultr short list --latest 1 --limit 1` — the entry's `content` is returned inline, no file read needed. --- ## Step 2 — Distill search signal From `source_text`, extract 3–8 short search phrases: the core named entities, concepts, and — critically — the **explicit claims or stances** the content takes (not just topics). Contradiction-checking depends on stance, not keyword overlap: "remote work" as a search term finds units about remote work, but only a stance ("remote work hurts collaboration") lets you judge whether a unit agrees or conflicts. Skip generic words and boilerplate. If the source content has no clear claim (pure log entry, todo list, fact dump), search on its entities alone — tension-checking may simply come up empty, which is fine. --- ## Step 3 — Search the knowledge base If the domain is obviously unclear or the vault is large, run `vaultr knowledge list-indexes --table` first to see the domain landscape and narrow scope. Otherwise skip straight to search. For each search phrase: ```bash vaultr knowledge search "<phrase>" ``` Collect and deduplicate candidate unit paths across all phrase searches. --- ## Step 4 — Read and classify candidates For each candidate unit: 1. `vaultr extract outline <unit>` — quick structural check; drop units that are obviously off-topic. 2. For plausible matches, read enough to judge the actual stance: `vaultr extract section <unit> "<heading>"` if the outline pinpoints it, otherwise `vaultr knowledge read <unit>`. Classify each surviving unit against the source content: - **Reinforces** — the unit's existing understanding aligns with or supports the source's claim. - **Extends** — relevant background or adjacent context; deepens the picture without agreeing or disagreeing on stance. - **Contradicts** — genuine tension: the unit holds a position, definition, or fact that conflicts with what the source asserts. Do not stretch weak overlaps into contradictions — a real contradiction should be paraphrasable in one sentence that makes the conflict obvious. - **Associative leap** — not a direct topical match, but a surprising, non-obvious connection worth surfacing. Use sparingly (0–2 max) and only when it's genuinely thought-provoking, not filler. Discard units that are only weakly related. Quality over quantity — 3–8 total surviving units across all categories is typical. If nothing survives, say so plainly in Step 5 rather than forcing weak connections. --- ## Step 5 — Present the recap Output directly in the response — this is meant to be read now, while the thought is fresh. Never write it to a file. Format: ```markdown # Recap: <one-line gist of the source content> ## 🔗 Reinforces / Extends - **[[Unit Title]]** — <1-2 sentences: what it says, how it connects to the source> ## ⚡ Tension - **[[Unit Title]]** — <what conflicts, stated concretely — paraphrase the unit's actual position, don't just say "conflicts"> — <optionally, a question back to the user: has their thinking shifted, or is this a one-off?> ## 💭 Associative - **[[Unit Title]]** — <the unexpected link, and why it's worth noticing> ``` Omit any section with nothing in it. If no related or conflicting knowledge exists at all, state that directly instead of printing empty headings. -
periodic-review.md 3.5 KB
# Periodic Review Recap Reviews everything created or updated in a recent window — knowledge units, regular notes, short notes — and produces a digest: what got added, what themes are emerging, and any tensions between what's new and what's already established. Default window is the past week; the user may specify a different range. **Run all steps to completion without stopping. Only speak at the end (Step 5), presenting the recap.** --- ## Inputs 1. **Window** — default `7` days ("past week"). Use a custom range if the user specifies one (`--start` / `--end`, or a different `--latest N`). 2. **Scope** — default: knowledge units + short notes + regular notes, vault-wide. Narrow to a specific directory or domain if the user asks (e.g. "just my journal this week", "just AI knowledge units"). --- ## Step 1 — Collect activity in the window Run in parallel: ```bash vaultr knowledge list --kind knowledge --latest <window> vaultr short list --latest <window> --limit 100 vaultr list --latest <window> ``` Scope any of these to a specific directory if the user narrowed the request (e.g. `vaultr list /journal --latest <window>`). If everything comes back empty, report that nothing changed in the window and stop. --- ## Step 2 — Read what changed **Knowledge units**: for each, `vaultr extract tag <unit>` and `vaultr extract segment <unit> --head 20` for a quick read of what it's about, without a full load. Note whether `created_at` falls inside the window (new unit) or only `last_compiled_at` does (existing unit that grew this week) — `vaultr extract segment` on the frontmatter block or `vaultr knowledge read <unit>` if the distinction isn't clear from the preview. **Short notes**: `vaultr short list` returns `content` inline — no extra read needed. **Regular notes**: skim with `vaultr extract outline <note>` or `vaultr extract segment <note> --head 20`; full `vaultr read` only if a note looks central to the week's theme. --- ## Step 3 — Find themes and tensions - **Group** knowledge units and notes into 2–5 theme clusters by overlapping tags, domain, or subject matter. Single unrelated items don't need a cluster — list them individually. - **Flag within-week tensions**: if two units created/updated in the same window take conflicting positions, or a new short note contradicts a unit updated the same week, call it out. - **Flag tension against established knowledge**: if a new unit's stance conflicts with an older, unrelated-in-time unit and the connection is obvious from what you already read (don't launch a fresh full-vault search for this — only surface what surfaces naturally from Step 2's reads). - **Note growth signals**: units with a high `compile_count` jump or repeated touches this week — these are threads the author is actively developing. --- ## Step 4 — Nothing to force If the week's activity is sparse or has no clear theme, say so — don't manufacture clusters or tensions from thin material. A short, honest recap beats a padded one. --- ## Step 5 — Present the recap Output directly in the response. Never write it to a file. Format: ```markdown # Weekly Recap: <date range> ## 📈 Activity - N knowledge units created, M updated · K short notes · J regular notes ## 🧵 Themes - **<Theme>** — units/notes involved, one line on the throughline ## ⚡ Tensions - **[[Unit A]]** vs **[[Unit B]]** — what conflicts and why ## 🔭 Worth revisiting - <threads with fast growth, open questions, or loose ends from this week> ``` Omit any section with nothing in it. -
SKILL.md 2 KB
--- name: vaultr-recap description: "Reviews content against the Vaultr knowledge base (_knowledge/) and surfaces what's related and what's in tension. Covers two scenarios: (1) associative recap — cross-check a single short note, daily note, draft, or pasted text against the knowledge base right now, while the thought is fresh; (2) periodic review — recap everything created or updated over a recent window (e.g. the past week). Trigger on phrases like 'recap this', 'what do I already know that relates to this', 'does this conflict with anything I've written', 'weekly review', 'review this week's notes', '联想', '回顾一下', '和我的知识库对照一下', '有没有矛盾的观点', '实时联想', '本周回顾', '周回顾', or any request to recall related or conflicting knowledge, either for a piece of writing or for a recent time window." --- # Vaultr Recap — Router ## Environment check ```bash vaultr --help ``` If `vaultr` is not found, inform the user and stop. --- ## Identify intent → load sub-skill | Scenario | Trigger signals | Sub-skill | | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | | **Associative recap** | user shares/references a single note, short note, draft, or pasted text and wants related or conflicting knowledge surfaced right now | @associative.md | | **Periodic review** | "weekly review", "回顾一下这周/这个月", review of everything created/updated over a past window rather than one piece of content | @periodic-review.md | Load the matching sub-skill. If the request is ambiguous (e.g. just "recap" with no note and no time window named), ask the user which they mean before proceeding. Both sub-skills share `references/extract.md` for partial-read commands, and both produce a conversational recap only — never a saved file.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.