🟒 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"}}}'