CtrlK
BlogDocsLog inGet started
Tessl Logo

debugging-mwaa-workflow

Diagnoses and root-causes Amazon MWAA workflow failures across Provisioned (Python DAG) and Serverless (YAML workflow) environments. Provisioned uses aws mwaa invoke-rest-api, CloudWatch log groups, and get-environment; Serverless uses aws mwaa-serverless API (GetWorkflowRun, ListWorkflowRuns, GetTaskInstance) and CloudWatch logs. Covers failed runs and tasks, DAGs not appearing, import errors, worker OOM, IAM denials, and dependency drift. Triggers on: DAG failed, task failed, workflow run failed, MWAA error, debug my DAG, why did my workflow fail, DAG not showing up, MWAA import error, requirements failing, worker crashed, serverless run failed. Not applicable to authoring workflows (handled by authoring-mwaa-workflow), running or smoke-testing a workflow (handled by testing-mwaa-workflow), or CI-CD deploy failures.

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

85%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 operational skill body: a well-sequenced diagnostic spine with fallback loops, safety gating of state-mutating commands, dense gotchas, and clean routing to real one-level-deep references. The weaknesses are minor — a padded MCP-vs-local guardrail section and named-but-not-shown CLI invocations in the body.

Suggestions

Tighten the 'Guardrail' section to two bullet points (MCP-loaded: fetch via retrieve_skill; locally installed: read relative paths) — the current version restates the distinction twice.

Include one or two complete copy-paste command examples in the body (e.g. a full 'aws mwaa invoke-rest-api' invocation with --name/--path/--payload and a 'aws logs get-log-events' call) so the core diagnostic steps are executable without opening a reference.

DimensionReasoningScore

Conciseness

The body is dense and operational — routing rules, exact CLI/API names, REST paths, and a troubleshooting table with essentially no filler or explanation of concepts Claude already knows. It falls short of the 5 anchor because the MCP-vs-local 'Guardrail' section restates its point twice ('Do NOT file_read these paths locally — they do not exist on disk' followed by 'This distinction applies only to the skill's own packaged files') and could be trimmed by roughly half. Not 3, since padding is confined to one section rather than spread throughout.

4 / 5

Actionability

Concrete, executable guidance dominates: 'aws mwaa invoke-rest-api (paths /dags/{id}/dagRuns and /dags/{id}/dagRuns/{run_id}/taskInstances)', 'list-task-instances then get-task-instance to get each task's LogStream', and a verbatim output template. It stops short of the 5 anchor because no full copy-paste CLI invocations (with flags/parameters) appear in the body — commands are named, not shown end-to-end (details are deferred to the references).

4 / 5

Workflow Clarity

A clearly sequenced Step 0–4 spine with complexity-based routing, priority-ordered categorization ('infra, then drift, then code-data'), explicit error-recovery feedback loops ('If invoke-rest-api errors (RestApiClientException), fall back to the Scheduler and DAGProcessing log groups'), a troubleshooting table, and an exact structured output report. This matches the 5 anchor (clear sequence, feedback loops, checklists); the read-only destructive-operation cap does not apply since remediation is user-gated.

5 / 5

Progressive Disclosure

The body is a genuine overview that routes to three real reference files (verified: references/provisioned-diagnostics.md, serverless-diagnostics.md, and failure-catalog.md all exist), each signaled inline at its point of use ('See references/failure-catalog.md') and again in a References section with one-line descriptions. References are one level deep — no nested .md chains inside them (only an external AWS docs URL). This is the 5 anchor's clear overview with well-signaled one-level-deep references.

5 / 5

Total

18

/

20

Passed

Description

92%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: concrete tools, both flavors distinguished, an explicit trigger list, and an explicit not-applicable boundary naming sibling skills. Written in third person with no fluff. The only notable gap is missing the 'Airflow' synonym family in its trigger terms.

Suggestions

Add 'Airflow' trigger variants (e.g. 'Airflow DAG failed', 'Airflow task failed', 'scheduler not picking up DAG') since MWAA users typically say 'Airflow' when reporting failures.

Consider adding log-symptom phrasings users naturally report (e.g. 'worker killed', 'task stuck in queued') to round out trigger coverage.

DimensionReasoningScore

Specificity

The description names concrete actions ('Diagnoses and root-causes Amazon MWAA workflow failures'), specific APIs ('aws mwaa invoke-rest-api', 'GetWorkflowRun, ListWorkflowRuns, GetTaskInstance'), and comprehensively enumerates failure coverage ('failed runs and tasks, DAGs not appearing, import errors, worker OOM, IAM denials, and dependency drift'). Coverage is comprehensive with no meaningful gaps, matching the 5 anchor rather than the 4 anchor's 'minor gaps'.

5 / 5

Completeness

It explicitly answers both questions: what ('Diagnoses and root-causes Amazon MWAA workflow failures across Provisioned and Serverless environments' with tools and coverage) and when ('Triggers on: DAG failed, task failed, workflow run failed...'), with concrete trigger phrases — the exact pattern of the 5 anchor. Not 4, since the 'when' is fully explicit, not merely present.

5 / 5

Trigger Term Quality

Trigger phrases are extensive and natural ('DAG failed, task failed, workflow run failed, MWAA error, debug my DAG, why did my workflow fail, DAG not showing up, worker crashed'), covering synonyms well. However 'Airflow' — the word users most commonly pair with DAG failures ('my Airflow DAG failed', 'Airflow task failed') — and scheduler-related phrasings are missing, fitting the 4 anchor ('good keyword coverage; a few natural terms missing') rather than the 5 anchor's comprehensive synonym coverage.

4 / 5

Distinctiveness Conflict Risk

Clear niche (MWAA failure diagnosis) with a negative boundary clause ('Not applicable to authoring workflows (handled by authoring-mwaa-workflow), running or smoke-testing a workflow (handled by testing-mwaa-workflow), or CI-CD deploy failures') that explicitly disambiguates sibling skills — minimal conflict risk, matching the 5 anchor. Not 4, because it does more than distinguish; it fences off named siblings by trigger condition.

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
aws/agent-toolkit-for-aws
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.