Celiq
v0.12Open app โ†—
Docs/Forge/Validation and the Check & Save gate

Validation and the Check & Save gate

Run full project health checks in Validate mode and pass the Check & Save gate before your CML changes go live in Forge.

WeaverLuminaryUpdated June 2026 ยท 7 min read
โœฆ
In this section
Part of Celiq's semantic layer platform. Connect your warehouse, model your data once, query it everywhere.
๐Ÿ’ก
Tip
What it is โ€” Two safety nets in Forge: a full-project Validate mode that lists every health issue across your nodes and domains, and a Check & Save gate that runs semantic checks each time you save a single file.
When to use it โ€” Validate before a big review or release; the gate runs automatically every time you click Check & Save.
Where to find it โ€” Both live inside a Forge project. Open Validate from the project, and the gate appears when you press โœ“ Check & Save in the file editor toolbar.
Who can use it โ€” Weavers and Luminaries. Only a Luminary can override a blocked save.

Forge gives you two ways to catch problems before they reach the people who consume your data. Validate mode is a project-wide health report you open on demand. The Check & Save gate is a per-file checkpoint that runs the moment you try to save, showing each check resolve like a CI build log and then deciding whether the save is allowed.

Neither surface touches your warehouse. Both reason over your modeling files (your parsed CML), so they are fast and safe to run as often as you like.

Overview

Validation and the Check & Save gate in Celiq
Validation and the Check & Save gate in Celiq

The two surfaces answer different questions:

  • Validate mode answers "Is my whole project healthy right now?" It scans every node and domain in the project, returns a list of issues with severity, and gives you summary pills (valid / warnings / errors). Each issue card offers quick actions to fix it.
  • The Check & Save gate answers "Is this one file safe to save?" When you click โœ“ Check & Save on a file, the gate runs a fixed pipeline of semantic checks, reveals them one at a time, and ends in one of three verdicts that determine whether your change saves, saves with a warning, or is blocked.

Both rely on the same underlying idea: turn modeling problems into clear, actionable checks instead of letting them surface later as wrong numbers in a chart.

When to use it

  • Before a review or release โ€” run Validate mode to get a single list of everything that needs attention across the project.
  • After Orion or a teammate makes changes โ€” Validate mode confirms the project is still clean end to end.
  • Every time you edit a file โ€” the Check & Save gate runs automatically on save, so you do not have to remember to check.
  • When a number looks wrong โ€” the gate's Performance check flags fanout (metric inflation) before a bad join ships.

Concepts

TermWhat it means
Validate modeA full-width project health page. Auto-runs when you open it and lists per-issue cards across all nodes and domains.
Issue severityEach issue is error, warning, or valid. Errors are red, warnings amber, valid green.
Summary pillsThe pill bar at the top of Validate mode: N valid, N warnings, N errors.
Check & Save gateA modal that runs semantic checks before a single-file save and gates the save on the result.
Semantic checkOne row in the gate โ€” Validation, Performance, Governance, Lineage, or Impact โ€” each with a status and a one-line detail.
VerdictThe gate's overall decision once all checks resolve: passed, passed_with_warnings, or blocked.
Blocking checkA check that can stop a save. Validation (parse) and Performance (fanout) are blocking; the others only warn.
Validation mode settingA per-project setting โ€” Strict, Warn, or Off โ€” that controls how strict saves are.

Getting started

You need a Forge project with at least one node or domain, and Weaver or Luminary access. To override a blocked save you must be a Luminary.

1

Open your Forge project

Go to Forge and open the project you want to work in.

2

Open Validate mode

Switch the project to Validate. Validation runs automatically on open โ€” you do not need to start it manually.

3

Or open a file to use the gate

In Build, select a file in the tree to load it into the editor. The โœ“ Check & Save button sits in the editor toolbar for domain files.

Step-by-step

Validate mode

1

Open Validate mode

The page fetches GET /api/forge/validate/:projectId and shows a spinner with "Validating projectโ€ฆ" while it works.

2

Read the summary pills

At the top you get the headline counts: a green valid pill, plus warnings and errors pills when those counts are above zero.

3

Work through the issue cards

Each issue is a card showing its severity icon, a bold message, an optional description, and โ€” when available โ€” the file and line it came from.

4

Fix an issue

On any non-valid card, click Fix with Orion to have Orion propose a fix, or Edit in Build to jump straight to the node or domain that owns the issue.

5

Re-validate

