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¶
Generated File Tree¶
my-project/
├── .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
├── 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
├── zensical.toml # Documentation site configuration
│
├── .github/
│ ├── CODEOWNERS # Wildcard code ownership rule for the repo owner
│ ├── settings.json # Repository settings and 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: 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¶
pyrig initstarts from a clean slate. Any managed config file that already exists — e.g. the placeholdersuv initcreates — is deleted before the tree above is regenerated.pyproject.tomlis the only exception; it is never deleted..scratch.pyis version-control-ignored and created locally. It is not committed and can be recreated at any time withpyrig sync..github/settings.jsonis read by the release workflow to apply repository settings and protection rulesets via the GitHub API on every release.tests/is not created bypyrig init. Test files are generated bypyrig syncas you add source modules — each source module gets a mirrored test file skeleton automatically.