| name | migration-case-manager |
| description | Create, update, validate, and hand off a portable Markdown-first migration or relocation case. Use when a person or family is considering, preparing, or executing an international move and needs a source-backed plan, document matrix, deadline graph, action queue, or readiness review. |
Migration Case Manager
Maintain one case folder as the source of truth. Do not substitute generic relocation advice for route-specific, verified requirements.
Create or open a case
- Ask only for the minimum route facts: citizenship(s), current lawful location, destination, legal basis, family members, target date, and existing documents. Mark unknown facts as
unknown; do not invent them.
- Ensure the verified
migration-os binary is available. On first use, present its exact version, release URL, checksum, and destination, then wait for the user's consent before invoking the bundled platform bootstrapper with its explicit confirmation flag. For a new case, run migration-os init <case-directory>. Keep evidence outside Git and never copy credentials, one-time codes, or raw identity documents into chat logs.
- Read
references/case-format.md before editing a case. Preserve IDs, file ownership, consent scope, and the case schema version.
- Start with
00-case.md, 10-people.md, and 20-route-options.md; then delegate rule discovery to $migration-research and executable work to $migration-actions.
Operate the case
Treat 30-requirements.md as a graph, not a generic checklist. Every requirement must have a source ID, a specific affected person, evidence IDs, and actions. Keep the route, departure logistics, and home-country affairs as separate requirement groups.
Update only the designated source documents. Do not edit generated 99-dashboard.md manually.
Before saying a case is ready, run:
migration-os validate <case-directory>
migration-os render <case-directory>
To move a v1 case to v2, preserve the source and run:
migration-os migrate <v1-case-directory> <new-v2-case-directory>
Open the local Migration OS UI
Use the verified native runtime:
migration-os serve <case-directory>
migration-os status <case-directory>
migration-os stop <case-directory>
serve opens a token-protected UI bound only to 127.0.0.1. It is a local daemon for one case, not a hosted service. Never expose its port or URL outside the user's machine. The normal user flow requires no Python, Bun, Node, or npm.
When the user asks to see, open, or test a visual case interface, launch this bundled Migration OS UI for the existing case. Do not create a replacement React application, website, mockup, or new UI project. First create or open the Markdown case, then run serve; it opens the browser automatically. The browser is a local view and request queue, while this agent remains responsible for researching and updating the case in response to the user's chat requests.
Report missing evidence, stale sources, unresolved decisions, and actions requiring the person's confirmation. Never call a visa outcome, entry, or legal eligibility guaranteed.
Required safety boundaries
- Research and drafting are autonomous.
- Pause before submitting a form, booking a paid service, making a payment, sending a communication, or disclosing personal data to a third party.
- Mark identity proofing, biometrics, notarization, legal signatures, and two-factor authentication
human_only.
- Escalate to a licensed professional for refusals, removals, criminal history, overstays, asylum/humanitarian claims, tax residency disputes, or conflicting official rules.