SEZ9 opened a new pull request, #11659:
URL: https://github.com/apache/seatunnel/pull/11659

   ### Purpose of this pull request
   
   Fixes #11651 — adds pattern-level generation knowledge for three scenario 
families where the accuracy benchmark (#11553) showed near-universal model 
failure, following the #11616 working principle that accuracy changes must be 
justified by benchmark deltas.
   
   **What's added (content-only in the skill/prompt layers):**
   
   1. **New `conditional_routing` skill** — covers "split one source into 
different sinks by row-level condition", the weakest measured category (0% for 
several models). The SOP mandates the correct wiring that models consistently 
get wrong: ONE source block (not reading the table twice), parallel `Sql` 
transforms consuming the SAME source label (not chained), mutually exclusive 
and complete predicates (`>= 1000` pairs with `< 1000` — not `> 1000`, which 
silently drops equality), one sink per branch. Includes a complete runnable 
HOCON pattern. Trigger-routed (split / route / filter into / 拆分 / 分流 / ...), so 
it activates with no code changes.
   
   2. **PostgreSQL-CDC prerequisites** in the `cdc_realtime` skill — 
`slot.name` (one per job), `decoding.plugin.name = pgoutput` for PG 10+, 
schema-qualified `table-name` (`schema.table`, not MySQL-style `db.table`), 
server-side `wal_level = logical` note, and a MySQL-vs-PostgreSQL option 
comparison table. Generated PG-CDC configs previously omitted all of these.
   
   3. **Wide-DAG wiring rules** in the `multi_pipeline` skill and the config 
agent's Multi-Pipeline Routing prompt section — explicit per-hop labeling for 
chains, re-pointing the downstream consumer after inserting a transform (a sink 
still reading the source label silently bypasses the transform), and the three 
common wiring mistakes observed in generated configs.
   
   It also carries the transform-aware routing validation fix (#11657/#11658) 
that these scenarios depend on: without it, correctly-generated split configs 
are falsely rejected by local validation.
   
   **Measured effect** — benchmark subset of 7 conditional-routing/chain tasks, 
`qwen3-coder-next` (the weakest evaluated model in these categories), 3 
independent trials per task, baseline and candidate differing only in this PR's 
content:
   
   | Task | Baseline | With this PR |
   |---|---|---|
   | t3_cr_amount_split | 1/3 | **3/3** |
   | t3_cr_probe_no_overlap | 0/3 | **3/3** |
   | t3_cr_status_routing | 0/3 | **2/3** |
   | t3_cx_transform_chain_routing | 0/3 | 1/3 |
   | t3_cr_log_level_split_zh | 1/3 | 1/3 |
   | t3_cr_stream_split | 2/3 | 2/3 |
   | t3_mp_mixed_transform_pipelines | 3/3 | 2/3 |
   | **Trial passes** | **7/21** | **14/21** |
   | **Tasks passing all 3 trials** | 1/7 | 2/7 |
   
   One skill-authoring lesson is documented in the commit for future 
contributors: an earlier draft of the wide-DAG section used pseudo-code 
fragments (`Sql(plugin_input="a", plugin_output="b")` arrow notation), and A/B 
testing showed weaker models imitate the fragment style literally — emitting 
non-parseable partial configs (that draft measured 3/3 → 0/3 on the chain 
task). **Skill pattern blocks must be complete runnable configs.**
   
   ### Does this PR introduce _any_ user-facing change?
   
   Generation quality improvement for conditional-routing, PostgreSQL-CDC, and 
multi-block DAG requests; no interface or config changes. The routing 
validation change is described in #11658.
   
   ### How was this patch tested?
   
   - Full seatunnel-cli suite: 74 passed (includes 3 new routing regression 
tests).
   - Skill loading and trigger routing verified: the new skill loads alongside 
the existing eight and activates on split/route phrasing without displacing 
`transform_chain` on chain-style requests.
   - Benchmark A/B as above: 42 task-trials under identical conditions (same 
model, same tasks, same CLI base, 3 trials per side), only this PR's content 
differing between the two sides.
   - The `field_mapper` option key in the new wide-DAG example was verified 
against the transform's docs and metadata.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to