The supported workflow uses one configured source scope and one ordinary run lineage. It does not partition the source. Autonomy is implemented as bounded remediation cycles over the complete source.
selenium-pw-migrator start --input ./SeleniumTests --agent opencode --workspace migration
selenium-pw-migrator pilot --input ./SeleniumTests --max-tests 10 --out migration/pilot
selenium-pw-migrator run --input ./SeleniumTests --config migration/profiles/adapter-config.start.json --out migration/runs/run-001 --format both
selenium-pw-migrator verify-project --input ./SeleniumTests --config migration/profiles/adapter-config.start.json --out migration/runs/run-001/verify-project --format bothThe pilot is optional calibration. It never replaces the complete run.
Run installed checks against the same concrete run:
./migration/scripts/check-harness-policy.sh -Workspace migration -RepoRoot .
./migration/scripts/check-scope.sh -RepoRoot . -AllowedRoots migration
./migration/scripts/validate-run-artifacts.sh -RunPath migration/runs/run-001
./migration/scripts/check-final-gate.sh -Workspace migration -Run migration/runs/run-001 -RepoRoot .Use .ps1 equivalents on Windows. Preserve missing or failed project verification honestly.
An ordinary, continue, or continuous invocation receives up to five remediation cycles. The baseline run does not consume a cycle.
Each cycle:
- chooses one non-exhausted, source-backed root cause;
- records the accepted baseline run and a stable candidate label;
- runs
selenium-pw-migrator remediation guard --accepted-run <before> --input <source> --config <adapter-config> --autonomy-state migration/state/autonomy-state.json --out migration/state/remediation-cycle-guard.jsonand opens the transaction withupdate-autonomy-state -Action StartCycle -GuardPath ...; - makes one bounded adapter-config, generated-helper, generated-POM, or other permitted change;
- reviews the change and reruns the complete configured source into a new immutable run;
- runs
selenium-pw-migrator remediation evaluate --before-run <before> --after-run <after> --candidate "<label>" --autonomy-state migration/state/autonomy-state.json --out migration/state/remediation-evaluation.json; - records only the Core evaluation through
update-autonomy-state -Action RecordCycle.
Only Core may classify progress. ACCEPT advances the baseline. REJECT_NO_PROGRESS and REJECT_REGRESSION leave rollbackRequired=true; the bounded change must be restored and Core must return ROLLBACK_CONFIRMED before another StartCycle. REJECT_CYCLE still requires rollback confirmation before handoff, then stops with REMEDIATION_CYCLE_DETECTED. State hashes and rollback state survive fresh invocation budgets, so continue cannot hide a repeated logical state or discard a rejected transaction.
/supervised-task continue starts a fresh five-cycle invocation budget while retaining run evidence and exhausted candidate fingerprints. /supervised-task continuous advances automatically between cycles and across five-cycle checkpoints without another user command.
Keep generated syntax, migration metrics, project restore/build verification, and runtime/smoke verification separate. A known CPM or transitive-build verification-harness defect may leave project verification blocked without preventing source-backed mappings or helper improvements that remain measurable through diffs, TODO/unmapped deltas, and syntax checks.
Zero C# syntax errors does not prove that the project compiles.
Rewrite state/handoff.md completely, keep one status and one stop reason, synchronize it with state/autonomy-state.json, then run scripts/validate-handoff.ps1 or .sh. At a cycle-budget boundary, report AUTONOMOUS_CYCLE_BUDGET_REACHED, rank remaining safe candidates, and do not claim completion.
Run kit update, keep a backup, and let the new kit add state/autonomy-state.json and the handoff validator. Existing real run evidence remains usable; do not reconstruct or copy validation evidence.
In
continuousmode, the five-cycle limit is a checkpoint rather than a stop: the agent automatically starts the next five-cycle batch without requiring anothercontinuecommand and works until a real terminal condition.