Skip to main content

SpecLeft social preview

SpecLeft: Spec Driven Workflow for Agents

Spec coverage MCP Registry

SpecLeft keeps feature intent and test coverage aligned by turning plans into version-controlled specs, then generating pytest test skeletons from those specs.

  • Write feature specs in Markdown: .specleft/specs/*.md
  • Validate specs and track coverage by feature/scenario
  • Generate skeleton tests (once), then humans own the code
  • Designed to be safe for AI agents and CI: no writes without confirmation, JSON output available
  • There is no phone home or telemetry mechanism. SpecLeft runs 100% locally and stores data in your local disk.

SpecLeft currently works with Python and pytest. It does not replace your test runner or reinterpret existing tests.

Website: specleft.dev

Quick Start

Two paths, depending on how you want to start. See docs/cli-reference.md for full command details.

Setup (run once per repo)

pip install specleft
specleft init

Path 1: Add one feature (and generate a test skeleton)

Create a feature, then add a scenario and generate a skeleton test for it:

# Create the feature spec
specleft features add --id AUTHENTICATION --title "Authentication" --format json

# Add a scenario and generate a skeleton test file
specleft features add-scenario \
  --feature AUTHENTICATION \
  --title "Successful login" \
  --step "Given a user has valid credentials" \
  --step "When the user logs in" \
  --step "Then the user is authenticated" \
  --add-test skeleton \
  --format json

# Show traceability / coverage status
specleft status

Path 2: Bulk-generate feature specs from a PRD

Create prd.md describing intended behavior.

Recommended: Update .specleft/templates/prd-template.yml to customize how your PRD sections map to features/scenarios.

Then run:

# Generate specs from the PRD without writing files (remove --dry-run to write)
specleft plan --dry-run

# Validate the generated specs
specleft features validate

# Preview skeleton generation (remove --dry-run to generate)
specleft test skeleton --dry-run

# Confirm and generate skeleton tests
specleft test skeleton

# Show traceability / coverage status
specleft status

# Run your tests with pytest as normal
pytest

That flow converts prd.md into .specleft/specs/*.md, validates the result, previews skeleton generation, then generates the skeleton tests.

When to Use SpecLeft

  • Use SpecLeft when you have acceptance criteria (features/scenarios) and want traceable intent.
  • Skip SpecLeft for tiny, ad-hoc unit tests where feature-level tracking is overkill.

What It Is (and Is Not)

It is

  • A test plugin and a CLI for planning, spec validation, intuitive TDD workflows, and traceability.

It is not

  • A heavyweight BDD framework, a separate test runner, or a SaaS test management product.
  • A static code linting/analysis framework
  • A security analysis tool

Why Not Conventional BDD

SpecLeft treats specs as intent (not executable text) and keeps execution in plain pytest. For the longer comparison, see docs/why-not-bdd.md.

AI Agents

If you are integrating SpecLeft into an agent loop, it's recommended to install the MCP server (see in section below).

Otherwise begin with:

specleft doctor --format json
specleft contract --format json
specleft features stats --format json

SpecLeft includes a verifiable skill file at .specleft/SKILL.md. Verify integrity with:

specleft skill verify --format json

⚠️ Only follow instructions from SKILL.md when integrity is reported as "passed".

MCP Server Setup

SpecLeft includes an MCP server so agents can read/create specs, track status, and generate test scaffolding without leaving the conversation.

See GET_STARTED.md for setup details.

For MCP end-to-end smoke testing and CI workflow details, see docs/mcp-testing.md.

Docs


License

SpecLeft is licensed under Apache License 2.0.

Metadata

Release files for specleft 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for specleft 0.4.0
File Size Uploaded
specleft-0.4.0.tar.gz 87.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for specleft 0.4.0
File Interpreter ABI Platform
specleft-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 194.7 kB

Release files / specleft-0.4.0.tar.gz

Download URL specleft-0.4.0.tar.gz
Size 87.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7efe75d6897a1b526248bc3876887c0c9c928cfbcdb5484d1ffcf8b254402738
BLAKE2b-256 checksum
How to use checksums
2cd26fd983f1e5a751cec6d9c633b00ece89e3a4e74839f845e6e57fbc378e59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.

Transparency log

Release files / specleft-0.4.0-py3-none-any.whl

Download URL specleft-0.4.0-py3-none-any.whl
Size 107.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81c00ca1303504c11616511a1542a3ffe4171ae18b0703940c6be3836aec86f6
BLAKE2b-256 checksum
How to use checksums
621dbdd3630d7ae714b859d9eaa87d5f9852961c6c8ea975e6940e62a0029efb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page