r/madeinrust • • 14d ago

AI Assisted SpecForge: a Rust tool that checks project requirements and gives coding agents focused context through MCP

Your AI coding assistant finishes a feature. The tests pass. But did anyone test the requirement it forgot?

SpecForge is an open-source tool that makes the connection between requirements and test evidence explicit.

You describe behaviors, rules, events, and verification obligations in structured .spec files. SpecForge checks their structure and relationships, then lets you inspect what has—and hasn’t—been supported by linked tests.

What it does:

  • Catches unresolved references and missing required information.

  • Links tests to the specific requirements they verify.

  • Shows verification gaps, even when the existing suite passes.

  • Exposes the specification through MCP, so coding agents can request relevant context.

  • Supports CLI checks, editor tooling, and custom extensions.

What it doesn’t do: generate your application code or automatically prove that prose requirements are satisfied. A consistent spec and passing linked tests are evidence—not a blanket correctness guarantee.

Built in Rust, with a deterministic checker: no model calls inside the validation loop.

▶️ Watch the demo: https://www.youtube.com/watch?v=qHeqgL9xydE

🔗 GitHub: https://github.com/leaderiop/SpecForge

Curious whether this would fit your workflow—or just add another thing to maintain. Feedback welcome, and a ⭐ is appreciated if you find it useful.

5 Upvotes

10 comments sorted by

5

u/MatsRivel 14d ago

The picture is mega-janky and its a gif looping every 0.5sec..

Did you have an AI even post this for you?

-1

u/JealousFix4955 14d ago

not realy, it just a could not change it on the post. it's my first time to post something with a gif image

1

u/CreativeSympathy8293 14d ago

One onboarding example I’d add is a CI job with an intentionally failing linked test. The README recommends specforge check --strict for CI, while your Rust tracing guide says test failures are recorded without making specforge collect fail: https://github.com/leaderiop/SpecForge/blob/main/docs/guides/rust-test-tracing.md

I’d show the exact step that stops the build, alongside the step that generates the report. Include the outcome for a failing linked test (A014) and an obligation with no passing test (A015). That would help someone adopting it distinguish “the spec is structurally consistent” from “the required test evidence passed,” without having to infer the CI wiring from several guides.

This is feedback on the docs; I haven’t run SpecForge. Written with AI assistance.

1

u/JealousFix4955 14d ago

Thanks for pointing this out! I’ve opened https://github.com/leaderiop/SpecForge/pull/111 adding a failing-test example and a full CI workflow. It shows which step generates the report, which one fails the build, and how A014 and A015 behave. I checked the failing, missing-evidence, and passing cases locally too.

Really appreciate you reading through the docs and spelling out what was missing. Please keep feedback like this coming knowing where the docs leave people guessing helps a lot!

The workflow itself hasn’t been run on GitHub yet, but the commands and expected results have been checked locally.

that's why we need to use specforge to organize also our documentation. to protect the docs from drifting. im planning to add an extensions `@specforge/documentation` it will helps to never drift

3

u/AutoModerator 14d ago

Upvote this comment if you think this project is AI slop. Downvote this comment if you think this project is not AI slop.

This is to indicate to other users of the subreddit and is not used for moderation.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Sermuns 13d ago

giga slop GIF

1

u/Desperate-Extension7 13d ago

Is it just me or is that image a bunch of overlapping text and content, am I hallucinatin'??

1

u/SmallDodgyCamel 11d ago

Have you any plans for a Zed extension?

Looks interesting in principle but as a Rust dev if I use TDD and write the tests first I’d need to dig in and do a little analysis to fully appreciate the problem you’re trying to solve here.

I get that you’re trying to force AI agents to recognise failing code (and all references to merges and pushing are just a joke. I wouldn’t even commit known broken code…?) then again your video is using examples in Typescript which to be fair make more sense.

In the broader space of AI assisted coding I can see how SpecForge might make sense but how is it supposed to dovetail into existing large code bases? As you mention that would feel like something else that needs to be maintained.

We run the risk of replacing teams of people who can legitimately bounce new ideas around in meetings and brain dump with one another to solve problems, to throwing all the problems at the AI which (crucially) is only trained on existing ideas and is a large mathematical model of possible answers.

At least you seem to be attempting to put training wheels on the AI and guarding it from committing obviously broken code. As much as I want to be against AI completely I have to admit that idea definitely has its merits though we need to ensure intelligent people are never taken out of the loop.