Decompose problems into pipelines of data transformations. Refactors loops into map/filter/reduce chains, converts nested/OO logic into composable function sequences, designs multi-step data transformation pipelines. Trigger on: "transformational programming", "data pipeline", "function pipeline", "pipe operator", "|>", "stream processing", "chained transformations", "Unix pipes", "dataflow", "decompose into steps", "write this as a pipeline", "compose functions", "chain of transformations", or restructuring imperative/OO code into data transforms. NOT for ETL infrastructure or stream processing frameworks (Kafka, Flink) — focuses on code-level function composition and transformation design patterns.
94
97%
Does it follow best practices?
Impact
85%
1.19xAverage score across 3 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent implements an Elixir data transformation pipeline using the |> (pipe) operator for composition and {:ok, val} | {:error, reason} tuples with pattern matching for error handling across pipeline stages.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Pipe operator used",
"description": "feedback_pipeline.ex uses the |> (pipe) operator to chain at least two transformation steps",
"max_score": 22
},
{
"name": "ok/error tuples for errors",
"description": "feedback_pipeline.ex uses {:ok, value} and {:error, reason} tuples as the return type for at least one validation or parsing function",
"max_score": 22
},
{
"name": "Pattern matching on error tuples",
"description": "feedback_pipeline.ex uses pattern matching (function clauses or case/with) to handle {:ok, data} and {:error, reason} separately within the pipeline — not just a single unwrap at the end",
"max_score": 22
},
{
"name": "Errors propagate without aborting",
"description": "Invalid submissions are excluded from the output and counted separately rather than raising an exception that stops the whole pipeline",
"max_score": 12
},
{
"name": "Pure transformation functions",
"description": "Each pipeline step (validate, normalize, classify, aggregate) is implemented as a function that takes its input as an argument and returns a new value, without modifying shared state",
"max_score": 12
},
{
"name": "Data Flow documented",
"description": "pipeline_analysis.md contains a Data Flow section using → notation to show the transformation chain",
"max_score": 5
},
{
"name": "Step breakdown documented",
"description": "pipeline_analysis.md contains a step breakdown listing each stage and what it does",
"max_score": 5
}
]
}