executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
pipes-external-processesIntegrate Python and non-Python external processes with Dagster using dagster-pipes, open_dagster_pipes, PipesSubprocessClient, loaders, message writers, logs, materializations, checks, and custom messages.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when external Python scripts, non-Python executables, notebooks, Spark jobs, or service-launched processes need to communicate back to Dagster through the Dagster Pipes protocol.
dagster_pipes.open_dagster_pipes() and emit messages without importing dagster.dagster.PipesSubprocessClient and returning get_materialize_result(), get_results(), get_asset_check_result(), or get_custom_messages().DAGSTER_PIPES_* bootstrap params, loader mismatches, duplicate materialization messages, closed contexts, or optional cloud transport dependencies.@asset, @multi_asset, @asset_check, Definitions, and asset selections: use ../asset-definitions/SKILL.md.../configuration-resources/SKILL.md.dagster dev, dg, project scaffolding, and code-location validation: use ../cli-local-development/SKILL.md.references/workflows.md for subprocess integration, external script retrofits, non-Python message emission, custom messages, and loader/writer choices.references/api-reference.md for public dagster_pipes and dagster Pipes APIs, message payload shapes, and metadata formats.references/troubleshooting.md for import failures, optional dependencies, missing bootstrap params, CLI/API misuse, and protocol-specific failures.python scripts/pipes_external_smoke.py --help from this sub-skill directory, or python scripts/pipes_external_smoke.py --inactive-demo, to verify safe external-side behavior without launching Dagster.dagster_pipes, not dagster; Dagster-side asset code imports dagster as dg.open_dagster_pipes() defaults to env-var params, default context loading, and default message writing; use PipesCliArgsParamsLoader() when the launcher passes --dagster-pipes-context and --dagster-pipes-messages.asset_key= explicitly and materialize each asset key at most once in a single Pipes invocation.