Metadata-Version: 2.4
Name: diamond-setup
Version: 1.0.0
Summary: Universal Python project scaffold — generate professional project skeletons in seconds
Project-URL: Repository, https://github.com/GenesisAeon/diamond-setup
Project-URL: Issues, https://github.com/GenesisAeon/diamond-setup/issues
Author: GenesisAeon
License: MIT
License-File: LICENSE
Keywords: cli,project-generator,scaffold,skeleton,template
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.11
Requires-Dist: pydantic>=2.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7.0
Requires-Dist: typer>=0.12.0
Provides-Extra: dev
Requires-Dist: pre-commit>=3.7.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.6.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
Description-Content-Type: text/markdown

# diamond-setup

**Universal Python project scaffold** — generate professional, CI-ready skeletons in seconds.

[![CI](https://github.com/GenesisAeon/diamond-setup/actions/workflows/ci.yml/badge.svg)](https://github.com/GenesisAeon/diamond-setup/actions/workflows/ci.yml)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)

No cookiecutter, no Jinja2, no magic. Just a clean CLI that produces a fully working project — `uv sync`, `pytest`, ruff, pre-commit and CI all wired up from second one.

---

## Install

```bash
pip install diamond-setup
# or
uv tool install diamond-setup
```

## Usage

```bash
# New project with the minimal template (default)
diamond scaffold my-lib

# GenesisAeon preset (adds domains.yaml + entropy-table bridge)
diamond scaffold my-physics-tool --template genesis --author "Ada Lovelace"

# Preview what would be generated (no files written)
diamond scaffold my-lib --dry-run

# See all templates
diamond list-templates

# Validate any project directory
diamond validate path/to/my-project
diamond validate          # validates the current directory
```

## What you get

Running `diamond scaffold my-lib` produces:

```
my-lib/
├── src/
│   └── my_lib/
│       └── __init__.py       # __version__ = "0.1.0"
├── tests/
│   ├── __init__.py
│   └── test_main.py
├── .github/
│   └── workflows/
│       └── ci.yml            # matrix: 3.11 + 3.12
├── pyproject.toml            # hatchling, ruff, pytest configured
├── README.md
├── .gitignore
└── .pre-commit-config.yaml   # ruff + standard hooks
```

Then just:

```bash
cd my-lib
uv sync --dev
pre-commit install
uv run pytest
```

## Templates

| Template | Description |
|----------|-------------|
| `minimal` | Clean Python package for everyone |
| `genesis` | Adds `domains.yaml` + entropy-table bridge (GenesisAeon preset) |

## Extending

Adding a new template is one Python file. See [docs/templates.md](docs/templates.md).

---

Built with [uv](https://docs.astral.sh/uv/) · [Typer](https://typer.tiangolo.com/) · [Rich](https://rich.readthedocs.io/)
