Migration Guide — Agent and Project Path Relocation
Conclusion: classify the request, prove exact current authority, pass every
common gate, choose one lane, and then read only that lane's reference. This
router and its helpers grant no authority. HOLD on any missing, stale,
ambiguous, or broader-than-written fact.
1. Classify
Request
Route
Mutable display nickname (name_nickname)
System identity action; no path move.
One-time immutable true name (name_set)
System identity action; no path move.
One Agent workdir/derived address or a whole Project path
Continue here; immutable identity does not thereby change.
Source, interpreter, venv, install provenance, or selector change
A Project-root move normally preserves every Agent's identity, true name, and
basename address. Inventory affected owners' stale references without inferring
permission to rewrite them.
2. Prove authority
Before every attempt, record current human-owner authority for:
the canonical source and target, one-Agent or whole-Project scope, and every
affected runtime;
the exact quiescence, filesystem, launch, rewrite, staging/copy when relevant,
cutover, recovery, source-retention, deletion, and cleanup actions allowed;
the acceptable recovery state and decision owner; and
each communication proof's channel, origin, peer, and bounded content.
Reading or installing this guide, finding a helper, or passing preflight proves
no permission. This guide does not itself authorize target/staging creation,
stop/signal/cancellation, refresh/relaunch/CPR, config or registry edits,
symlinks, credential access, communication, deletion, cleanup, retry, rollback,
or repair.
3. Pass the common gates
Recheck changing facts immediately before cutover or publication:
Source identity: canonical non-symlink source, expected structure, and
exact immutable identity tuple; enumerate every in-scope Agent in a Project.
Target/no-replace: canonical non-symlink parent and absent final target,
including no symlink; never merge or replace.
Quiescence: account for human work, collaboration, async work, and all
affected runtimes. Use only authorized lifecycle actions. Bind processes to
executable, cwd, parent, and start identity; prove old processes gone,
heartbeats stale/withdrawn, and OS leases acquirable. A failed scan or lock
file alone proves nothing.
Filesystem: establish same-volume or cross-volume from filesystem
evidence. Unknown, unsupported, or network-filesystem semantics are HOLD.
Recovery: freeze the allowed authoritative state, evidence location,
receipt boundary, and human decision owner for every phase.
Keep raw evidence private.
4. Choose one lane
Lane
Action
One live POSIX Agent, same parent and new basename, supported local same volume
Read Agent-name move.
Initiating POSIX Agent moves its whole Project root on a supported local same volume
Read Project move.
Other same-volume move
Use only a separately authorized, platform-proven atomic no-replace rename. A whole Project moves as one root tree after all its runtimes are quiesced; there is no merge/replace fallback.
Cross-volume move
No bundled helper applies. Continue only with the separately authorized flow below.
For cross-volume work, copy one quiesced closed snapshot to a fresh target-volume
staging sibling using the exact authorized mechanism; verify a closed byte/tree
manifest, required metadata, and every identity; then publish to the absent final
target with a platform-proven no-replace operation. Keep the source quiesced and
retained until target-origin acceptance. Never reinterpret rename as
copy-and-delete: source deletion and staging cleanup require later authority.
5. Recover from the observed phase
Observed phase
Rule
Before cutover
Source remains authoritative; target remains absent. No automatic launch or retry.
Staging incomplete
Source remains authoritative and retained; staging is non-authoritative.
Rename/publication happened
Inspect the target as the moved object; never retry a missing source or auto-rollback.
Both paths exist
Keep both quiesced; the human chooses the authoritative copy before launch, repair, or cleanup.
Evidence is ambiguous
Freeze state and HOLD; do not guess from paths, processes, or an old receipt.
No relaunch, retry, rollback, refresh, repair, deletion, cleanup, or recovery
message follows by implication.
6. Accept only target-origin proof
Launch only when explicitly authorized. PASS needs one coherent post-cutover
bundle proving:
exactly the expected target-bound process/incarnation, executable, parent,
and start identity, with no old-source duplicate;
a fresh post-cutover heartbeat and target OS lease held by that process;
unchanged immutable identity and intended address semantics;
an isolated probe from the target interpreter and cwd, without inherited
old-source paths, matching sys.executable, package source files,
version/HEAD, and selector tuple;
connected health for only affected integrations; and
only when authorized, the named originating-channel greeting or round trip;
otherwise record not authorized / not run and send nothing.
Any mismatch or unknown is HOLD; registry presence or heartbeat alone is not
acceptance.
7. Emit a compact redacted receipt
operation/scope_authority: <Agent|Project>; <redacted reference>
source_target/volume_lane: <redacted labels>; <same|cross>
quiescence/source_identity/no_replace: PASS | HOLD
cutover_phase/outcome: <label>; retained_source: yes | not applicable
target_process_heartbeat_lease: PASS | HOLD
isolated_target_import_source_identity: PASS | HOLD
affected_integrations: PASS | HOLD | not applicable
communication: verified | not authorized / not run
final: PASS | HOLD; hold_reason: <sanitized category>
Keep paths, PIDs, private identifiers, credentials, messages, and logs in the
approved private context, not a shared receipt.
1---2name: migration-guide3description: >4 Conclusion-first router for authorizing, selecting, recovering, and proving a5 mechanical Agent workdir/address or whole-Project path move.6version: 2.3.07last_changed_at: "2026-09-15T03:15:00Z"8tags: [lingtai, system-manual, migration-guide, agent, project, workdir, address, rename, relocation, cutover, recovery, posix]9related_files:10- src/lingtai/intrinsic_skills/system-manual/SKILL.md11- src/lingtai/intrinsic_skills/system-manual/reference/procedures-manual/SKILL.md12- src/lingtai/intrinsic_skills/system-manual/reference/runtime-update-checks/SKILL.md13- src/lingtai/intrinsic_skills/system-manual/reference/refresh-precheck/SKILL.md14- src/lingtai/intrinsic_skills/system-manual/reference/migration-guide/reference/project-move/SKILL.md15- src/lingtai/intrinsic_skills/system-manual/reference/migration-guide/reference/agent-name-move/SKILL.md16- src/lingtai/tools/system/CONTRACT.md17- src/lingtai/tools/system/ANATOMY.md18maintenance: |19 Keep this file a short common gate/router/receipt. Put helper implementation20 detail only in its one nested lane reference, and keep those links reciprocal.21metadata:22 source: https://skillmd.com/skills/lingtai-ai/migration-guide23---2425# Migration Guide — Agent and Project Path Relocation2627**Conclusion:** classify the request, prove exact current authority, pass every28common gate, choose one lane, and then read only that lane's reference. This29router and its helpers grant no authority. `HOLD` on any missing, stale,30ambiguous, or broader-than-written fact.3132## 1. Classify3334| Request | Route |35|---|---|36| Mutable display nickname (`name_nickname`) | System identity action; no path move. |37| One-time immutable true name (`name_set`) | System identity action; no path move. |38| One Agent workdir/derived address or a whole Project path | Continue here; immutable identity does not thereby change. |39| Source, interpreter, venv, install provenance, or selector change | [`runtime-update-checks`](../runtime-update-checks/SKILL.md), then [`refresh-precheck`](../refresh-precheck/SKILL.md) only for a separately authorized refresh. |4041A Project-root move normally preserves every Agent's identity, true name, and42basename address. Inventory affected owners' stale references without inferring43permission to rewrite them.4445## 2. Prove authority4647Before every attempt, record current human-owner authority for:4849- the canonical source and target, one-Agent or whole-Project scope, and every50 affected runtime;51- the exact quiescence, filesystem, launch, rewrite, staging/copy when relevant,52 cutover, recovery, source-retention, deletion, and cleanup actions allowed;53- the acceptable recovery state and decision owner; and54- each communication proof's channel, origin, peer, and bounded content.5556Reading or installing this guide, finding a helper, or passing preflight proves57no permission. This guide does not itself authorize target/staging creation,58stop/signal/cancellation, refresh/relaunch/CPR, config or registry edits,59symlinks, credential access, communication, deletion, cleanup, retry, rollback,60or repair.6162## 3. Pass the common gates6364Recheck changing facts immediately before cutover or publication:6566- [ ] **Source identity:** canonical non-symlink source, expected structure, and67 exact immutable identity tuple; enumerate every in-scope Agent in a Project.68- [ ] **Target/no-replace:** canonical non-symlink parent and absent final target,69 including no symlink; never merge or replace.70- [ ] **Quiescence:** account for human work, collaboration, async work, and all71 affected runtimes. Use only authorized lifecycle actions. Bind processes to72 executable, cwd, parent, and start identity; prove old processes gone,73 heartbeats stale/withdrawn, and OS leases acquirable. A failed scan or lock74 file alone proves nothing.75- [ ] **Filesystem:** establish same-volume or cross-volume from filesystem76 evidence. Unknown, unsupported, or network-filesystem semantics are `HOLD`.77- [ ] **Recovery:** freeze the allowed authoritative state, evidence location,78 receipt boundary, and human decision owner for every phase.7980Keep raw evidence private.8182## 4. Choose one lane8384| Lane | Action |85|---|---|86| One live POSIX Agent, same parent and new basename, supported local same volume | Read [Agent-name move](reference/agent-name-move/SKILL.md). |87| Initiating POSIX Agent moves its whole Project root on a supported local same volume | Read [Project move](reference/project-move/SKILL.md). |88| Other same-volume move | Use only a separately authorized, platform-proven atomic **no-replace** rename. A whole Project moves as one root tree after all its runtimes are quiesced; there is no merge/replace fallback. |89| Cross-volume move | No bundled helper applies. Continue only with the separately authorized flow below. |9091For cross-volume work, copy one quiesced closed snapshot to a fresh target-volume92staging sibling using the exact authorized mechanism; verify a closed byte/tree93manifest, required metadata, and every identity; then publish to the absent final94target with a platform-proven no-replace operation. Keep the source quiesced and95retained until target-origin acceptance. Never reinterpret rename as96copy-and-delete: source deletion and staging cleanup require later authority.9798## 5. Recover from the observed phase99100| Observed phase | Rule |101|---|---|102| Before cutover | Source remains authoritative; target remains absent. No automatic launch or retry. |103| Staging incomplete | Source remains authoritative and retained; staging is non-authoritative. |104| Rename/publication happened | Inspect the target as the moved object; never retry a missing source or auto-rollback. |105| Both paths exist | Keep both quiesced; the human chooses the authoritative copy before launch, repair, or cleanup. |106| Evidence is ambiguous | Freeze state and `HOLD`; do not guess from paths, processes, or an old receipt. |107108No relaunch, retry, rollback, refresh, repair, deletion, cleanup, or recovery109message follows by implication.110111## 6. Accept only target-origin proof112113Launch only when explicitly authorized. `PASS` needs one coherent post-cutover114bundle proving:1151161. exactly the expected target-bound process/incarnation, executable, parent,117 and start identity, with no old-source duplicate;1182. a fresh post-cutover heartbeat and target OS lease held by that process;1193. unchanged immutable identity and intended address semantics;1204. an isolated probe from the target interpreter and cwd, without inherited121 old-source paths, matching `sys.executable`, package source files,122 version/HEAD, and selector tuple;1235. connected health for only affected integrations; and1246. only when authorized, the named originating-channel greeting or round trip;125 otherwise record `not authorized / not run` and send nothing.126127Any mismatch or unknown is `HOLD`; registry presence or heartbeat alone is not128acceptance.129130## 7. Emit a compact redacted receipt131132```text133operation/scope_authority: <Agent|Project>; <redacted reference>134source_target/volume_lane: <redacted labels>; <same|cross>135quiescence/source_identity/no_replace: PASS | HOLD136cutover_phase/outcome: <label>; retained_source: yes | not applicable137target_process_heartbeat_lease: PASS | HOLD138isolated_target_import_source_identity: PASS | HOLD139affected_integrations: PASS | HOLD | not applicable140communication: verified | not authorized / not run141final: PASS | HOLD; hold_reason: <sanitized category>142```143144Keep paths, PIDs, private identifiers, credentials, messages, and logs in the145approved private context, not a shared receipt.
Run npx get-skill add lingtai-ai/migration-guide in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Conclusion-first router for authorizing, selecting, recovering, and proving a mechanical Agent workdir/address or whole-Project path move. It is listed under AI & ML on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: executes scripts. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
lingtai-ai (@lingtai-ai) published this skill. Their other Agent Skills are listed on their SkillMD profile.