Summary
A freshly scaffolded app (smpy new) cannot run the project's own quality gates — the generated Makefile has only install/dev/build/migrate/migration/gen-pages/sync-module-deps/kill (+ worker/beat with --with background_tasks). reference/make-commands.md and the framework workflow describe make test / make lint / make doctor, but the scaffold doesn't emit them.
Environment
- Framework checkout:
v0.0.17-5-g2b079c9; smpy / published simple_module_* / @simple-module-py/*: 0.0.17 - Python 3.12.3, uv 0.11.7, node v24.15.0, Linux (Ubuntu)
Found while building a real consumer app (Invoice Manager) on the framework.
Repro
smpy new demo --preset standard --yes && cd demo && make test → "No rule to make target 'test'". Same for lint, doctor.
Also
The scaffold Makefile's migrate target uses alembic upgrade head (singular) while the framework Makefile uses upgrade heads (plural). With per-module migration branch labels, the singular form can leave branch heads unapplied.
Impact / workaround
A real consumer must hand-build the CI surface before writing feature code: a root dev dependency group (pytest/ruff/ty/playwright), ruff+ty+pytest config, scripts/check_file_size.py, and test/test-py/lint/doctor/test-e2e targets. Suggest the scaffold generate these (and upgrade heads).
Summary
A freshly scaffolded app (
smpy new) cannot run the project's own quality gates — the generatedMakefilehas only install/dev/build/migrate/migration/gen-pages/sync-module-deps/kill (+ worker/beat with--with background_tasks).reference/make-commands.mdand the framework workflow describemake test/make lint/make doctor, but the scaffold doesn't emit them.Environment
v0.0.17-5-g2b079c9;smpy/ publishedsimple_module_*/@simple-module-py/*: 0.0.17Found while building a real consumer app (Invoice Manager) on the framework.
Repro
smpy new demo --preset standard --yes && cd demo && make test→ "No rule to make target 'test'". Same forlint,doctor.Also
The scaffold Makefile's
migratetarget usesalembic upgrade head(singular) while the framework Makefile usesupgrade heads(plural). With per-module migration branch labels, the singular form can leave branch heads unapplied.Impact / workaround
A real consumer must hand-build the CI surface before writing feature code: a root dev dependency group (pytest/ruff/ty/playwright), ruff+ty+pytest config,
scripts/check_file_size.py, andtest/test-py/lint/doctor/test-e2etargets. Suggest the scaffold generate these (andupgrade heads).