Python stack pack
Python 3.10+ projects: services, CLI tools, libraries, data pipelines. The first non-JS stack pack, included specifically to prove the stack-pack contract isn't Node-shaped.
Audience #
Pick Python if:
- Your project is a Python codebase (FastAPI, Django, Flask, plain scripts, libraries, ML pipelines).
- Your validation pipeline is some combination of
ruff/flake8,mypy/pyright,pytest/unittest. - You're greenfield or scaffolding
aidokitinto an existing Python project.
Auto-detection triggers #
aidokit init detects this pack when it sees:
- A
pyproject.toml - A
setup.pyorsetup.cfg - A
requirements.txtorrequirements-*.txt - Any
.pysource files undersrc/,app/, or the project root (medium-confidence signal)
To force it explicitly:
aidokit init --stack python
What you get #
| Component | Provided |
|---|---|
| Suggested skills | python-conventions, pytest-patterns, pyproject-discipline, error-envelope-conventions (Python variant) |
| Suggested MCPs | Context7, Beads MCP, Playwright (when tests live under tests/e2e/) |
| Validation commands | ruff check ., mypy ., pytest (auto-detected; falls back to flake8 / pyright / unittest when those are configured) |
| Architecture hint (Strict) | Layered service (Router → Service → Repository) with Pydantic for validation, structured exceptions for the error envelope |
| Watchdog awareness | Scope check understands pyproject.toml packages; deletion guard treats __init__.py carefully |
Composition #
- Composes with React for a Python-backend + React-frontend project
—
aidokit init --stack python,reactis a common pattern. - Composes with Node-TS or Node-JS for repos with both ecosystems (e.g. Python services + Node tooling).
- Composes with Go for polyglot service repos.
Honest limitations #
- Package manager detection is approximate. The pack prefers
uvwhen.uvfiles are present, thenpoetrywhenpoetry.lockis present, thenpip. If none match, it falls back topipwith a warning. - Type-checker choice is inferred, not asked. If both
mypyandpyrightconfigs are present,mypywins. Override in your project'saidokitmanifest. - Conda environments are not first-class. They work, but
aidokit doctordoes not yet readenvironment.ymlfor prereq checks. - Async-heavy patterns get less coverage. The included skills
cover sync-first code well;
asyncio-heavy projects will want to add a project-local skill.