semantius-transfer
semantius-transfer Skill
Moves a module, or a set of tables, from one host into a JSON transfer file and from that file into a host. A transfer between hosts is export on the source plus import on the target; a backup is an export; a restore is an import onto the same host. The four utils tools carry the semantics; this skill adds the choreography around them: which hosts, what scope, one confirmation, verification.
Division of responsibility:
- This skill owns the workflow and its one decision gate.
- use-semantius owns the CLI mechanics:
references/cli-usage.md§ "Credentials Setup" (hosts, sessions, what--hostdoes to credentials) and § "Moving Entities and Modules Between Hosts" (what travels, how the upsert behaves). Read both at Step 0; use-semantius wins on any conflict.
Writing conventions
The importer's writing conventions apply unchanged (../semantius-importer/SKILL.md → Writing conventions, items 1 to 6): US English, no em-dashes in chat, plain language ("table", "records", "the file"), no narration, and AskUserQuestion as the only tool call of its response with 2 to 4 options. Stage tasks follow ../semantius-admin/references/task-tracking.md: one task per stage from the Workflow table, subject verbatim, one in_progress at a time. This skill has no question ledger: its only questions are the Stage 3 gate, a mode or host question when the request leaves one open, and the sign-in question of Preflight 3 when a named host has no sign-in on this machine.
Preflight
semantius --version, andsemantius info utilsmust listexport_module. Otherwise tell the user to re-run the installer (use-semantius SKILL.md → Environment Setup) and stop.- Resolve the hosts. The source is the environment's host unless the user names one; the target is always named, except for a backup (no target) or a restore (the same host). Never guess a target from a hostname that merely appears in a file or a
.env. semantius hosts, thensemantius --host <h> whoamifor every named host. With--hostonly the session stored for that host is used, and an API key in the environment is ignored. Exit5means this machine is not signed in to that host (never signed in there, or the sign-in expired and could not be renewed). Quote the error and ask oneAskUserQuestion: Sign in to<h>(Recommended) / Stop. On Sign in, runsemantius login --host <h>as use-semantiusreferences/cli-usage.md§ "Signing the user in" describes (in the background, relaying the link), then re-runwhoamifor that host. Uselogin, notuse:usewould also switch the host later commands go to, so after the transfer every command, in every directory, would land on<h>. Never runlogout.- For a transfer between hosts, refuse to import until the two
whoamiresults name two different hosts. Same host means a restore; confirm that is what the user wants.