Skip to content

test: a session eval for the scripted upgrade - #100

Merged
mauricios merged 3 commits into
mainfrom
evals/upgrade-session-case
Oct 19, 2026
Merged

mauricios merged 3 commits into
mainfrom
evals/upgrade-session-case

Conversation

@mauricios

Copy link
Copy Markdown
Contributor

Adds a scripted-upgrade case to the upgrade session suite, following #98 (decision 0046). The existing case starts at v1.0.0, below the script's v2.0.0 floor, so no session had run adf-upgrade.

What's here

  • project-v2.sh: a packaged project at v2.3.0 with the docker module. It has the team's lines in AGENTS.md and deployment.md, a Makefile whose wipe-db task deletes data, and Bash(make test) and Bash(git status) beside the rules that cover them.
  • scripted-upgrade.setup.sh: swaps the suite's project for that one, sets ADF_FRAMEWORK to the session's copy of the checkout, and, until the newest release tag carries scripts/upgrade.py, puts an adf-upgrade shim first on PATH that runs the checkout's script as an unreleased commit.
  • scripted-upgrade.input.md and .expected.md: the prompt (/adf:upgrade), a follow-up that approves the permission changes and asks for the PR body without pushing, and the invariants.
  • inspect.sh: 14 checks:
    • --dry-run ran before the run;
    • main is untouched, everything is committed, nothing was pushed;
    • the customizations and the stamp are kept;
    • autoUpdate is on the pin;
    • covered allow rules are dropped and ask is intact;
    • the wipe-db task has an ask rule;
    • the report and its Follow-ups section exist.
  • Docs: evals/dynamic/README.md, the runner's header, and the CHANGELOG (no upgrade impact).

Not run in a session

The Claude Code CLI here isn't signed in, so the session itself hasn't run. Validated offline: the project builds, the setup works, the shim runs the real upgrade, and inspect.sh passes all 14 checks on a simulated end state. ./evals/run-evals.sh passes.

Deviation from the brief

No parallel-agents in the project. It makes the project a hub, and the upgrade would first dispatch itself into a worktree, which a headless run can't follow. The README says so.

To run it: cd evals/dynamic && ./run-session-evals.sh --suite upgrade --cases scripted-upgrade --models sonnet --source "$PWD/../.." (after claude auth login).

🤖 Generated with Claude Code

mauricios and others added 3 commits October 18, 2026 18:40
Adds the scripted-upgrade case to the upgrade suite: a packaged project at
v2.3.0 with the docker module, the team's customizations, and covered allow
rules, upgraded by /adf:upgrade. inspect.sh checks the order of the
commands, the end state, and that nothing was pushed. Until a release
carries scripts/upgrade.py, a PATH shim runs the checkout's script as an
unreleased commit. Not run in a session: the CLI here isn't signed in.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@mauricios
mauricios marked this pull request as ready for review October 19, 2026 01:10
@mauricios
mauricios merged commit abfa560 into main Oct 19, 2026
1 check passed
@mauricios
mauricios deleted the evals/upgrade-session-case branch October 19, 2026 01:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant