* refactor(ci): plan change scopes through an injectable Git owner
ciChangeScope.test.ts spent about five processes per case (copy the seed
repository, git add, commit and rev-parse, then node plan.mjs with its own
merge-base and diff) to ask which lanes a path selects. Move the planner
into change-plan.mjs as planChanges(request, repository), keep plan.mjs as
the workflow entrypoint over gitRepository(), and answer the path and
package-script tables from an in-memory commit. History, renames,
deletions, push baselines, malformed metadata and GITHUB_OUTPUT keep the
Git fixture or the spawned entrypoint.
378 tests: 30.6 s elapsed and 32.6 s CPU before, 4.0 s and 4.0 s after.
* test(ci): cover workflow environment wiring through the plan entrypoint