Durable project-state storage and CLI for coding workflows
Project description
SpecMason
SpecMason is the Ledgerwerk tool for maintaining behavior/specification artifacts, pytest mappings, reverse coverage, and execution evidence.
It does not own requirements. ReqLedger owns requirements and acceptance criteria. SpecMason reads ReqLedger exports when available and checks whether behavior specs, tests, and evidence prove accepted criteria.
SpecMason also works standalone for Brownfield projects. Without a ReqLedger manifest, it can discover pytest tests, validate local behavior specs, report unmapped tests, and maintain an intentional-unmapped policy.
Installation
pip install specmason
Quickstart with ReqLedger (integrated mode)
pip install specmason
specmason init
specmason create-gherkin --from requirements/manifest.json
specmason check
specmason discover-pytest
specmason coverage --view both --show gaps
specmason review
Brownfield standalone quickstart
pip install specmason
specmason init
specmason discover-pytest
specmason coverage --view tests --show gaps
Commands
| Command | Description |
|---|---|
specmason init |
Initialize workspace layout |
specmason check |
Validate features, mappings, waivers |
specmason create-gherkin --from MANIFEST |
Generate draft Gherkin from accepted criteria |
specmason discover-pytest |
Discover tests without importing modules |
specmason coverage |
Report coverage in both directions |
specmason mappings |
Show the mapping inventory |
specmason import-report pytest-junit XML |
Import JUnit XML evidence |
specmason review |
Full review: check + coverage + evidence + reports |
All commands support --json for machine-readable output and --config PATH
for explicit config resolution.
Workspace layout
specs/
behavior/
README.md
manifest.json
features/
.../*.feature
mappings/
intentional-unmapped.json
evidence/
pytest-junit.json
reports/
specmason/
coverage.md
coverage.json
mappings.json
evidence.json
specmason.toml
Dependencies
- typer (CLI)
- ledgercore (generic storage/primitive library)
tomli(Python < 3.11 only; stdlibtomllibotherwise)
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file specmason-0.1.0.tar.gz.
File metadata
- Download URL: specmason-0.1.0.tar.gz
- Upload date:
- Size: 78.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d573520750202050ebffb191ce152fd8f313fad2ef800c10b2b908906955c8c0
|
|
| MD5 |
72abe0fad191515b3882d2f6976ff431
|
|
| BLAKE2b-256 |
a05aae80bf2e6972665f1de6659ccabe90d8a3777da344eabed5317b4d902635
|
File details
Details for the file specmason-0.1.0-py3-none-any.whl.
File metadata
- Download URL: specmason-0.1.0-py3-none-any.whl
- Upload date:
- Size: 65.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd689bc120e64fb27ee221e46caa0b23acecf64bccd200019078a069552c651e
|
|
| MD5 |
d834a6e9a7d0e0b25d56bb848d9e1e51
|
|
| BLAKE2b-256 |
afb10592bb914788d05ca2f7a2a393963ef0662dd04278f8f9c970845080b6d3
|