Skip to content

AST JSON Schema

The formal JSON Schema for AST nodes lives in the repository at:

Current schema ID: https://signalql.org/schemas/signalql-ast-v0.2.schema.json
Language version: v0.2 (schema version tracks spec version, not npm package semver).

Examples

Valid retrieve AST (v0.2)

json
{
  "kind": "retrieve",
  "source": { "kind": "entity", "name": "work_item" },
  "where": [{ "field": "signal(risk_score)", "op": ">", "value": 0.7 }],
  "traverse": { "relationship": "depends_on", "depthLte": 2 },
  "trend": null,
  "return": ["entity_id", "signal(risk_score)"]
}

Valid sequence AST (v0.2)

json
{
  "kind": "sequence",
  "steps": ["pr_opened", "no_activity", "stale"],
  "within": "3d"
}

Invalid example (domain-specific interpretation in core)

json
{
  "kind": "retrieve",
  "source": { "kind": "entity", "name": "work_item" },
  "where": [{ "field": "blocked", "op": "=", "value": true }],
  "traverse": null,
  "trend": null,
  "return": ["entity_id"]
}

blocked is a business interpretation label and should not be hardcoded in SignalQL core semantics. Use external derived signals instead.