mit einem Klick
recipe-versioning
Versioning rules for OpenCookbook recipes using conventional commits. Defines when and how to bump the version field in a recipe YAML file, and how to format commit messages for recipe changes.
Menü
Versioning rules for OpenCookbook recipes using conventional commits. Defines when and how to bump the version field in a recipe YAML file, and how to format commit messages for recipe changes.
How to format and structure a recipe YAML file in the OpenCookbook repository. Use this skill when writing, editing, or reviewing any recipe file. Covers every field, unit rule, and file convention.
How to read, write, and extend GitHub Actions workflows in OpenCookbook. Covers the existing deploy-pages workflow, conventions for new workflows, and patterns for dotnet builds, PR checks, and preview deployments.
Autonomous execution protocol for implementing tasks. Governs planning, iteration, subagent use, verification, and self-correction. Use when executing any non-trivial implementation work — recipe edits, code changes, CI/CD updates, or multi-step tasks.
End-of-session self-evaluation for continuous improvement. Run before finalizing any session to capture lessons learned, identify skill updates, and improve agent effectiveness. Use when completing a task, reviewing work quality, or improving project skills.
Checklist for validating an OpenCookbook recipe. Use when reviewing a recipe before promotion, after edits, or for quality checking. Fix everything you can. Only flag issues that need the author's judgment.
Data model and layout specification for rendering OpenCookbook recipes on a webpage or as a PDF. Defines how YAML recipe data maps to visual output. Language-agnostic - covers data structure and layout intent, not implementation.
| name | recipe-versioning |
| description | Versioning rules for OpenCookbook recipes using conventional commits. Defines when and how to bump the version field in a recipe YAML file, and how to format commit messages for recipe changes. |
| license | CC0-1.0 |
| metadata | {"author":"JPEGtheDev","version":"1.0"} |
Use this when:
Only bump a recipe's version field when the change will be merged to main.
main when the PR merges.All recipe versions are two-part quoted strings: "Major.Minor"
version: "1.0" ✅
version: "1.2" ✅
version: 1.0 ❌ (must be quoted)
version: "1.0.1" ❌ (no patch segment)
0 when Major is bumped.All commits touching recipe files must use the conventional commit format:
<type>(<scope>): <short description>
[optional body]
[optional footer — for BREAKING CHANGE only]
<type> — one of the types listed below<scope> — the recipe filename without extension, e.g. Kiev_Cutlet<short description> — imperative, lowercase, no periodfix(Chicken_Shawarma): correct caraway seed volume_alt
feat(Kiev_Cutlet): add breading section and cooking instructions
docs(Kebab_Meat): clarify onion squeeze technique
fix(Perfect_Mashed_Potatoes): specify salt amount in water step
feat(Kebab_Meat): reformulate spice ratios for stronger flavor
BREAKING CHANGE: quantities have changed significantly from v1.x;
existing batches mixed at the old ratios will taste different.
| Commit Type | What it Means for a Recipe | Version Bump |
|---|---|---|
fix | Corrects an error — typo, wrong unit, missing volume_alt, incorrect temperature | Minor (1.0 → 1.1) |
feat | Adds something new — new section, new ingredient, new variation/branch | Minor (1.0 → 1.1) |
docs | Improves clarity without changing the recipe — rewording steps, adding notes | Minor (1.0 → 1.1) |
style | Formatting only — whitespace, YAML indentation, no content change | No bump |
chore | Admin/meta — status promotion, file move, validation fixes that don't change recipe content | No bump (but update status if promoting) |
BREAKING CHANGE — appended as a footer on any type — always causes a Major bump (
1.x→2.0).
A breaking change in a recipe means a cook following the old version would get a meaningfully different result using the new version.
| Scenario | Breaking? |
|---|---|
| Changed a core ingredient or its quantity significantly | ✅ Yes |
| Changed cooking temperature or time significantly | ✅ Yes |
| Replaced a spice with a different one | ✅ Yes |
| Added an entirely new required ingredient | ✅ Yes |
| Removed an ingredient | ✅ Yes |
| Added an optional section (Serving, Freezing) | ❌ No — feat |
| Clarified a step without changing the outcome | ❌ No — docs |
| Fixed a typo or missing field | ❌ No — fix |
Added volume_alt to an existing spice | ❌ No — fix |
Promoted from beta to stable | ❌ No — chore |
style or chore → keep current version unchangedfix, feat, or docs → increment Minor by 1BREAKING CHANGE → increment Major by 1, reset Minor to 0version field in the recipe YAML before committing.| Current | Type | New Version |
|---|---|---|
"1.0" | fix / feat / docs | "1.1" |
"1.4" | fix / feat / docs | "1.5" |
"1.4" | BREAKING CHANGE | "2.0" |
"2.3" | BREAKING CHANGE | "3.0" |
"1.0" | style / chore | "1.0" (no change) |
If a single commit touches more than one recipe file:
fix: correct volume_alt on multiple spicesBefore committing any recipe change, confirm:
version field is updated (unless style or chore)version is a quoted two-part string ("Major.Minor")BREAKING CHANGE footer is present if the change is breakingstatus field is correct for the current state of the recipe