| name | create-django-package |
| description | Creates a new Wagtail/Django package from the cookiecutter-wagtail-package template |
| license | MIT |
Overview
Guided creation of a new Wagtail or Django package using the cookiecutter-wagtail-package template. Covers goal-setting, template rendering, customization for the user's needs, initial QA, and a structured handoff report.
Methodology
Goals
- Understand what the user wants to build and how the package fits into their project.
- Create a new package from the template with correct metadata and configuration.
- Customize the generated package where the template defaults don't match the user's goals.
- Verify the package installs, lints, and tests successfully. And the demo works.
- Produce a clear report so the user knows what was set up, what to review, and what to do next.
Guardrails
- Prefer minimal changes to tooling unless explicitly asked by the user. Avoid diverging from the template without a clear reason.
- If the user is extracting code from an existing project, confirm with the user which aspects of the source project to adapt or leave exactly as-is.
- Do not invent package functionality unless asked. The skill and template sets up scaffolding; the user decides what the package should contain.
- When a decision is ambiguous (like support targets), present options with trade-offs rather than assuming.
Input
To detect from the context or request from the user if unclear:
- Package name and short description.
- Repository URL (GitHub org and repo name, or another forge).
- Target audience: Wagtail-specific package, or general Django package that also works with Wagtail. Default: infer based on name / description.
- Whether this is a new package from scratch, or an extraction from an existing project. Default: new package from scratch.
- (Other specific requirements, depending on the stated goals)
Reference data sources
Always fetch latest information from authoritative sources when relevant to the package setup.
Template and ecosystem:
Versions and compatibility:
Packaging:
Reporting
Package creation involves many decisions. Report clearly at each stage so the user stays oriented.
- Use text formatting (tables, lists, Markdown links).
- Link to relevant documentation pages when mentioning tools or standards.
- Report on the methodology and the outcome at each step, not just the final result.
- When sharing docs references, link to the HTML pages rather than raw sources.
Quality assurance
Options to verify the generated package is in good shape, to use as needed through the creation steps:
- Package installs without errors (
uv sync --dev)
- Linting passes (
just lint or equivalent)
- Test suite passes (
just test or equivalent)
- Demo project runs (
just demo or equivalent)
Look for any warnings from the package manager or from QA tools.
Definition of done
- Package directory created with all template files rendered.
- Package metadata (
pyproject.toml) reflects the user's choices.
- Dependencies install cleanly.
- Linting, tests, demo all pass / work.
- Any customizations beyond the template are documented in the report.
- Handoff report delivered to the user.
Steps
Understand the user's goals
Assess current tooling setup
Retrieve relevant external documentation
Create the package from the template
Customize for the user's goals
Initial QA
Produce the handoff report
Report format
# Package creation report: {package name}
## Executive summary
{1-2 paragraphs: what was created, from which template, with which key parameters. Brief note on QA results.}
## Package overview
| Aspect | Value |
|--------|-------|
| Package name | {name} |
| Python package | {snake_case name} |
| PyPI name | {kebab-case name} |
| Repository | {URL} |
| License | {license} |
| Python | {requires-python} |
| Django | {dependency range} |
| Wagtail | {dependency range} |
### Key files
{Brief tour of the generated structure -- what's where and why. Focus on files the user will want to edit first.}
### CI and publishing
{What's configured in GitHub Actions. Mention the two manual setup steps for PyPI publishing (trusted publisher + GitHub environment).}
## Next steps
Recommended actions, roughly in order:
1. {First thing to do -- e.g. initialize a git repo, or start adding package code}
2. {Second thing -- e.g. set up the GitHub repository}
3. ...
### Optional improvements
- {Suggestions for things the user might want to add or change, with links to relevant docs}