vault-recipes
Search, read, filter, combine, adapt, and save recipes in the Brain vault collection. Use whenever cooking and the collection are relevant — 'what should I make', 'recipes with miso', 'save this one' all imply it.
What this skill does
# Vault recipes Recipes live in this vault as one note per dish. This skill covers finding, reading, filtering, adapting, combining, and saving them, plus the cooking judgment that reworking them calls for. ## Where the recipes live A settled set of locations — don't relocate or restructure them: - `03-Records/Clippings/Recipes/` — the recipe notes (one `.md` per recipe) - `98-Spaces/Recipes.md` — the hub note (embeds the base; the place to browse) - `98-Spaces/Engines/Recipes.base` — the query engine (seven views, below) - `99-Admin/Templates/Recipe Template.md` — the skeleton for new recipes Recipe notes carry both `[[Clippings]]` and `[[Recipes]]` categories — filed as clippings, but specific enough to live in their own subfolder. ## Pick your access tier Use the first tier available and stop there: 1. **Obsidian CLI** (`obsidian …`) — when the desktop app is running and the CLI is on PATH. Richest surface: wikilink resolution, link-safe edits, and direct `.base` queries the MCP can't do. Run `obsidian help` for the full command set. Don't reach for the MCP when the CLI is available. 2. **notesmd-cli + file tools** — headless/local without the app. 3. **Brain MCP** (`vault_*` tools) — MCP-only environments like Claude.ai. The operations below give both the CLI and the MCP form. Translate to notesmd-cli or plain file reads when that's the tier you're on. ## Operations | Intent | Obsidian CLI (local) | Brain MCP (remote) | |---|---|---| | List the collection | `obsidian base:query file=Recipes.base view=Gallery format=json`, or `ls` the folder | `vault_read(mode="list", path="03-Records/Clippings/Recipes")` | | Full-text search (ingredient, keyword) | `obsidian search query="miso" path="03-Records/Clippings/Recipes"` | `vault_search_content(query="miso", folder="03-Records/Clippings/Recipes")` | | Find by title fragment | `obsidian read file="Gochujang Buttered Noodles"` (resolves by title) | `vault_search_title(title="gochujang")` → `vault_read` | | Read a recipe | `obsidian read file="…"` | `vault_read(path="…")` | | Peek without full read | `obsidian property:read name=description file="…"` | `vault_read_section(heading="Ingredients", path="…")` | | Filter by cuisine / rating / untried | `obsidian base:query file=Recipes.base view=Untried format=json` | frontmatter regex (see views below) | | Save a new recipe | `obsidian create name="Title" template="Recipe Template"` | `vault_create(path="03-Records/Clippings/Recipes/Title.md", content=…)` | | Adapt an existing recipe | `obsidian append/prepend`, or edit the file | `vault_edit_section`, or `vault_update` with `base_version` | These calls are illustrative; the live tools and their schemas may change, so defer to them. ### Searching by ingredient, precisely Full-text search matches anywhere in the file, so a hit on "shrimp" might sit in a review or a note rather than the ingredient list. When the question is "which recipes *use* X", confirm the match falls under `## Ingredients` before counting it — read the section, or check the snippet. ### The seven base views `Recipes.base` already encodes the common filters. Query them directly with the CLI (`obsidian base:query file=Recipes.base view=<View> format=json`); on MCP, approximate with a frontmatter regex over the folder. | View | What it shows | MCP approximation | |---|---|---| | Gallery | everything, newest first, by cover image | list the folder | | Favorites | `rating > 3` | `vault_search_content(query="^rating: [45]", folder=…)` | | Untried | `rating` is empty | `vault_search_content(query="^rating: *$", folder=…)` | | Recently added | last 30 | sort the list by `created` | | By cuisine | grouped by `cuisine` | `vault_search_content(query="^cuisine:.*Korean", folder=…)` | | By source | grouped by `publisher` | regex on `^publisher:` | | Author | recipes whose `author` links a given person | `vault_search_content(query="author:.*Eric Kim", folder=…)` | Empty `rating` means not yet tried/rated — the signal for "what should I cook next." ## The recipe note shape New and edited recipes follow this skeleton (keep the field order — it matches the vault's lint order): ```markdown --- aliases: categories: - "[[Clippings]]" - "[[Recipes]]" icon: LiCookingPot cover: description: url: author: publisher: cuisine: yield: prep-time: cook-time: rating: related: tags: - recipes created: --- _One tight sentence describing the dish, in italics._ ## Ingredients - ## Steps 1. ## Top reviews Author Name: > Review body ``` Field notes: - **cover** — image URL; drives the Gallery and Favorites card images. Blank when there's none. - **description** — the first sentence of the intro, kept tight; mirror it as the italic line that opens the body. - **author** — a wikilinked YAML list (`- "[[Eric Kim]]"`). **publisher** — a wikilinked string (`"[[NYT Cooking]]"`). Both link to person/entity notes, which is what powers the Author view. - **cuisine / yield / prep-time / cook-time** — times in compact form (`5m`, `25m`, `1h 30m`). - **rating** — 1–5; a favorite is 5. Leave blank to mean untried. - **tags** — always `recipes`, plus kebab-case descriptors (`pasta`, `pressure-cooker`, `tofu`). Sections beyond Ingredients and Steps are optional and appear only with content: `## Top reviews` (blockquotes, from clipped recipes), `## Notes` (personal tweaks), `## Nutrition`. Personal and family recipes use the same skeleton with most fields blank. Don't invent metadata to fill gaps; an empty field is correct when the value is unknown. ## Naming and variants Filenames are content-first (the dish name, no date prefix). Iterations get a parenthetical suffix rather than overwriting the original: - `(modified)` / `(enhanced)` — reader comments or hand tweaks already folded into the directions - `(Instant Pot)`, `(Oven Version)` — cooking-method variant - `(NYT)` — disambiguates a same-named recipe by source - `(#79)` — disambiguates two distinct recipes that share a title When producing a tweaked version, keep the base title and add a suffix — make a new note, don't clobber the source. ## Adapting and combining recipes Read the recipe(s) in full before changing anything. Note the components, the method, and what gives the dish its character; that's what to preserve. **Integrating reader comments** (the `(modified)` workflow): weigh suggestions on culinary merit, not popularity. When they conflict, prioritize technique corrections over safety over clarity over flavor over personal preference. Patterns matter — several people reporting the same problem is signal. Be skeptical of changes that alter the dish's character. Fold in the well-reasoned ones; skip vague praise. Mirror the original's layout and voice in the result. **Step organization**: combine related actions into one coherent step; use headers for distinct phases (separate components, major transitions, parallel work); keep steps neither too granular nor too dense. - Good: "Add the wontons to the simmering broth and cook until they float, about 3–4 minutes." - Not: "Add the wontons." then "Cook until they float." **Combining two recipes**: identify the load-bearing element of each and resolve conflicts in proportion and method by judgment, not by averaging. Offer to save the result as a new note with a variant-style title; don't overwrite either source. **Scaling**: scale ingredients proportionally, but adjust seasoning, leavening, and cook times by judgment rather than linearly. ## Common workflows - **Ideas from the collection** — sample or list the folder, surface what recurs (cuisines, proteins, methods), then propose along or against the grain. Cite the notes drawn from. - **Cook with these pantry items** — search each ingredient inside the folder, intersect the results, and rank candidates by how many of the items each recipe already uses. Surface the closest matches and what they'd still need. - **Recipes with X** — search `X` in the folder; confirm ingredient-l
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.