Repository navigation
recipe research
"Find me a recipe" gets you one blogger's opinion. A restaurant-level recipe needs three things a single search never gives you together: what several well-regarded sources actually do (and where they disagree), the food science behind why the good version works, and what professional kitchens do differently from home cooks.
This plugin runs all three as parallel research, then makes the editorial call — which disagreement resolves which way, and why — instead of averaging opinions into mush.
/plugin marketplace add roypadina/padina-claude-code-plugins
/plugin install recipe-research@padina
Requires nothing but Claude Code. No CLI, no runtime, no account. It writes Markdown files and that is all. Obsidian is optional and off by default.
| Feature | Mechanism |
|---|---|
/recipe-research <dish> |
slash command → the skill |
| Three parallel research subagents | dispatched at runtime by the skill |
| A synthesized recipe in a linked note tree | written to <outputDir>/<cuisine>/<dish>/
|
No hooks, no bundled agent files, no MCP server — the three researchers are ordinary
general-purpose subagents the skill fans out in one dispatch, with the model tier picked per agent.
/recipe-research shakshuka
Or just ask: "research a recipe for hummus", "find me a restaurant-level carbonara", "add shakshuka to my recipes".
| Agent | Brief |
|---|---|
| classic recipes | What several well-regarded sources actually do — attributed, quantities exact, disagreements recorded rather than smoothed over |
| food science | Why the good version works, and the failure modes of the bad one |
| pro-chef technique | Named chefs and restaurant practice — anything that cannot be pinned to a named source is flagged UNVERIFIED rather than asserted |
They run in one dispatch, in parallel. The main thread then does the synthesis: golden rules, metric quantities, exact temps and times, and a "why this way" section that justifies each call against the research.
On "sourced". The subagents work from model knowledge, and search the web when they have those tools — the skill does not require a search tool. Read "sourced" as attributed, not as guaranteed-live-fetched.
<outputDir>/<cuisine>/<dish>/
<dish>.md # synthesized recipe — the hub
research/
classic-recipes.md # summary: recipes compared
food-science.md # summary: why it works
pro-technique.md # summary: pro/restaurant technique
raw/
classic-recipes-raw.md # verbatim subagent output
food-science-raw.md
pro-technique-raw.md
The recipe links to the three summaries; each summary links to its own raw file. Nothing is thrown away — you can always read what an agent actually said before it was condensed.
/plugin configure recipe-research
| Option | Type | Default | |
|---|---|---|---|
outputDir |
directory | ~/recipes |
Where dish folders are written |
vaultMode |
boolean | false |
true for Obsidian [[wiki-links]] + frontmatter tags; false for plain relative Markdown links |
language |
string | auto |
Language for the recipe and summaries; auto matches whatever language you are writing in |
Or set them at install:
/plugin install recipe-research@padina --config outputDir=~/recipes --config vaultMode=true
Nothing checks for an Obsidian install, and none is needed. Plain mode writes relative Markdown links that read correctly in any editor or on GitHub.
If you do keep a vault, point outputDir at a folder inside it and set vaultMode=true. The same
note tree is then written with [[wiki-links]] and tags / source-agent / date frontmatter, so
Obsidian's graph view and tag search pick it up natively. Nothing else about the workflow changes.
/plugin uninstall recipe-research@padina
Your recipe folder stays where it is — the plugin only ever wrote into outputDir.