CtrlK
BlogDocsLog inGet started
Tessl Logo

dagster-io-managers-to-orchestra

Use this skill when a Dagster project passes data between ops/assets via return values, Out/In wiring, IO managers, or context.add_output_metadata, and you need that data flow represented in Orchestra. Triggers: any op/asset that returns a value consumed downstream, any custom or built-in IOManager, any use of Output(value, metadata=...), AssetMaterialization metadata, or MetadataValue used to surface values to downstream logic.

72

Quality

88%

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

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 strong, highly actionable reference: complete executable YAML/Python for both setting and consuming outputs, a thorough pattern-mapping table, and a gotchas section packed with genuinely non-obvious failure modes (silent set_output ignoring, triple-quote JSON escaping, hyphenated task IDs). The main weaknesses are mild over-explanation of Dagster basics in the overview and the absence of any verify-the-output checkpoint in the workflow.

Suggestions

Trim the opening Dagster recap ('an op returns a value, an IO manager persists it... This is one of Dagster's core abstractions') down to the single contrast sentence, since Claude already knows how Dagster IO works.

Add a one-line verification checkpoint, e.g. after setting outputs, confirm the key appears in the task run's outputs before wiring downstream references — this closes the workflow-clarity validation gap.

Move the 'set_outputs: true — Supported Integrations' table into a references/ file (e.g. references/supported-integrations.md) to keep SKILL.md a leaner overview, since the table is lookup material rather than core guidance.

DimensionReasoningScore

Conciseness

The body is dense and almost every token earns its place: the pattern-mapping table, the gotchas list, and the triple-quote JSON rule are non-obvious, novel information. However, the overview opens with a recap of concepts Claude already knows — 'an op returns a value, an IO manager persists it, and the downstream op receives it as a typed input. This is one of Dagster's core abstractions' — which is over-explanation that could be trimmed. Not a 5 because of that padding; not a 3 because the verbosity is minor and isolated.

4 / 5

Actionability

Quotes: complete copy-paste-ready YAML ('parameters: command: python scripts/get_row_count.py ... set_outputs: true'), complete Python ('client = OrchestraSDK(api_key=os.environ.get("ORCHESTRA_API_KEY")) ... client.set_output("pending_count", count)'), the exact downstream reference syntax ('${{ ORCHESTRA.PIPELINE_RUN_TASKS['get-row-count'].OUTPUTS['pending_count'] }}'), and a full before/after example covering the common cases (SQL auto-capture, condition branching). The few ellipses ('connect(...)') are clearly deliberate placeholders, not pseudocode. Not a 4 because the common cases are fully executable end-to-end.

5 / 5

Workflow Clarity

The content flows in a clear, logical sequence: architectural difference -> pattern mapping table -> setting outputs -> referencing outputs downstream -> supported integrations -> full worked example -> gotchas, so the migration path is unambiguous in both directions. Not a 5 because there are no explicit validation checkpoints (e.g. 'verify the output appears in the run before wiring downstream references') and no numbered feedback loop; the rubric's destructive/batch cap does not apply since this is mapping guidance, not a batch operation skill. Not a 3 because the sequence is clear and checkpoints are not required for the risk profile of this skill.

4 / 5

Progressive Disclosure

No bundle files exist, so everything is inline; the body is well-sectioned with clear headers (Overview, Pattern Mapping, Setting Outputs, Referencing Outputs, Supported Integrations, Before/After, Gotchas, References) and the References section points to clearly labeled external docs one level deep. At ~195 lines, content such as the 'set_outputs: true — Supported Integrations' table and part of the gotchas list could arguably live in a reference file to keep SKILL.md a leaner overview, which keeps this at anchor 4 ('minor organization gaps') rather than 5.

4 / 5

Total

17

/

20

Passed

Description

95%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.

An excellent description: it names a precise niche, enumerates the exact Dagster API patterns that should trigger it, and gives both an explicit 'Use this skill when' clause and a dedicated 'Triggers:' list. The only deduction is a voice violation for the second-person 'you need' phrasing, which the rubric penalizes on specificity.

Suggestions

Rewrite in third person to avoid the voice penalty, e.g. 'Use when a Dagster project passes data between ops/assets... and that data flow must be represented in Orchestra' (dropping 'you need').

Optionally mirror the body's key phrase 'outputs system' in the description so users searching for 'set_output' or 'Orchestra outputs' also match the trigger.

DimensionReasoningScore

Specificity

Quotes: 'passes data between ops/assets via return values, Out/In wiring, IO managers, or context.add_output_metadata', 'any custom or built-in IOManager', 'any use of Output(value, metadata=...), AssetMaterialization metadata, or MetadataValue'. It lists multiple concrete, specific patterns with near-comprehensive coverage (anchor 5), but the second-person phrasing 'and you need that data flow represented in Orchestra' triggers the rubric's voice penalty, reducing the score by 1 to 4. Not a 3 because the actions named are far more concrete and comprehensive than '1-2 concrete actions'.

4 / 5

Completeness

Quotes: 'you need that data flow represented in Orchestra' (what) and 'Use this skill when a Dagster project passes data...' plus an explicit 'Triggers:' clause enumerating concrete trigger cases (when). Both what and when are explicitly and concretely answered, matching the anchor-5 example's structure. Not a 4 because the when clause is not merely present but enumerates specific trigger conditions.

5 / 5

Trigger Term Quality

Quotes: 'ops/assets', 'return values', 'Out/In wiring', 'IO managers', 'AssetMaterialization metadata', 'MetadataValue', 'Dagster', 'Orchestra'. These are exactly the natural terms and API names a user working in this domain would say, covering both built-in and custom variants. Not a 4 because no common variation (return-value consumption, IOManager, Output metadata, AssetMaterialization) is missing.

5 / 5

Distinctiveness Conflict Risk

Quotes: 'Dagster project passes data between ops/assets', 'represented in Orchestra'. This is a clear niche (Dagster-to-Orchestra data-passing migration) with distinct, domain-specific triggers, so it is unlikely to fire for an unrelated skill. Not a 4 because the trigger terms are specific to this exact migration scenario with essentially no overlap risk with adjacent skills.

5 / 5

Total

19

/

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: 3 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.