home
docs / build

Build

mapping → built, tested Fabric table → pull request
DISCOVERYMODELLINGBUILD

Build suite

Stage 3 of the pipeline. Build turns an approved mapping into a built, tested Fabric table with a pull request, driven from a work-item ticket. It is the original, production-hardened suite: a 14-step end-to-end workflow with two self-correction loops, where a debug engineer agent diagnoses failures and drives retries until the table builds, its data-quality tests pass, and the PR is opened.

The delivery asset stack

Build is a controlled ecosystem rather than a model writing notebooks from scratch. The agents translate approved design into the client-owned framework, while deterministic components execute and verify it.

AssetWhat it contributesWhat the client keeps
Data Platform AgentsInterpret mappings, generate configuration, coordinate work, diagnose bounded failures and assemble evidence.The repeatable delivery workflow and its auditable controls.
Delta-GenThe deterministic engine that turns declarative table definitions into Fabric transformations.A consistent implementation standard instead of bespoke notebook logic.
Delta-Gen YAMLVersion-controlled definitions of sources, joins, keys, transformations, history and quality expectations.Readable, reviewable data-product specifications.
delta-gen-templateThe deployable repository structure, template notebooks, configuration layout and CI/CD conventions.A platform scaffold their team can continue to extend.
Fabric + ADOFabric executes and stores the data products; ADO governs tickets, source, pipelines, reviews and pull requests.Working tables plus the complete delivery and change history.
Fabric development process showing private and development workspaces connected to feature and main Git branches
The Delta-Gen template’s development pattern: workspace changes are carried through feature branches, review and merge rather than unmanaged notebook edits.
STRONGEST FIT

Fabric greenfield & modernisation

Best when the programme can adopt the reference repository and Delta-Gen conventions. Brownfield teams can onboard table families progressively.

CLIENT VALUE

Capability, not code dependency

Automation helps a lean client team deliver consistently while retaining human approval, readable configuration and standard engineering practices.

ASSURANCE

Repeatable and auditable

The same specification drives the build and its tests; every change is linked to a ticket, evidence and a reviewable pull request.

The agents

AgentRole
MappingParsermapping doc (MD) → structured spec
ConfigGeneratorspec → delta-gen YAML
PipelineValidatorvalidates the YAML / schema
DebugEngineerdiagnoses failures, drives the self-correction loops
Executorruns the template notebook in Fabric
Observerreads build/DQ outcomes
Reconcilergold reconciliation against a spec
ADOIntegratorcommit, tests, PR
Architect, DeltaGenDeveloper, PluginDeveloper, Coordinatordesign review, engine/plugin dev, orchestration

Deterministic helpers handle the plumbing around them — workspace pooling, artefact upload, lakehouse SQL, reconciliation — so the agents only make the judgement calls.

How a table ships

A ticket names the table and layer. The mapping is parsed into a structured spec, the spec becomes declarative Delta-Gen YAML, the YAML is validated and executed as a notebook run in Fabric, data-quality tests compiled from the same YAML are run against the built table, and the result is committed, tested and raised as a pull request. Failures at any step route through the debug engineer's self-correction loop rather than aborting the run. Alternative workflows reuse the same agents for smaller jobs: a new-table fast path, bug fixes, and plugin development for the engine itself.

Deep dive: the 14-step workflow

This is the exact state machine (EndToEndTableWorkflow). Note the shape: LLM agents only where reasoning is needed (steps 1–3 and the debug loops), deterministic gates and infrastructure everywhere else — no tokens, no hallucination surface.

#StepWhoKind
1parse_mapping — mapping doc → structured specMappingParserLLM
2generate_yaml — spec → Delta-Gen YAMLConfigGeneratorLLM
3validate_schema — YAML validated against the schemaPipelineValidatorLLM
4lint_expressions — expression lint over the YAMLExprLintgate
5resolve_dependencies — upstream tables present?FabricClientgate
6lease_pool — lease an isolated workspaceWorkspacePoolManagerinfra
7route_yaml — YAML routed to its layer/source pathSilverRoutergate
8upload_yaml — configs shipped to the lakehouseFabricUploaderinfra
9run_layer — template notebook executed in Fabric, polledExecutorinfra
10observe_layer — build + data-quality outcomes read backObservergate
11verify_table_built — the table really exists, with rowsFabricClientgate
12reconcile — gold output reconciled against the specReconcilergate
13open_pr — commit, tests, pull requestADOIntegratorinfra
14release_pool — workspace returned (always, in finally)WorkspacePoolManagerinfra

Two bounded self-correction loops (at most 3 debug iterations each) wrap the fragile regions: Loop A around steps 2–4 — a validation or lint failure goes to the DebugEngineer, which diagnoses and regenerates the YAML; Loop B around steps 9–10 — a build failure or a failing data-quality verdict triggers diagnose-and-retry. Bounded loops mean a bad run ends with a clear failure report, never an infinite burn.

A verification mode (--from-yaml --skip-pr) skips the LLM steps entirely and re-runs a known-good YAML through the build — used to verify infrastructure changes against real Fabric without spending tokens. Where this sits in the wider estate: see Architecture & background.