Qwen Real Task ABI Coverage Gate
The one idea you need
Picture a fixed box of LEGO bricks. The question is whether everyday builds can be snapped together from bricks already in the box, combining at most a couple, or whether some designs demand a specialty brick the box simply never contained.
The question
If you build one fixed set of small data-cleanup operations, can everyday office jobs be assembled from those parts alone, without adding anything new?
What we found
It depends, and the split is sharp. A frozen kit of reusable office operations, with no training at all, assembled 84% of realistic tasks from stored parts alone, far above the 21% a bare kit managed, and it fully solved even brand-new task types it had never seen built. But every task deliberately designed to need a missing part failed: zero solved.
Why it matters
Before investing in training around a reusable operation library, measure first what share of your real tasks can be built from existing parts. Routine cleanup covers well, but budget a path to add the missing operations.
On this page
Results at a glance 3
How to read
Bars show the share of 38 everyday tasks built from prebuilt parts, grouped left to right by how rich the kit is (bare, mid, full), with two shades for allowing one versus two combining steps. Taller is better.
Takeaway → Bars rise steadily rightward, from a stub for the bare kit to the tallest for the full kit, so a richer parts library plus more combining solves far more tasks.
Data table
| frozen ABI variant | depth 1 | depth 2 |
|---|---|---|
| core ABI | 10.5% | 21.1% |
| office ABI | 60.5% | 71.1% |
| office+table ABI | 73.7% | 84.2% |
Numbers from analysis/overall_summary.csv
Technical framing
Held-out task coverage by ABI variant and search depth — The full office+table ABI at depth 2 covers 84% of 38 real-style tasks; the minimal core ABI covers only 21%.
How to read
Each bar is one group of tasks; height is the share solved from prebuilt parts, so taller is better. The final bar holds tasks deliberately built to need parts the kit lacks.
Takeaway → The first four bars sit at or near full height while the final unusual-task bar drops to zero, so the kit handles familiar work but nothing beyond its parts.
Data table
| task split | held-out coverage |
|---|---|
| calibration | 100% |
| held-out composition | 100% |
| held-out new family | 100% |
| held-out same family | 93.3% |
| stress out-of-ABI | 0% |
Numbers from report table (reports/qwen_real_task_abi_coverage_gate_report.md, Primary Split Summary)
Technical framing
Coverage by task split under the primary ABI (office+table, depth 2) — Held-out compositions and new families are fully covered, but every deliberately out-of-ABI stress task fails.
How to read
Three bars show what happened to all 38 tasks with the full kit: solved on fresh examples, matched only the shown examples, or never built at all. The tall solved bar is best.
Takeaway → One tall bar dominates near 84%, with two small failure bars, so a few tasks matched only the shown examples and a few could not be built at all.
Data table
| outcome | share of 38 tasks |
|---|---|
| held-out covered | 84.2% |
| train-match only | 5.3% |
| no train match | 10.5% |
Numbers from analysis/overall_summary.csv
Technical framing
Outcome breakdown under the primary gate (office+table, depth 2) — Failures split into overfitting to visible examples (5%) and tasks the ABI/search cannot even fit (11%).
In the author’s words from the Report · “Abstract”
This standalone experiment tests whether a frozen office-data ABI covers real-style deterministic tasks that were not generated from that ABI. It uses oracle enumeration, not model training: the result is a decomposability gate for whether a large compiler corpus is worth building.
Overview
Standalone experiment testing whether a fixed office-data ABI covers real-style deterministic tasks that were not generated from the ABI.
Question
The compiler recipe only matters for real capability if realistic tasks decompose into a reusable operation library. This experiment freezes a general-purpose office ABI first, then evaluates oracle coverage on hand-curated deterministic tasks from contact cleanup, dates, money, URLs/files, product codes, addresses, and small tables.
Method
- Define ABI primitives before task definitions in
src/qwen_real_task_abi_coverage_gate.py. - Write task references as ordinary Python functions over examples, not as ABI programs.
- Use an enumerative oracle synthesizer to search ABI expressions from visible fields and constants.
- Score candidates on train examples and held-out examples for each task.
- Report coverage by ABI tier, split, family, search depth, and failure mode.
Primary Metrics
heldout_covered: a candidate matches both train and held-out examples.train_match_only: a candidate fits train examples but fails held-out examples.no_train_match: the ABI/search could not even fit the visible examples.- Coverage by split and task family under the strongest fixed ABI.
Artifacts
- Source:
src/qwen_real_task_abi_coverage_gate.py - Metrics/details:
analysis/ - Reports:
reports/ - Large artifact directory:
/workspace/large_artifacts/qwen_real_task_abi_coverage_gate
Report
Rendered from reports/qwen_real_task_abi_coverage_gate_report.md
Abstract
This standalone experiment tests whether a frozen office-data ABI covers real-style deterministic tasks that were not generated from that ABI. It uses oracle enumeration, not model training: the result is a decomposability gate for whether a large compiler corpus is worth building.
Method
- The ABI is a fixed library of scalar string/date/money/contact/file operations plus small-table aggregation templates.
- Task references are ordinary Python functions over hand-curated examples; task outputs are not produced by stored ABI programs.
- The oracle enumerates expressions from visible fields/constants, fits train examples, then tests held-out examples for each task.
- ABI variants are
core,office, andoffice_table; the primary gate isoffice_tableat the largest search depth.
Run Configuration
- Suite:
main. - Tasks:
38total,6table tasks under the primary slice. - Primary ABI/depth:
office_table, depth2. - Large artifacts directory:
/workspace/large_artifacts/qwen_real_task_abi_coverage_gate.
Primary Results
- Overall held-out coverage: 84.2% (32/38 tasks).
- Calibration coverage: 100.0% (10/10).
- Non-calibration coverage: 78.6% (22/28).
- Held-out composition coverage: 100.0% (8/8).
- Stress/out-of-ABI coverage: 0.0% (0/5).
- Table-task coverage: 83.3% (5/6).
- Train-match-only rate: 5.3%.
- No-train-match rate: 10.5%.
Overall By ABI
| variant | max_depth | tasks | heldout_covered | train_match_rate | train_match_only | no_train_match |
|---|---|---|---|---|---|---|
| core | 1 | 38 | 10.5% | 15.8% | 5.3% | 84.2% |
| core | 2 | 38 | 21.1% | 26.3% | 5.3% | 73.7% |
| office | 1 | 38 | 60.5% | 65.8% | 5.3% | 34.2% |
| office | 2 | 38 | 71.1% | 76.3% | 5.3% | 23.7% |
| office_table | 1 | 38 | 73.7% | 78.9% | 5.3% | 21.1% |
| office_table | 2 | 38 | 84.2% | 89.5% | 5.3% | 10.5% |
Primary Split Summary
| split | tasks | heldout_covered | train_match_rate | train_match_only | no_train_match |
|---|---|---|---|---|---|
| calibration | 10 | 100.0% | 100.0% | 0.0% | 0.0% |
| heldout_composition | 8 | 100.0% | 100.0% | 0.0% | 0.0% |
| heldout_new_family | 6 | 100.0% | 100.0% | 0.0% | 0.0% |
| heldout_same_family | 9 | 93.3% | 100.0% | 6.7% | 0.0% |
| stress_out_of_abi | 5 | 0.0% | 20.0% | 20.0% | 80.0% |
Covered Program Examples
| task_id | family | split | program_depth | program |
|---|---|---|---|---|
| address_city | address | heldout_new_family | 1.00 | city_before_state(FIELD(address)) |
| address_state | address | heldout_new_family | 1.00 | us_state(FIELD(address)) |
| address_zip5 | address | heldout_new_family | 1.00 | zip5(FIELD(address)) |
| contact_email_company | contact | heldout_same_family | 1.00 | email_company(FIELD(email)) |
| contact_email_domain | contact | calibration | 1.00 | email_domain(FIELD(email)) |
| contact_name_initials | contact | calibration | 1.00 | initials(FIELD(name)) |
| contact_phone_e164 | contact | calibration | 1.00 | phone_e164_us(FIELD(phone)) |
| contact_phone_last4 | contact | heldout_same_family | 1.00 | phone_last4(FIELD(phone)) |
| date_days_between | date | heldout_composition | 1.00 | date_diff_days(FIELD(end),FIELD(start)) |
| date_month_name | date | heldout_same_family | 1.00 | date_month_name(FIELD(date)) |
| date_quarter_label | date | heldout_same_family | 1.00 | date_quarter(FIELD(date)) |
| date_to_iso | date | calibration | 1.00 | date_iso(FIELD(date)) |
| money_cents | money | calibration | 1.00 | money_cents(FIELD(price)) |
| money_line_total_cents | money | heldout_composition | 2.00 | mul(FIELD(qty),alnum(FIELD(price))) |
| money_percent_decimal | money | calibration | 1.00 | percent_float(FIELD(discount)) |
| code_after_colon | product | heldout_same_family | 1.00 | digits(FIELD(code)) |
| sku_prefix | product | calibration | 1.00 | sku_prefix(FIELD(sku)) |
| sku_suffix | product | heldout_same_family | 1.00 | sku_suffix(FIELD(sku)) |
Uncovered Examples
| task_id | family | split | failure_reason | train_match | program |
|---|---|---|---|---|---|
| contact_normalize_name | contact | heldout_same_family | train_match_only | True | title(FIELD(name)) |
| date_fiscal_year_july | date | stress_out_of_abi | no_train_match | False | |
| money_discounted_total | money | stress_out_of_abi | no_train_match | False | |
| sku_middle_segment | product | stress_out_of_abi | train_match_only | True | digits(FIELD(sku)) |
| table_latest_paid_amount | table | stress_out_of_abi | no_train_match | False | |
| phrase_slug | text | stress_out_of_abi | no_train_match | False |





