π’ Changelog roulette
You get: the one answer you actually wanted from 40 release notes. Pairs with: dependabot anxiety.
tabstack generate json https://github.com/sveltejs/kit/releases
--instructions "I'm on @sveltejs/kit 2.x with adapter-cloudflare. Anything in recent releases that breaks me?"
--schema '{"type":"object","properties":{"breaking":{"type":"boolean"},
"verdict":{"type":"string"}}}'
| jq -r '.verdict' What it does
generate json fetches the releases page, reads it with your instructions as context, and produces a schema-shaped verdict. You get a breaking: true/false flag and a plain-English verdict β not a list of all changes, just the answer to your specific question.
Why generate and not extract
extract structures whatβs there. generate reasons about it with your instructions. For changelog review, you need reasoning β βdoes this affect my setup?β β not just structure. generate applies your context (your version, your adapters, your dependencies) to produce a conclusion.
Real example output
{
"breaking": false,
"verdict": "No breaking changes for @sveltejs/kit 2.x with adapter-cloudflare in releases v2.20.0 through v2.22.1. One deprecation: the `prerender.crawl` option is now ignored (crawling is always on); this only affects projects that explicitly set it to false."
} Use in CI
BREAKING=$(tabstack generate json https://github.com/sveltejs/kit/releases
--instructions "I'm on @sveltejs/kit 2.x. Any breaking changes in the last 3 releases?"
--schema '{"type":"object","properties":{"breaking":{"type":"boolean"},"verdict":{"type":"string"}}}'
| jq -r .breaking)
if [ "$BREAKING" = "true" ]; then
echo "β οΈ Breaking changes detected β review before merging dependabot PR" >&2
exit 1
fi Adapt to any package
# npm changelog
tabstack generate json "https://github.com/colinhacks/zod/releases"
--instructions "I use Zod v3 with TypeScript. Breaking changes?"
--schema '{"type":"object","properties":{"breaking":{"type":"boolean"},"verdict":{"type":"string"}}}'
# Python package
tabstack generate json "https://github.com/pydantic/pydantic/releases"
--instructions "I use Pydantic v2 with FastAPI. Anything that breaks v2 compatibility?"
--schema '{"type":"object","properties":{"breaking":{"type":"boolean"},"verdict":{"type":"string"}}}'