Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when adding, changing, testing, or debugging Cookiecutter templates, including cookiecutter.json variables, Jinja-rendered files, hooks, _copy_without_render, optional feature cleanup, and generated-project validation.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-01 | ✓→✗ | ▼ Worse | 13% | 0% |
Use this skill before changing a repository that has cookiecutter.json, hooks/, or a generated project directory such as {{ cookiecutter.project_slug }}/.
README.md, cookiecutter.json, existing tests,and any hooks before editing.
the template files, not in one rendered sample.
rgbefore adding new ones.
and smoke-check commands over inventing a separate validation path.
cookiecutter.json is the user-facing interface. Every new prompt, default,derived value, private value, and choice should be deliberate and documented where the repo documents options.
paths. Treat both file contents and paths as render surfaces.
y/n strings,keep using that style for new feature flags. If it uses Cookiecutter boolean values, keep those as real JSON booleans.
gate app files, imports, URL routes, settings, dependencies, docs, tests, workflows, and migrations together.
assumptions to generated output.
shell, Markdown, HTML, JavaScript, or CSS.
structures, YAML lists, package manifests, and GitHub Actions.
{%- ... -%}) only when it improves rendered syntaxor formatting. Validate the rendered result, not only the template source.
the repo's existing JSON/Jinja filter pattern, such as |tojson, when it is already used.
placeholders, either escape the braces, wrap the content in raw blocks, or add the path to _copy_without_render.
_copy_without_render prevents rendering file contents, but paths are stillrendered. Include both directory and recursive glob entries when a whole tree must be copied verbatim.
hooks/ as pre_prompt, pre_gen_project, orpost_gen_project scripts. Prefer Python for cross-platform templates unless the repo is intentionally platform-specific.
pre_gen_project and post_gen_project run from the generated project rootand can use rendered Cookiecutter variables.
calls, secrets, interactive prompts, and machine-local paths.
directory. Fail early for invalid user input; be defensive for cleanup.
inline Jinja for small syntax-aware changes inside files that must remain.
Cover each changed option both enabled and disabled when practical.
should not leave imports, dependencies, routes, docs, workflows, migrations, or placeholder text behind.
template selection, or command-line assumptions.
that project's documented checks.
Python modules, shell scripts, and package manifests.
dependencies, docs, tests, migrations, or CI references.
{{ ... }} placeholders intended for the generated project areconsumed by Cookiecutter.
generated project root.
combination.
about a specific AI tool.
or hard-coded maintainer-specific values.
contributors need to know about the change.
Other measured skills in the registry, with their headline benchmark lift.