{"id":"04f6f46d-0341-4540-9b56-264ae1cc3f55","shortId":"RBKXPr","kind":"skill","title":"migrate-pipeline","tagline":">-","description":"# Migrate Pipeline\n\nConvert Harness pipelines from v0 to v1 simplified format via MCP.\n\n## Instructions\n\n### Step 1: Fetch Current v0 Pipeline\n\n```\nCall MCP tool: harness_get\nParameters:\n  resource_type: \"pipeline\"\n  resource_id: \"<pipeline_identifier>\"\n  org_id: \"<organization>\"\n  project_id: \"<project>\"\n```\n\n### Step 2: Convert v0 to v1\n\nApply these transformations:\n\n### Expression Mapping\n\n| v0 Expression | v1 Expression |\n|--------------|---------------|\n| `<+pipeline.variables.x>` | `${{ pipeline.variables.x }}` |\n| `<+stage.variables.x>` | `${{ stage.variables.x }}` |\n| `<+steps.id.output.outputVariables.x>` | `${{ steps.id.output.x }}` |\n| `<+trigger.branch>` | `${{ trigger.branch }}` |\n| `<+secrets.getValue(\"x\")>` | `${{ secrets.x }}` |\n| `<+pipeline.sequenceId>` | `${{ pipeline.sequenceId }}` |\n| `<+input>` | `${{ input }}` |\n\n### Structure Changes\n\n**v0 CI Stage:**\n```yaml\nstages:\n  - stage:\n      identifier: build\n      type: CI\n      spec:\n        cloneCodebase: true\n        platform:\n          os: Linux\n          arch: Amd64\n        runtime:\n          type: Cloud\n          spec: {}\n        execution:\n          steps:\n            - step:\n                identifier: run\n                type: Run\n                spec:\n                  shell: Bash\n                  command: npm test\n```\n\n**v1 Equivalent:**\n```yaml\nstages:\n  - name: build\n    type: ci\n    spec:\n      steps:\n        - name: run\n          type: run\n          spec:\n            shell: bash\n            run: npm test\n```\n\n**Key v1 differences:**\n- Stage/step types are lowercase: `ci`, `run`, `deployment`\n- `command` becomes `run` in Run steps\n- `execution.steps` simplifies to `spec.steps`\n- Platform/runtime is simplified or implicit\n- `identifier` becomes `name` (or `id`)\n\n### Step 3: Show Converted Pipeline\n\nPresent both v0 and v1 side-by-side for review.\n\n### Step 4: Update in Harness (Optional)\n\n```\nCall MCP tool: harness_update\nParameters:\n  resource_type: \"pipeline\"\n  resource_id: \"<pipeline_identifier>\"\n  org_id: \"<organization>\"\n  project_id: \"<project>\"\n  body: <v1 pipeline YAML>\n```\n\n## Migration Checklist\n\n- [ ] Expressions converted from `<+...>` to `${{ ... }}`\n- [ ] Stage types lowercased\n- [ ] Step types mapped correctly\n- [ ] Platform/runtime configuration simplified\n- [ ] Variables and inputs preserved\n- [ ] Failure strategies maintained\n- [ ] Notification rules preserved\n- [ ] Conditional execution logic preserved\n\n## Examples\n\n- \"Migrate the build-and-deploy pipeline to v1\" - Fetch, convert, show diff\n- \"Show me what ci-pipeline would look like in v1\" - Fetch, convert, display only\n- \"Convert all pipelines in the project\" - List all, convert each\n\n## Performance Notes\n\n- Read the complete v0 pipeline before starting migration. Missing stages or steps will produce an incomplete v1 pipeline.\n- Verify all expressions are converted from `<+...>` to `${{ }}` format.\n- Compare the v0 and v1 outputs to confirm no functionality was lost in translation.\n\n## Troubleshooting\n\n### Unsupported v0 Features\n- Some v0-specific step types may not have v1 equivalents yet\n- Complex failure strategies may need manual adjustment\n- Custom stage types require careful mapping\n\n### Validation Errors After Migration\n- Re-validate expression syntax\n- Check all resource references still resolve\n- Verify variable types are compatible","tags":["migrate","pipeline","harness","skills","agent-skills","agents"],"capabilities":["skill","source-harness","skill-migrate-pipeline","topic-agent-skills","topic-agents"],"categories":["harness-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/harness/harness-skills/migrate-pipeline","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add harness/harness-skills","source_repo":"https://github.com/harness/harness-skills","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (3,353 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:31.024Z","embedding":null,"createdAt":"2026-05-09T01:05:29.670Z","updatedAt":"2026-05-18T19:06:31.024Z","lastSeenAt":"2026-05-18T19:06:31.024Z","tsv":"'1':19 '2':40 '3':163 '4':179 'adjust':333 'amd64':94 'appli':45 'arch':93 'bash':108,128 'becom':143,158 'bodi':199 'build':84,117,234 'build-and-deploy':233 'call':24,184 'care':338 'chang':76 'check':349 'checklist':201 'ci':78,86,119,139,248 'ci-pipelin':247 'clonecodebas':88 'cloud':97 'command':109,142 'compar':297 'compat':359 'complet':273 'complex':327 'condit':226 'configur':214 'confirm':304 'convert':6,41,165,203,241,256,259,267,293 'correct':212 'current':21 'custom':334 'deploy':141,236 'diff':243 'differ':134 'display':257 'equival':113,325 'error':341 'exampl':230 'execut':99,227 'execution.steps':148 'express':48,51,53,202,291,347 'failur':220,328 'featur':314 'fetch':20,240,255 'format':14,296 'function':306 'get':28 'har':7,27,182,187 'id':34,36,38,161,194,196,198 'identifi':83,102,157 'implicit':156 'incomplet':286 'input':73,74,218 'instruct':17 'key':132 'like':252 'linux':92 'list':265 'logic':228 'look':251 'lost':308 'lowercas':138,208 'maintain':222 'manual':332 'map':49,211,339 'may':321,330 'mcp':16,25,185 'migrat':2,4,200,231,278,343 'migrate-pipelin':1 'miss':279 'name':116,122,159 'need':331 'note':270 'notif':223 'npm':110,130 'option':183 'org':35,195 'os':91 'output':302 'paramet':29,189 'perform':269 'pipelin':3,5,8,23,32,166,192,237,249,261,275,288 'pipeline.sequenceid':71,72 'pipeline.variables':54,56 'platform':90 'platform/runtime':152,213 'present':167 'preserv':219,225,229 'produc':284 'project':37,197,264 're':345 're-valid':344 'read':271 'refer':352 'requir':337 'resolv':354 'resourc':30,33,190,193,351 'review':177 'rule':224 'run':103,105,123,125,129,140,144,146 'runtim':95 'secrets.getvalue':68 'secrets.x':70 'shell':107,127 'show':164,242,244 'side':173,175 'side-by-sid':172 'simplifi':13,149,154,215 'skill' 'skill-migrate-pipeline' 'source-harness' 'spec':87,98,106,120,126 'spec.steps':151 'specif':318 'stage':79,81,82,115,206,280,335 'stage.variables':58,60 'stage/step':135 'start':277 'step':18,39,100,101,121,147,162,178,209,282,319 'steps.id.output':64 'steps.id.output.outputvariables':62 'still':353 'strategi':221,329 'structur':75 'syntax':348 'test':111,131 'tool':26,186 'topic-agent-skills' 'topic-agents' 'transform':47 'translat':310 'trigger.branch':66,67 'troubleshoot':311 'true':89 'type':31,85,96,104,118,124,136,191,207,210,320,336,357 'unsupport':312 'updat':180,188 'v0':10,22,42,50,77,169,274,299,313,317 'v0-specific':316 'v1':12,44,52,112,133,171,239,254,287,301,324 'valid':340,346 'variabl':216,356 'verifi':289,355 'via':15 'would':250 'x':55,57,59,61,63,65,69 'yaml':80,114 'yet':326","prices":[{"id":"f087b0df-f241-4b93-8a1e-8bbf60f47db9","listingId":"04f6f46d-0341-4540-9b56-264ae1cc3f55","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"harness","category":"harness-skills","install_from":"skills.sh"},"createdAt":"2026-05-09T01:05:29.670Z"}],"sources":[{"listingId":"04f6f46d-0341-4540-9b56-264ae1cc3f55","source":"github","sourceId":"harness/harness-skills/migrate-pipeline","sourceUrl":"https://github.com/harness/harness-skills/tree/main/skills/migrate-pipeline","isPrimary":false,"firstSeenAt":"2026-05-09T01:05:29.670Z","lastSeenAt":"2026-05-18T19:06:31.024Z"}],"details":{"listingId":"04f6f46d-0341-4540-9b56-264ae1cc3f55","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"harness","slug":"migrate-pipeline","github":{"repo":"harness/harness-skills","stars":15,"topics":["agent-skills","agents"],"license":"apache-2.0","html_url":"https://github.com/harness/harness-skills","pushed_at":"2026-05-13T01:28:28Z","description":"A collection of structured AI agent skills that   enable Claude Code, Cursor, GitHub Copilot, and   other AI coding assistants to create, operate,   debug, and govern Harness CI/CD workflows through   natural language.","skill_md_sha":"8e0e07c0bb899be6482cb9c6c0820d1bd2b853ed","skill_md_path":"skills/migrate-pipeline/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/harness/harness-skills/tree/main/skills/migrate-pipeline"},"layout":"multi","source":"github","category":"harness-skills","frontmatter":{"name":"migrate-pipeline","license":"Apache-2.0","description":">-","compatibility":"Requires Harness MCP v2 server (harness-mcp-v2)"},"skills_sh_url":"https://skills.sh/harness/harness-skills/migrate-pipeline"},"updatedAt":"2026-05-18T19:06:31.024Z"}}