CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

python-prefect-to-orchestra

Use this skill when the user wants to convert a Prefect @task function containing arbitrary Python logic (computation, API calls, pandas, boto3, etc.) into an equivalent Orchestra Python pipeline task. Triggers: any mention of migrating or rewriting Prefect @task functions to Orchestra; Prefect flow code with @task decorators that are not a dedicated integration (not dbt/Airbyte/Fivetran); ShellOperation tasks running Python scripts.

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

75%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 highly actionable, well-structured conversion guide whose value is concentrated in non-obvious Orchestra specifics (unit conversions, env-var formats, credential linking) rather than general Python knowledge. Its main weakness is token efficiency — the INLINE-vs-GIT and connection-null guidance is repeated many times over — plus the absence of an explicit output-validation step in the conversion checklist.

Suggestions

State the INLINE-vs-GIT decision once (e.g., a single gotcha or the Overview) and cut the repetitions from the mapping table notes, YAML comments, and Conversion Steps; the same applies to the 'connection: null, never invent a placeholder' advice, which appears three times.

Add an explicit final validation step to the Conversion Steps checklist, e.g. 'Confirm retry_delay is an integer ≤ 120 and environment_variables is a single JSON string before presenting the YAML', to close the workflow's feedback loop.

Consider moving the linked-connections detail (env-var naming scheme, OrchestraSDK.get_linked_connection example, silent-skip behavior) into a references/ file next to the existing sibling-skill pointers, keeping only the link-don't-copy rule inline.

DimensionReasoningScore

Conciseness

The body is dense with Orchestra-specific, non-obvious knowledge (retry_delay is integer minutes capped at 120, environment_variables is a single JSON string, double-underscore linked-connection env naming, silent skipping of undecryptable linked connections) and never explains concepts Claude already knows. However, the INLINE-vs-GIT guidance is restated roughly six times (Overview, mapping table, YAML comments, Conversion Steps, and two Gotchas) and 'connection: null is the norm' appears three times — 'mostly efficient but... could be tightened', fitting the 3 anchor better than the 4 anchor's 'minor instances'.

3 / 5

Actionability

Fully executable throughout: an exact parameter-mapping table with field names and unit conversions, a complete YAML pipeline template, a full before/after Prefect→Orchestra example, and a copy-paste-ready Python snippet for OrchestraSDK linked-credential retrieval. This matches the 5 anchor ('copy-paste ready code or commands; specific examples cover the common cases') and is clearly above the 4 anchor's 'minor gaps'.

5 / 5

Workflow Clarity

The 'Conversion Steps' section is a clearly sequenced 12-item checklist covering code, imports, credentials, inputs, configuration, dependencies, and outputs, with one verification checkpoint ('create/verify a Python connection pointing at it'). It is not a destructive or batch operation, so no cap applies, but there is no explicit 'validate the produced YAML / confirm retry_delay ≤ 120' checkpoint step, which keeps it at the 4 anchor ('most checkpoints present; minor validation gaps') rather than the 5 anchor's explicit validate-fix-retry loop.

4 / 5

Progressive Disclosure

With no bundle files present, the single-file body is well organized into scannable sections (mapping table, template, steps, credentials, example, gotchas) and clearly signals one-level-deep pointers to sibling skills ('see prefect-data-passing-to-orchestra', 'see prefect-connections-to-orchestra') and external docs. It exceeds 50 lines and the linked-connections deep-dive could arguably live in a reference file, which keeps it at 'good structure... minor organization gaps' rather than the 5 anchor.

4 / 5

Total

16

/

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.

A strong description: concrete, third-person, explicit about both what it does and when to trigger it, with a dedicated Triggers clause that includes synonyms and negative boundary cases. The only nitpick is that it describes one transformation action rather than enumerating several, which keeps specificity just short of the top anchor.

DimensionReasoningScore

Specificity

The action is concrete and precisely scoped — 'convert a Prefect @task function containing arbitrary Python logic (computation, API calls, pandas, boto3, etc.) into an equivalent Orchestra Python pipeline task' — with named examples of covered logic. It is a single transformation action rather than the multiple distinct actions of the 5 anchor ('Extract text and tables..., fill forms, merge documents, convert pages to images'), but far more specified than the 1-2 generic actions of the 3 anchor.

4 / 5

Completeness

Both questions are answered explicitly: 'what' via 'convert a Prefect @task function... into an equivalent Orchestra Python pipeline task', and 'when' via both 'Use this skill when the user wants to...' and a separate explicit 'Triggers:' clause — matching the 5 anchor ('clearly and explicitly answers both what AND when with concrete trigger phrases'). A missing 'Use when' clause would cap this at 3; here it is doubly present.

5 / 5

Trigger Term Quality

The dedicated 'Triggers:' clause covers the natural phrases a user would say — 'migrating or rewriting Prefect @task functions to Orchestra', 'Prefect flow code with @task decorators', 'ShellOperation tasks running Python scripts' — including synonyms (migrating/rewriting) and concrete code-level markers. It is clearly above the 4 anchor ('a few natural terms missing') since the trigger vocabulary is exactly what appears in real requests.

5 / 5

Distinctiveness Conflict Risk

A clear niche (Prefect @task → Orchestra PYTHON_EXECUTE_SCRIPT) with distinct triggers and explicit disambiguation from sibling skills — 'not a dedicated integration (not dbt/Airbyte/Fivetran)' — minimizing conflict with related prefect-to-orchestra skills. This matches the 5 anchor's 'clear niche with distinct triggers; minimal conflict risk' rather than the 4 anchor's 'minor overlap risk'.

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

orchestra-hq/orchestra-skills

Path

skills/migrate-to-orchestra/skills/python-prefect-to-orchestra/SKILL.md

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.