Validate Recipes
Check Cooklang recipes for syntax errors, warnings, and best practice issues
MCP get_skill({ skillId: "validate-recipes-379a8692" })Use this skill with your agent
Create a free account and connect via MCP
# Validate Recipes
## Overview
Check `.cook` files for problems using CookCLI's doctor command. Reports:
- Syntax errors (invalid Cooklang)
- Warnings (deprecated syntax, missing recommended fields)
- Best practice issues (missing servings, inconsistent formatting)
Use this skill when:
- You've written new recipes and want to check them
- Something isn't working as expected
- Setting up CI/CD for a recipe collection
- Auditing an existing recipe library
## Process
### Step 1: Determine Scope
Ask: "What should I validate?"
- **Single recipe** - Specify file path
- **Directory** - Check all `.cook` files in a folder
- **Entire collection** - Check everything from current directory
### Step 2: Run Validation
**For syntax validation:**
```bash
cook doctor validate
```
**For strict mode (CI/CD):**
```bash
cook doctor validate --strict
```
**For specific directory:**
```bash
cook doctor validate -b /path/to/recipes
```
### Step 3: Report Results
Present findings organized by severity:
1. **Errors** - Must fix (invalid syntax, broken references)
2. **Warnings** - Should fix (deprecated syntax)
3. **Suggestions** - Nice to fix (missing metadata)
### Step 4: Offer Fixes
For common issues, offer to fix automatically:
| Issue | Fix |
|-------|-----|
| Deprecated `>>` metadata | Convert to YAML frontmatter |
| Missing `servings` | Add with sensible default |
| Multi-word ingredient without `{}` | Add braces |
| Missing blank lines between steps | Add them |
Ask: "Would you like me to fix these issues?"
### Step 5: Additional Checks
**Check aisle configuration completeness:**
```bash
cook doctor aisle
```
This reports ingredients not categorized in `aisle.conf`.
## Examples
**User:** "Validate my recipes"
**Run:**
```bash
cook doctor validate
```
**Output interpretation:**
```
Checking recipes...
ERROR in dinner/Pasta.cook:15
Invalid ingredient syntax: @ground black pepper
Fix: Use @ground black pepper{} for multi-word ingredients
WARNING in breakfast/Pancakes.cook:1
Deprecated metadata syntax: >> title: Pancakes
Fix: Use YAML frontmatter instead
INFO in desserts/Cake.cook
Missing 'servings' in metadata
Suggestion: Add servings for proper scaling
Checked 24 recipes: 1 error, 1 warning, 1 suggestion
```
**Offering fix:**
"I found 1 error and 1 warning. Would you like me to fix them?
- Convert `@ground black pepper` to `@ground black pepper{}`
- Convert deprecated `>>` metadata to YAML frontmatter"
## Reference
### Common Validation Errors
| Error | Cause | Solution |
|-------|-------|----------|
| Invalid ingredient | Multi-word without `{}` | Add braces: `@olive oil{}` |
| Invalid quantity | Missing `%` for unit | Add: `{500%g}` not `{500g}` |
| Deprecated metadata | Using `>>` syntax | Convert to YAML frontmatter |
| Broken reference | Recipe file not found | Check path in `@./path/Recipe{}` |
| Invalid timer | Bad format | Use `~{15%minutes}` |
### Strict Mode
Strict mode (`--strict`) treats warnings as errors. Use for:
- CI/CD pipelines
- Pre-commit hooks
- Enforcing standards in shared collections
### CookCLI Doctor Commands
```bash
cook doctor # Run all checks
cook doctor validate # Syntax validation only
cook doctor validate --strict # Strict mode
cook doctor aisle # Check aisle.conf coverage
cook doctor -b ~/recipes # Specify recipe directory
```Related Skills
More skills in Personal Productivity
Academic Cv Builder
Format CVs for academic positions with publications, grants, and teaching
Act Informed: First understand together with the human, then do
Interactive, input-tool powered, task refinement workflow: interrogates scope, deliverables, constraints before carrying out the task; Requires the Joyride extension.
Add Multiple Attendees to a Calendar Event
Add a list of attendees to an existing Google Calendar event and send notifications.
AgentMail — Agent-Owned Email Inboxes
Give the agent its own dedicated email inbox via AgentMail. Send, receive, and manage email autonomously using agent-owned email addresses (e.g. hermes-agent@agentmail.to).
Agent Mail Automation via Rube MCP
Automate Agent Mail tasks via Rube MCP (Composio). Always search tools first for current schemas.
Airtable
Airtable REST API via curl. Records CRUD, filters, upserts.
Explore Other Categories
Skills from other categories with shared topics