Skip to content

Project Structure

Generated Project Tree

my-package/
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── feature_request.yml
│   │   └── config.yml
│   ├── workflows/
│   │   ├── tests.yml
│   │   ├── pr-title.yml
│   │   ├── changelog.yml
│   │   ├── publish-release.yml
│   │   └── nightly.yml
│   ├── dependabot.yml
│   └── pull_request_template.md
├── docs/
│   ├── index.md
│   ├── tutorials/
│   │   ├── getting-started.md
│   │   └── examples.md
│   ├── how-to/
│   │   ├── configure.md
│   │   ├── troubleshooting.md
│   │   └── contribute.md
│   ├── reference/
│   │   └── api.md
│   └── explanation/
│       └── concepts.md
├── src/
│   └── package_name/
│       ├── __init__.py
│       ├── example.py
│       └── py.typed
├── tests/
│   ├── conftest.py
│   └── test_example.py
├── .editorconfig
├── .gitignore
├── .pre-commit-config.yaml
├── .readthedocs.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── justfile
├── LICENSE
├── mkdocs.yml
├── noxfile.py
├── pyproject.toml
└── README.md

File Roles

Root Files

File Purpose
pyproject.toml Project metadata, dependencies, build config, tool settings
noxfile.py Test automation sessions (multi-version testing, linting, docs)
justfile Convenience commands wrapping nox sessions
mkdocs.yml Documentation site configuration
.pre-commit-config.yaml Git hook configuration for code quality
.readthedocs.yml ReadTheDocs build configuration
.editorconfig Editor-neutral formatting settings
LICENSE Project license (based on license template variable)
CHANGELOG.md Auto-generated changelog from conventional commits
CONTRIBUTING.md Quick-start contributing guide (redirects to full docs)
README.md Project overview, badges, installation instructions

Source Code (src/)

The project uses a src layout - all package code lives under src/<package_name>/:

File Purpose
__init__.py Package initialization with version import
hello.py Example module with a sample function
py.typed PEP 561 marker for type checker support

Tests (tests/)

File Purpose
conftest.py Shared fixtures for pytest
test_hello.py Example test file
test_examples.py Marimo notebook tests (if include_examples=true)

GitHub Configuration (.github/)

File Purpose
workflows/tests.yml CI testing pipeline
workflows/pr-title.yml PR title conventional commit validation
workflows/changelog.yml Changelog generation on version tags
workflows/publish-release.yml GitHub Release + PyPI publishing
workflows/nightly.yml Daily dependency testing
dependabot.yml Automated dependency update PRs
pull_request_template.md PR description template
ISSUE_TEMPLATE/ Bug report and feature request templates

Documentation (docs/)

File Purpose
index.md Documentation homepage
tutorials/getting-started.md Installation and first steps (tutorial)
tutorials/examples.md Interactive examples gallery (if include_examples=true)
how-to/configure.md Configuration guide scaffold
how-to/troubleshooting.md Common problems and solutions
how-to/contribute.md Full contributing guidelines
reference/api.md Auto-generated API reference
explanation/concepts.md Core concepts and architecture

Conditional Files

Some files are only generated based on template variable choices:

Condition Files Generated
include_actions=true .github/workflows/*, .github/dependabot.yml
include_examples=true examples/hello.py, tests/test_examples.py, docs/pages/tutorials/examples.md, docs/stylesheets/gallery.css