A normal diff can show code changes, but it may not make it obvious that a prompt changed, a model changed, a tool config changed, or model output now reaches an eval/exec path.
release-gate is a Python CLI that compares a PR branch against a base ref and reports only what the PR introduced.
Example:
pip install release-gate release-gate pr --base origin/main
It can also create a lockfile for prompts/model/tool config:
release-gate lock . release-gate audit . --lock
This is early. I’m mainly looking for feedback on whether PR-scoped gating is useful, and where the static analysis is still too noisy.
We think the mechanic is quite unique, although keen to hear if people know of similar games! You essentially drag tiles across the board, and the distance between two numbers decides the arithmetic operation when they connect to each other: zero spaces is addition, one space is subtraction, two spaces is multiplication: e.g.
5 → 4 = 9
5 → _ → 4 = 1
5 → _ → _ → 4 = 20
We've spent the past month getting people to test the game. The two biggest points of feedback are: 1. People generally find the learning curve a little too steep -- we are open to any feedback on how to make the rules clearer or easier -- but we've found that almost everyone that sticks with it for more than a couple of days can solve the puzzles. 2. People find that "mixing" arithmetic is confusing -- you can combine up to two arithmetic operations (e.g. addition and multiplication) in a single chain to reach a "12 total", but there's a catch in that you can only do this for one move.
We release a new puzzle every day (all of them are set by Chris), and our aim is to make something that people enjoy coming back to and that strikes the right balance between a time-killer and a bit of a challenge.
A bit of backstory: Chris and I came up with the idea over a decade ago while we were students. We were always tinkering with prototypes but never released anything. AI coding assistants made it a lot easier to work on the game in the past couple of months (it's a mixture of human and AI development, not fully vibe-coded).
Give it a try and let us know what you think!
[0] - https://dozenal.game
My C89 CSS minifier was recently broken down into a separate JavaScript/JSON minifier. It's trivial to embed in C, "should" build fine in WASM (that's untested, though), and is pretty small: the whole combined library is about 67kb, or about 34kb for just the JS parts (much of which is docs).
It minifies only spaces, not symbols, and does not offer any options for _not_ minifying (e.g. adding newlines every so often for the sake of tools which treat extremely-long-lined files as binaries) except that by default it retains the first comment in the input if it's the first non-whitespace content (those are typically license/attribution blocks) but it can be told to optionally strip those too.
LLM disclaimer: the 100% hand-written CSS minifier was given to an LLM which, tasked with creating a JS minifier with the same interface, created the new variant in about 20 seconds. That code was later hand-refactored to consolidate parts common to the two minifiers (all of which were hand-written) but the JS-specific pieces are otherwise 100% LLM-generated.
Happy minifying!
[^1]: To clarify: at least a few projects' source code has been rejected by Linux package maintainers because the "do no evil" clause is considered antithetical to those distributions' ideals of freedom. Fair enough.