frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Show HN: Semcheck – AI Tool for checking implementation follows spec

https://github.com/rejot-dev/semcheck
14•duckerduck•4d ago
Hi HN, like many I've been interested in the direction software engineering is taking now that coding LLMs are becoming prevalent. It seems that we're not quite there for "natural language programming", but it seems new abstractions are already starting to form. In order to explore this further I've built semcheck (semantic checker). It's a simple cli tool that can be used in CI or pre-commit to check that your implementation matches your specification using LLMs.

The inspiration came while I was working on another project where I needed a data structure for a GeoJSON object, I passed Claude the text of RFC-7946 and it gave me an implementation. It took some back and forth after that before I was happy with it, but this also meant the RFC went out of context for the LLM. That's why I asked Claude again to check the RFC to make sure we haven't strayed too far from the spec. It occurred to me that it would be good to have a formal way of defining these kinds of checks that can be run in a pre-commit or merge request flow.

Creating this tool was itself an experiment to try "spec-driven-development" using Claude Code, a middle ground between completely vibe-coding and traditional programming. My workflow was as follows: ask AI to write a spec and implementation plan, edit these manually to my liking, then ask AI to execute one step at a time. Being careful that the AI doesn't drift too far from what I think is required. My very first commit [1] is the specification of the config file structure and an implementation plan.

As soon as semcheck was in a state where it could check itself it started to find issues [2]. I found that this workflow improves not just your implementation but helps you refine your specification at the same time.

Besides specification, I also started to include documentation in my rules, making sure that the configuration examples and CLI flags I have in my README.md file stay in line with implementation [3].

The best thing is that you can put found issues directly back into your AI editor for a quick iteration cycle.

Some learnings:

- LLMs are very good at finding discrepancies, as long as the number of files you pass to the comparison function isn't too large, in other words the true-positive results are quite good.

- False-positives: the LLM is a know-it-all (literally) and often thinks it knows better. The LLM is eager to use its own world knowledge to find faults. This can both be nice and problematic. I've often had it complain that my Go version doesn't exist, but it was simply released after the knowledge cutoff of that model. I specifically prompt [4] the model to only find discrepancies, but it often "chooses" to use its knowledge anyway.

- In an effort to reduce false-positives I ask the model to give me a confidence score (0-1), to indicate to me how sure it was that the issue it found is actually applicable in this scenario. The models are always super confident and output values > 0.7 almost exclusively.

- One thing that did reduced false-positives significantly is asking the model to give its reasoning before assigning a severity level to an issue found.

- In my (rudimentary) experiments I found that "thinking" models like O3 don't improve on performance much and are not worth the additional tokens/time. (likely because I already ask for the reasoning anyway)

- The models that perform best are Claude 4 and GPT-4.1

Let me know if you could see this be useful in your workflow, and what feature you would need to make it functional.

[1]: https://github.com/rejot-dev/semcheck/commit/ce0af27ca0077fe...

[2]: https://github.com/rejot-dev/semcheck/commit/2f96fc428b551d9...

[3]: https://github.com/rejot-dev/semcheck/blob/47f7aaf98811c54e2...

[4]: https://github.com/rejot-dev/semcheck/blob/fec2df48304d9eff9...

Show HN: I Built a Local-First AI Chat App with Advanced RAG

4•vinhnx•1h ago•2 comments

Show HN: I AI-coded a tower defense game and documented the whole process

https://github.com/maciej-trebacz/tower-of-time-game
280•M4v3R•1d ago•140 comments

Show HN: AirBending – Hand gesture based macOS app MIDI controller

https://www.nanassound.com/products/software/airbending
74•bepitulaz•19h ago•20 comments

Show HN: Dstpierre/tpl a tiny lib making Go's templates more tolerable

https://github.com/dstpierre/tpl
2•dstpierre•4h ago•0 comments

Show HN: MCP-123, a 2-line MCP server/client (Windows-friendly)

