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 converts a stateful JavaScript class into a pure-function pipeline using method chaining (.map/.filter/.reduce), with no shared mutable state, following the transformational programming approach.",
"type": "weighted_checklist",
"checklist": [
{
"name": "No shared mutable state",
"description": "inventory_pipeline.js does NOT use a class with instance fields (this.rawRecords, this.parsedItems, etc.) or module-level mutable variables to pass data between stages",
"max_score": 18
},
{
"name": "Pure stage functions",
"description": "Each pipeline stage (parse, filter, aggregate, build report) is implemented as a standalone function whose return value depends only on its arguments, not on external state",
"max_score": 18
},
{
"name": "JS method chaining used",
"description": "inventory_pipeline.js uses at least one of .map(), .filter(), or .reduce() to compose the pipeline stages (not just imperative for-loops)",
"max_score": 15
},
{
"name": "Single-responsibility stages",
"description": "Each stage function does exactly one named transformation (e.g. parse records, filter low-stock, count by category) rather than mixing multiple concerns in one function",
"max_score": 12
},
{
"name": "Top-level compose function",
"description": "inventory_pipeline.js exposes a top-level function (not a class) that chains the stages together to produce the final report",
"max_score": 12
},
{
"name": "Data Flow documented",
"description": "pipeline_analysis.md contains a Data Flow section showing the transformation chain using arrow (→) notation",
"max_score": 10
},
{
"name": "Step breakdown documented",
"description": "pipeline_analysis.md contains a step breakdown (table or list) naming each stage and what it does",
"max_score": 8
},
{
"name": "Error/skip handling without mutation",
"description": "Skipped/invalid records are handled without mutating a shared counter — e.g. by separating valid and invalid records through filter, then counting the invalid array's length",
"max_score": 7
}
]
}