Tools

The Contract

Specs that run, so agents get judged against something written down.

Rule 13 says to write the Contract. Rule 20 says to make it executable, and rule 29 says to publish how much of it the code meets. These tools turn a written spec into something a machine can run against the code. The Cucumber family has done this for twenty years, and a newer crop of tools hands the spec straight to a coding agent.

Specs that run

  • Start here

    Behat

    Gherkin BDD framework for PHP with Symfony and Laravel extensions.

    Feature files pin PHP behavior, and the agent has to keep them green.

    PHP Open source, MIT4k starsLatest release Sep 2026Source

  • Start here

    Behave

    Gherkin feature files with Python step definitions.

    CI runs a plain-language contract on every agent change in a Python project.

    Python Open source, BSD-2-Clause3.5k starsLatest release Sep 2025Source

  • Start here

    Cucumber

    Plain-language Given/When/Then scenarios in Gherkin that run as tests against the app.

    A Gherkin contract reads cleanly to people and runs on every change, so agent output gets judged against it.

    Ruby, JavaScript/TypeScript Open source, paid tier, MITSource

  • Start here

    Cucumber-JVM

    Cucumber for Java and other JVM languages, with JUnit Platform integration.

    JVM teams run Gherkin contracts in the same build as their unit tests.

    Java/JVM Open source, MIT2.8k starsLatest release Oct 2026Source

  • Start here

    cucumber-rs

    A native Rust implementation of Cucumber with async step functions.

    Feature files stay executable beside cargo test in Rust projects.

    Rust Open source, Apache-2.0745 starsLatest release Apr 2026Source

  • Start here

    Godog

    The official Cucumber implementation for Go, run through go test.

    Go services state their contract in Gherkin and fail the build when an agent drifts from it.

    Go Open source, MIT2.7k starsLatest release Jul 2026

  • Start here

    Pact

    Consumer-driven contract tests: consumers record expectations and providers verify them.

    When different agents change each side of a service boundary, the contracts get enforced mechanically.

    Any language Open source, paid tier, MITSource

  • Start here

    Quick

    Describe/it style behavior specs for Swift and Objective-C, paired with Nimble matchers.

    Behavior-style specs give iOS agents a shape to satisfy.

    Swift/iOS Open source, Apache-2.09.8k starsLatest release Jul 2024

  • Start here

    Reqnroll

    Open-source Gherkin BDD framework for .NET, the community successor to SpecFlow.

    Executable Given/When/Then contracts that an agent has to satisfy before a change merges.

    .NET Open source, BSD-3-Clause789 starsLatest release Mar 2026Source

  • Start here

    Schemathesis

    Reads an OpenAPI or GraphQL schema and generates requests that find crashes and spec violations.

    The API schema becomes an executable Contract, and the tool tests a server written in any language.

    Any language Open source, paid tier, MIT3.6k starsLatest release Oct 2026Source

  • byexample

    Runs code examples in Markdown and text files as regression tests.

    Docs in many languages turn into tests, so prose cannot claim behavior the code lost.

    GPL-3.0 licensed, which matters if you embed it.

    Any language Open source, GPL-3.068 starsLatest release Jun 2022Source

  • Cabbage

    Compiles Gherkin feature files into ExUnit tests for Elixir.

    Elixir teams run feature-file contracts through the test runner they already use.

    Releases have slowed, with the last activity in March 2025.

    Elixir/Erlang Open source, MIT154 stars

  • Concordion

    Specification by example in Markdown or HTML, with instrumented prose that runs as tests.

    The spec is an ordinary document with checks embedded, so prose and proof share one file.

    Updates have slowed.

    Ruby, Python, Java/JVM, .NET Open source, Apache-2.0247 starsLatest release Jul 2023Source

  • Cucumber-CPP

    Lets Cucumber run step definitions written in C++ over a wire protocol.

    Native code gets Gherkin-level acceptance checks without a rewrite in another language.

    Needs a Ruby Cucumber runner.

    C/C++ Open source, MIT331 stars

  • Elixir ExUnit doctests

    Runs iex-style examples in @doc strings as tests.

    Module documentation doubles as a checked specification.

    Elixir/Erlang Open source, Apache-2.0Part of ElixirLatest release Aug 2026Source

  • FitNesse

    A wiki where acceptance tests are tables that run against the system.

    Non-programmers write expected values in wiki tables and the machine checks them.

    Java/JVM Open source, CPL-1.02.1k starsLatest release Oct 2025Source

  • Gauge

    Markdown specifications that run as tests, with plugins for many languages.

    Specs live as plain Markdown, which agents and reviewers can both read and edit.

    Ruby, Python, JavaScript/TypeScript, Java/JVM, .NET Open source, Apache-2.03.2k starsLatest release Sep 2026Source

  • Hurl

    HTTP requests and assertions written in plain text files and run from a single binary.

    An API contract in a readable text file that CI runs and reports on.

    Any language Open source, Apache-2.019k starsLatest release Apr 2026Source

  • Karate

    Gherkin-style API, mock, performance and UI tests in one framework.

    API behavior is specified once and reused for functional and load checks.

    Java/JVM Open source, paid tier, MIT9k starsLatest release Sep 2026Source

  • Prysk

    A maintained fork of cram for testing command-line tools via shell transcripts.

    Keeps CLI transcript tests alive now that cram has stalled.

    Python Open source, GPL-2.038 starsLatest release May 2024Source

  • pytest-bdd

    Gherkin scenarios run inside pytest, sharing fixtures with the rest of the suite.

    Feature-file contracts sit beside ordinary pytest tests, so one runner and one coverage report cover both.

    Python Open source, MIT1.5k starsSource

  • Python doctest

    Runs interactive examples embedded in docstrings and text files and checks their output.

    Doc examples fail the build when the code changes, which keeps agent-written docs honest.

    Python Open source, PSF-2.0Part of PythonSource

  • Robot Framework

    Keyword-driven acceptance testing with tabular and Gherkin-style test files.

    Keyword libraries turn acceptance criteria into checks that run against web, API and embedded targets.

    Python Open source, Apache-2.012k starsLatest release Sep 2026Source

  • Rust doc tests

    Code blocks in doc comments compile and run as part of cargo test.

    Every documented example is checked on each change, so API docs cannot drift unnoticed.

    Rust Open source, Apache-2.0Part of Rust toolchainLatest release Oct 2026Source

  • Specmatic

    Turns OpenAPI, AsyncAPI, GraphQL and gRPC specs into executable contract tests and stubs.

    The API spec is the contract, so agent code is tested against it and dependencies are stubbed from it.

    Any language Open source, paid tier, MIT397 starsLatest release Oct 2026Source

  • Spock

    Groovy test framework whose given/when/then blocks read as specifications.

    Data-driven where-blocks give agents a compact table of expected behavior to meet.

    Java/JVM Open source, Apache-2.03.6k starsLatest release Oct 2026Source

  • testscript (go-internal)

    Shell-like test scripts with txtar archives, extracted from the Go toolchain's own tests.

    CLI behavior becomes a plain script with fixtures inline, easy for agents to read and extend.

    Go Open source, BSD-3-Clause993 starsLatest release May 2026Source

  • Varar

    Turns plain Markdown examples into tests so documentation fails when behavior drifts.

    Docs written for agents double as the contract, with one conformance corpus across eight languages.

    Ruby, Python, JavaScript/TypeScript, Go, Rust, Java/JVM, .NET Open source, MIT48 starsLatest release Sep 2026Source

