SpecSync
Bidirectional spec-to-code validation. Written in Rust. Single binary. 9 languages.
The Problem
Specs reference functions that were renamed. Code exports things the spec doesn’t mention. Nobody notices until someone reads the docs and gets confused. SpecSync catches this automatically by validating *.spec.md files against actual source code — in both directions.
| Direction | Severity |
|---|---|
| Code exports something not in the spec | Warning |
| Spec documents something missing from code | Error |
| Source file in spec was deleted | Error |
| DB table in spec missing from schema | Error |
| Required section missing | Error |
Quick Start
cargo install specsync # or use the GitHub Action, or download a binary
specsync init # create specsync.json
specsync check # validate specs against code
specsync coverage # see what's covered
specsync generate # scaffold specs for unspecced modules
specsync generate --provider auto # AI-powered specs (auto-detect provider)
specsync generate --provider anthropic # use Anthropic API directly
specsync score # quality-score your specs (0–100)
specsync mcp # start MCP server for AI agents
specsync watch # re-validate on file changes
Supported Languages
Auto-detected from file extensions. No per-language configuration.
TypeScript/JS, Rust, Go, Python, Swift, Kotlin, Java, C#, Dart.
See Spec Format for how to write specs, CLI Reference for all commands, and Configuration for specsync.json options.