Scaffolding fails safe — a bad attempt just gets deleted. An upgrade runs against a project that already works, so the cost of getting it wrong is much higher. This post walks the spfx-dev-skills upgrade.md reference end to end: the clean-git-state precondition, version detection via .yo-rc.json, the exact m365 spfx project upgrade commands, applying the report in order without overwriting customizations, and the build-clean bar for calling an upgrade done.