Existing User Migration

Phase 73 keeps existing users on the same tool-first boundary as new users, but migration is report-first. The default path is to inspect impact, preserve backups, and avoid cleanup until a separate explicit confirmation gate exists.

First Command

Run the report from a Harness checkout:

bin/harness doctor --migration-report

This command is non-destructive. It does not delete plugin caches, local skills, OpenCode files, symlinks, project state, or harness-mem data.

What The Report Checks

Area Impact Compatibility rule Rollback / backup
Claude plugin cache Stale cached plugin versions can keep Claude Code on older Harness behavior. Use Claude Code plugin manager commands; do not hand-delete cache entries as part of the report. /plugin update claude-code-harness or uninstall/reinstall through the plugin manager.
Claude slash entries Missing harness-* skill entries can make /harness-plan or /harness-work unavailable. Missing entries are evidence of install drift, not proof that the host is unsupported. Update or reinstall the plugin, then run /harness-setup.
Codex local skills Duplicate frontmatter names or old aliases can route Codex to stale skills. scripts/setup-codex.sh --user remains the safe fallback even after direct plugin smoke exists. Backups live under ${CODEX_HOME:-$HOME/.codex}/backups/setup-codex.
Codex symlinks Old symlink installs can break when the source checkout moves or on Windows. Current setup prefers copied skill directories. Re-run scripts/setup-codex.sh --user; restore inspected backups only if needed.
OpenCode files Existing .opencode/skills, commands, plugins, and AGENTS.md may be replaced by setup. OpenCode stays internal-compatible; runtime parity is not claimed. Timestamped backups such as .opencode/skills.backup.<timestamp> and .opencode/plugins/harness-bootstrap.mjs.backup.<timestamp>.
harness-mem state Memory continuity can span Claude Code and Codex sessions. memory DB を削除しない; the report does not read or delete DB contents. Keep ~/.harness-mem/ and project .harness-mem/state/; use harness mem doctor, and only run purge with explicit confirmation.

Compatibility Contract

  • Claude Code, Codex CLI, Cursor, and Grok are public supported routes (H8 pin).
  • OpenCode remains internal-compatible.
  • Codex app, Hermes Agent, and GitHub Copilot CLI remain candidate.
  • Antigravity CLI remains future/unsupported.
  • not_observed != absent: missing local evidence means the report could not observe a route, not that the capability is impossible.

Safe Migration Order

  1. Run bin/harness doctor --migration-report.
  2. If Claude plugin cache or slash entries are stale, update through Claude Code plugin commands first.
  3. If Codex duplicate skills or symlinks are reported, run scripts/setup-codex.sh --user and inspect ${CODEX_HOME}/backups/setup-codex.
  4. If OpenCode files are reported, run scripts/setup-opencode.sh and inspect timestamped backups before restoring anything.
  5. If harness-mem state is observed, preserve it; do not purge during adapter migration.

No destructive cleanup is part of Phase 73.1.9.