Interactively design a new cookbook recipe through guided discussion
First action: If $ARGUMENTS is --version, print plan-cookbook-recipe v2.3.0 and stop.
Otherwise, print plan-cookbook-recipe v2.3.0 as the first line of output, then proceed.
Version check: Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and extract the version: field from frontmatter. If it differs from this skill's version (2.3.0), print:
⚠ This skill is running v2.3.0 but vA.B.C is installed. Restart the session to use the latest version.
Continue running — do not stop.
You are guiding the user through designing a new recipe for the agentic cookbook. This is a conversational, interactive process — you ask questions, propose options, surface design decisions, and ultimately produce a complete recipe file.
/plan-cookbook-recipe status-bar
Starts an interactive conversation to design a new status-bar recipe. The skill walks through each recipe section — overview, requirements, appearance, states, platforms, accessibility, logging — proposing drafts and refining with the user.
ABSOLUTE RULE: NO IMPLEMENTATION CODE. This skill produces recipe markdown files only. Never write Swift, Kotlin, TypeScript, or any other implementation code.
${CLAUDE_SKILL_DIR}/references/section-guide.md for authoring guidancerecipes/_template.mdCLAUDE.md and introduction/conventions.md for format rulesrecipes/If any of these files are missing (template, conventions, or cookbook directory), inform the user and stop. Do not proceed with incomplete references.
This phase is conversational. Ask questions, don't assume.
If $ARGUMENTS is not empty (and not --version), use it as the recipe name. Otherwise ask: "What component or feature do you want to create a recipe for?"
Search existing recipes for anything similar:
{name} that covers {description}. Should we extend that one, or is this genuinely different?"Scan recipes/ to build the list of existing categories dynamically. Walk the directory tree and collect every leaf directory that contains .md files (excluding _template.md and INDEX.md). Each unique directory path relative to recipes/ is a category.
Also read recipes/INDEX.md to get the description of each category section.
Present the discovered categories to the user with their descriptions and example recipes. For example:
Existing recipe categories:
- ui/component — Reusable visual building blocks (empty-state, status-bar, ...)
- ui/panel — Content areas that compose into windows (file-tree-browser, terminal-pane, ...)
- ui/window — Top-level window layouts (project-window, settings-window, ...)
- infrastructure — Non-visual architecture patterns (logging, directory-sync, ...)
- app — Application lifecycle, menus, commands (lifecycle, menu-commands)
- None of these fit — propose a new category
Use it. Set the recipe path to recipes/{category}/{kebab-case-name}.md.
Walk the user through creating a new category:
Name the category. Ask: "What should this category be called? Use kebab-case (e.g., tooling, claude, testing)."
recipes/{name}/) or nested (recipes/{parent}/{name}/).Describe the category. Ask: "In one sentence, what kinds of recipes belong in this category?" This description will be used in INDEX.md.
Create the directory. The directory will be created when the recipe file is written (in Phase 2). Note the new path for later.
Plan INDEX.md update. A new section must be added to recipes/INDEX.md following the existing pattern:
## {category} heading (using dot notation matching the directory path, e.g., ## tooling or ## claude)Record the new category details for use in Phase 2 and Phase 3.
For each recipe section, have a brief focused discussion. Don't try to cover everything at once — go section by section.
Overview — "In one or two sentences, what does this component do and when would you use it?"
Behavioral Requirements — "What are the hard rules? What MUST this component do? What SHOULD it do? What MAY it optionally do?"
ordered-list, scroll-to-bottom)Appearance — "What does it look like?"
States — "What states can it be in?"
Platforms — "Which platforms does this target?"
Dependencies — "Does this compose or depend on other cookbook recipes?"
Edge Cases — "What could go wrong? What are the boundary conditions?"
Accessibility — "How should this work with VoiceOver/TalkBack/keyboard?"
Logging — "What events should be logged?"
{{bundle_id}}, category matching component nameAll remaining sections — For Deep Linking, Localization, Accessibility Options, Feature Flags, Analytics, Privacy: propose sensible defaults and ask if the user wants to customize. Many components will use the template defaults.
Throughout the discussion, whenever you make a choice (icon selection, layout approach, animation style, default value), explicitly flag it:
Design Decision: I'm proposing {X} because {Y}. Is that the right call?
Record all decisions for the Design Decisions section.
Before writing any files, present this prompt to the user:
=== Permissions Required ===
This skill will:
- Write <recipe-path> — the new recipe file
- Edit index.md — add the new recipe to the index (if applicable)
- Run git add/commit — commit the new recipe
Approve all? (yes / no)
If the user says no, stop and ask what they want to change. If yes, proceed without further permission prompts.
After covering all recipe sections and before drafting, walk the author through applicable compliance checks. This is proactive guidance — surface considerations the author may not have thought of.
Before running inline compliance evaluation, check if the dev-team plugin is available by checking whether /dev-team-lint is listed in the available skills.
If dev-team is available:
/dev-team-lint <recipe-path> --compliance-onlyIf dev-team is NOT available: Proceed with the inline compliance evaluation as described below.
Read the compliance categories from compliance/INDEX.md.
For each of the 10 categories, read the compliance file and determine which checks apply to this recipe based on the discussion so far.
For each applicable check, briefly explain what it requires and ask whether the recipe addresses it:
Compliance check — secure-log-output (Security): Log messages must not contain credentials or PII. Your Logging section looks good here — the log events don't include sensitive data. Marking as passed.
Compliance check — data-minimization (Privacy & Data): This recipe collects user input. Have you considered what data is strictly necessary? The Privacy section should document what's collected and why.
For checks that surface gaps, help the author address them by updating the relevant recipe section.
After all applicable checks are reviewed, build the Compliance table for inclusion in the recipe.
Key principle: This is not a rubber stamp. The goal is to surface things the author may have missed — "Your recipe handles passwords but doesn't mention secure storage. Here's what the security compliance check requires..."
Once the discussion is complete:
Determine the filename from the category chosen in Step 3: recipes/{category}/{kebab-case-name}.md
mkdir -p.Write the complete recipe file with ALL 17 sections:
{{placeholder}} tokens for app-specific valuesRead the file back to verify completeness.
recipes/INDEX.md following the pattern described in Step 3c. Also add the new recipe entry to the appropriate table (new or existing category). Update the INDEX.md related frontmatter list to include the new recipe's domain.