Runnable QQL belongs in the qqlExample component:
QUERY TEXT 'example'FROM docsUSING denseLIMIT 5;The component provides consistent presentation and preserves the fenced source exactly. Do not use raw qql or sql fences outside qqlExample for runnable statements: the verifier rejects them so examples cannot silently bypass the executable contract.
Run the verifier
Section titled “Run the verifier”cd website pnpm validate:qqlThe command:
- creates an isolated temporary output directory;
- builds
crates/qql-wasmfrom the current checkout for Node.js; - extracts every
qqlExamplefrom the Markdoc tree; - calls the WASM
parseexport on the complete example, then theanalyzeexport to confirm every statement also plans to a route; - rejects bare
qql/sqlfences outsideqqlExampleand re-checks everyfixtures/valid/*.qqlplayground preset; - reports the source file and line for every failure;
- removes the temporary generated package.
This detects grammar drift — and plan-level regressions — without depending on a previously generated or published SDK package.
Full site check
Section titled “Full site check”cd website pnpm checkpnpm check runs the verifier, rebuilds the WASM package, produces the static site, and then checks every same-site /docs/… link and #fragment against the generated HTML (scripts/check-site-anchors.mjs).
Keep intentionally invalid syntax in prose or an ebnf/text block, clearly labelled as invalid. Raw qql/sql fences are rejected by the verifier, so runnable statements cannot silently bypass the executable contract.