https://github.com/Tylersuard/MCP-123
5•tylersuard•8h ago•1 comments

Show HN: BunkerWeb – the open-source and cloud-native WAF

https://docs.bunkerweb.io/latest/
92•bnkty•1d ago•29 comments

Show HN: Tinykv – Minimal file-backed key-value store for Rust

https://crates.io/crates/tinykv
21•hasanyildiz•17h ago•2 comments

Show HN: A cross-platform terminal emulator written in Java

https://github.com/sebkur/forceterm
60•sebkur•4d ago•19 comments

Show HN: Fast Thermodynamic Calculations in Python

https://dlr-institute-of-future-fuels.github.io/gaspype/
55•Saloc•1d ago•11 comments

Show HN: Semcheck – AI Tool for checking implementation follows spec

https://github.com/rejot-dev/semcheck
14•duckerduck•4d ago•0 comments

Show HN: HomeBrew HN – Generate personal context for content ranking

https://www.hackernews.coffee/
122•azath92•2d ago•48 comments

Show HN: Kuvasz – an open-source uptime and SSL monitoring service

https://kuvasz-uptime.dev/
22•csirkezuza•1d ago•0 comments

Show HN: I built sinkedin – a LinkedIn but for flauting failures and screwups

https://www.sinkedin.app/
27•preetsojitra•1d ago•10 comments

Show HN: ASCII Fireworks

https://asciifireworks.com/
6•theli0nheart•12h ago•0 comments

Show HN: We made a tool to reduce echo chambers on social media

https://www.tandfonline.com/doi/full/10.1080/29974100.2025.2517191
2•academic_84572•13h ago•0 comments

Show HN: CSS generator for a high-def glass effect

https://glass3d.dev/
413•kris-kay•2d ago•117 comments

Show HN: Built a lovable clone to see what makes agentic apps tick

https://github.com/beam-cloud/lovable-clone
4•llom2600•20h ago•1 comments

Show HN: Jobs by Referral: Find jobs in your LinkedIn network

https://jobsbyreferral.com/
173•nicksergeant•4d ago•64 comments

Show HN: I rewrote my notepad calculator as a local-first app with CRDT syncing

https://numpad.io
44•tonyonodi•5d ago•19 comments

Show HN: A continuation of IRS Direct File that can be self-hosted

https://github.com/openfiletax/openfile
242•elijahwright_•4d ago•33 comments

Show HN: Flint – Write code your way while ensuring remote consistency

https://github.com/capsulescodes/flint
12•mho22•4d ago•1 comments

Show HN: Mochia, a virtual pet browser game, built with Rust, SolidJS, Postgres

https://mochia.net/
21•lemphi•1d ago•9 comments

Show HN: Go-nagini fluent wrapper for Cobra

https://github.com/neiser/go-nagini
3•grubinator•17h ago•0 comments

Show HN: I Turned PG's "How to Get Startup Ideas" into an Interactive Course

https://mythosgym.com/courses/startup-ideas/
3•hedayet•17h ago•0 comments

Show HN: I built the tool I wished existed for moving Stripe between countries

https://www.stripemove.com/
106•felphos•4d ago•53 comments

Show HN: Dumb STT/diction script for sway-Linux

https://github.com/winston-bosan/steno
2•csunoser•18h ago•0 comments

Show HN: Piano Trainer – Learn piano scales, chords and more using MIDI

https://github.com/ZaneH/piano-trainer
3•FinalDestiny•18h ago•0 comments

Show HN: Recivo – Receive Emails Programmatically

https://recivo.email/
27•WilcoKruijer•2d ago•1 comments

Show HN: Spegel, a Terminal Browser That Uses LLMs to Rewrite Webpages

https://simedw.com/2025/06/23/introducing-spegel/
422•simedw•4d ago•180 comments

Show HN: Golang Challenges: Learn and Practice (See Demo)

https://github.com/RezaSi/go-interview-practice
2•RezaSi•19h ago•2 comments