claude

snowflake-migration

Snowflake AIM for Data Warehouses — end-to-end database migration to Snowflake: assessment, conversion, validation, and deployment

33 on GitHubby db-eng-migrationsv2.44.0Apache-2.0updated 8 days ago

Not in a marketplace yet, so it loads for one session with --plugin-dir.

Plugin snowflake-migration in sfc-gh-dflippo/snowflake-dbt-demo. Commands read from the repo's manifest — 8 days ago.

This plugin runs code on your machine — its hooks fire automatically on events like tool use and it starts local MCP servers. The exact commands are listed below; read them before installing.

What it installs

Skills (72)

  • migration

    End-to-end database migration and data validation to Snowflake. Orchestrates migrations from source connection through conversion, and project-based in-warehouse validation between Snowflake tables. Triggers: migrate, migration, migrate to snowflake, Snowflake to Snowflake validation, validate Snowf

  • assessment

    Analyzes workloads to be migrated to Snowflake using SnowConvert assessment reports. Routes to specialized sub-skills for high-quality assessments. Use this skill when user wants to do an assessment of their code or ETL workload, waves generation, object exclusion, effort estimates, anti-patterns, d

  • sql-dynamic-pattern-analyzer

    Analyzes Dynamic SQL occurrences from SnowConvert issues, classifies patterns, scores complexity, and records migration considerations. Use for SQL Server, Redshift, Oracle, or Teradata to Snowflake migrations. Driven entirely by `scai assessment sql-dynamic`; no custom scripts.

  • anti-patterns

    Flags migration anti-patterns (performance, architecture/security, behavior) by running `scai assessment anti-patterns`, which buckets SnowConvert's recorded issue codes and writes JSON for the assessment multi-report. Supports SQL Server and Redshift.

  • effort-estimate

    Generates migration effort estimates by running `scai assessment effort-estimate`, which writes JSON for the assessment multi-report. Supports SQL Server and Redshift.

  • etl-assessment

    Analyze SSIS packages from SnowConvert ETL.* outputs and source .dtsx files. Classifies packages, scores migration complexity, and produces JSON for the parent assessment multi-report.

  • informatica-assessment

    Analyze Informatica Power Center workflows/mappings from SnowConvert ETL.* outputs and source XML files. Classifies workflows, scores migration complexity, and produces JSON for the parent assessment multi-report.

  • object-exclusion-detection

    Identify database objects that can be excluded from migration (temporary/staging, deprecated/legacy, testing, duplicates, version conflicts) by running the SCAI assessment object-exclusion command.

  • sql-migration-waves-generator

    Analyze SQL object dependencies and create deployment waves/partitions for database migrations. Use when working with SQL migration planning, SnowConvert outputs, or deployment wave creation.

  • workload-insights

    Builds SQL Server Discovery from Extended Events `.xel` files by running `scai assessment workload-insights --input <file>`. SQL Server only. Reads captures in place.

  • code-conversion-only

    Convert local source code to Snowflake SQL for code-conversion-only source systems such as Sybase IQ, Azure Synapse, Spark SQL, Databricks SQL, Greenplum, Netezza, Vertica, and Hive. Optionally repoints Power BI reports. Use when configure returns project_type code_conversion_only for these sources.

  • bigquery-connection

    Connect to a source Google BigQuery project for migration to Snowflake using scai CLI. Triggers: bigquery, google bigquery, gbq, source connection, source database, connect to bigquery, add bigquery connection.

  • db2-connection

    Connect to a source IBM DB2 (LUW) database for migration to Snowflake using scai CLI. Triggers: db2, ibm db2, source connection, source database, connect to db2, add db2 connection.

  • oracle-connection

    Connect to a source Oracle database for migration to Snowflake using scai CLI. Requires a user-provided Oracle driver (NuGet package). Triggers: oracle, source connection, source database, connect to oracle, add oracle connection.

  • postgresql-connection

    Connect to a source PostgreSQL database for migration to Snowflake using scai CLI. Triggers: postgresql, postgres, source connection, source database, connect to postgresql, add postgresql connection.

  • redshift-connection

    Connect to a source Redshift database for migration to Snowflake using scai CLI. Triggers: redshift, source connection, source database, connect to redshift, add redshift connection.

  • snowflake-connection

    Choose and configure a Snowflake target authenticator. Use when creating or repairing a Snowflake connection, especially Microsoft Entra ID / Azure AD / OIDC SSO, or when `externalbrowser` fails against an OIDC IdP.

  • sql-server-connection

    Connect to a source SQL Server database for migration to Snowflake using scai CLI. Triggers: sql server, sqlserver, source connection, source database, connect to sql server, add sql server connection.

  • teradata-connection

    Connect to a source Teradata database for full migration to Snowflake using scai CLI (code, scai test, cloud table data migration/validation). Requires a user-provided Teradata driver (NuGet package). Triggers: teradata, source connection, source database, connect to teradata, add teradata connectio

  • convert

    Convert source code to Snowflake SQL using SnowConvert. Transforms full-migration sources and code-conversion-only sources to Snowflake-compatible syntax, and optionally repoints Power BI reports and Tableau workbooks. Triggers: convert, snowconvert, transform code, convert to snowflake, power bi, t

  • recommend-settings

    Recommend per-language SnowConvert conversion settings based on the input source code. Reads the project's source SQL, matches constructs to the dialect's available settings, and proposes flags for `scai code convert` (user confirms). Load from `convert` or `code-conversion-only` before running the

  • data-infrastructure-setup

    Shared infrastructure setup for data migration and data validation — prerequisites, compute pool, worker config, and source database/schema capture.

  • compute-pool-setup

    Guide the user through creating and configuring a Snowpark Container Services compute pool for the migration orchestrator.

  • data-infrastructure-teardown

    Cost-saving teardown for shared data infrastructure — verify no in-flight workflows, then call data_infrastructure(mode="down") to stop/suspend orchestrator and worker (SPCS or local, as configured). The compute pool auto-suspends. Invoked after every migrate_data() / validate_data() cycle and at en

  • worker-distributed-setup

    Run multiple Data Exchange Workers on separate VMs or servers, using affinity so each worker only processes the workflow it belongs to.

  • worker-k8s-external

    Deploy the Data Exchange Worker on an external Kubernetes cluster — image selection, Kubernetes Secret creation, Deployment manifest generation, and verification. Triggers: kubernetes worker, k8s worker, kubectl worker, external cluster worker, helm worker.

  • worker-local-setup

    Install and start the Data Exchange Worker on a user-managed machine (laptop, cloud VM, or on-prem server).

  • worker-spcs

    Deploy the Data Exchange Worker on Snowpark Container Services (SPCS) — image selection, Snowflake Secrets, CREATE SERVICE SQL generation, and verification. Triggers: SPCS worker, container worker, snowpark container, deploy worker SPCS, spcs deployment.

  • migrate-objects

    Deploy and validate all object types (tables, views, functions, procedures) in dependency order. Triggers: deploy objects, migrate objects, deploy tables, deploy views, migrate functions, migrate procedures.

  • data-migration-setup

    Setup, run, and report on cloud data migration — workflow YAML, migrate_data run, background Monitor, and end-of-run summary for the user.

  • etl-aifirst

    AI-First convert path for ETL platforms SnowConvert does not natively support. Identifies elements, hydrates IR, runs verification gates, and emits dbt output with honest degradation exit codes. Use when convert routes unsupported ETL to the AI-first migrator. Sibling of etl-stabilization (post-conv

  • etl-stabilization

    Phase-based orchestrator for fixing SnowConvert ETL conversion gaps in ETL-to-Snowflake migrations (SSIS, Informatica, and other platforms). Analyzes units holistically, creates a ROADMAP with test strategies, and executes fixes through phased TDD with cross-phase learning. Use when user says "fix E

  • dbt-fixer

    Fix dbt models via iterative compile-fix loop. Scoped to dbt projects assigned to the current phase. Use when the stabilization skill invokes dbt fixing.

  • dbt-test-gen

    Generate dbt tests (seeds, schema tests, singular assertions) for ETL-to-Snowflake ETL dbt sub-projects. Scoped to dbt projects assigned to the current phase. Use when the stabilization skill invokes dbt test generation.

  • orchestration-fixer

    Fix orchestration elements with EWI issues using test-file workbench. Scoped to elements assigned to the current phase. Use when the stabilization skill invokes fixing for an orchestration phase.

  • orchestration-test-gen

    Generate AAA orchestration tests (isolated or grouped) for ETL-to-Snowflake elements. Scoped to elements assigned to the current phase in ROADMAP.md. Use when the stabilization skill invokes test generation for an orchestration phase.

  • proc-fixer

    Repair the defective blocks of ONE converted Informatica-to-Snowflake-Scripting mapping procedure by reconstructing each block's SQL from the source transformation node, block-scoped and minimal-change, then deploy+CALL and grade against the source-derived assertions until the procedure creates clea

  • proc-test-gen

    Derive source-of-truth functional-equivalence assertions for ONE converted Informatica-to-Snowflake-Scripting mapping procedure (data-flow), independent of the converted SQL. Seeds input, deploys+CALLs the proc in an isolated test schema, and grades its target table against expected contents compute

  • migrate-objects-auto

    Autonomous version of migrate-objects — dispatches one subagent per ready task group, refills as they finish, and only stops to ask when a subagent is stuck. Triggers: autonomous migration, run unattended, migrate objects automatically, auto-pilot the wave, migrate everything in parallel, swarm the

  • seed-script

    Use when the migration state machine emits the `seedScript` task for a BTEQ script unit (`kind: "script"`, `source.format: "bteq"`), before baseline capture.

  • synthetic-seeder

    Generate two-sided synthetic data tests (source + Snowflake) for migrated stored procedures and functions. Derives test scenarios from source SQL branch analysis, writes step-based validation YAML artifacts, and enriches them with isolation metadata. Use when generating or refreshing test cases for

  • testbed-generator

    Drive the workload-scoped Synthetic Testbed Generator through its MINE → VALIDATE → ENRICH → COMPILE → GENERATE phases for a migration. Sequences `scai testbed init` → `list-unsolved` (mine) and surfaces the categorized unsolved-constraint view; `scai testbed validate` and surfaces the readiness vie

  • migrate-etl

    Stabilize an ETL code unit (SSIS, Informatica, or other platforms) by handing the converted artifacts off to etl-stabilization and recording the result on the registry entry.

  • etl-seed

    Seed the per-unit ETL test YAML for a deployed ETL code unit by running `scai test seed` (which fills pipeline + validation.tables from the CUR), then fill index_columns and have the user confirm before the live comparison runs.

  • etl-validate

    Run scai test etl-validate to compare live ETL pipeline output (SSIS/Informatica natively, any platform via an external_command opt-in) against the converted Snowflake output. The CLI stamps codeStatus.etlValidate — do not invent advance outcomes.

  • migrate-object

    Core migration loop for a single stored procedure, function, or BTEQ script. Iterates deploy -> test -> diagnose -> fix until Snowflake output matches source.

  • rule-engine

    Search, apply, extract, propagate, and manage reusable migration rules stored in Snowflake. Rules encode known source-to-Snowflake fix patterns (regex or AI-guided). Triggers: rule engine, search rules, apply rules, migration rules, known fixes, rule setup, extract rule, propagate rule.

  • rule-engine-apply

    Apply matched migration rules to a single SQL file. Runs regex replacements mechanically, presents AI-mode fixes for review. Triggers: apply rule, apply rules.

  • rule-engine-extract

    Extract reusable migration rules from code changes. Works on interactive fixes (before/after comparison), git history, or any pair of SQL files. Triggers: extract rule, deduce rule, learn from fix, create rule from fix, rule extraction.

  • rule-engine-propagate

    Find code units that match a given rule for batch application. Uses reverse search (regex + Cortex semantic) to identify propagation candidates. Triggers: propagate rule, find candidates, which objects match, apply rule everywhere.

  • resolving-ewis

    **[REQUIRED]** Invoke this skill FIRST before resolving ANY SnowConvert EWI (Errors, Warnings, Issues) codes. DO NOT attempt to fix EWIs manually - always invoke this skill first. Triggers: SSC-EWI, SSC-FDM, EWI code, resolve EWI, fix EWI, SnowConvert error.

  • rule-engine-search

    Find applicable migration rules for a SQL file using Snowflake. Combines regex pattern matching (REGEXP_LIKE) with Cortex semantic search.

  • powerbi-repointing

    Repoint Power BI `.pbit` reports to Snowflake during conversion. Collects the `.pbit` folder path from the user and supplies the `--powerbi-repointing` flag for `scai code convert`. Load from `convert` or `code-conversion-only` only when the user confirms they have `.pbit` files.

  • powerbi-fixer

    Complete SnowConvert Power BI repointing by fixing unsupported queries using LLM-based translation. Triggers: finish repointing, complete pbit migration, fix unsupported queries, power bi snowflake migration.

  • register-code-units

    Register source code into the migration project — either by extracting from a live database or importing local SQL files.

  • add-code-units

    Add local source code files to a migration project using scai code add. Use when source SQL files are already available on disk instead of extracting from a live database. Triggers: add code, import files, local files, add source, scai code add.

  • extract-code-units

    Extract DDL and source code from a connected source database using scai CLI. Pulls tables, views, procedures, functions, and other objects. Triggers: extract, pull ddl, extract code, get source code.

  • sas

    Preview. SAS to Snowflake parallel migration track — assess portfolios, convert .sas programs, or load .sas7bdat from a stage. Not SnowConvert / AIM registry. Triggers: SAS, sas migration, convert SAS, assess SAS, sas7bdat, PROC SQL, DATA step, load SAS datasets.

  • assess-sas-migration

    Preview. Assess SAS migration complexity and volume for Snowflake. Produces portfolio analysis with tier distribution, complexity heatmap, dependency DAG, a migration wave plan, and (on request) a separate effort/staffing plan. Triggers: assess SAS, SAS assessment, migration complexity, SAS analysis

  • convert-sas-to-snowflake

    Preview. Convert SAS code to Snowflake SQL and stored procedures. Use for: DATA steps, PROC SQL, macros, PROC steps, EGP projects (extracted .sas files only). Triggers: convert SAS, migrate SAS, SAS to Snowflake, translate SAS code, SAS migration, SAS analysis, SAS dependency diagram, validate SAS c

  • validate-sas-conversion

    Preview. Validate a completed SAS to Snowflake conversion by comparing expected SAS output against actual converted SQL output using synthetic test data. Performs dual-execution comparison: LLM traces original SAS logic to produce baseline, then runs converted SQL on Snowflake and compares outputs c

  • migrate-sas7bdat-to-snowflake

    Preview. Bulk-load .sas7bdat files from a Snowflake stage into tables, entirely server-side. Use whenever the user wants to ingest, load, or migrate SAS datasets (.sas7bdat) sitting in cloud storage / a stage into Snowflake, whether a one-time load or an ongoing scheduled pipeline. Triggers: load sa

  • register-sas-converted-units

    Preview. Attach converted Snowflake SQL to existing SAS Code Unit Registry entries so scai test can validate them. Reads conversion_state.json, sets files.converted + confirms objectType from the generated SQL, stamps codeStatus.conversion. Skill-side JSON only — no SnowConvert dialect, no .NET regi

  • register-sas-source-units

    Preview. Populate the Code Unit Registry (CUR) from SAS source files so the scai test harness can see them. Writes one registry/<id>.json per SAS file (source-side) into the conversion output_dir, skill-side JSON only — no SnowConvert dialect, no .NET registry engine. Triggers: register SAS units, p

  • semantic-equivalence-checker

    Check semantic equivalence between an Informatica PowerCenter workflow XML and its converted dbt model. Runs a deterministic structural and transform comparison, then adjudicates what it could not resolve by reading every sibling model in the workflow's directory, and writes a per-workflow verdict w

  • setup

    Set up a migration project — connect to source, initialize, extract objects, convert, and assess. Covers steps 1-5 of the migration lifecycle.

  • data-strategy

    Capture the data migration + validation strategy (migration type, sync strategy, extraction strategy, target table type; validation type + sync strategy) by driving the data-migration-setup and data-validation-setup wizards to completion.

  • data-validation-setup

    One-time infrastructure setup for cloud data validation — verify the orchestrator service is ready after the shared infrastructure step.

  • discover-extras

    Surface assets the conversion engine doesn't generate (FiveTran, dbt, Airflow, SSAS cubes, Oracle PL/SQL packages, custom shell scripts, etc.) and register them as code units with `kind=custom` and a free-form `customKind` discriminator (any string outside the reserved Kind enum) so the orchestratio

  • tableau-repointing

    Repoint Oracle Tableau workbooks (`.twb` / `.tds`) to Snowflake. Triggers: tableau, tableau migration, tableau repointing, migrate tableau, repoint tableau, twb, tds. Load from skill-match on those phrases, or from `convert` when the project is Oracle and the user confirms they have Tableau files.

  • tag-objects

    Tag and untag code units in the registry with free-form labels, and find objects by tag. Triggers: tag this object, tag these tables, untag, label objects, add a tag, show tagged objects, which objects are tagged.

  • validate-objects

    Validate migrated data between source and Snowflake using the shared configured infrastructure. Dispatch, background Monitor, and end-of-run summary. Triggers: validate data, validate tables, data validation, check data.

Subagents (6)

  • business_logic

    Produce test_cases rows for an existing step-based YAML stub that cover IF/ELSE branches, CASE WHEN arms, happy paths, and error paths. Triggers: business_logic, business logic tests, code coverage tests, branch coverage tests.

  • data_driven

    Produce test_cases rows for an existing step-based YAML stub from realistic source-database values. Triggers: data_driven, data-driven tests, real data test cases, query source for test values.

  • edge_cases

    Produce test_cases rows for an existing step-based YAML stub covering NULLs, zeros, empty strings, type limits, overflow, and precision boundaries. Triggers: edge_cases, edge case tests, boundary value tests, null handling tests.

  • general-task

    Walks ONE object end-to-end through the migration machine — resolves its next task, runs it, stamps the outcome, and repeats until the object is done or needs a human. Dispatched by the autonomous migration loop with a single object id.

  • task-invalidate

    Independently reopen a code unit at a resume task by writing TASK_INVALIDATIONS watermarks. Triggers: task-invalidate, invalidate tasks, reopen code unit, resume-point watermark.

  • test_case_verifier

    Independently review the remaining failing runTests cases on one object and override-accept a case only when a code change would be illogical. Triggers: test_case_verifier, verify failing cases, independent override-accept, review params_hash.

MCP servers (1)

  • mcp

    runs: scai mcp run

Hooks (7)

  • SessionStart

    "${CLAUDE_PLUGIN_ROOT}"/hooks/session-start.cmd

  • UserPromptSubmit

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd session-context

  • PreToolUse

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd stamp-agent-id

  • PreToolUse

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger

  • PreToolUse

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd deny-agent-output-wait

  • SubagentStart

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger

  • SubagentStop

    "${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger

View source on GitHub docs.snowflake.com

More from sfc-gh-dflippo/snowflake-dbt-demo

All 3 plugins →

dbt migration skills for converting source database SQL to dbt models on Snowflake

15 skills

33

dbt anti-pattern audit with an HTML report, a Problems-panel linter, per-file validation, and an MCP server that writes SSC-EWI-DBT* markers. The plugin downloads its native binary from this repository's releases on first use.

1 skill · 1 MCP server · hooks

33

Maintain snowflake-migration?

This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.

claude & codex plugins3 plugins