After making changes, click Re-validate (top right). The button shows "Runningโ€ฆ" while it refreshes. When there are no issues, you get the All checks passed state.

The Check & Save gate

1

Click Check & Save

In the file editor toolbar, click โœ“ Check & Save. The gate opens as a modal titled "Semantic Check ยท ".

2

Watch the checks resolve

The gate reveals each check top to bottom โ€” Validation, Performance, Governance, Lineage, Impact โ€” each showing a spinner first, then resolving to pass, warn, or fail with a short detail line.

3

Read the verdict

Once every row resolves, the gate shows one of three banners and the matching actions:

  • Semantic Check Passed โ€” the gate auto-saves after a short beat; you do not need to click anything.
  • Passed with warnings โ€” choose Save anyway to save, or Review warnings to close the gate and go back.
  • Blocked: โ€” the save is held. Choose Fix & Re-run, Cancel, or (Luminary only) Override & Save.

4

Resolve a block

Click Fix & Re-run to open the fix flow (for a fanout, this launches the fanout fix). Fix the issue, then run Check & Save again.

Examples

A common block is a fanout risk on the Performance check. If a join inflates a metric โ€” for example, joining orders to order line items so revenue is counted once per line instead of once per order โ€” the Performance check fails and the gate blocks the save with the reason Revenue Fanout.

The five checks the gate runs come straight from the semantic-check pipeline:

โœ“ Validation    CML parses, structure valid
โœ— Performance   1 fanout risk โ€” metric inflation        (blocking)
โš  Governance    Governance score 62 โ€” 3 metrics without owner
โœ“ Lineage       Metric lineage resolvable to source tables
โš  Impact        14 mosaics ยท 38 users affected

In this run the verdict is blocked because Performance failed and is a blocking check. The Governance and Impact warnings on their own would only produce passed_with_warnings.

A clean run looks like this, and the gate saves on its own:

โœ“ Validation    CML parses, structure valid
โœ“ Performance   No fanout, date filters present
โœ“ Governance    Governance score 94 โ€” 0 metrics without owner
โœ“ Lineage       Metric lineage resolvable to source tables
โœ“ Impact        Impact scope computed

Best practices

  • Run Validate before you ask for review. A clean summary bar is the fastest way to show a project is ready.
  • Treat fanout as a real stop. A fanout block means a metric is being double-counted โ€” fix the join, do not override.
  • Give every metric an owner. The Governance check warns when metrics have no owner; clearing those warnings keeps the score high.
  • Use Fix with Orion for unfamiliar issues. It proposes a concrete change you can review rather than guessing.
  • Set the right validation mode for the project. Use Strict on production-grade projects so saves are blocked when errors exist; use Warn while actively building.

Tips

๐Ÿ’ก
Tip

A passing gate saves for you โ€” once you see Semantic Check Passed, the save happens automatically after a brief pause. You do not need to click a save button.

Common mistakes

โš ๏ธ
Warning
  • Overriding a fanout block. Override & Save exists for edge cases, not for shipping inflated metrics. If Performance fails on fanout, fix the join first.
  • Expecting the gate to query your warehouse. It does not. The checks reason over your CML, so they validate structure and modeling, not live row counts.
  • Closing the gate on a warning and assuming it saved. "Passed with warnings" does not save until you click Save anyway โ€” Review warnings just closes the modal.
  • Forgetting that Override & Save is Luminary-only. Weavers see the button disabled with a tooltip; ask a Luminary if a justified override is truly needed.

Troubleshooting

SymptomCauseFix
Validate mode shows a red error banner instead of issuesThe validate request failed (server error, or the project could not be loaded)Click Re-validate; if it persists, confirm the project exists and you have access
Validation row fails with "Syntax error โ€” cannot parse"The CML could not be parsed, so the Validation check fails and the verdict is blockedFix the YAML/CML syntax in the editor, then run Check & Save again
Gate shows "Blocked: Revenue Fanout"A fanout was detected on the Performance check โ€” a join is inflating a metricClick Fix & Re-run to launch the fanout fix, or correct the join manually
Override & Save is greyed outYou are not a Luminary; only Luminaries can override a blocking checkAsk a Luminary to review and override, or fix the blocking issue
Gate says "No checks to run."No parsed content was available to checkMake sure a file is loaded in the editor before opening the gate
Saves are blocked even on warningsThe project's validation mode is set to Strict ("Saves are blocked when errors exist")Adjust the project's validation mode in project settings if appropriate