spotregen
Tooling for Regenerative Software in the sense of Chad Fowler: code is
disposable, the knowledge around it is the asset. A module is safely replaceable
when it can be deleted and rebuilt from knowledge that lives outside its
implementation. spotregen reads that knowledge from a tracked regen/ tree and
checks it against the source tree.
- Standard library only: zero runtime dependencies, Python 3.13 or later.
- It never imports the modules it describes; it reads the source with
ast. - A deterministic static check (
spotregen check) formake guard, plus reports (status,deletion-test,context,compact,new-unit), three measures (measuresfor intent coverage and specification size,mutatefor the mutation score of one unit,measures --mutation-scorefor all three of every unit) and two non-deterministic drivers (claude,local) that regenerate a unit with an LLM.
Install
uv add --dev spotregen
Use
spotregen check [--strict] # the static check: exit 1 on errors
spotregen status # units by pace and coverage
spotregen deletion-test UNIT # blast radius and knowledge gaps
spotregen context UNIT [-o FILE] # regeneration bundle, no bodies
spotregen compact # compaction candidates
spotregen measures [--mutation-score] # intent coverage and specification size;
# --mutation-score adds the score (slow: runs every mutant)
spotregen mutate UNIT [--out FILE] # mutation score: planted mutants
spotregen new-unit MODULE --pace P --risk R [--dry-run]
spotregen gui # the graphical interface (tkinter, see below)
spotregen claude UNIT [...] # regenerate with `claude -p` (needs claude)
spotregen local UNIT --model M [...] # regenerate with a local LM Studio model
--root DIR selects the repository (default: search upwards for
regen/architecture.toml); python -m spotregen works as well. A repository
carries:
regen/architecture.toml: the compilation target (allowed imports, accepted cycles, pace policy, conventions, scan directories).regen/units/<unit>.toml: one regenerable unit with intent, evaluations and consumers.regen/decisions/<id>.toml: provenance records.
Graphical interface
spotregen gui (also spotregen-gui and python -m spotregen.gui) opens a window
with an Overview and a view for each command except the drivers: Check, Status,
Context, Deletion test, Compact, Measures and New unit, plus Runs, Mutate and Local for
the long-running jobs. It uses tkinter from the standard
library, so it adds no dependency, and it shows the exact command line under every
action. A Python without tkinter gets a message with the fix; Python builds managed by
uv include it. QUICKSTART.md walks through one example on the
sample repository. See docs/gui.qmd and
ADR 0002.
The schema, the finding codes and the tutorials are in the documentation,
https://advm1.gm.fh-koeln.de/~bartz/spotregen/. A minimal repository for trying
it out is built by spotregen.make_sample_repo.
Develop
make sync && make test-fast # environment and fast tests
make verify # guard + lint + test + doc, the pre-release verification
See CONTRIBUTING.md and RELEASING.md. The design is recorded in ADR 0001 and, for the graphical interface, ADR 0002.
License
AGPL-3.0-or-later.
Metadata
Release files for spotregen 0.10.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spotregen-0.10.1.tar.gz | 104.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spotregen-0.10.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 230.2 kB
Release files / spotregen-0.10.1.tar.gz
| Download URL | spotregen-0.10.1.tar.gz |
|---|---|
| Size | 104.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58e22f54151aab788234b021d7bf4143431899688712945da914e7c201e1e307
|
|
BLAKE2b-256 checksum How to use checksums |
3f043ae9e9c79deb09d488c1e30845ed5b410b1ad04fa84b6ade4ead1e280326
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Release files / spotregen-0.10.1-py3-none-any.whl
| Download URL | spotregen-0.10.1-py3-none-any.whl |
|---|---|
| Size | 125.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
237a04eeb582290bfadc7b5c2452f6c37c164cdc5a17612e70f9609a9c6f1133
|
|
BLAKE2b-256 checksum How to use checksums |
e132678eb461ca9d4d36a0b50463e9f3338abb87efb36107f1a763a83d7208da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|