Uh oh!
There was an error while loading. Please reload this page.
docs: add upgrading.mdx stating both upgrade halves and linking the per-major checklists - #8964
Merged
Merged
Conversation
The platform runtime and the metadata app upgrade on separate clocks, and the docs never distinguished them. deployment/cli.mdx already calls `os migrate meta --from 16` "the metadata half of the upgrade"; the other half was written down nowhere and no page placed them side by side. Adds content/docs/upgrading.mdx in the Build group: the fork first, then the runtime half (tag move, boot behaviour on schema drift, and the one-major conversion window that decides when a platform move forces an app move), then the metadata half (`os migrate meta --from N`, the support floor, and the fact that semantic changes are reported and never auto-applied), then links out to each release page's Upgrade checklist. Those checklists are release-owned and compiled at release time, so this page links and never copies them. `.claude/workflows/docs-accuracy-audit.js` is regenerated because check:docs-audit-scope derives ALL_HANDWRITTEN from content/docs and a new hand-written page must register there, else a "FULL audit" run silently skips it. Generated via the gate's own --write. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011RB4waLuNbdruCo6X9oobm
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-project-manager
marked this pull request as ready for review
August 16, 2026 03:11
os-project-manager
enabled auto-merge
August 16, 2026 03:11
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#8909
Adds
content/docs/upgrading.mdxand lists it in the Build group of the rootcontent/docs/meta.json, afterapi.The defect this closes
The two upgrade lifecycles — platform runtime and metadata app — run on separate clocks and were never distinguished anywhere in the docs.
content/docs/deployment/cli.mdx:821already callsos migrate meta --from 16"the metadata half of the upgrade"; the other half was written down nowhere, and no page placed them side by side. The v17 upgrade checklist (66 actionable bullets, correctly written for app authors) sits at line 3270 of a 3691-line page with nothing linking to it.Shape
One page, no directory, as the card ruled.
build-without-code.mdxis the existing precedent for a bare.mdxlisted directly in the root nav. The content measured out at roughly one page — fork, two halves, link table, disambiguation — so no structural escalation was needed.Verified against source, not prose
The card's load-bearing good news is that
os migrate meta --from Naccumulates across skipped majors. I confirmed it in the source rather than the docs, and then measured it:composeMigrationChain(packages/spec/src/migrations/chain.ts) filtersMIGRATION_MAJORStom > fromMajor && m <= toMajorandapplyMetaMigrationsfolds every resulting step in one pass. Probed against the real registry:Both premise clauses hold. Two further facts came out of the same read and are stated on the page:
MIGRATION_SUPPORT_FLOOR), a release-policy knob, and below it the command refuses rather than half-migrating.applyMetaMigrationsapplies the mechanical transforms and reports the non-lossless residue as structured to-dos — measured at 73 to-dos for--from 16alone. The page says so explicitly, because "run one command and you are done" would be a false promise and it is precisely why the per-major checklists still matter.The runtime half is likewise sourced: the one-major-wide load-time conversion window (ADR-0087 D2, retired at N+1) is what decides when a platform move forces an app move, and the artifact-pinned boot applies safe/needs-confirm drift while refusing the boot on destructive drift before the port binds.
Link, never copy
Every per-major checklist is linked at its
#upgrade-checklistanchor for v9 and v12 through v17 — verified present on all seven pages. Nothing undercontent/docs/releases/is touched, and no bullet is duplicated: a second copy would silently rot, which is the failure class the v17 work just cleaned up.content/docs/deployment/is untouched as well (cards #8910 and #8911 hold those files concurrently).Disambiguating link: yes
content/docs/references/kernel/package-upgrade.mdxis a genuinely different concept — upgrading an installed package inside a deployment, with its own pre-check / snapshot / execute / rollback lifecycle. It is neither of the two halves, and a reader searching "upgrade" lands on it. The page therefore closes with a short "Not this page" section pointing at it. I did not add a reciprocal link from that file: it carries anAUTO-GENERATED — DO NOT EDITbanner and is regenerated from the spec source, so an edit there would be overwritten.Third file, and why
.claude/workflows/docs-accuracy-audit.jsis regenerated.check:docs-audit-scopederivesALL_HANDWRITTENfromcontent/docs/, and a new hand-written page that is not registered makes a run that calls itself a FULL audit silently skip it — the gate goes red naming the omission. Produced with the gate's own--write, a one-line addition; not a hand edit.Gates
Union re-run after the final commit, at
dfbf789cc, clean tree:The last three were not in my dispatch list — re-deriving with
scripts/pm/dispatch-gates.mjsagainst my actual changed paths surfaced them via the.claude/edit.check:role-wordis a ratchet and is green at head with no baseline change (the new page uses none of the reserved vocabulary).Also compiled the page through
@mdx-js/mdxdirectly to confirm it parses (OK, 14682 chars) — worth doing since MDX treats a bare angle bracket before a letter as JSX.Docs-only;
skip-changeset.Generated by Claude Code
Generated by Claude Code