$npx -y skills add prismatic-io/prismatic-skills --skill cyclr-migrationThis skill should be used when the user needs to analyze a Cyclr export, parse Cyclr JSON files, migrate from Cyclr to Prismatic, convert Cyclr cycles to CNI flows, map Cyclr steps to Prismatic equivalents, or interpret Cyclr connector settings, field mappings, and cycle paramete
| 1 | # Cyclr Migration |
| 2 | |
| 3 | Knowledge for analyzing Cyclr cycle JSON exports and converting them to the standard integration schema for Prismatic CNI migration. |
| 4 | |
| 5 | ## Cyclr Export Format |
| 6 | |
| 7 | Cyclr exports are single JSON files per cycle. Each file contains the complete cycle definition including steps, edges, variables, and connector metadata. |
| 8 | |
| 9 | **Top-level keys in export:** |
| 10 | - `VersionedCycle` - Version metadata and publication status (Tags, Published) |
| 11 | - `Steps[]` - Array of step definitions with connector info, field mappings, and parameters |
| 12 | - `Edges[]` - Directed edges defining execution order (TailStep_Id → HeadStep_Id) |
| 13 | - `Variables[]` - Cycle-level variables |
| 14 | - `ExportedConnectors[]` - Encrypted connector data (not parseable — auth details come from Steps instead) |
| 15 | - `Name` - Cycle display name |
| 16 | - `Status` - Cycle status code |
| 17 | - `CustomMethodReleases[]` - Custom API method definitions if any |
| 18 | - `ShareFields[]` - Fields exposed to customer configuration |
| 19 | - `CycleStepErrorAction` - Error handling strategy |
| 20 | - `MaxRetriesOnError` - Retry configuration |
| 21 | |
| 22 | **Note:** `ExportedConnectors` contains encrypted data and cannot be used for migration. All connector and authentication details are extracted from the `AccountConnector` blocks within each step. |
| 23 | |
| 24 | ## Parser |
| 25 | |
| 26 | Use `prismatic-tools parse-export` to deterministically extract structured data from Cyclr JSON exports. The parser handles all JSON parsing, reference resolution, and topological sorting, then outputs JSON. See `references/cyclr-export-parsing.md` for interpreting the output. |
| 27 | |
| 28 | ```bash |
| 29 | # Full output from a single file |
| 30 | prismatic-tools parse-export <export-file.json> --platform cyclr |
| 31 | |
| 32 | # Full output from a directory of cycle exports |
| 33 | prismatic-tools parse-export <export-directory> --platform cyclr |
| 34 | |
| 35 | # Summary mode (condensed overview for quick scope assessment) |
| 36 | prismatic-tools parse-export <export-path> --platform cyclr --summary |
| 37 | ``` |
| 38 | |
| 39 | **Efficient reading strategy:** For multi-cycle exports, use `--summary` first to understand the scope (cycle names, step counts, connector types, field mapping counts). Then read the full output selectively — start with execution order and connectors, only read detailed field mappings and parameters when needed. |
| 40 | |
| 41 | ## Step Type Mapping |
| 42 | |
| 43 | See `references/cyclr-concepts-mapping.md` for the complete ActionType-by-ActionType conversion table mapping Cyclr step types to Prismatic CNI equivalents. |
| 44 | |
| 45 | Key mappings: |
| 46 | - ActionType 1 (Standard) → Component action or HTTP call |
| 47 | - ActionType 2 (Decision) → Conditional logic (if/else) |
| 48 | - ActionType 3 (Delay) → setTimeout/scheduled pause |
| 49 | - ActionType 4 (Script) → Custom TypeScript logic |
| 50 | - ActionType 5 (Webhook) → Webhook trigger |
| 51 | |
| 52 | ## Analysis Workflow |
| 53 | |
| 54 | When analyzing a Cyclr export: |
| 55 | |
| 56 | 1. **Run the parser script** to get structured JSON |
| 57 | 2. **Identify the trigger step** — First in execution_order; look for ActionType=5 (webhook), Interval>0 (polling), or the step with no incoming edges |
| 58 | 3. **Trace the step graph** — Follow execution_order and edges to understand flow; handle decision branches via edge types |
| 59 | 4. **Identify systems** — Deduplicated connectors reveal source/destination systems |
| 60 | 5. **Analyze field mappings** — CycleFieldMappings show data transformations between steps; resolve "stepId,fieldId" references using parser output |
| 61 | 6. **Resolve parameter dependencies** — CycleParameters show how step parameters are fed from previous step outputs |
| 62 | 7. **Extract config variables** — From Variables[], ShareFields[], and IsLaunchVisible parameters |
| 63 | 8. **Assess confidence** — Rate each migration element based on concept mapping complexity |
| 64 | 9. **Produce standard schema** — Assemble findings into the standard integration schema JSON |