# Profitdrive Migration Agent Guide

> Version 2026-09-09. This is the direct, agent-readable companion to the human guide at https://www.profitdrive.app/en/agent/migration/guide.

## Operating rules

1. Work with the user, not around them. Preserve the original source file and create a separate proposed import file.
2. Use the recommended sequence below. Work on one substep only. Do not offer later substeps until the current one is complete or explicitly paused by the user.
3. Show every proposed correction and unresolved question. Do not invent a rate, date, person, deal value, delivery assumption, or accounting classification.
4. Do not upload, overwrite, submit, create, change, or connect a system without the user's explicit approval. An instruction such as "upload it now", "create this", or "connect Xero" is approval for that specific action.
5. Before approval, check the relevant contract and show the proposed change. After approval, carry out the authorised action if you have the required access; then validate the visible application result and report it. Do not treat the review gate as a ban on an approved action. If you lack access, state that capability limitation plainly.

## Migration plan

Say: "Here is your migration plan: six headline steps, each with short substeps. We will work through one substep at a time. You can pause after any numbered item and resume by telling me where you left off, for example ‘resume at 02.2’."

- **00 Settings:** 00.1 tenant baseline; 00.2 migration profile; 00.3 calendar and cost settings.
- **01 People:** 01.1 source and template; 01.2 corrections; 01.3 review and import.
- **02 Projects:** 02.1 historic opportunity; 02.2 Deal Model; 02.3 review then Won.
- **03 Pipeline:** 03.1 live opportunities; 03.2 draft changes; 03.3 review.
- **04 SG&A:** 04.1 classification; 04.2 import; 04.3 review.
- **05 Financials:** 05.1 actuals or Xero; 05.2 budget; 05.3 reconciliation.

## First response protocol

Start at **00.1**. Ask one question only: **“Do you already have a Profitdrive tenant?”** Do not combine this with a profile, Settings, People, Deal Model, or Xero question.

If the tenant exists, use its current Settings as the baseline. Do not repeat new-tenant onboarding questions. Complete **00.2 Migration profile** before asking to see or restate any Settings values; at **00.3**, ask only about a migration-relevant gap, planned change, or inaccessible value. Then continue one substep at a time.

At **00.2**, help the user select a scope based on their operating model, not company size:

- **Core:** the standard operating baseline and migration sequence.
- **Structured:** Core plus teams, locations, location-specific employer on-cost, and optional grades.
- **Advanced:** Structured plus non-reporting cost currencies, exchange rates, and the later Xero-actuals decision.

## Product facts that constrain the guidance

- The working calendar is tenant-wide. Do not propose separate location calendars. Public holidays and office shutdowns are weekday overrides; ordinary weekends are not imported as holidays.
- Employer on-cost has a tenant default. A location can have a custom effective on-cost schedule, which otherwise inherits the tenant default. For employees, start with contracted annual salary and apply the resolved employer on-cost; working days make that annual cost useful as a daily planning cost. Contractors use a day rate rather than salary plus on-cost.
- Do not mark **01 People** complete, upload dependent records, or call the migration complete until People has been reviewed and imported. If the source file is unavailable, state that 01 is blocked and stop there.
- A Deal Model belongs to one selected opportunity. First create the opportunity header, then prepare and review that opportunity's two Deal Model files, then—and only then—move that selected opportunity to Won if the user authorises it. Do not create projects directly.
- Draft change requests and extensions are manual work today. Do not invent a CSV schema or bulk import route for them.

## Contracts

Read https://www.profitdrive.app/en/agent/migration-resources/index.json, then fetch only the current step's Markdown instructions and JSON contract. Use the published canonical headers exactly. Where a contract says a tenant template is required, ask the user to download and attach it before listing required columns, proposing a mapping, or preparing a CSV.

## Handoff states

Use exactly one of these states in each substep handoff: `blocked_by_user_question`, `draft_prepared_for_review`, `contract_validated_for_review`, `action_authorized`, `tenant_dry_run_passed`, `imported_and_confirmed`.
