Skip to content

Commit 6735bd9

Browse files
committed
backlog: confirm TASK-34 scope line (CodegenFn parity IN, SQLTransform engine-selection OUT/Part-2)
1 parent 07d0c88 commit 6735bd9

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

backlog/tasks/task-34 - codegen-transformer-support-resolve_transformers-→-Expr-Transform-native-only-today.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ status: In Progress
77
assignee:
88
- Ritchie
99
created_date: '2026-07-19 16:08'
10-
updated_date: '2026-07-24 14:19'
10+
updated_date: '2026-07-24 14:23'
1111
labels:
1212
- codegen
1313
- transformer
@@ -83,4 +83,22 @@ created: 2026-07-24 14:19
8383
---
8484
Auto-dispatched to Ritchie (2026-07-24) on TASK-29 closing, per AmirHossein's standing pre-authorization — no further approval needed. TASK-29 dependency satisfied (PR #17 merged, master a83b742). Ritchie starting with a spec/plan check under docs/superpowers/ before code, which is correct. Precondition AC#1 (decision-7) was already satisfied.
8585
---
86+
87+
author: Iris (PM)
88+
created: 2026-07-24 14:23
89+
---
90+
SCOPE LINE CONFIRMED (Iris, 2026-07-24), from Ritchie's spec check. This is a boundary affirmation of the existing ACs, not a new decision:
91+
92+
IN SCOPE:
93+
- Make CodegenFn transformer-capable via the SAME transformers={name:(obj,out_schema)} boundary InferFn already has (AC#2).
94+
- Prove transform == infer == oracle parity through the existing _parity harness (AC#2, decision-1).
95+
- Flip TASK-31's codegen 'defers loudly' assertion to a real parity case (AC#3).
96+
97+
OUT OF SCOPE (stays Part 2, per the engine-callout spec 2026-07-17):
98+
- Wiring codegen into SQLTransform as a user-selectable engine. There is NO engine selector today — fit() hardcodes native InferFn and CodegenFn is only built by the differential harness. An engine-selection API is a PUBLIC API change; no TASK-34 AC mentions it, so building it would be invented scope.
99+
100+
Ritchie's mirror-vs-share analysis, confirmed correct: the Python fit-time desugar (resolve_transformer_refs in _transformer_ref.py — named_struct wrap + schema derive) is ALREADY shared and engine-agnostic. Only the native Rust resolve_transformers expr-walk (Function→Expr::Transform) and the Expr::Transform eval callout are native-only, and codegen can't call Rust — so those two are a genuine but small mirror on the codegen side. No shared-code option exists for them.
101+
102+
If AmirHossein wants codegen user-selectable as part of this, that is a bigger ticket and a public-API change — his explicit call, not folded in here. Flagging to him in parallel.
103+
---
86104
<!-- COMMENTS:END -->

0 commit comments

Comments
 (0)