Skip to main content

Project scaffolding CLI with built-in methodology (Copier-backed).

Project description

dreamteam

Project scaffolding CLI with built-in methodology. One command — working project with linters, tests, kanban, ADR log, and a complete set of rules for AI-assisted development baked in.

pip install dreamteam-cli                              # then `dreamteam` command is available
# or zero-install via uvx:
uvx --from dreamteam-cli dreamteam init my-project

cd my-project
uv sync

Note: the PyPI package name is dreamteam-cli (the bare dreamteam slot on PyPI is held by an unrelated 2019 package). The command stays dreamteam regardless — pip install dreamteam-cli exposes the dreamteam console script, and that's what you use in everyday work.

That's it. The generated project passes its own pre-push check suite (ruff / ruff format / mypy / pytest with 80% coverage threshold) immediately — verified by the integration test in this repo.

What you get

Every project scaffolded by dreamteam init includes:

  • Python stackuv for deps, ruff (select = ["ALL"] with a curated ignore), mypy (mypy_path = "src"), pytest + pytest-cov + pytest-asyncio with a --cov-fail-under=80 gate.
  • src/-layout with a working main.py (CLI-style logging: DEBUG/INFO → stdout, WARNING+ → stderr) and a coverage-100% tests/test_main.py.
  • Methodology files that are not just placeholders but ready-to-fill documents:
    • CONCEPT.md — immutable initial draft of the project vision.
    • PROJECT.md — passport (purpose, status, stack, links).
    • DECISIONS.md — ADR-Lite for architectural decisions.
    • BACKLOG.md / BOARD.md — markdown kanban with task numbering (T<NNN> IDs, branch naming, PR naming, spec folder naming).
    • CHANGELOG.md — Keep-a-Changelog style with retrospective sections at milestone boundaries.
    • CLAUDE.md — project rules for Claude Code, including scope discipline, Git workflow, pre-push contract, and a structured code-review checklist.
  • hooks/pre-push — optional local hook rejecting direct pushes to main / master.
  • specs/spec-template.md — template for major-feature specs with clarify / analyze sections.

Updating an existing project

When the methodology evolves, propagate changes:

cd my-project
dreamteam update

MVP limitation. Current dreamteam update re-applies the template with stored answers (overwrite=True). Local edits to template-managed files will be overwritten. Full diff/merge update requires a git-tracked template, which is non-trivial for PyPI-distributed packages — planned as a follow-up task.

How it works

dreamteam is a thin Typer-based CLI on top of Copier. The template lives at src/dreamteam/template/ inside the installed package; dreamteam init calls copier.run_copy programmatically, then persists answers to .copier-answers.yml so updates can replay them.

Methodology evolves in this repository:

  • BACKLOG.md / BOARD.md — what's planned / in progress for the dreamteam package itself.
  • DECISIONS.md — ADRs for the package (e.g., why uv over poetry, why src/-layout, why Copier, why TEMPLATE-prefix was introduced and then dropped).
  • CHANGELOG.md — Keep-a-Changelog for the package, with retrospective sections at milestone boundaries.

In derived projects (created via dreamteam init) there is a separate set of these files with the same names but different content — they live in src/dreamteam/template/ here and get rendered into the user's project. The two sets never collide because they're physically separated by the package boundary.

Development

git clone https://github.com/vlakir/dreamteam.git
cd dreamteam
uv sync
uv run dreamteam init /tmp/sandbox --defaults   # try it
uv run pytest                                    # fast tests
uv run pytest -m integration                     # e2e (slow, runs uv sync inside generated project)

Pre-push checks (run all four with 0 errors before any push):

uv run ruff check .
uv run ruff format --check .
uv run mypy src
uv run pytest

Methodology rules — including scope discipline, never push to main, one PR one commit, mandatory code review, task numbering T<NNN> — are documented in CLAUDE.md (project-level) and ~/.claude/CLAUDE.md (developer-level, optional).

Status

Currently v0.x (pre-1.0). Stable feature set since v0.2.0 methodology consolidation; v1.0.0 will be the first release with this Copier/CLI architecture (T006). Roadmap in BACKLOG.md.

License

MIT — Copyright (c) 2026 vlakir.

This applies to dreamteam itself. Projects generated via dreamteam init do not automatically inherit MIT — license choice is left to the user (add your own LICENSE after init).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dreamteam_cli-1.0.0.tar.gz (95.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dreamteam_cli-1.0.0-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file dreamteam_cli-1.0.0.tar.gz.

File metadata

  • Download URL: dreamteam_cli-1.0.0.tar.gz
  • Upload date:
  • Size: 95.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dreamteam_cli-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7a9f0cb4b0a7e27eb1a4a0a339e390eea75b72da97eaf4be5d18dab74fd1feff
MD5 1600c7e621c79de968f42720ef56f7f5
BLAKE2b-256 1a9036b10120abb0b989c67d39db06cdd1b76d6b854d06f222248daf9f107944

See more details on using hashes here.

File details

Details for the file dreamteam_cli-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dreamteam_cli-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dreamteam_cli-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee0c8edbfe86c47c40953d42af3191261054eb36e59d6a6719e55b963559dc2d
MD5 06030d527ffa3a535ba4ec61ccfd903d
BLAKE2b-256 fec80e20f21d5c61b8326d93ce4225f1ad96b9cf40b03d0aea993315f58ccbfe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page