Use conversion when you want a normalized package for review, search, diff, and prompt compression across source systems.
Formats
Normalize deliberately between OSI and native MetricFlow
rawctx uses OSI as the canonical comparison and search format while still supporting native MetricFlow publication when the dbt snapshot itself is the product.
Use --native when the dbt or MetricFlow snapshot should remain the published source artifact rather than an intermediate export.
Python load() and to_prompt() normalize both lanes into the same typed runtime shape.
Convert-first
Inspect the OSI package before publish
Use this when the team wants the normalized package directory in hand before the first publish.
rawctx convert --from metricflow --to osi ./my-dbt-project --output ./dist/pkg
rawctx validate ./dist/pkg
rawctx pack ./dist/pkg --output-dir ./dist
rawctx login
rawctx publish ./dist/pkgNative publish
Preserve the MetricFlow snapshot as the package
Use this when the native MetricFlow shape is the product and you still want rawctx versioning, checksums, and search visibility.
rawctx login
rawctx publish --from-dbt ./my-dbt-project --emit-package ./dist/pkg
rawctx publish --from-dbt ./my-dbt-project --native --emit-package ./dist/native-pkg
rawctx publish --from-dbt ./my-dbt-project --native --package-name @your-scope/jaffle-shop --package-version 1.2.3