{"id":11588,"plugin_id":"plugin_asdk_app_6a8dddd50424819196928510eff4c70f","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:59:49.535Z","digest":"e85eb19aa8e668fb569035ba755ffeecc11b82b83701775ad0a916db85660b8a","against":null,"payload":{"name":"knock-migrate-to-knock","description":"Investigate existing messaging infrastructure in a codebase and recommend how it maps to Knock. Use when migrating from Braze, Courier, Customer.io, Iterable, SendGrid, or custom notification code, or when planning a move to Knock.","included_files":[{"relative_path":"rules/inventory-existing-messaging.md","size_in_bytes":2427},{"relative_path":"rules/map-concepts-to-knock.md","size_in_bytes":4359},{"relative_path":"rules/migration-plan.md","size_in_bytes":2979}],"skill_md_contents":"---\nname: knock-migrate-to-knock\ndescription: Investigate existing messaging infrastructure in a codebase and recommend how it maps to Knock. Use when migrating from Braze, Courier, Customer.io, Iterable, SendGrid, or custom notification code, or when planning a move to Knock.\n---\n\n# Migrate to Knock skill\n\nDiscover the current messaging stack in this codebase, map it to Knock concepts, and produce an ordered migration plan. This is a **discovery and recommendation** skill.\n\n## Hard constraint\n\n**Do not create, update, push, commit, or delete Knock resources** (workflows, guides, users, tenants, preferences, partials, layouts) via MCP or CLI unless the user explicitly asks after reviewing the plan. Do not run production imports. Output plans, inventories, and optional local app-code suggestions only.\n\n## Output contract (hard)\n\nWrite the inventory and migration plan to **`knock-plan.md`** at the repo root (the shared plan file used by `knock-product-messaging-strategy` and `knock-lifecycle-opportunities`; create or update — do not create a second plan). Keep chat **minimal** — status + confirmation only.\n\nDo **not** paste the inventory table or the full phased plan into chat.\n\nAllowed chat content:\n\n1. One short status line (path + counts, e.g. platforms detected and message types found)\n2. Optional one-line blocker\n3. Bold confirmation question as the **last line**\n\nExample:\n\nWrote `knock-plan.md`: Courier + SendGrid detected, 14 message types inventoried, 8-phase plan drafted.\n\n**Which migration phase should we plan in more detail next?**\n\n## Docs to use (link in your output)\n\nAlways ground recommendations in Knock docs. Prefer these:\n\n| Situation | Doc |\n| --- | --- |\n| Braze → Knock | https://docs.knock.app/tutorials/migrate-from-braze |\n| Courier → Knock | https://docs.knock.app/tutorials/migrate-from-courier |\n| Email templates via MCP (only if user asks to execute) | https://docs.knock.app/tutorials/migrate-email-with-mcp-server |\n| Workflows | https://docs.knock.app/concepts/workflows |\n| Channels | https://docs.knock.app/concepts/channels |\n| Users | https://docs.knock.app/concepts/users |\n| Preferences | https://docs.knock.app/preferences/overview |\n| Tenants / multi-tenancy | https://docs.knock.app/multi-tenancy/overview |\n| Subscriptions | https://docs.knock.app/concepts/subscriptions |\n| Translations | https://docs.knock.app/template-editor/translations |\n| Triggering workflows | https://docs.knock.app/send-notifications/triggering-workflows |\n| Sources (CDP) | https://docs.knock.app/integrations/sources/overview |\n\n## Overview\n\n1. **Inventory the current stack** (`rules/inventory-existing-messaging.md`)\n2. **Map concepts to Knock** (`rules/map-concepts-to-knock.md`)\n3. **Produce a phased migration plan** (`rules/migration-plan.md`)\n\n## How to use this skill\n\n1. Search the repo for providers, SDKs, templates, and send call sites (see inventory rule) — record findings in `knock-plan.md`, not chat.\n2. Identify the source platform(s): Braze, Courier, Customer.io, Iterable, Novu, ESP-direct (SendGrid/Postmark/Resend/SES), Slack bots, custom queues, etc.\n3. Open the matching migration tutorial when Braze or Courier; otherwise use the generic mapping table in `rules/map-concepts-to-knock.md`.\n4. Write the phased migration plan (phases, risks, Knock concept links) into `knock-plan.md`. In chat, ask which phase to plan or execute next — do not execute Knock writes unless asked.\n\n## Rule files reference\n\n- `rules/inventory-existing-messaging.md` — what to find in the codebase\n- `rules/map-concepts-to-knock.md` — platform concepts → Knock\n- `rules/migration-plan.md` — phased plan output format\n\n## Quick reference\n\nRecommended resource migration order (from Knock Braze / Courier tutorials):\n\n1. Channels / provider connections\n2. Workflows and templates (logic + content)\n3. Translations\n4. Tenants (and branding context, if multi-tenant)\n5. Users / identify\n6. Subscriptions (lists → object subscriptions)\n7. Preferences (after users exist; map topics/groups → workflow categories)\n8. Cut over triggers in application code\n9. Retire old sends\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}