Python workflow management framework for building complex pipelines of batch jobs with dependency resolution and task scheduling.
72
Pending
Does it follow best practices?
Impact
72%
1.30xAverage score across 10 eval scenarios
Pending
The risk profile of this skill
{
"context": "Evaluates whether the workflow leverages Luigi's task graph features to build, connect, and execute the numeric pipeline specified in the problem, including correct orchestration, targets, and incremental behavior. Scoring emphasizes explicit use of Luigi primitives rather than generic Python logic.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Task classes",
"description": "Defines each stage as a subclass of luigi.Task (or ExternalTask where appropriate) with parameters for inputs/paths and implements run/output to encapsulate work instead of ad-hoc functions.",
"max_score": 25
},
{
"name": "Dependency wiring",
"description": "Uses requires() to express the seed -> clean -> metrics -> report graph so Luigi resolves upstream tasks automatically rather than manual invocation.",
"max_score": 20
},
{
"name": "Target outputs",
"description": "output() returns luigi.LocalTarget (or equivalent Target) objects rooted in work_dir for seed, clean, metrics, and report artifacts, enabling Luigi to track completion.",
"max_score": 20
},
{
"name": "Scheduler invocation",
"description": "run_workflow calls luigi.build/luigi.run with the terminal task(s), enabling Luigi's scheduler/worker to execute the graph and returning only after completion.",
"max_score": 15
},
{
"name": "Incremental completion",
"description": "Relies on Luigi's complete() or Target existence semantics to skip already-finished tasks on a rerun so modification times remain unchanged when outputs are present.",
"max_score": 10
},
{
"name": "Upstream inputs",
"description": "Downstream tasks read upstream results via input() (or equivalent Target reading) instead of passing raw data directly, showing correct dependency materialization.",
"max_score": 10
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10