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]