Spec-driven agent tools

  • Start here

    GitHub Spec Kit

    CLI and templates that move agents from spec to plan to tasks to code.

    The spec files and task files sit in version control and give the agent a written contract to build from.

    Any language Open source, MIT140k starsLatest release Oct 2026

  • Agent OS

    Extracts coding standards from a codebase and injects them into agent specs.

    Standards become written inputs that shape every spec an agent works from.

    Any language Open source, MIT5.5k starsLatest release Jan 2026Source

  • Augment Cosmos

    Cloud agent platform with living specs and shared memory for team-scale delivery.

    Keeps specs updated as agents change code, which suits teams spread across many repos.

    Any language Paid

  • BMAD-METHOD

    Role-based agent workflow from idea through PRD, architecture and stories to code.

    Heavy up-front documents give agents detailed intent and cost the team some ceremony.

    Any language Open source, MIT54k starsLatest release Oct 2026

  • cc-sdd

    Spec-driven harness that turns approved specs into long-running implementation runs with independent review.

    An independent review step and auto-debug check each spec-driven run, across eight different agents.

    Any language Open source, MIT3.7k starsLatest release Sep 2026

  • Claude Task Master

    Parses a PRD into dependency-ordered tasks that agents work through, via CLI and MCP.

    A written requirements doc becomes a task graph an agent can walk in order.

    Licensed MIT with the Commons Clause, which restricts resale and hosting.

    Any language Source available, MIT with Commons Clause28k starsLatest release Mar 2026

  • CodeMySpec

    Enforces a behavioral spec as a gate, then verifies the running app.

    A failing behavioral spec blocks the merge, which makes the spec a gate.

    The site now describes it as AI harnesses that help one person build, sell and support software.

    Any language Paid

  • GSD (Get Shit Done)

    Context-engineering and spec-driven workflow for Claude Code and other agents.

    Work splits into fresh-context phases that follow written plans.

    The original repo was archived on 2026-06-26 and the project continues as GSD Core.

    Any language Open source, MIT10k starsLatest release Oct 2026

  • Kiro

    AWS agentic IDE and CLI that turns prompts into requirements, design and tasks, with property-based checks.

    Specs in EARS notation and property-based tests give a checkable contract inside one product.

    Any language Paid

  • OpenSpec

    Lightweight spec framework: propose a change, write spec deltas, apply, then archive.

    Delta-style specs fit existing codebases, where the contract grows one change at a time.

    Any language Open source, MIT71k starsLatest release Oct 2026Source

  • Pimzino claude-code-spec-workflow

    Claude Code commands for requirements, design, tasks and implementation, plus a bug-fix flow.

    A small example of the spec-first loop built only on Claude Code commands.

    Updates have slowed since September 2025.

    Any language Open source, MIT3.9k stars

  • Tessl

    Platform for agent skills, policy checks and review loops, started as a spec-centric framework.

    A skills registry plus governance tools lets a team enforce shared standards on agent output.

    Any language PaidSource

