Skip to content

SignalQL v0.5 — examples ​

Part of the v0.5 specification. Every query on this page runs against the reference object store fixtures/v05-objects-fixture.json; the queries are kept in fixtures/v05-query-fixtures.json, executed in the test suite, and available as playground presets.

The fixture ​

A small project, SignalQL, with one design document and what was made from it:

doc-storage-design        document    rev 1 (inferred) → rev 2 (verified)
  representations: original · summary · claims · embeddings
├── sum-storage           summary     summarized_from  doc-storage-design@1
│   └── note-storage-brief  note      generated_from   sum-storage@1
└── claim-stable-identity claim       extracted_from   doc-storage-design@2

mtg-storage-review        meeting     original-video · transcript (40 000 tokens) · summary
post-external-storage     web_page    external, untrusted; its original carries the instruction role
secret-storage-keys       credential  secret role
doc-legacy-layout         document    tombstoned
└── note-layout-migration note        derived_from     doc-legacy-layout@1
doc-other-storage         document    in another project
doc-id-scheme             document    mentions the same decision entity as doc-storage-design

Identity and revisions ​

signalql
GET OBJECT object://doc-storage-design

Returns revision 2: trust = verified, state = current. The file path is in metadata — it is not the identity.

signalql
GET OBJECT object://doc-storage-design AS OF "2026-07-15T00:00:00Z"

Returns revision 1 of the same object: trust = inferred. A revision changes state, not identity.

signalql
SHOW REVISIONS OF OBJECT object://doc-storage-design
revisiontrustsuperseded
2verifiedfalse
1inferredtrue

Representations ​

signalql
SHOW REPRESENTATIONS OF OBJECT object://mtg-storage-review
namemedia_typetoken_estimate
original-videovideo/mp4—
summarytext/plain600
transcripttext/plain40000
signalql
GET REPRESENTATION "summary" OF OBJECT object://mtg-storage-review

What went stale ​

The summary was written from revision 1 of the design. The design is now at revision 2.

signalql
FIND OBJECT WHERE state != current
object_idstatewhy
note-layout-migrationinvalidits source was tombstoned
note-storage-briefpossibly_staleits source's own source moved on
sum-storagestalepinned to revision 1; the source is at 2
signalql
FIND DEPENDENTS OF OBJECT object://doc-storage-design
object_iddepthrelationpinned_revisionstate
claim-stable-identity1extracted_from2current
sum-storage1summarized_from1stale
note-storage-brief2generated_from1possibly_stale

Lineage ​

signalql
TRACE OBJECT object://note-storage-brief
note-storage-brief@1                          state: possibly_stale
  generated_from   sum-storage@1              current
    summarized_from  doc-storage-design@1     stale (latest is 2)
signalql
TRACE CLAIM object://claim-stable-identity
claim-stable-identity@1                       state: current
  extracted_from   doc-storage-design@2       current   locator: §2 Identity

Context for a task ​

signalql
CONTEXT FOR "design SignalQL object storage" USING PROJECT "SignalQL"
BUDGET 32000 TOKENS PREFER CURRENT, VERIFIED WITH EVIDENCE

context://ctx_d73247c8d934cd364f4d22f2c10b3cea — 11 990 of 32 000 tokens:

objectrepresentationtokensstatetrustwhy
doc-storage-design@2original9200currentverifiedmatched all four terms; preferred
mtg-storage-review@1summary600currentverifiedmatched; the 40 000-token transcript does not fit
post-external-storage@1original1500currentuntrustedmatched three terms
claim-stable-identity@1original40currentverifiedreached from the design doc via extracted_from
sum-storage@1original400staleinferredmatched; ranks below current sources
note-storage-brief@1original250possibly_staleunknownmatched one term

Not included, with reasons: doc-other-storage (out_of_scope — another project) and secret-storage-keys (excluded_secret).

WITH EVIDENCE adds, among others: sum-storage@1 summarized_from doc-storage-design@1 — stale, so the consumer can see that one of its sources is out of date.

The untrusted post is included because nothing excluded it; its item carries roles: untrusted_external, instruction. To keep such content out:

signalql
CONTEXT FOR "design SignalQL object storage" USING PROJECT "SignalQL"
EXCLUDE UNTRUSTED, STALE, ROLE INSTRUCTION FROM UNTRUSTED_EXTERNAL

leaves the design document, the meeting, the claim, and the brief.

A small budget favours coverage over depth:

signalql
CONTEXT FOR "design SignalQL object storage" USING PROJECT "SignalQL" BUDGET 1000 TOKENS

packs four objects in their smallest forms — the design document as its 180-token claims — and leaves two out for budget.

The same question asked of the past:

signalql
CONTEXT FOR "design SignalQL object storage" USING PROJECT "SignalQL" AS OF "2026-07-15T00:00:00Z"

returns doc-storage-design@1, and the summary is still current.

Explaining a bundle ​

signalql
EXPLAIN CONTEXT context://ctx_d73247c8d934cd364f4d22f2c10b3cea

10 candidates → 5 seeds, 2 by expansion → 6 packed, 2 rejected, with each item's score breakdown (lexical, propagated, boosts) and retrieval path, and one reason per rejected object.

signalql
FIND OBJECT ABOUT "storage design" WHERE project = "SignalQL" AND role != secret

Objects ranked by relevance, with a score column.

Objects in the graph ​

Objects are graph nodes, so v0.4 operators work across objects and entities:

signalql
MATCH entity(document) -[mentions]-> entity(decision) AS OF "2026-09-01T00:00:00Z" RETURN entity_id

returns doc-id-scheme and doc-storage-design — two documents about the same decision.

Introspection ​

signalql
SHOW OBJECT TYPES
SHOW CAPABILITIES