Repository navigation
feat: a scripted upgrade from the new release, with a smaller approval gate (0046) - #98
Merged
Merged
Conversation
…l gate (0046) Implements decision 0046 (#86): - scripts/upgrade.py: builds old/new copies per install (git show for the skeleton and modules' files, build-committed.py from each release's tree for a committed install), applies the per-path table, moves a module's old folder (moved_from), runs migrations and installers, moves the pin, prunes covered Bash allow rules, links reference docs, restamps, smoke-tests the hooks, and writes report.md/report.json with Follow-ups. - scripts/adf-upgrade.sh, copied by build-plugins.sh to plugins/adf/bin/adf-upgrade: finds a framework checkout with history, caches the release's tree, and runs its own script (protocol 1). - scripts/upgrade-buckets.json: the taxonomy as data. - scripts/migrations/: v2.4.0 autoUpdate and the unreleased guide split. - /adf:upgrade runs the command; "Plan before touching" becomes "Approve what needs a person". - evals: test-upgrade.sh, upgrade checks in check-skills.sh, full-history checkout in CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mauricios
marked this pull request as ready for review
October 18, 2026 23:28
This was referenced Oct 18, 2026
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 free
to 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.
Implements decision 0046 for #86.
What's here
scripts/upgrade.py <repo> [--dry-run] [--add-modules a,b]upgrades a project at v2.0.0 or later to the release of the tree it runs from:git showfor the skeleton and the modules' files, andbuild-committed.pyfrom each release's tree for a committed install's machinery.git merge-file, add, delete, rename, or list for the developer. Conflicts are left marked.Bashallow rules, links the reference docs, and restamps.CLAUDE_PLUGIN_ROOTandCLAUDE_PROJECT_DIRexported.report.mdandreport.json): Releases, Needs you, Applied (each clean merge with its hunk count), Checks, On each machine, and Follow-ups (command,why,source,plugin,when) for /adf:upgrade records the follow-ups a release needs; /adf:wrap-up offers to start them #89.adf-upgrade:scripts/adf-upgrade.sh, copied bybuild-plugins.shintoplugins/adf/bin/as a framework command. It uses$ADF_FRAMEWORK, a local marketplace clone, or a bare clone cached in~/.cache/adf/, and caches each release's tree there. It runs the new release's own script through protocol 1.scripts/migrations/(v2.4.0/01-auto-update.py,unreleased/01-shared-services.py), each named by its CHANGELOG entry.scripts/upgrade-buckets.json: the bucket taxonomy as data. The static checks keep it complete and equal todocs/UPGRADING.md./adf:upgrade: a new "The scripted upgrade" section (dry run, hand-over to the new release's skill, modules, run, judgment, one approval). "Plan before touching" becomes "Approve what needs a person", and the manual Step 4 is now "Present what needs a person".docs/UPGRADING.md§ The scripted upgrade, the plugin README, and the CHANGELOG.Refinements to 0046, noted in the record
ops/agent/move usesmodule.json'smoved_fromon any upgrade instead of a v2.0.0 migration. Migrations run from OLD's own release, so a project that skipped part of its last upgrade gets it.Tests
evals/static/test-upgrade.sh(45 checks) builds packaged and committed projects fromv2.3.0and upgrades them to this tree:doneon a second run;CI now checks out with
fetch-depth: 0for the tags../evals/run-evals.shpasses.Not covered
/adf:upgradein a session (the dynamic eval inevals/dynamic/fixtures/upgrade/).🤖 Generated with Claude Code