Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

Research challenges

Updated

These are adversarial/exploratory research briefs — focused assignments that can be handed to a fresh agent with no prior context bias. Each challenge:

  • Targets a specific architectural assumption, decision, or design
  • Asks the agent to critically assess, stress-test, or find alternatives
  • Is grounded in first principles and the project’s philosophical pillars
  • Thinks long-term and large-scale — not just “does this work today” but “does this hold at 100K notes, 50 frameworks, 10 years from now”
  1. Pick a challenge from the list below
  2. Hand it to a fresh agent (one with no prior conversation context about this project)
  3. Point the agent at the KB (docs/src/content/docs/) for context
  4. Let it research, critique, and report
  5. Log findings in zz-log/ if they surface decisions or insights worth preserving

Every agent that works on a project accumulates context bias — it starts agreeing with past decisions because it helped make them. A fresh agent given only the KB and a challenge brief can find blind spots that embedded agents can’t see.

BucketCountWhere the briefs liveSidebar group
Open20this folder (zz-challenges/)listed under Challenges in ascending Ch order
Resolved and archived25zz-challenges/archive/the Archived group at the bottom

A challenge is open while its brief sits in this folder — regardless of whether a deliverable has already landed. It becomes archived only when a dated zz-log/ synthesis entry records the verdict and the brief is moved to archive/ with a resolution callout. Folder membership is the source of truth; this page mirrors it.

Every open brief carries a Status: OPEN callout at the top saying whether a research pass has run yet.

Numbering note: Ch 17 was never filed. It was floated in the 2026-05-02 research-wave log (reactive/incremental computation; LinkML scope) and parked pending user signal, so the sequence skips from 16 to 18.

ChChallengeFiledResearch status
01Are the ontology diff primitives truly atomic?2026-04-10Not run
02Architecture stress test at scale2026-04-10Not run
03What’s the actual competitive landscape?2026-04-10Not run; partly addressed by Ch 19 §1 — archive-eligible on owner signal
04First principles audit2026-04-10Not run; partly addressed by the Foundation synthesis + Ch 20 dialog — archive-eligible on owner signal
21Build vs buy vs compose the ETL engine2026-05-03Not run
27Bases query layer architecture2026-05-073 deliverables landed 2026-05-07; synthesis log open
28Bases query layer follow-on stress test2026-05-073 deliverables landed 2026-05-07; synthesis log open
29Ontology-web query verbs — adversarial validation2026-05-08Deliverable landed 2026-05-09; synthesis log open
30View shape taxonomy2026-05-08Deliverable landed 2026-05-09; synthesis log open
31Recipe query: block schema design2026-05-082 deliverables landed 2026-05-08; synthesis log open
32Intuitive query UX2026-05-082 deliverables landed 2026-05-08; synthesis log open
33Multi-modal query engine landscape audit2026-05-08Deliverable landed 2026-05-09; synthesis log open
34Streaming / chunked query execution2026-05-08Not run
35Graph→tabular bridging (rerun of Ch 10)2026-05-08Deliverable landed 2026-05-09; synthesis log open
36Query language (rerun of Ch 12)2026-05-08Deliverable landed 2026-05-09; priority downgraded per D2 lock
37Tier 2 scale model (rerun of Ch 18)2026-05-08Deliverable landed 2026-05-09; synthesis log open
39Is there a unified-model spine — and is it CRI?2026-06-01Not run — gates corpus ingestion
40Control, risk, or obligation as the backbone entity?2026-06-01Not run — depends on Ch 39
41Is internal audit a spine element or a lens?2026-06-01Not run — depends on Ch 39/40
42Variable-depth hierarchy generation2026-06-14Not run — follow-on to Ch 22

2026-04-10 (Ch 01-04) — the original first-principles set: break the diff primitives, stress the architecture at scale, map the competition, audit the KB for sloppy thinking.

2026-05-03 (Ch 21) — strictly upstream of Ch 20. Ch 20 settled what shape the import primitive takes; Ch 21 asks whether the primitives come from our codebase or someone else’s (build / adopt / compose), with opportunity-cost, governance, and sustainability lenses.

2026-05-07 (Ch 27-28) — v0.1.6 prerequisites. Bases can’t do joins, recursion, anti-joins, or multi-file aggregation; junction notes reify edges as Bases-queryable files but cross-junction aggregation still hits the flat-YAML wall. Ch 27 designs the routing; Ch 28 stress-tests materialization lifecycle, registerBasesView-vs-codeblock, mobile/Publish parity, and audit-trail implications.

2026-05-08 (Ch 29-37) — the ontology-web alignment review found the synthesis log had drifted GRC-coded and that several v0.1.7+ commitments rested on never-validated assumptions. Ch 29-34 are new questions; Ch 35-37 are reruns of archived Ch 10 / Ch 12 / Ch 18 under the ontology-web framing.

Rerun convention: original briefs stay archived as historical record. Each rerun is a NEW brief with a fresh Ch number that anchors to the original as predecessor and frames “what’s different now”. Original deliverables are preserved verbatim; reruns produce NEW deliverables that may revise prior verdicts.

2026-06-01 (Ch 39-41) — pre-ingestion gate for the unified model. The full security & GRC framework corpus is assembled, and the unified-model assumptions (most pointedly “is CRI the spine?”) were inherited rather than tested. Run roughly in order 39 → 40 → 41.

2026-06-14 (Ch 42) — surfaced while making the system model’s render() diagram honest: layout assumes known depth, so variable / ragged-depth hierarchy is not first-class. Current state in the open-question log.