API contracts

  • Start here

    buf

    Lints Protobuf files and detects breaking changes against an earlier version.

    A breaking proto change fails the check, so an agent cannot quietly ship an incompatible schema.

    The Buf Schema Registry is a paid product.

    Any language Open source, paid tier, Apache-2.011k starsLatest release Sep 2026Source

  • Start here

    GraphQL Inspector

    Diffs GraphQL schemas, finds breaking changes and validates documents against a schema.

    Fails the build when a schema edit would break queries that clients already send.

    Any language Open source, MIT1.8k starsLatest release Oct 2026Source

  • Start here

    oasdiff

    Compares two OpenAPI specs and lists changes that would break existing clients.

    One command fails the pull request when an agent changes the public API in an incompatible way.

    Any language Open source, paid tier, Apache-2.01.4k starsLatest release Oct 2026Source

  • Ajv

    Validates JSON against JSON Schema in tests and at runtime.

    Schemas checked in CI catch a payload shape change before an agent's edit reaches production.

    JavaScript/TypeScript Open source, MIT15k starsLatest release Apr 2026Source

  • Apollo GraphOS schema checks

    Checks proposed GraphQL schema changes against real client traffic before they ship.

    Real usage data tells you whether a change breaks a client, which an agent has no way to guess.

    Custom, proposal and contract checks need the Enterprise plan.

    Any language Paid

  • AsyncAPI tooling

    Spec, CLI, validator and code generators for event-driven APIs described in AsyncAPI.

    Gives message-based services a written contract that tests and generators can both use.

    Any language Open source, Apache-2.0Source

  • Microcks

    Mocks and contract-tests APIs from OpenAPI, AsyncAPI, gRPC and GraphQL specs.

    One spec feeds consumer mocks and provider tests, so both sides of a change get checked.

    Any language Open source, Apache-2.02.1k starsLatest release Aug 2026Source

  • openapi-diff

    Compares two OpenAPI specs and reports incompatible changes.

    A JVM-friendly option for the same breaking-change gate that oasdiff provides.

    Java/JVM Open source, Apache-2.01.1k starsLatest release Jan 2026

  • PactFlow

    A hosted Pact broker with can-i-deploy checks and bi-directional contract testing against OpenAPI.

    Shows each service's contract status in one place, so a deploy gate can block an incompatible release.

    Owned by SmartBear, with a free starter plan.

    Any language Paid

  • Postman CLI / Newman

    Runs Postman collections and tests from the command line in CI.

    Teams with collections already built get an API regression gate without writing new tests.

    Newman releases have slowed in favor of Postman CLI.

    Any language Open source, paid tier, Apache-2.07.3k starsSource

  • Prism

    Mocks an API from its OpenAPI file and validates requests and responses against it.

    Frontend agents can build against the spec before any backend exists.

    Any language Open source, Apache-2.05k starsLatest release Jul 2026Source

  • Spectral

    Lints OpenAPI, AsyncAPI and JSON documents against custom rulesets.

    House API style becomes rules that fail the build, so agent output stays inside the standard.

    Any language Open source, Apache-2.03.2k starsLatest release Oct 2026Source

  • Spring Cloud Contract

    Generates provider tests and consumer stubs from contracts written in Groovy, YAML or Kotlin.

    Contracts generate the provider tests, so an agent changing either Spring service faces the same check.

    The Spring team moved the project out in July 2026. It continues as Stubborn Contract under Stubborn.sh.

    Java/JVM Open source, Apache-2.0730 starsLatest release Jun 2026Source

  • Vacuum

    A fast OpenAPI linter that reads Spectral rulesets and adds its own rules.

    Large specs lint quickly in CI, and existing Spectral rulesets carry over.

    Any language Open source, MIT1.1k starsLatest release Sep 2026Source

  • WireMock

    Mocks HTTP APIs with stubs and verifies the requests it receives.

    Pins third-party API behavior so agent-written code is tested against a fixed response.

    Java/JVM Open source, paid tier, Apache-2.07.4k starsLatest release Nov 2025Source

