config/claude/skills/notion-recipes/SKILL.md
Use this skill when adding, querying, or updating recipes in Cay's Notion (the `notion-wife` MCP). Covers the Recipes data source schema, tag conventions, the `recipes-helper.sh` script for fast tag/recipe operations via curl, and the rule that new tags must be confirmed with the user before creation.
npx skillsauth add alexpopov/dots notion-recipesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
For working with Cayleigh's Notion workspace via the token-based notion-wife MCP. Pair with notion-rest-tricks for the underlying API patterns.
| Field | Type | Notes |
|---|---|---|
| database_id | — | 9730ecb7-e605-4da8-989c-5e95edd423fa |
| data_source_id | — | 8ed55d29-7075-4df6-afcf-f49acd9f72a3 |
| URL | — | https://www.notion.so/9730ecb7e6054da8989c5e95edd423fa |
| Property | Type | Notes |
|---|---|---|
| Name | title | Recipe name |
| Tags | multi_select | Cuisine, ingredients, meal type, cocktail spirits, etc. ~200 options. |
| Status | select | To do, Done, Make Again |
| Rating | number | Plain number (no star format) |
| Link | url | Source URL |
| Comments | rich_text | Short notes — body content goes in page children |
| Recipe Cooked | checkbox | |
| Related Recipes / Related back to Recipes | relation | Dual-property self-relation |
Body content is page block children (ingredients as bulleted_list_item, instructions as paragraphs or numbered lists). Set Comments only for short metadata; put the recipe itself in the body.
Tags fall into rough buckets — pick liberally from existing tags. Common groupings observed:
Be aware some tags have typos (Potatoe, Alochol, suace). Use them as-is — don't rename them; that risks losing the relation on existing recipes.
Do not create new tags without asking the user first. Assigning existing tags to recipes is fine.
multi_select write that includes an unknown option, pause and confirm with the user. If they approve, prefer recipes-helper.sh add-tag (which preserves the existing list — see "Common pitfall" in notion-rest-tricks).If a tag almost matches an existing one (e.g. you want "Lime" and "Lime" already exists), use the existing one. Use recipes-helper.sh list-tags <substring> to check before assuming a tag is missing.
recipes-helper.shLives at ~/.claude/skills/notion-recipes/recipes-helper.sh (symlinked from this dotfile). Hits the Notion REST API directly via curl + jq, much smaller responses than MCP for tag/recipe lookups.
Requires NOTION_TOKEN_WIFE in env. Commands:
recipes-helper.sh list-tags [substring] # all tags, optionally filtered (case-insensitive)
recipes-helper.sh find-recipe <substring> # search recipes by Name (returns id + title)
recipes-helper.sh show-recipe <page-id> # print page body as plain text
recipes-helper.sh add-tag <name> [color] # add new tag (USER PERMISSION REQUIRED FIRST)
add-tag performs a safe read-modify-write: fetches current options, appends the new one with the chosen color, and PATCHes the data source. This avoids the wipe-existing-tags trap when using update-data-source directly.
Color must be one of: default, gray, brown, orange, yellow, green, blue, purple, pink, red.
recipes-helper.sh find-recipe <name> to confirm it doesn't already exist.list-tags <substring> to verify spellings. If a needed tag is missing, stop and ask the user before adding.mcp__notion-wife__API-post-page with parent {type: "database_id", database_id: "9730ecb7-e605-4da8-989c-5e95edd423fa"}, an emoji icon, Name + Tags + (optionally Link, Status).mcp__notion-wife__API-patch-block-children — ingredients as bulleted_list_item, method as bullets or paragraphs, notes section at the end.development
Backfill EXIF on Alp's film-scan JPEGs — camera, lens, sequenced DateTimeOriginal, and GPS — so they sort and identify correctly when imported into Photos.app. Use when the user wants to set/fix camera, lens, date, or location on a folder of images (typically under `~/Library/Mobile Documents/com~apple~CloudDocs/Pictures/To Import/`).
devops
Retroactively edit location, date, or timezone on photos that already live inside macOS Photos.app (and iCloud Photos) — including applying a GPX track. Use when the user wants to geotag, fix a wrong-TZ camera clock, shift timestamps, or apply GPS coordinates to photos that are NOT loose files but are inside Photos.app. Distinct from the `photo-exif` skill, which edits loose JPEG/RAW files before import.
tools
Use when the user says "open", "show me", "nvr", "open in editor", "open in nvr", "open in neovim", or wants to view a file in their editor rather than in the CLI. Also use proactively after creating or editing a file the user will want to review.
tools
Use this skill when working with the token-based Notion MCP servers (e.g. `mcp__notion-wife__API-*`) that wrap the raw Notion REST API — distinct from the OAuth `mcp__notion__*` server covered by notion-tricks. Covers native API JSON property shapes, the two-step page-then-content creation flow, and using `curl` with the `NOTION_TOKEN_*` env var to bypass MCP entirely for bulk/precise operations.