snowflake-dbt-migration
claudedbt migration skills for converting source database SQL to dbt models on Snowflake
15 skills
Snowflake AIM for Data Warehouses — end-to-end database migration to Snowflake: assessment, conversion, validation, and deployment
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.
migrationEnd-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
assessmentAnalyzes 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-analyzerAnalyzes 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-patternsFlags 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-estimateGenerates migration effort estimates by running `scai assessment effort-estimate`, which writes JSON for the assessment multi-report. Supports SQL Server and Redshift.
etl-assessmentAnalyze 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-assessmentAnalyze 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-detectionIdentify 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-generatorAnalyze 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-insightsBuilds 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-onlyConvert 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-connectionConnect 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-connectionConnect 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-connectionConnect 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-connectionConnect 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-connectionConnect 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-connectionChoose 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-connectionConnect 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-connectionConnect 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
convertConvert 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-settingsRecommend 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-setupShared infrastructure setup for data migration and data validation — prerequisites, compute pool, worker config, and source database/schema capture.
compute-pool-setupGuide the user through creating and configuring a Snowpark Container Services compute pool for the migration orchestrator.
data-infrastructure-teardownCost-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-setupRun multiple Data Exchange Workers on separate VMs or servers, using affinity so each worker only processes the workflow it belongs to.
worker-k8s-externalDeploy 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-setupInstall and start the Data Exchange Worker on a user-managed machine (laptop, cloud VM, or on-prem server).
worker-spcsDeploy 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-objectsDeploy 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-setupSetup, run, and report on cloud data migration — workflow YAML, migrate_data run, background Monitor, and end-of-run summary for the user.
etl-aifirstAI-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-stabilizationPhase-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-fixerFix 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-genGenerate 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-fixerFix 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-genGenerate 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-fixerRepair 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-genDerive 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-autoAutonomous 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-scriptUse when the migration state machine emits the `seedScript` task for a BTEQ script unit (`kind: "script"`, `source.format: "bteq"`), before baseline capture.
synthetic-seederGenerate 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-generatorDrive 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-etlStabilize 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-seedSeed 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-validateRun 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-objectCore migration loop for a single stored procedure, function, or BTEQ script. Iterates deploy -> test -> diagnose -> fix until Snowflake output matches source.
rule-engineSearch, 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-applyApply 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-extractExtract 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-propagateFind 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-searchFind applicable migration rules for a SQL file using Snowflake. Combines regex pattern matching (REGEXP_LIKE) with Cortex semantic search.
powerbi-repointingRepoint 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-fixerComplete 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-unitsRegister source code into the migration project — either by extracting from a live database or importing local SQL files.
add-code-unitsAdd 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-unitsExtract 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.
sasPreview. 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-migrationPreview. 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-snowflakePreview. 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-conversionPreview. 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-snowflakePreview. 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-unitsPreview. 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-unitsPreview. 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-checkerCheck 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
setupSet up a migration project — connect to source, initialize, extract objects, convert, and assess. Covers steps 1-5 of the migration lifecycle.
data-strategyCapture 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-setupOne-time infrastructure setup for cloud data validation — verify the orchestrator service is ready after the shared infrastructure step.
discover-extrasSurface 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-repointingRepoint 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-objectsTag 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-objectsValidate 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.
business_logicProduce 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_drivenProduce 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_casesProduce 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-taskWalks 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-invalidateIndependently 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_verifierIndependently 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.
mcpruns: scai mcp run
"${CLAUDE_PLUGIN_ROOT}"/hooks/session-start.cmd
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd session-context
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd stamp-agent-id
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd deny-agent-output-wait
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger
"${CLAUDE_PLUGIN_ROOT}"/hooks/mcp-hook.cmd agent-ledger
dbt migration skills for converting source database SQL to dbt models on Snowflake
15 skills
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
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.