Generate production-ready Python project skeletons with Astral UV package manager, Hatchling build backend with dynamic versioning, bump-my-version for semantic version management, and modern tooling (ruff, mypy, pytest, bandit). Use when creating new Python projects, initializing Python packages, setting up src-layout projects, scaffolding Python libraries, or starting a new Python application. Supports Python 3.14+ by default with configurable version. Output to current directory, specified path, or tarball.
Activate when user says:
Creates production-ready Python project structures following modern best practices.
Generate a project in the current directory:
Project name: my-awesome-project
The skill prompts for required info and generates a complete project structure.
| Option | Default | Description |
|--------|---------|-------------|
| Project name | (required) | Kebab-case name (e.g., my-project) |
| Package name | (derived) | Snake_case from project name |
| Python version | 3.14 | Minimum Python version |
| License | MIT | License type |
| Author name | (optional) | For pyproject.toml |
| Author email | (optional) | For pyproject.toml |
| Description | (optional) | Project description |
| Output mode | cwd | cwd, path, or tarball |
{project-name}/
├── pyproject.toml # Full config with all tools
├── README.md
├── LICENSE
├── Makefile # UV-based dev targets
├── src/{package_name}/
│ ├── __init__.py # With __version__ = "0.1.0"
│ ├── py.typed # PEP 561 marker
│ └── main.py # Entry point stub
└── tests/
├── __init__.py
├── conftest.py # pytest fixtures
└── test_main.py # Example test
pyproject.toml sections:
[build-system] - Hatchling backend[project] - Dynamic version, classifiers, URLs[project.optional-dependencies] - dev group[dependency-groups] - UV compatibility[tool.hatch.version] - Points to __init__.py[tool.ruff] - Format + lint (E, W, F, I, B, C4, UP, ARG, SIM)[tool.mypy] - Strict configuration[tool.pytest] - Native TOML (pytest 9.0+)[tool.coverage] - 80% threshold[tool.bandit] - Security scanning[tool.bumpversion] - Semantic versioning with bump-my-versionMakefile targets:
help - Categorized target listinstall, install-dev - UV-based installationtest, test-cov, coverage - Testing variantslint, typecheck, security - Quality toolsformat, format-check - Ruff formattingquality - All checks combinedbuild, clean - Package buildingversion - Show current versionbump, bump-patch - Bump patch version (0.1.0 → 0.1.1)bump-minor - Bump minor version (0.1.0 → 0.2.0)bump-major - Bump major version (0.1.0 → 1.0.0)bump-dry - Preview version bump (dry run)release - Create and push release tag (auto-bumps if tag exists).tar.gz archive (useful for distribution)Run the generator script:
python scripts/generate_project.py \
--name my-project \
--python-version 3.14 \
--output-mode cwd
Or invoke interactively - the skill will prompt for required values.
After generation:
cd {project-name}
uv sync # Install dependencies
make test # Run tests
make quality # Run all quality checks
The generated project includes bump-my-version for semantic versioning:
make version # Show current version
make bump-dry # Preview what would change
make bump-patch # 0.1.0 → 0.1.1
make bump-minor # 0.1.0 → 0.2.0
make bump-major # 0.1.0 → 1.0.0
make release # Create tag and push (auto-bumps if tag exists)
Version bumps automatically:
__version__ in src/{package_name}/__init__.pyv0.1.1)The generated project is a starting point. Common modifications:
[project.dependencies]Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer