query_concepts
Filter ontology concepts using predicate expressions like kind=capability AND NOT has(elements) to find matching nodes.
Instructions
Typed filter DSL — search vault nodes by predicate. Built for saved-filter / smart-list cases that find_path (BFS) cannot answer, such as "which capabilities have zero elements?", "stub-only nodes in domain=auth", or "has(depends_on) excluding vault-readme".
Grammar (case-insensitive keywords, whitespace-tolerant): filter := atom (AND|OR atom)* atom := NOT? predicate predicate := key=value | key!=value | has(key)
Keys: kind / domain / slug / title for equality, plus any graph frontmatter array key for has(...). kind and has(...) keys are enum-validated with nearest-value hints.
Example: kind=capability AND domain=auth AND NOT has(elements) — capabilities under domain auth that have zero elements (= unfinished caps). When total=0, the response includes a growthHint — it names any referenced kind/domain that has 0 nodes in this vault, or nudges you to loosen the filter.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Positive integer max rows to return. Defaults to 100, max 500. | |
| filter | Yes | Filter expression. Example: kind=capability AND has(elements). Supports NOT / AND / OR. Wrap values containing whitespace or special characters with "..." or '...'. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| total | Yes | ||
| filter | Yes | ||
| limited | Yes | ||
| matches | Yes | ||
| parsedAs | Yes | ||
| growthHint | No | Only present when total=0 — flags a referenced kind/domain with 0 nodes in this vault census, or a generic loosen-the-filter nudge otherwise. |