Skip to main content

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; stdlib tomllib otherwise)

License

Apache-2.0

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

specmason-0.1.0.tar.gz (78.1 kB view details)

Uploaded Source

Built Distribution

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

specmason-0.1.0-py3-none-any.whl (65.7 kB view details)

Uploaded Python 3

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

Hashes for specmason-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d573520750202050ebffb191ce152fd8f313fad2ef800c10b2b908906955c8c0
MD5 72abe0fad191515b3882d2f6976ff431
BLAKE2b-256 a05aae80bf2e6972665f1de6659ccabe90d8a3777da344eabed5317b4d902635

See more details on using hashes here.

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

Hashes for specmason-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd689bc120e64fb27ee221e46caa0b23acecf64bccd200019078a069552c651e
MD5 d834a6e9a7d0e0b25d56bb848d9e1e51
BLAKE2b-256 afb10592bb914788d05ca2f7a2a393963ef0662dd04278f8f9c970845080b6d3

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