Test fixture
Code transformation while preserving behavior and intent.
The model receives the prompt (and optional system message). The run uses scorer rubric_json_metrics with the JSON configuration below. Pass/fail and partial credit are determined entirely by that scorer against the model output; no human grading.
Return JSON only with keys refactor, rationale, tests. Refactor two modules where ModuleA directly calls ModuleB.notify() and ModuleC.notify() on state changes. Replace the direct calls with an EventEmitter so ModuleA emits a named event and ModuleB/ModuleC subscribe independently. The same side effects must occur in the same order.
{
"metrics": {
"visible": {
"checks": [
{
"contains": [
"EventEmitter"
]
},
{
"contains": [
"emit"
]
},
{
"contains": [
"on"
]
}
]
},
"hidden": {
"checks": [
{
"contains": [
"no direct import"
]
},
{
"contains": [
"side effects preserved"
]
},
{
"contains": [
"subscription order"
]
}
]
},
"intent": {
"checks": [
{
"contains": [
"decoupling"
]
},
{
"contains": [
"loose coupling"
]
},
{
"contains": [
"extensibility"
]
}
]
}
}
}temperature
0
max_tokens
460
timeout (s)
120
type
scored
file
refactor-observer-pattern-events.json