AgentSkillsCN

cooklang-formatting

使用Cooklang标记语法格式化食谱。当创建、编辑或转换食谱为Cooklang格式时使用。涵盖配料、设备、计时器、元数据和文件组织。

SKILL.md
--- frontmatter
name: cooklang-formatting
description: Format recipes using Cooklang markup syntax. Use when creating, editing, or converting recipes to Cooklang format. Covers ingredients, equipment, timers, metadata, and file organization.

Cooklang Recipe Formatting

Style Guidelines (IMPORTANT)

1. Capitalize ingredients and equipment

cook
@Leek{1}           -- correct
@leek{1}           -- wrong

#Pan{}             -- correct
#pan{}             -- wrong

2. No adjectives inside keywords

Adjectives go BEFORE the keyword, not as part of it:

cook
large #Pan{}       -- correct
#large pan{}       -- wrong

hot #Skillet{}     -- correct
#hot skillet{}     -- wrong

medium @Onion{1}   -- correct
@medium onion{1}   -- wrong

3. Prefer metric measurements

Use grams, ml, litres instead of cups. Teaspoons and tablespoons are OK:

cook
@Flour{250%g}      -- correct
@Flour{2%cups}     -- wrong

@Milk{500%ml}      -- correct
@Milk{2%cups}      -- wrong

@Stock{1%litre}    -- correct
@Stock{4%cups}     -- wrong

@Butter{2%tbsp}    -- OK (tbsp allowed)
@Vanilla{1%tsp}    -- OK (tsp allowed)

4. Include a recipe image

Save the most appealing frame from the video as an image with the same name:

code
Dinner/Garlic Butter Shrimp.cook
Dinner/Garlic Butter Shrimp.jpg    -- same name, .jpg extension

Quick Reference

SymbolPurposeExample
@Ingredient@Butter{30%g}
#Equipment#Frying Pan{}
~Timer~{5%minutes}
---Metadata blockYAML frontmatter
==Section header== Sauce ==

Ingredient Syntax

code
@ingredient                      -- name only (to taste)
@ingredient{quantity}            -- with amount, no unit
@ingredient{quantity%unit}       -- full specification
@multi word ingredient{}         -- braces required for multi-word
@ingredient{qty%unit}(prep)      -- with preparation instructions

Examples

cook
@Salt{}
@Eggs{3}
@Butter{30%g}
@Chicken Breast{500%g}
@Garlic{3%cloves}(minced)
@Onion{1}(diced)

Notes on Ingredients

  • For pantry staples (salt, pepper, oil), just use @Salt{} with no quantity
  • For optional ingredients, write "optional" in the text: Add optional @Chilli Flakes{1%tsp} if desired.
  • Don't use -, ?, or & prefixes - they're not supported by most Cooklang apps
  • Don't mark cooking water as an ingredient - water for boiling/blanching is not a shopping list item:
    cook
    Bring a large #Pot{} of water to a boil.     -- correct (plain text)
    Bring a large #Pot{} of @Water{} to a boil.  -- wrong (creates ingredient)
    

Equipment Syntax

cook
#Pot{}
#Frying Pan{}
#Mixing Bowl{}
#Baking Sheet{}

Adjectives go before, not inside:

cook
large #Pot{}           -- correct
#large pot{}           -- wrong

Timer Syntax

cook
~{5%minutes}
~{30%seconds}
~{1%hour}
~resting{10%minutes}     -- named timer

Important: Use single values only, NOT ranges. Write ~{15%minutes} not ~{10-15%minutes}. For variable times, pick the middle value or write it in text: "about 10-15 minutes".

Recipe Structure

Metadata (YAML Frontmatter)

cook
---
source: https://example.com/recipe
servings: 4
prep_time: 15 minutes
cook_time: 30 minutes
---

Note: servings must be a number, not text.

Steps

Each paragraph becomes a numbered step. Separate steps with blank lines:

cook
Preheat #Oven{} to 190°C.

Season @Chicken Breast{500%g} with @Salt{} and @Pepper{}.

Bake for ~{25%minutes} until internal temperature reaches 75°C.

Sections

Use == for complex recipes with multiple parts:

cook
== Marinade ==

Combine @Soy Sauce{45%ml} and @Honey{30%g} in a #Bowl{}.

== Main Dish ==

Cook @Chicken{500%g} in the marinade.

Notes

Use > prefix for tips:

cook
> For extra flavor, marinate overnight.

File Organization

Save recipes to category folders using Title Case:

code
Breakfast/Fluffy Pancakes.cook
Lunch/Greek Salad.cook
Dinner/Garlic Butter Shrimp.cook

Categories

  • Breakfast: Morning meals, eggs, pancakes, smoothies
  • Lunch: Salads, sandwiches, soups, light meals
  • Dinner: Main courses, proteins, pasta, substantial meals
  • Sides: Accompaniments, vegetables
  • Sauces: Dressings, marinades, condiments
  • Desserts: Sweets, baked goods
  • Drinks: Beverages, cocktails

CLI Commands

If the cook CLI is installed:

bash
cook recipe "path/to/recipe.cook"      # Parse and display
cook recipe "path/to/recipe.cook:2"    # Scale by 2x
cook shopping-list *.cook              # Generate shopping list
cook doctor validate                   # Check for syntax errors

Common Patterns

Simple Recipe

cook
---
source: https://tiktok.com/@creator/video/123
servings: 2
---

Heat @Olive Oil{2%tbsp} in a large #Skillet{} over medium heat.

Add @Garlic{3%cloves}(minced) and cook for ~{30%seconds}.

Add @Prawns{450%g} and cook for ~{2%minutes} per side until pink.

Season with @Salt{} and @Pepper{} to taste.

Recipe with Sections

cook
---
servings: 4
---

== Sauce ==

Whisk @Soy Sauce{3%tbsp}, @Honey{2%tbsp}, and @Sesame Oil{1%tsp}.

== Stir Fry ==

Heat #Wok{} over high heat. Cook @Chicken{500%g}(sliced) for ~{5%minutes}.

Add sauce and toss to coat.