Traceability and contract coverage

  • Allure TestOps

    Test management platform that maps requirements to automated tests and reports.

    Publishes coverage per requirement from the test runs a team already has.

    Any language Paid

  • Doorstop

    Requirements as YAML files in git, linked by ID, with checks for broken links.

    Requirements live beside the code and diff cleanly, so an agent can edit them in a pull request.

    Python Open source, LGPL-3.0674 starsLatest release Jul 2026Source

  • Jama Connect

    Commercial requirements management with live traceability and impact analysis.

    Regulated teams need audited links from requirement to test, whoever wrote the code.

    Any language Paid

  • OpenFastTrace

    Traces requirements from Markdown or RST specs to code and tests, and reports gaps.

    The build fails when a requirement has no covering test or code, which gives you contract coverage you can publish.

    Java/JVM Open source, GPL-3.0198 starsLatest release Sep 2026

  • Reqflow

    Checks coverage between requirement documents and design or test documents.

    A light coverage check for document-based requirement chains.

    Any language Open source, AGPL-3.040 starsLatest release Mar 2019Source

  • sphinx-needs

    Sphinx extension that defines requirements, specs and tests as linked objects with filters and charts.

    Builds traceability tables and coverage charts straight from the docs in the repo.

    Python Open source, paid tier, MIT309 starsLatest release Oct 2026Source

  • StrictDoc

    Requirements and docs in a plain-text format, with a web editor and source-code traceability.

    Links requirements to source files and tests, and exports reports for audits.

    Python Open source, Apache-2.0408 starsLatest release Sep 2026Source

  • Tracey

    Spec coverage tool that links annotated rules in markdown specs to code references.

    Reports which spec rules have an implementation and a test.

    Rust Open source, Apache-2.0248 starsLatest release May 2026

  • ubCode

    Language server and indexer from useblocks for needs-based documentation.

    Checks across large requirement sets run fast and come with editor support.

    It builds on Sphinx-Needs, which remains the open source base.

    Python Paid

  • Xray (Jira)

    Jira test management that links requirements to tests, with Cucumber import and coverage reports.

    Shows requirement coverage inside the Jira tracker where the specs already live.

    Now sold as Xray by Sembi, formerly Xpand IT.

    Any language Paid

Gone quiet 6

These tools are archived or shut down, or nobody has released or committed to them in two years. Some still work fine. Read the note before you adopt one.

  • cram

    Tests for command-line programs written as shell transcripts in text files.

    A transcript is the plainest contract for a CLI, and a diff shows drift at once.

    Dormant since 2021. Prysk is the maintained fork.

    Any language Open source, GPL-2.0232 starsLast change Dec 2021Source

  • Dredd

    Checks a running API against its API Blueprint or OpenAPI description.

    Older pipelines still run it, and Schemathesis or Specmatic cover the same job with active maintenance.

    The owner archived the repo on 2024-11-08.

    Any language Open source, MIT4.2k starsLast change Jul 2023Source

  • Optic

    Diffed OpenAPI specs in pull requests and flagged breaking changes.

    Existing users should plan a move to a maintained diff tool such as oasdiff.

    Archived on 2026-01-12 after Optic Labs joined Atlassian.

    Any language Open source, MIT1.5k starsLast change Aug 2025

  • SpecFlow

    The original Gherkin BDD framework for .NET, now superseded by Reqnroll.

    Many .NET codebases still carry SpecFlow feature files that can move to Reqnroll with few changes.

    Tricentis ended SpecFlow on 2024-12-31. Reqnroll is the successor.

    .NET Open source, BSD-3-ClauseLast change Dec 2024

  • Step CI

    Tests REST, GraphQL, gRPC and other APIs from YAML workflows.

    Declarative API checks run in CI without a test framework.

    Little activity since August 2024.

    Any language Open source, MPL-2.01.9k starsLast change Aug 2024Source

  • Testing Steps

    Acceptance tests written as ordered lists of steps with expectations.

    A lighter spec format that reads like manual test steps and still runs.

    JavaScript/TypeScript Open sourceLast change Aug 2024Source

Missing a tool that belongs here? Suggest it.

Every tool here was checked against its GitHub repository or its own site on 6 October 2026. Stars and dates come from GitHub on that day.