From knowlery
The core knowledge compilation skill. Reads raw notes and external sources, then distills them into structured, cross-referenced knowledge pages in entities/, concepts/, comparisons/, and queries/. Keeps SCHEMA.md tag and domain taxonomy in sync when new tags or domains appear. Use this skill whenever the user mentions compiling notes, digesting material, updating the knowledge base, running a cook cycle, or says anything like "process my notes", "compile this", "add this to the wiki", "what's new in my notes", or "update knowledge pages". Also activate when the user pastes external content and wants it integrated into the knowledge base.
How this skill is triggered — by the user, by Claude, or both
Slash command
/knowlery:cookThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are a knowledge compiler. Your job is to read raw material (user notes, external sources)
You are a knowledge compiler. Your job is to read raw material (user notes, external sources) and distill it into structured, cross-referenced knowledge pages.
--all or full: Read all user notes in the vault"Topic Name": Read notes matching this keywordpath/to/note.md: Read a specific note<URL>: Fetch external article and digest itWhen user runs /cook with no arguments, get the scope from the deterministic
staleness report (first transport available). If the knowlery MCP stale tool
is present, call it with the KB name — it is the same report; otherwise:
obsidian knowlery:stale
# or, with Obsidian closed:
knowlery stale
# or, with only Node available:
node .knowlery/bin/query.mjs --stale
The report has three parts:
inbox/ are the exception:
they were captured from conversations (MCP capture) precisely to be compiled —
treat them as first-priority cook material.Note: sync tools can rewrite file mtimes and produce a large stale list at once; that is expected — cook selectively rather than mechanically.
Fallback (degraded mode). Only if neither transport is available: scan for .md
files outside agent directories modified since the last entry in log.md, and say
scope detection ran in degraded mode.
When user runs /cook --all:
entities/, concepts/, comparisons/, queries/)When user runs /cook "Feature A" or /cook path/to/note.md:
When user provides a URL:
<slug>.md)title, source_url, fetched dateNote: No dedicated raw/ directory. External material is saved as regular user notes, consistent with the brownfield principle.
INDEX.base (Bases index in Obsidian) or scan entities/, concepts/ for existing pages; use obsidian properties by type for a fast listingSCHEMA.md (Obsidian CLI) for current tag and domain taxonomy so new pages prefer existing tags when they fitentities/<name>.mdconcepts/<name>.mdupdated dateRecord aliases (retrieval-aware compiling). Lexical retrieval can only match what
is written down. On every page you create or update, record into aliases frontmatter:
Create page thresholds:
Writing tool (by operation, not by environment): full knowledge pages are long
and carry code blocks and quotes — write the .md file directly at its exact path
(entities/<name>.md, …); Obsidian indexes new files automatically. Use
obsidian append for small content additions, obsidian property:set for
frontmatter field updates on existing pages,
and obsidian rename for renames/moves (it rewrites wikilinks across the vault).
If you use obsidian create for a short page, pass path= (not just name=) so
it lands in the right directory — and if it fails on content escaping, write the
file directly instead of fighting the shell. In headless environments, write files
directly. Either way, run knowlery health (or node .knowlery/bin/query.mjs --stale) after bulk changes to verify the result.
After Step 3–4, reconcile agent pages touched this cycle with SCHEMA.md:
SCHEMA.md if you have not just read it.tag not listed under Current Tags (or Domain Taxonomy / Knowledge Domains for a new domain value), update SCHEMA.md (a small structured edit — edit the file directly or via Obsidian CLI): add the missing tag(s) or domain line(s), keep lists alphabetically sorted where the file already uses lists, and preserve unrelated sections and the user's prose.SCHEMA.md, do not rewrite the file.SCHEMA.md during /cook unless the user explicitly asked to prune taxonomy.INDEX.base stays current in Obsidian via its Base query — if views, filters, or columns need tuning after large cooks, edit the file per the obsidian-bases skilllog.md (human-readable history only — incremental scope comes from the staleness report, never from this file)Present structured summary (see Output Report Format below). Mention SCHEMA.md when you added tags or domains, or say it was unchanged.
contradictions: [page-name]Cook complete. Here's what changed:
New knowledge:
• [[feature-a]] — Response time monitoring feature
• [[response-time-metrics]] — Why median replaced avg
Updated:
• [[zhang-san]] — Added Feature A assignment
Contradiction found:
⚠ PRD says avg(response_time) > baseline, but experiment notes say median
Sources: Projects/Feature-A-PRD.md vs Daily/2026-04-05.md
Want me to create a comparison page?
Log: 1 entry added to log.md
SCHEMA.md: added tags: observability, backend (or: SCHEMA.md — no taxonomy changes)
Design principles:
The Agent should automatically run /cook after:
When NOT to auto-trigger:
/cook was already run in the last 5 minutesAgent pages are identified by directory:
| Location | Ownership |
|---|---|
entities/**/*.md | Agent |
concepts/**/*.md | Agent |
comparisons/**/*.md | Agent |
queries/**/*.md | Agent |
All other .md | User (read-only during /cook) |
No owner frontmatter field needed.
aliases — a name that is not written down cannot be foundSCHEMA.md in the same cook cycle when possiblenpx claudepluginhub jayjiangct/knowlery --plugin knowleryGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.