CtrlK
BlogDocsLog inGet started
Tessl Logo

dagster-shell-ssh-to-orchestra

Use this skill when a Dagster project shells out or runs containers (non-dbt): PipesSubprocessClient / open_pipes_session, dagster-shell (execute_shell_command / create_shell_command_op), SSHResource (dagster-ssh) running remote commands, k8s_job_op / PipesK8sClient, PipesECSClient, or PipesDatabricksClient. Triggers: any op running a subprocess/shell command that is not dbt, any SSHResource remote command, any Kubernetes/ECS Pipes execution. Note: dbt is handled by dbt-core-dagster-to-orchestra.

66

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/migrate-to-orchestra/skills/dagster-shell-ssh-to-orchestra/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable mapping skill: concrete before/after examples for every Dagster mechanism, a clear decision tree, and a useful gotchas section covering exactly the non-obvious details (command list vs string, /tmp permissions, dbt delegation). The main improvement opportunities are deduplicating the three restatements of the mapping table and adding a lightweight validation step for the generated Orchestra YAML.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious mapping information and assumes Dagster knowledge without re-explaining concepts. Minor redundancy: the Overview bullets, the Decision Tree, and the Gotchas each restate the same mappings in slightly different forms, which could be trimmed. Not 5 because of that triplication; not 3 since there is no padding or explanation of things Claude already knows.

4 / 5

Actionability

Every mechanism gets a concrete, complete Dagster-before / Orchestra-YAML-after pair (e.g. the PipesSubprocessClient run() call mapped to a full PYTHON task block with parameters), plus a full end-to-end pipeline example with stages and depends_on. Code is executable/copy-paste ready and covers the common cases.

5 / 5

Workflow Clarity

The Decision Tree gives a clear, explicit classification sequence (dbt? -> Python subprocess? -> SSH? -> k8s? -> ECS? -> managed Pipes? -> droppable glue?) and each branch maps to concrete output. Not 5 because there is no validation checkpoint (e.g. verify the generated Orchestra pipeline parses/runs), though this is a mapping/translation skill rather than a destructive or batch operation, so the anchor-5 feedback loop is a minor gap rather than a hard one.

4 / 5

Progressive Disclosure

No bundle files exist, so everything is inline in a single ~260-line SKILL.md. Sections are well-organized and clearly signaled (Overview, Decision Tree, per-mechanism sections, Gotchas, References), and the References section is a clean one-level-deep list of external URLs. Not 5 because the skill exceeds the under-50-lines simple-skill case and the per-integration examples (SSH/K8s/ECS/Glue/Lambda/Databricks) would naturally split into reference files; not 3 because organization and navigation are genuinely good with nothing buried.

4 / 5

Total

17

/

20

Passed

Description

77%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, highly specific trigger-focused description with excellent natural keyword coverage and explicit boundary handling against the dbt skill. Its main weakness is that it never states what the skill does — the migrate-to-Orchestra action must be inferred from the skill name rather than read in the description.

Suggestions

State the 'what' explicitly, e.g. "Maps Dagster shell, SSH, and Pipes workloads to their Orchestra equivalents (LINUX_SSH, PYTHON, AWS_ECS, ...)" before the 'Use when' clause.

Name the target artifacts in the description (Orchestra integrations such as LINUX_SSH_EXECUTE_COMMAND and PYTHON_EXECUTE_SCRIPT) so a reader knows the deliverable without the skill name.

Keep the dbt boundary note but make it a single sentence; the current note and '(non-dbt)' qualifier partially duplicate each other.

DimensionReasoningScore

Specificity

The description enumerates highly concrete, specific entities ("PipesSubprocessClient / open_pipes_session, dagster-shell (execute_shell_command / create_shell_command_op), SSHResource (dagster-ssh) ... k8s_job_op / PipesK8sClient, PipesECSClient, or PipesDatabricksClient") rather than vague language, but the action the skill performs is never named, which is a minor gap versus anchor 5's comprehensive list of specific actions.

4 / 5

Completeness

The 'when' is exceptionally explicit ("Use this skill when a Dagster project shells out or runs containers (non-dbt)" plus a dedicated Triggers sentence), but the 'what' — what the skill actually does (migrate these to Orchestra) — is never stated in the description and must be inferred from the name field. This falls between anchor 2 ('when' only, no 'what') and anchor 4 (both present), since the enumerated mechanisms convey scope but not the skill's action.

3 / 5

Trigger Term Quality

Trigger coverage is comprehensive and natural: "shells out", "runs containers", "any op running a subprocess/shell command", "any SSHResource remote command", "any Kubernetes/ECS Pipes execution", plus the library names (dagster-shell, dagster-ssh) users would actually say. Not below 5 because no common variation for this domain is missing; not applicable above.

5 / 5

Distinctiveness Conflict Risk

A clear niche (Dagster shell/SSH/Pipes execution) with distinct, specific triggers and an explicit disambiguation ("dbt is handled by dbt-core-dagster-to-orchestra") that prevents overlap with the sibling dbt skill. Minimal conflict risk; matches anchor 5.

5 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 5 missing

Warning

Total

15

/

16

Passed

Repository
orchestra-hq/orchestra-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.