skills/lint-project-with-cookbook/SKILL.md
Lint an implementation against cookbook guidelines or a specific recipe. Combines guideline review and recipe conformance checking.
npx skillsauth add agentic-cookbook/tools lint-project-with-cookbookInstall 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.
First action: If $ARGUMENTS is --version, print lint-project-with-cookbook v1.1.0 and stop — do not run the skill.
Otherwise, print lint-project-with-cookbook v1.1.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 (1.1.0), print:
⚠ This skill is running v1.1.0 but vA.B.C is installed. Restart the session to use the latest version.
Continue running — do not stop.
Lint an implementation against the agentic cookbook. Two modes:
/lint-project-with-cookbook guidelines cookbook/recipes/ui/component/empty-state.md ../my-app/Sources/EmptyState/
/lint-project-with-cookbook recipe empty-state ../my-app/Sources/EmptyState/
/lint-project-with-cookbook recipe empty-state
/lint-project-with-cookbook
Parse $ARGUMENTS:
guidelines: Guidelines mode. Remaining arguments are <recipe-path> [implementation-path].recipe: Recipe mode. Remaining arguments are <recipe-path> [implementation-path].AskUserQuestion:What would you like to lint?
1. **guidelines** — Review against the full cookbook guideline checklist, engineering principles, and recipe requirements
2. **recipe** — Compare against a specific recipe's conformance requirements (requirements, states, appearance, test vectors, logging)
After the mode is determined, proceed to the corresponding section below.
Review a generated implementation against the agentic cookbook guidelines, recipes, and engineering principles.
After the mode keyword, arguments are: <recipe-path> [implementation-path]
cookbook/recipes/ui/component/empty-state.md or just the component name like empty-state)If either argument is missing, ask the user to provide it.
| Situation | Action |
|-----------|--------|
| Recipe path doesn't exist | Search cookbook/recipes/ recursively for a matching filename. If not found, stop with error. |
| Implementation directory is empty | Stop with error: "No implementation files found at {path}" |
| cookbook/guidelines/ not found | Stop with error: "Cannot locate cookbook guidelines directory." |
| cookbook/principles/ not found | Skip principles review, note in report |
| A review agent fails | Report partial results from completed agents, note the failure |
| More than 50 implementation files | Prioritize files matching the recipe's component name and related types. Note truncation in report. |
cookbook/recipes/ recursively for <name>.md.CLAUDE.md and cookbook/conventions.md for repo-level context.cookbook/guidelines/INDEX.md and then the core guidelines file cookbook/guidelines/general.md.cookbook/principles/ (all files).${CLAUDE_SKILL_DIR}/references/guideline-checklist.md.Launch up to 3 review agents in parallel. Each agent reviews the items assigned to it from ${CLAUDE_SKILL_DIR}/references/guideline-checklist.md:
Agent 1 — UI Quality & Behavior Categories: UI Quality & Behavior
Agent 2 — Quality Assurance Categories: Quality Assurance, Linting
Agent 3 — Accessibility, i18n, Privacy, Engineering Principles Categories: Accessibility, i18n, Privacy, Engineering Principles
Combine all agent findings into a single structured report.
# Cookbook Guideline Lint: [Component Name]
Recipe: [path to recipe]
Implementation: [path to implementation]
Platform: [detected platform]
Date: [today]
Files reviewed: [count]
## Summary
[1-2 sentence overall assessment]
## Results
| Guideline | Status | Finding |
|-----------|--------|---------|
| Native controls | ✅/⚠️/❌ | [detail] |
| Open-source preference | ✅/⚠️/❌/N/A | [detail] |
| Responsiveness & progress | ✅/⚠️/❌ | [detail] |
| Main thread / concurrency | ✅/⚠️/❌ | [detail] |
| Unit testing | ✅/⚠️/❌ | [detail] |
| Design decisions | ✅/⚠️/❌ | [detail] |
| Atomic commits | ✅/⚠️/❌ | [detail] |
| Post-generation verification | ✅/⚠️/❌ | [detail] |
| Logging | ✅/⚠️/❌ | [detail] |
| Deep linking | ✅/⚠️/❌/N/A | [detail] |
| Scriptability | ✅/⚠️/❌/N/A | [detail] |
| Accessibility | ✅/⚠️/❌ | [detail] |
| Localization | ✅/⚠️/❌ | [detail] |
| RTL support | ✅/⚠️/❌ | [detail] |
| Accessibility display options | ✅/⚠️/❌ | [detail] |
| Privacy & security | ✅/⚠️/❌ | [detail] |
| Feature flags | ✅/⚠️/❌ | [detail] |
| Analytics | ✅/⚠️/❌/N/A | [detail] |
| A/B testing | ✅/⚠️/❌/N/A | [detail] |
| Debug mode | ✅/⚠️/❌ | [detail] |
| ... | | |
## Critical Issues
[Any ❌ findings that must be fixed]
## Warnings
[Any ⚠️ findings that should be addressed]
## Recommendations
[Suggestions for improvement]
## Limitations
[Any skipped checks due to missing files, agent failures, or file count caps]
Status meanings:
Compare an implementation against a specific recipe's conformance requirements, line by line.
After the mode keyword, arguments are: <recipe-path> [implementation-path]
/) — search ../agentic-cookbook/cookbook/recipes/ recursively for <name>.md. If not found, print an error listing the search paths tried and stop.Read the recipe file completely. Extract every section:
Print a header:
=== RECIPE LINT: <recipe-name> ===
Recipe: <path>
Implementation: <path>
Requirements: <count>
Test vectors: <count>
Read implementation files from the implementation path. Use Glob to find source files matching *.swift, *.kt, *.tsx, *.ts, *.py, *.cs. Cap at 50 files — if more exist, prioritize files whose names match types referenced in the recipe. Note any truncation. Read each file.
For each recipe section, compare against the implementation:
Requirements: For each requirement, determine if the implementation satisfies the described behavior. Mark PASS, FAIL, or PARTIAL.
States: For each state in the states table, check if the implementation handles it.
Appearance: Check if specified values (dimensions, colors, fonts, spacing) match.
Test vectors: Check if tests exist that correspond to each test vector row.
Logging: Compare logging messages character by character against the recipe's logging section.
Edge cases: Check if each edge case is handled.
Accessibility: Check if accessibility requirements are implemented.
--- REQUIREMENTS ---
[PASS] ordered-list: <description>
[FAIL] scroll-to-bottom: <description>
-> <what's wrong>
[PARTIAL] user-input-focus: <description>
-> <what's implemented vs missing>
--- STATES ---
[PASS] Default state: implemented
[FAIL] Error state: not found in implementation
--- APPEARANCE ---
[PASS] Corner radius: 12pt matches recipe
[FAIL] Padding: implementation uses 8pt, recipe specifies 12pt
--- TEST VECTORS ---
[PASS] comp-001: test exists at <test-file>
[FAIL] comp-002: no corresponding test found
--- LOGGING ---
[PASS] "ComponentName: appeared" — matches exactly
[FAIL] "ComponentName: action completed" — not found in implementation
--- EDGE CASES ---
[PASS] Empty data: handled at <file:line>
[FAIL] RTL layout: not addressed
--- ACCESSIBILITY ---
[PASS] VoiceOver label: present
[FAIL] Keyboard navigation: not implemented
=== CONFORMANCE SUMMARY ===
Pass: <n> | Fail: <n> | Partial: <n>
Coverage: <pass/(pass+fail+partial)>%
Top issues:
1. [FAIL] <most critical>
2. [FAIL] <next>
testing
Validate cookbook integrity — frontmatter, cross-references, indexes, skills, rules, file placement. Run from cookbook or consuming project.
tools
Remove the agentic cookbook from your project. Removes rules, state files, CLAUDE.md section, and optionally global plugins and status line.
tools
Analyze a macOS SwiftUI app and plan its conversion to native AppKit. Triggers on 'port to AppKit', 'convert SwiftUI to AppKit', 'remove SwiftUI', or /port-swiftui-to-appkit.
tools
--- name: plan-cookbook-recipe version: 2.3.0 description: Interactively design a new cookbook recipe through guided discussion disable-model-invocation: true context: fork allowed-tools: Read, Glob, Grep, Agent, Write, Edit, AskUserQuestion, Bash(git *), Bash(mkdir *), Bash(ls *) argument-hint: [recipe-name] [--version] --- # Plan Agentic Cookbook Recipe v2.3.0 ## Startup **First action**: If `$ARGUMENTS` is `--version`, print `plan-cookbook-recipe v2.3.0` and stop. Otherwise, print `plan-c