Agent Cross Handoff
Use this skill to move a project between machines and between AI coding agents, especially Codex ↔ Claude Code. The goal is not to clone private chat history or login state. The goal is to make the repository itself carry enough project context that another agent can continue safely.
Natural-language shortcut router
This skill is designed so users do not need to write long prompts. Treat short natural-language requests as sufficient when the intent is clear.
Accept these equivalent skill names and spellings as referring to this skill:
agent-cross-handoff
agent cross handoff
agent-cross- handoff
Agent Cross Handoff
Primary shortcut intents
Use the following routing table before asking clarifying questions.
| User says, in Chinese or English |
Inferred mode |
Default action |
打包项目, 对项目进行打包, package this project, export this project |
export-project |
Prepare repository-level handoff files. Do not copy credentials. |
准备移交项目, 移交项目, 交接项目, prepare handoff, handoff this project |
export-project |
Run check, normalize memory, create/update handoff docs. |
接手项目, 继承项目, 恢复项目, 继续这个项目, resume/take over/import this project |
import-project |
Read existing handoff docs and produce a continuation plan before editing code. |
检查能否迁移, 预检, 检查项目, check migration readiness |
check |
Run a read-only repository and environment check. |
从 Codex 交给 Claude, 迁移到 Claude, Codex to Claude |
codex-to-claude + export-project |
Create/update CLAUDE.md, preserve AGENTS.md, prepare handoff docs. |
从 Claude 交给 Codex, 迁移到 Codex, Claude to Codex |
claude-to-codex + export-project |
Extract durable project rules into AGENTS.md, prepare handoff docs. |
打包本地 Agent 配置, 导出本地 Agent 状态, export local agent state |
export-local-agent-state |
Create a sanitized state archive and manifest; exclude credentials and raw secrets. |
导入本地 Agent 配置, 恢复本地 Agent 状态, import local agent state |
import-local-agent-state |
Inspect archive, back up existing config, refuse credential-like contents by default. |
同步到 GitHub, 提交并推送, commit and push handoff |
export-project with Git commit/push intent |
Commit handoff files to a handoff branch and push only if repository checks pass. |
Default assumptions
When the user uses a short request, apply these defaults:
- The source agent is the currently running agent unless the user names another source.
- The destination agent is
unknown / to be decided unless the user names Codex, Claude Code, another agent, or another machine.
- The current working directory is the project if it is inside a Git repository.
- If the user says
打包, 移交, 导出, package, handoff, or export, prefer export-project.
- If the user says
接手, 继承, 恢复, 导入, resume, take over, or import, prefer import-project.
- If the current directory is not a Git repository during export/import, ask for exactly one missing detail: the local repository path or the Git remote URL.
- Do not ask the user to restate a long prompt. If the intent is clear enough, execute the relevant mode.
- Do not commit or push unless the user says
提交, 推送, GitHub, 上传, 同步, commit, or push.
- It is acceptable to create or update handoff Markdown files for export when the user says
打包项目 or 准备移交项目.
- Never include credentials, login state,
.env files, private keys, raw chat logs, raw local memory databases, logs, caches, or dependency/build outputs in the handoff.
Minimal command examples
Codex examples:
$agent-cross-handoff 打包项目
$agent-cross-handoff 准备移交项目
$agent-cross-handoff 接手项目
$agent-cross-handoff 从 Codex 迁移到 Claude
$agent-cross-handoff 从 Claude 迁移到 Codex
$agent-cross-handoff 检查能否迁移
Claude Code examples:
/agent-cross-handoff 打包项目
/agent-cross-handoff 准备移交项目
/agent-cross-handoff 接手项目
/agent-cross-handoff 从 Codex 迁移到 Claude
/agent-cross-handoff 从 Claude 迁移到 Codex
/agent-cross-handoff 检查能否迁移
Plain natural-language examples, when automatic skill selection is available:
调用 agent-cross-handoff 对项目进行打包。
使用 agent-cross-handoff 准备移交项目。
使用 agent-cross-handoff 接手项目。
用 agent-cross-handoff 把这个 Claude 项目交给 Codex 继续开发。
用 agent-cross-handoff 检查这个项目能不能迁移。
Ambiguity handling
Ask a clarification only when execution is impossible or unsafe. Examples:
- If the user says
接手项目 outside any repository and provides no repository URL, ask for the repo URL or local path.
- If the user asks to push but no remote exists, ask for the remote name/URL or provide the exact commands to add one.
- If likely secrets are detected, stop before commit/push and explain which paths require review.
- If the user asks to migrate login state or raw memory, refuse that part and offer a sanitized repository summary instead.
Supported directions
- Codex → Codex
- Claude Code → Claude Code
- Codex → Claude Code
- Claude Code → Codex
- macOS ↔ Windows ↔ Linux, where the destination agent and toolchain are installed
- CLI ↔ desktop app when both read the same Git repository and project instruction files
Boundaries
Do migrate:
- Git repository, branches, commits, tags, and PR-ready diffs
AGENTS.md as canonical cross-agent project instructions
CLAUDE.md or .claude/CLAUDE.md as Claude Code entrypoint
.claude/rules/ when project-specific Claude rules exist
.agents/skills/ and .claude/skills/ when the project intentionally shares skills
docs/AI_AGENT_HANDOFF.md, docs/PROJECT_STATUS.md, docs/BUGS_AND_REGRESSIONS.md, docs/AGENT_COMPATIBILITY.md
- Explicitly approved, sanitized local memories summarized into repository docs
Do not migrate automatically:
~/.codex/auth.json
~/.claude auth/session databases
- API keys,
.env, SSH private keys, tokens, browser cookies, keychains, credential stores
- Build outputs, dependency directories, package caches, logs, or crash dumps
- Tool-internal conversation history unless the user explicitly requests a sanitized summary
Canonical memory strategy
Use AGENTS.md as the shared, agent-neutral root instruction file. Keep it concise and stable.
For Claude Code, create CLAUDE.md with this shape:
@AGENTS.md
## Claude Code
- Claude-specific workflow notes go here.
- Prefer plan mode before broad refactors.
- Use `.claude/rules/` for path-scoped rules when needed.
For Codex, keep AGENTS.md at the repository root and optionally add .codex/config.toml only for non-secret project configuration.
For both tools, create docs/AI_AGENT_HANDOFF.md for fast continuation. This file should explain the current project state, recent changes, next tasks, risks, test commands, and files that should not be casually rewritten.
Operating modes
When invoked, infer the mode from the user request. If unclear, run check first and then ask for the smallest missing detail.
check
Inspect the current repository and machine without changing files.
- Locate the Git repository root.
- Report OS, shell, Git version, current branch, remotes, worktrees, uncommitted changes, and untracked files.
- Detect Codex files:
AGENTS.md, .codex/, .agents/skills/, ~/.codex, ~/.agents/skills.
- Detect Claude files:
CLAUDE.md, .claude/CLAUDE.md, .claude/rules/, .claude/skills/, ~/.claude, ~/.claude/skills.
- Flag likely secrets or files that should not be committed.
- Recommend the safest next mode.
Suggested scripts:
- macOS/Linux:
scripts/preflight.sh
- Windows PowerShell:
scripts/preflight.ps1
normalize-project-memory
Create or update agent-neutral project instructions.
- Read existing
AGENTS.md, CLAUDE.md, .claude/CLAUDE.md, README, package/build files, and docs.
- Preserve any valid existing instructions.
- Create/update
AGENTS.md as the canonical shared file.
- Create/update
CLAUDE.md so it imports @AGENTS.md and includes only Claude-specific additions.
- If
.claude/rules/ exists, summarize its purpose in docs/AGENT_COMPATIBILITY.md rather than duplicating large content.
- Add
CLAUDE.local.md, .env, credential files, build outputs, logs, and local memory exports to .gitignore if appropriate.
export-project
Prepare the source project for another machine or another agent.
- Run
check.
- Run
normalize-project-memory.
- Create/update:
docs/AI_AGENT_HANDOFF.md
docs/PROJECT_STATUS.md
docs/BUGS_AND_REGRESSIONS.md
docs/AGENT_COMPATIBILITY.md
- Include source agent, destination agent, OS, branch, tag, commit hash, build/test commands, known problems, and next recommended task.
- Ask before committing if the user has not explicitly requested commit/push.
- If asked to commit/push, create a branch such as
handoff/<agent>-to-<agent>-YYYYMMDD and optionally a tag such as handoff-YYYYMMDD-<shortsha>.
import-project
Resume the project on a destination machine or destination agent.
- Clone or open the repository.
- Checkout the requested branch/tag, or infer the latest
handoff/* branch.
- Read
AGENTS.md, CLAUDE.md if present, and all docs under docs/*HANDOFF*, docs/PROJECT_STATUS.md, and docs/BUGS_AND_REGRESSIONS.md.
- Run
check.
- Verify toolchain availability and list missing tools.
- Do not modify code until the user confirms the continuation plan, unless the user explicitly asked for autonomous continuation.
- Produce
docs/AI_AGENT_RESUME_REPORT.md if asked.
codex-to-claude
Use when a project was developed with Codex and will continue in Claude Code.
- Treat
AGENTS.md as canonical.
- If
CLAUDE.md is missing, create it with @AGENTS.md and a short Claude-specific section.
- Translate Codex-specific workflow notes into neutral rules where possible.
- Convert Codex-only skill notes into either:
- a shared skill under both
.agents/skills/<name>/ and .claude/skills/<name>/, or
- a doc entry under
docs/AGENT_COMPATIBILITY.md if execution semantics differ.
- Do not copy
~/.codex/auth.json, logs, caches, or credentials.
claude-to-codex
Use when a project was developed with Claude Code and will continue in Codex.
- Read
CLAUDE.md and .claude/CLAUDE.md.
- If
AGENTS.md is missing, create it from durable project-level content in Claude instructions.
- Keep
CLAUDE.md as an import wrapper around @AGENTS.md plus Claude-only notes.
- Summarize
.claude/rules/ into docs/AGENT_COMPATIBILITY.md; keep the rules themselves only if the repo will continue supporting Claude Code.
- If the user explicitly asks to include Claude auto memory, inspect it, remove secrets and volatile chatter, and summarize durable facts into
docs/AI_AGENT_HANDOFF.md. Do not commit raw auto memory by default.
export-local-agent-state
Optional. Create a sanitized archive of reusable agent configuration.
- Include only safe files that the user explicitly approves.
- Prefer exporting skills and instruction templates over sessions.
- Exclude credentials, tokens, caches, logs, browser state, and private keys.
- Create a manifest listing every included file and every excluded class.
Suggested scripts:
- macOS/Linux:
scripts/export_agent_state.sh
- Windows PowerShell:
scripts/export_agent_state.ps1
import-local-agent-state
Optional. Import a sanitized archive onto a new machine.
- Backup existing target folders first.
- Refuse archives that contain credential-like filenames by default.
- Install shared skills to the correct tool-specific location:
- Codex personal skills:
~/.agents/skills/
- Claude Code personal skills:
~/.claude/skills/
- Do not overwrite user configuration without a backup and explicit approval.
Output requirements
When running this skill, always state:
- Source agent and destination agent, if known
- Source OS and destination OS, if known
- Which files will be changed
- Which files will not be migrated for security reasons
- Whether the repository is safe to commit/push
- The exact next command the user should run in the destination agent
Handoff document minimum content
docs/AI_AGENT_HANDOFF.md must include:
# AI Agent Handoff
## Source and destination
- Source agent:
- Destination agent:
- Source OS:
- Destination OS:
- Repository:
- Branch/tag:
- Last verified commit:
## Current project goal
## Current state
## Recent changes
## Known bugs and regressions
## Build, run, and test commands
## High-risk files
## Do-not-do list
## Next recommended task
## Verification checklist
Safety rule
If a requested migration would copy credentials, login state, private keys, .env files, raw chat logs, or raw local memories into a repository, refuse that part and offer a sanitized summary instead.
1---2name: agent-cross-handoff3description: Cross-agent project migration and handoff workflow for Codex, Claude Code, and other coding agents. Use when the user wants to package, export, hand off, transfer, resume, inherit, import, or take over a Git project across machines, OSes, Codex CLI/App, Claude Code, or other agents. Also use for short Chinese requests such as 打包项目, 准备移交项目, 接手项目, 继承项目, 迁移到 Claude, 迁移到 Codex, 检查能否迁移, or 打包本地 Agent 配置.4---56# Agent Cross Handoff78Use this skill to move a project between machines and between AI coding agents, especially Codex ↔ Claude Code. The goal is not to clone private chat history or login state. The goal is to make the repository itself carry enough project context that another agent can continue safely.910## Natural-language shortcut router1112This skill is designed so users do not need to write long prompts. Treat short natural-language requests as sufficient when the intent is clear.1314Accept these equivalent skill names and spellings as referring to this skill:1516- `agent-cross-handoff`17- `agent cross handoff`18- `agent-cross- handoff`19- `Agent Cross Handoff`2021### Primary shortcut intents2223Use the following routing table before asking clarifying questions.2425| User says, in Chinese or English | Inferred mode | Default action |26|---|---|---|27| `打包项目`, `对项目进行打包`, `package this project`, `export this project` | `export-project` | Prepare repository-level handoff files. Do not copy credentials. |28| `准备移交项目`, `移交项目`, `交接项目`, `prepare handoff`, `handoff this project` | `export-project` | Run check, normalize memory, create/update handoff docs. |29| `接手项目`, `继承项目`, `恢复项目`, `继续这个项目`, `resume/take over/import this project` | `import-project` | Read existing handoff docs and produce a continuation plan before editing code. |30| `检查能否迁移`, `预检`, `检查项目`, `check migration readiness` | `check` | Run a read-only repository and environment check. |31| `从 Codex 交给 Claude`, `迁移到 Claude`, `Codex to Claude` | `codex-to-claude` + `export-project` | Create/update `CLAUDE.md`, preserve `AGENTS.md`, prepare handoff docs. |32| `从 Claude 交给 Codex`, `迁移到 Codex`, `Claude to Codex` | `claude-to-codex` + `export-project` | Extract durable project rules into `AGENTS.md`, prepare handoff docs. |33| `打包本地 Agent 配置`, `导出本地 Agent 状态`, `export local agent state` | `export-local-agent-state` | Create a sanitized state archive and manifest; exclude credentials and raw secrets. |34| `导入本地 Agent 配置`, `恢复本地 Agent 状态`, `import local agent state` | `import-local-agent-state` | Inspect archive, back up existing config, refuse credential-like contents by default. |35| `同步到 GitHub`, `提交并推送`, `commit and push handoff` | `export-project` with Git commit/push intent | Commit handoff files to a handoff branch and push only if repository checks pass. |3637### Default assumptions3839When the user uses a short request, apply these defaults:40411. The source agent is the currently running agent unless the user names another source.422. The destination agent is `unknown / to be decided` unless the user names Codex, Claude Code, another agent, or another machine.433. The current working directory is the project if it is inside a Git repository.444. If the user says `打包`, `移交`, `导出`, `package`, `handoff`, or `export`, prefer `export-project`.455. If the user says `接手`, `继承`, `恢复`, `导入`, `resume`, `take over`, or `import`, prefer `import-project`.466. If the current directory is not a Git repository during export/import, ask for exactly one missing detail: the local repository path or the Git remote URL.477. Do not ask the user to restate a long prompt. If the intent is clear enough, execute the relevant mode.488. Do not commit or push unless the user says `提交`, `推送`, `GitHub`, `上传`, `同步`, `commit`, or `push`.499. It is acceptable to create or update handoff Markdown files for export when the user says `打包项目` or `准备移交项目`.5010. Never include credentials, login state, `.env` files, private keys, raw chat logs, raw local memory databases, logs, caches, or dependency/build outputs in the handoff.5152### Minimal command examples5354Codex examples:5556```text57$agent-cross-handoff 打包项目58$agent-cross-handoff 准备移交项目59$agent-cross-handoff 接手项目60$agent-cross-handoff 从 Codex 迁移到 Claude61$agent-cross-handoff 从 Claude 迁移到 Codex62$agent-cross-handoff 检查能否迁移63```6465Claude Code examples:6667```text68/agent-cross-handoff 打包项目69/agent-cross-handoff 准备移交项目70/agent-cross-handoff 接手项目71/agent-cross-handoff 从 Codex 迁移到 Claude72/agent-cross-handoff 从 Claude 迁移到 Codex73/agent-cross-handoff 检查能否迁移74```7576Plain natural-language examples, when automatic skill selection is available:7778```text79调用 agent-cross-handoff 对项目进行打包。80使用 agent-cross-handoff 准备移交项目。81使用 agent-cross-handoff 接手项目。82用 agent-cross-handoff 把这个 Claude 项目交给 Codex 继续开发。83用 agent-cross-handoff 检查这个项目能不能迁移。84```8586### Ambiguity handling8788Ask a clarification only when execution is impossible or unsafe. Examples:8990- If the user says `接手项目` outside any repository and provides no repository URL, ask for the repo URL or local path.91- If the user asks to push but no remote exists, ask for the remote name/URL or provide the exact commands to add one.92- If likely secrets are detected, stop before commit/push and explain which paths require review.93- If the user asks to migrate login state or raw memory, refuse that part and offer a sanitized repository summary instead.949596## Supported directions9798- Codex → Codex99- Claude Code → Claude Code100- Codex → Claude Code101- Claude Code → Codex102- macOS ↔ Windows ↔ Linux, where the destination agent and toolchain are installed103- CLI ↔ desktop app when both read the same Git repository and project instruction files104105## Boundaries106107Do migrate:108- Git repository, branches, commits, tags, and PR-ready diffs109- `AGENTS.md` as canonical cross-agent project instructions110- `CLAUDE.md` or `.claude/CLAUDE.md` as Claude Code entrypoint111- `.claude/rules/` when project-specific Claude rules exist112- `.agents/skills/` and `.claude/skills/` when the project intentionally shares skills113- `docs/AI_AGENT_HANDOFF.md`, `docs/PROJECT_STATUS.md`, `docs/BUGS_AND_REGRESSIONS.md`, `docs/AGENT_COMPATIBILITY.md`114- Explicitly approved, sanitized local memories summarized into repository docs115116Do not migrate automatically:117- `~/.codex/auth.json`118- `~/.claude` auth/session databases119- API keys, `.env`, SSH private keys, tokens, browser cookies, keychains, credential stores120- Build outputs, dependency directories, package caches, logs, or crash dumps121- Tool-internal conversation history unless the user explicitly requests a sanitized summary122123## Canonical memory strategy124125Use `AGENTS.md` as the shared, agent-neutral root instruction file. Keep it concise and stable.126127For Claude Code, create `CLAUDE.md` with this shape:128129```markdown130@AGENTS.md131132## Claude Code133134- Claude-specific workflow notes go here.135- Prefer plan mode before broad refactors.136- Use `.claude/rules/` for path-scoped rules when needed.137```138139For Codex, keep `AGENTS.md` at the repository root and optionally add `.codex/config.toml` only for non-secret project configuration.140141For both tools, create `docs/AI_AGENT_HANDOFF.md` for fast continuation. This file should explain the current project state, recent changes, next tasks, risks, test commands, and files that should not be casually rewritten.142143## Operating modes144145When invoked, infer the mode from the user request. If unclear, run `check` first and then ask for the smallest missing detail.146147### check148149Inspect the current repository and machine without changing files.1501511. Locate the Git repository root.1522. Report OS, shell, Git version, current branch, remotes, worktrees, uncommitted changes, and untracked files.1533. Detect Codex files: `AGENTS.md`, `.codex/`, `.agents/skills/`, `~/.codex`, `~/.agents/skills`.1544. Detect Claude files: `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/`, `.claude/skills/`, `~/.claude`, `~/.claude/skills`.1555. Flag likely secrets or files that should not be committed.1566. Recommend the safest next mode.157158Suggested scripts:159- macOS/Linux: `scripts/preflight.sh`160- Windows PowerShell: `scripts/preflight.ps1`161162### normalize-project-memory163164Create or update agent-neutral project instructions.1651661. Read existing `AGENTS.md`, `CLAUDE.md`, `.claude/CLAUDE.md`, README, package/build files, and docs.1672. Preserve any valid existing instructions.1683. Create/update `AGENTS.md` as the canonical shared file.1694. Create/update `CLAUDE.md` so it imports `@AGENTS.md` and includes only Claude-specific additions.1705. If `.claude/rules/` exists, summarize its purpose in `docs/AGENT_COMPATIBILITY.md` rather than duplicating large content.1716. Add `CLAUDE.local.md`, `.env`, credential files, build outputs, logs, and local memory exports to `.gitignore` if appropriate.172173### export-project174175Prepare the source project for another machine or another agent.1761771. Run `check`.1782. Run `normalize-project-memory`.1793. Create/update:180 - `docs/AI_AGENT_HANDOFF.md`181 - `docs/PROJECT_STATUS.md`182 - `docs/BUGS_AND_REGRESSIONS.md`183 - `docs/AGENT_COMPATIBILITY.md`1844. Include source agent, destination agent, OS, branch, tag, commit hash, build/test commands, known problems, and next recommended task.1855. Ask before committing if the user has not explicitly requested commit/push.1866. If asked to commit/push, create a branch such as `handoff/<agent>-to-<agent>-YYYYMMDD` and optionally a tag such as `handoff-YYYYMMDD-<shortsha>`.187188### import-project189190Resume the project on a destination machine or destination agent.1911921. Clone or open the repository.1932. Checkout the requested branch/tag, or infer the latest `handoff/*` branch.1943. Read `AGENTS.md`, `CLAUDE.md` if present, and all docs under `docs/*HANDOFF*`, `docs/PROJECT_STATUS.md`, and `docs/BUGS_AND_REGRESSIONS.md`.1954. Run `check`.1965. Verify toolchain availability and list missing tools.1976. Do not modify code until the user confirms the continuation plan, unless the user explicitly asked for autonomous continuation.1987. Produce `docs/AI_AGENT_RESUME_REPORT.md` if asked.199200### codex-to-claude201202Use when a project was developed with Codex and will continue in Claude Code.2032041. Treat `AGENTS.md` as canonical.2052. If `CLAUDE.md` is missing, create it with `@AGENTS.md` and a short Claude-specific section.2063. Translate Codex-specific workflow notes into neutral rules where possible.2074. Convert Codex-only skill notes into either:208 - a shared skill under both `.agents/skills/<name>/` and `.claude/skills/<name>/`, or209 - a doc entry under `docs/AGENT_COMPATIBILITY.md` if execution semantics differ.2105. Do not copy `~/.codex/auth.json`, logs, caches, or credentials.211212### claude-to-codex213214Use when a project was developed with Claude Code and will continue in Codex.2152161. Read `CLAUDE.md` and `.claude/CLAUDE.md`.2172. If `AGENTS.md` is missing, create it from durable project-level content in Claude instructions.2183. Keep `CLAUDE.md` as an import wrapper around `@AGENTS.md` plus Claude-only notes.2194. Summarize `.claude/rules/` into `docs/AGENT_COMPATIBILITY.md`; keep the rules themselves only if the repo will continue supporting Claude Code.2205. If the user explicitly asks to include Claude auto memory, inspect it, remove secrets and volatile chatter, and summarize durable facts into `docs/AI_AGENT_HANDOFF.md`. Do not commit raw auto memory by default.221222### export-local-agent-state223224Optional. Create a sanitized archive of reusable agent configuration.2252261. Include only safe files that the user explicitly approves.2272. Prefer exporting skills and instruction templates over sessions.2283. Exclude credentials, tokens, caches, logs, browser state, and private keys.2294. Create a manifest listing every included file and every excluded class.230231Suggested scripts:232- macOS/Linux: `scripts/export_agent_state.sh`233- Windows PowerShell: `scripts/export_agent_state.ps1`234235### import-local-agent-state236237Optional. Import a sanitized archive onto a new machine.2382391. Backup existing target folders first.2402. Refuse archives that contain credential-like filenames by default.2413. Install shared skills to the correct tool-specific location:242 - Codex personal skills: `~/.agents/skills/`243 - Claude Code personal skills: `~/.claude/skills/`2444. Do not overwrite user configuration without a backup and explicit approval.245246## Output requirements247248When running this skill, always state:249- Source agent and destination agent, if known250- Source OS and destination OS, if known251- Which files will be changed252- Which files will not be migrated for security reasons253- Whether the repository is safe to commit/push254- The exact next command the user should run in the destination agent255256## Handoff document minimum content257258`docs/AI_AGENT_HANDOFF.md` must include:259260```markdown261# AI Agent Handoff262263## Source and destination264265- Source agent:266- Destination agent:267- Source OS:268- Destination OS:269- Repository:270- Branch/tag:271- Last verified commit:272273## Current project goal274275## Current state276277## Recent changes278279## Known bugs and regressions280281## Build, run, and test commands282283## High-risk files284285## Do-not-do list286287## Next recommended task288289## Verification checklist290```291292## Safety rule293294If a requested migration would copy credentials, login state, private keys, `.env` files, raw chat logs, or raw local memories into a repository, refuse that part and offer a sanitized summary instead.