I built a Forge major-version predictor on a guess, and it took a review to find the answer inside my own commit A developer rebuilt a Forge manifest major-version predictor after discovering their original tool was built on a misattribution: the 3.x to 4.0.0 bump of Sentinel Vault was triggered by both the new llm module and a new OAuth scope, not the scope alone. The corrected tool diffs two manifest.yml versions offline to identify which of Atlassian's documented triggers — consent-requiring changes like scopes, CSP options, and the llm module — force a major version upgrade. We shipped a release of Sentinel Vault that went from 3.x to 4.0.0 , and our deploy note records the reason as "major bump from the new llm module". I decided that note was wrong. The llm module was the headline feature, the version went up, and I read that as the classic post-hoc mistake — because the same commit also added one scope, read:label:confluence , and a scope is the trigger everybody knows about. So I wrote a tool, and an article, explaining that the module was innocent and one line of YAML had done it. That was wrong, and the correction was sitting in the same commit the whole time. The manifest comment, written when the module was added, reads: Atlassian-hosted LLM Forge LLMs — powers Semantic AI Validations with no external egress, so the app keeps its "Runs on Atlassian" badge. Adding this module triggers a major version bump + admin re-consent. Atlassian's llm module reference https://developer.atlassian.com/platform/forge/manifest-reference/modules/llm/ says the same thing outright: "Adding the llm module to your manifest will trigger a major version upgrade." Two independent triggers fired on that release, not one. Either would have forced 4.0.0 by itself. The note was right, my correction was the misattribution, and the tool I built to stop people guessing was itself built on a guess — it knew about six triggers when the documentation lists eleven, across two different pages. This is that tool, rebuilt properly, and the specific ways the first version was wrong. Prerequisites Node 18 or later. Verified on v24.15.0. Two versions of a manifest.yml — most easily git show