Skip to content

Scaffolded Project Structure

This page documents the complete file tree that pyrig init produces when run inside a fresh project directory. The example below uses a project named my-project.

Quick Start Recap

uv init my-project --python 3.12
cd my-project
uv add pyrig --dev
uv run pyrig init

Generated File Tree

my-project/
├── .env                                    # Environment variables (user-managed, not committed)
├── .gitignore                              # Git ignore rules
├── .python-version                         # Python version pin
├── .scratch.py                             # Local scratch file (not committed)
├── CODE_OF_CONDUCT.md                      # Contributor Covenant code of conduct
├── CONTRIBUTING.md                         # Contribution guidelines
├── LICENSE                                 # MIT license
├── mkdocs.yml                              # MkDocs documentation site configuration
├── prek.toml                               # Pre-commit hook definitions
├── pyproject.toml                          # Package metadata and tool configuration
├── README.md                               # Project README with badges
├── SECURITY.md                             # Security policy
├── uv.lock                                 # Locked dependency manifest
│
├── .github/
│   ├── settings.json                       # Repository settings and branch protection rulesets
│   ├── pull_request_template.md            # Pull request description template
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml                  # Bug report issue form
│   │   ├── config.yml                      # Issue template chooser configuration
│   │   └── feature_request.yml             # Feature request issue form
│   └── workflows/
│       ├── health_check.yml                # CI: tests, linting, hooks, dependency audit
│       ├── release.yml                     # CD: tagging, repo protection, GitHub release
│       └── deploy.yml                      # CD: MkDocs documentation deployment
│
├── docs/
│   ├── api.md                              # API reference page (mkdocstrings)
│   └── index.md                            # Documentation home page
│
└── src/
    └── my_project/                         # Package root (project name → snake_case)
        ├── __init__.py                     # Top-level package module
        └── py.typed                        # PEP 561 marker (typed package)

Notes

  • .env and .scratch.py are version-control-ignored and created locally. They are not committed and can be recreated at any time with pyrig mk local or pyrig sync.
  • .github/settings.json is read by the release workflow to apply repository settings and branch protection rulesets via the GitHub API on every release.
  • tests/ is not created by pyrig init. Test files are generated by pyrig sync as you add source modules — each source module gets a mirrored test file skeleton automatically.