Interpretation
The fixed ABI covers a meaningful fraction of real-style deterministic tasks, but coverage is far from universal. The gap between calibration and stress splits is the main signal: common office transforms decompose well, while tasks that require bespoke fiscal logic, middle-token extraction, discount formulas, or latest-row selection expose missing primitives or missing control patterns. The positive read is that held-out composition and held-out new-family tasks are covered in this catalog, including table filters and aggregations. The negative read is equally important: every deliberately out-of-ABI stress task fails, so the ABI cannot be treated as an open-ended intelligence multiplier without a retrieval/extension path for missing primitives. A train-match-only result is treated as a warning rather than success: it means the ABI/search can fit visible examples but does not identify the actual task robustly on held-out examples. This is a gate, not a compiler result. If the target domain is restricted to covered families, the ABI direction has a real base to build on. If the target domain includes the uncovered stress patterns, the ABI must be expanded or paired with retrieval/tooling before model training is worth scaling. The next decisive step is a less hand-curated corpus: either production-like task logs or a public deterministic transformation benchmark, with the ABI frozen before evaluating that set.
Limitations
The tasks are hand-curated real-style examples, not production logs or a public benchmark. That is stronger than factory-generated ABI compositions but still not a definitive real-world coverage estimate. The oracle is bounded by the implemented search space, so some misses may be search misses rather than true ABI misses. The table ABI is intentionally small and does not include sorting or window operations.
Artifacts
- Details:
analysis/details.csv - Summary:
analysis/summary.csvandanalysis/overall_summary.csv - Task catalog:
analysis/task_catalog.json - Large artifacts directory:
/workspace/large_artifacts/qwen_real_task_abi_coverage_gate
Experiment log 6
Show the running log (6 entries)
Setup
- Created fresh experiment directory:
/workspace/experiments/qwen_real_task_abi_coverage_gate - Large artifacts directory:
/workspace/large_artifacts/qwen_real_task_abi_coverage_gate - Core question: whether a frozen office ABI covers real-style deterministic tasks that are not generated from that ABI.
- Report format: standalone Markdown and HTML with plots.
Iteration Notes
- Initial smoke exposed a leakage risk in date tasks: an ISO-date task could be solved by copying an unrelated interval
endfield. Fixed by separating single-date rows from interval rows before pilot/main. - Initial pilot attempted depth-3 brute-force expressions and was interrupted after it proved too slow for a coverage gate. Fixed by bounding the gate to depth-1/2 programs, which covers direct primitives and short office compositions without turning the experiment into a synthesizer benchmark.
Run smoke_v1
- Started: 2026-06-27 03:15:25 UTC
- Variants:
core,office_table - Depths:
1,2 - Tasks:
12 - Completed in 19.3s.
- Primary coverage: 83.3% (10/12 tasks).
- Train-match-only: 8.3%; no-train-match: 8.3%.
Run pilot_v1
- Started: 2026-06-27 03:21:32 UTC
- Variants:
core,office,office_table - Depths:
1,2 - Tasks:
30 - Completed in 25.8s.
- Primary coverage: 86.7% (26/30 tasks).
- Train-match-only: 6.7%; no-train-match: 6.7%.
Run main_v1
- Started: 2026-06-27 03:23:19 UTC
- Variants:
core,office,office_table - Depths:
1,2 - Tasks:
38 - Completed in 27.0s.
- Primary coverage: 84.2% (32/38 tasks).
- Train-match-only: 5.3%; no-train-match: 10.5%.
Final Read
- The frozen
office_tableABI covered 84.2% of the full hand-curated task catalog at depth 2. - Non-calibration coverage was 78.6% (22/28), held-out composition coverage was 100.0% (8/8), and held-out new-family coverage was 100.0% (6/6).
- Table coverage was 83.3% (5/6): count, sum, filtered count, and filtered sum were covered; latest-paid-row selection was not.
- Every deliberately out-of-ABI stress task failed (0/5): fiscal-year logic, discounted total, middle SKU segment, phrase slugification, and latest paid amount.
- Read: this is a guarded positive for a fixed office ABI on common deterministic transformations, not proof of open-ended coverage. The next step should use a less hand-curated corpus or freeze the ABI before evaluating a public/production-like task set.
Figures 5
Data files 8
Result tables and metrics copied from the experiment folder — preview inline or open the raw file.
analysis/overall_summary.csv638 Banalysis/summary.csv9.0 kBruns/main_v1/overall_summary.csv638 Bruns/main_v1/summary.csv9.0 kBruns/pilot_v1/overall_summary.csv530 Bruns/pilot_v1/summary.csv7.2 kBruns/smoke_v1/overall_summary.csv459 Bruns/smoke_v1/summary.csv2.0 kB
Reproduce
The run commands are documented inside the experiment folder (see the README).