skein_move
There is no in-place project move in Skein. This tool is a documented signpost: it does NOT mutate any state, it returns a pre-filled kit for the canonical copy+supersedes+close workflow. Inputs: issueId (source) + targetProject (handle). The output has one shape, and it is this by default and by design: the source card WITHOUT the fields the prepared call already carries (title / description / type / priority and, when set, assignee / acceptanceCriteria / design / notes / labels — each of the source's texts appears in the response exactly once, in nextSteps[0].args; read the whole card with skein_show), the target project's components with naive name-match hints against the source title/description, and two ready-to-call nextSteps — skein_create in target (with a supersedes dependency edge on source) and skein_close on source. An unassigned source is copied with unassigned: true, so the copy stays unassigned whatever your «assign to me» setting says; an assigned source carries its assignee as an explicit one. The agent picks a componentId from targetComponents (or leaves the array empty for a project-wide task), fills in the close reason and closeTarget placeholders with the id returned by skein_create, then makes the two calls (the close answers closeLink:"existed" — step 1 made the edge). The new issue gets a fresh hierarchical id; the source closes and the supersedes edge is the audit trail. Why no in-place move: the hierarchical id is embedded in git commits, chats, messages between agents, and other external refs — renumbering would break them, and swapping project_id while keeping the id creates visual incongruity in the target's listing. Copy+supersedes is the honest mechanism that preserves provenance without breaking external pointers.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"issueId": "<issueId>",
"targetProject": "<targetProject>"
},
"name": "skein_move"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issueId | Yes | Full hierarchical id of the source issue (e.g. "demo-42"). | |
| targetProject | Yes | Target project handle: alias, name, idPrefix, or UUID. |