2026-08-19 (Ch 45) — the goal driving every milestone since v0.1.1 (Crosswalker running resiliently at the owner’s organization) had never been decomposed. Filed after a sequencing question in the P-queue sitting turned out to have no written answer. Deliberately a subtraction exercise: separate real blockers from irritations. Note it carries an owner-input section; parts cannot be answered from the repository.

2026-08-19 (Ch 44) — filed from the re-entry sprint that landed the July work. Two gaps found while running the gates: plugin E2E never runs in CI, and no screenshot anywhere is diffed against a baseline. Framed deliberately as coverage/detection/cost rather than as a framework comparison.

2026-07-11 (Ch 43) — Act 2 of the five-act lifecycle arc (“your ontology updates and your world survives”). The match-pass / impact-pass / review / apply sketch is architect-drafted, not stress-tested against how NIST, MITRE, and CIS actually ship version deltas.

2026-08-26 (Ch 46) — filed after six framework recipes were rewritten in one sprint and every one of them hit the transform grammar’s ceiling. Framed deliberately at the level of data shapes rather than file formats, to rule out the filter-wishlist answer. Framed and shipped 2026-08-27; the brief is archived below.

Briefs resolved by a research deliverable and a corresponding decision log. Each is preserved verbatim (still re-runnable) and carries a resolution callout pointing at the resolving log. They live in zz-challenges/archive/.

ChChallengeResolvedVerdict in one line
05The transformation problem2026-05-03Resolved by the Ch 20 import-primitive synthesis: data has fundamental forms; ETL is tree-to-tree mapping; primitives are tree transducers
06Pairwise vs synthetic spine2026-05-01Deferred-spine hybrid: pairwise-first with an optional inheritable spine, SCF as default, SSSOM-on-markdown persistence
07Link metadata / edge model2026-04-10Junction notes (edge-as-note reification) with a 13-field schema isomorphic to OSCAL by-component
08Git history audit-trail tenability2026-05-02Augment-not-replace (TSA + WORM + cert-export at Tier 1); v0.1 default = T1 git + signed commits
09UUID / CWUUID cross-cutting strategy2026-05-02UUIDv7 + sha256 CIDs + CURIEs + ORCIDs adopted; CWUUID display-only
10Graph→tabular bridging engine2026-05-02Resolved via cascade (Ch 11 + Ch 14 + Ch 16 → v0.1 stack pivot); rerun as Ch 35
11Tier 2/3 engine deep survey2026-05-023 fresh-agent deliverables + Ch 14 follow-on; layered Tier 2 + Fuseki/oxigraph-server Tier 3
12Datalog vs SQL for SSSOM chain rules2026-05-022 convergent deliverables; Datalog (Nemo) primary + OxO2 architecture; rerun as Ch 36
13Modern attestation primitives2026-05-02Confirms Ch 08 and adds in-toto; absorbed into the v0.1 audit decision
14Missed engines evaluation2026-05-02Keep the Ch 11 layered Tier 2 stack + add Tier 2-Lite + Comunica federation
15Audit-trail alternatives without external git tooling2026-05-024-tier model with OpenTimestamps as the T2 default
16Tier 3 stack reconsideration2026-05-02Demote Apache AGE; promote Fuseki + oxigraph-server
18Tier 2-Lite SSSOM rule subset and scale ceiling2026-05-02Rule expressivity matrix + ~100K mapping ceiling; Tier 2-Lite promoted to default-bundled v0.1 sidecar; rerun as Ch 37
19Over-engineering stress test2026-05-02”Radically simplify with a narrow tiered escape hatch” — drove the v0.1 stack pivot
20Import primitive formal foundation2026-05-033 deliverables + dialog; transformation-algebra layer (RML retargeted, 5-6 primitives, MTT-justified) plus boundary-semantics layer (ref/resolve/bind/seal)
22Target-structure expressivity2026-05-04Closed grammar of 5 mechanisms × ordered layout × also_emit × graph_edges; render(Recipe, ConceptIdentity) → Address as the single coupling point (commitment #2)
23Bundle engine implementation language2026-05-04Path A (pure TS in-plugin) for v0.1; Path C (optional external producer) reserved for v0.5+ (commitment #3)
24Turso / libSQL evaluation2026-05-04REJECT all three questions; stay on @sqlite.org/sqlite-wasm + sqlite-vec (commitment #4)
25Two-mode import architecture and streaming2026-05-05Both modes supported: bundled projector (Mode 1) and direct Tier 1 emission (Mode 2); no Tier 0.5 intermediate schema. Filed and resolved the same session
26Transform engine depth + input formats2026-05-05In-plugin transform stops at v0.3 (closed 7-filter set + JSONata 2.x); JSONaut / ChunkyCSV stay external Mode 1 feeders; JSONL ships as a v0.2 input format. Filed and resolved the same session
38Query state location + folder-note pattern2026-05-18Layout B+ (_crosswalker/queries/<slug>/index.md + explicit ![[<slug>/view.base]] embed); literal folder-note magic-embed rejected — see synthesis log
43Version migration — the semantic-diff loop2026-08-27Release change is re-attestation first; before-state lives on the attestation; structural lineage is a release-to-release crosswalk using superseded_by — see deliverable A · deliverable B · synthesis
44E2E testing strategy2026-08-24Keep the Playwright/WebdriverIO split; adopt visual regression narrowly with maintenance budgets; stay serial until the harness is isolated; tiered CI per surface — see deliverable · synthesis
45Org rollout readiness2026-08-21A controlled desktop pilot is viable now; automated audit-defensible evidence-gap reporting is not — see deliverable · synthesis
46The transform engine and the shapes of data2026-08-27Transformation is not one thing, so it does not get one home: value-shaping stays in templates, collection-shaping extends the source contract through optional source.where and source.joins, JSONata adopted only at those sites, template grammar frozen — see framing · delivery