Migrate from Jira, Asana, GitHub Issues, or other tools to Linear.
Use when planning a migration, executing data transfer,
or mapping workflows between issue tracking tools.
Trigger: "migrate to linear", "jira to linear", "asana to linear",
"import to linear", "linear migration", "github issues to linear".
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Migrate from Jira, Asana, GitHub Issues, or other tools to Linear.
Use when planning a migration, executing data transfer,
or mapping workflows between issue tracking tools.
Trigger: "migrate to linear", "jira to linear", "asana to linear",
"import to linear", "linear migration", "github issues to linear".
Designed for Claude Code, also compatible with Codex and OpenClaw
Linear Migration Deep Dive
Overview
Comprehensive guide for migrating from Jira, Asana, or GitHub Issues to Linear. Covers assessment, workflow mapping, data export, transformation, batch import with hierarchy support, and post-migration validation. Linear also has a built-in importer (Settings > Import) for Jira, Asana, GitHub, and CSV.
asyncfunctionvalidateMigration(client: LinearClient,
teamId: string,
sourceIssues: JiraIssue[],
idMap: Map<string, string>
): Promise<{ valid: boolean; issues: string[] }> {
constproblems: string[] = [];
// Check all issues were importedif (idMap.size < sourceIssues.length) {
problems.push(`Missing: ${sourceIssues.length - idMap.size} issues not imported`);
}
// Sample validation: check 50 random issuesconst sample = sourceIssues.slice(0, 50);
for (const source of sample) {
const linearId = idMap.get(source.key);
if (!linearId) {
problems.push(`${source.key}: not imported`);
continue;
}
try {
const issue = await client.issue(linearId);
if (issue.title !== source.summary) {
problems.push(`${source.key}: title mismatch`);
}
} catch {
problems.push(`${source.key}: not found in Linear (${linearId})`);
}
awaitnewPromise(r =>setTimeout(r, 50));
}
return { valid: problems.length === 0, issues: problems };
}
Post-Migration Checklist
[ ] All issues imported and validated
[ ] Parent/child relationships correct
[ ] Labels and priorities mapped correctly
[ ] User assignments transferred
[ ] Integrations reconfigured (GitHub, Slack)
[ ] Team workflows customized in Linear
[ ] Team trained on Linear
[ ] Source system set to read-only
[ ] Parallel run period started (2 weeks recommended)
[ ] Archive source system after parallel run