Ground truth, 2026-08-01

projects/dkr-agency/concept-space-2026-08-01-video-corpus/GROUND-TRUTH-2026-08-01.md

What we are actually building, as of 2026-08-01

This document states the current, verified condition of the ShurIQ and DKR work: which systems run, which are specified but unbuilt, and which repositories and tools are real. It exists because an external agent (Manus) produced 23 video tutorials grounded in a picture of our stack that was wrong, and every downstream artifact inherited that error. Read this before writing anything that claims to describe our system.

Every claim below traces to a vault file. Where a thing is planned rather than running, it says so in those words.

The correction, stated plainly

An earlier agent read the starred and forked repositories on the jonnydubowsky GitHub account and treated them as the working system. They are not. Across 23 generated tutorials, graphify is named 97 times, knowledge-base-server-demo 78 times, obsidian-mcp 61 times, SimpleMem 46 times, mempalace 42 times, and NexAU 24 times.

None of those six repositories is part of the working stack. They are reference material and experiments. Building tutorials on top of them produced instructions that cannot be followed, because the tools they describe are not the tools we run.

The three-layer knowledge model

This is the core of the architecture and the thing most worth understanding correctly.

myKG is the producer and the typed store. It holds entities, typed edges, confidences, and attributes. Every concept space in the vault emits a myKG bundle: nodes.jsonl, edges.jsonl, schema.json, and knowledge_graph.ttl. Typed relationships live here and only here.

OKF (Open Knowledge Format) is the portable container. OKF is Google Cloud's format, version 0.1, released 2026-06-12. A bundle is a folder of Markdown files, each with YAML frontmatter whose only hard requirement is a non-empty type. OKF links carry no edge type; relationship meaning lives in prose. That poverty is deliberate on our side: it means an OKF bundle cannot carry the typed edges and second-order dynamics that myKG holds, so a bundle is a Layer 2 projection by construction.

Dotprompt supplies the verbs. A dotprompt input.schema is where an OKF record plugs in; output.schema writes records back. Dotprompt is already in production in the module gallery at projects/shur/report-grammar/module-gallery/prompts/.

The three compose. They do not compete, and OKF does not replace myKG. If OKF were abandoned tomorrow we would lose a serializer, not a system.

Why this matters for retrieval

Several videos in this corpus argue about RAG, vector databases, and graph memory. Our position is already settled in code: the vault of Markdown files is the system of record, myKG is the typed graph derived from it, and OKF is how that travels. We do not run a vector database as the primary retrieval path. Retrieval was audited across the whole system on 2026-07-24; the census of every place our agents look things up is at projects/dkr-agency/concept-space-2026-07-24-retrieval-grammar/.

The OKF toolchain, which is built and running

Located at projects/shur/okf/. Dependencies: pyyaml, plus the local claude CLI for the enrichment pass.

Tool What it does State
okf_mirror.py Tier 1 deterministic mirror. Walks a document folder, writes one OKF concept per .md into a parallel _okf/ bundle. Source documents are never touched. Idempotent via shuriq_source_sha256. Built, run on many folders
okf_extract_entities.py Tier 1 entity producer. Reads a myKG Obsidian vault and emits OKF concepts with REA and BMC typings from a documented 21-row class map. Preserves hand-authored concepts. Built
okf_enrich.py plus okf-concept.prompt Tier 2 dotprompt enrichment. Patches description and intent on weak concepts. Built
okf_persona_export.py Layer 2 persona bundle plus the deep model for the gated Worker. Built
okf_viz.py Self-contained D3 bundle visualiser, no external fetch. Built
shuriq-okf-profile.md The versioned shared standard: type vocabulary, extension keys, guards, conformance rules. Currently v0.5.1. Built

Usage is python3 okf_mirror.py <root>, which writes to <root>/_okf/.

The profile passed the openknowledgeformat.com validator with zero blocking errors.

The export firewall, in three parts

When a bundle leaves the team, three things protect it, and none of them is encryption:

  1. The format is too poor to carry typed edges or second-order dynamics.
  2. A deliberate export projection chooses which types ship and which extension keys are allowed.
  3. An authenticated rehydration endpoint sits behind the resource: URIs.

Export-safe extension keys: shuriq_source_path, shuriq_source_type, shuriq_source_sha256, shuriq_layer, shuriq_okf_generated, shuriq_rea_type, shuriq_bmc_cell, shuriq_bmc_variant, shuriq_bundle_role.

Never exported: anything matching sbpi* or dkr_*, and anything referencing typed edges or scoring internals.

A live demonstration of the gate runs at https://okf-persona-gate.jonny-a6b.workers.dev. Open routes serve Layer 2. The /rehydrate/<id> route returns 401 without a bearer token and the deep model with it.

What DKR means here

DKR is Engelbart's Dynamic Knowledge Repository: a body of knowledge continuously developed, integrated, and applied. The agent is the harness, the knowledge graph is the territory, and intent is the fuel. The canonical statement is projects/dkr-agency/DKR-SYNTHESIS-OUTLINE.md.

The governing model is Argyris and Schon: Governing Variable, then Action Strategy, then Consequences. The internet is good at single-loop correction, where you adjust the strategy, and bad at double-loop correction, where you interrogate the governing variable itself. DKR is built as a double-loop instrument. Where the large platforms build a profile about a person and never let them edit the governing variables, DKR puts those variables in the person's hands.

The DKR agent is not the personal-assistant tier that handles items and deadlines. It works on the quality and structure of what a person knows.

The operating loop, with honest status

NIGHTLY / WEEKLY PULSE
  Scout       find what is missing, by negative space      RUN TODAY
  Trailblazer map the environment and model intent         PROTOTYPE
  Social-Int  enrich the people in the picture             RUN TODAY
  SBPI        score the competitive structure              RUN TODAY
  Reports     daily, weekly, value-flow synthesis          RUN TODAY
  DKR agent   link new notes, raise legibility             PROTOTYPE

Scout uses negative-space methodology, which asks what we are not discussing rather than what we know, across absence, bridge, decay, and contradiction questions. The operations manual is projects/dkr-agency/guides/DKR-OPERATIONS-GUIDE.md.

SBPI, the scoring layer

SBPI is the Structural Brand Power Index. Two tiers, and they are never merged:

A client is one row in a stack-ranked set of their vertical, never scored alone. The canonical dimension registry is projects/shur/value-flows/sbpi-dimension-ontology-inventory.md.

The semantic layer is a Python package, shuriq_kg, with a TripleStore abstract base class and adapters for in-memory rdflib, Oxigraph over HTTP, and GraphDB over HTTP.

Only two of those three engines work today. GraphDB's licence key expired 2026-05-22 and every query returns a licence error. It does not answer on port 7200. The running store is Oxigraph. Say two engines, not three, until the licence is renewed. Corrected 2026-08-02 after checking the port directly.

Named graphs follow https://shurai.com/graphs/{vertical}/{week}. The store held 119,054 triples as of 2026-07-30. The nightly pipeline runs at 06:13.

What actually runs today

System Where State
ShurIQ Report Studio ~/Documents/projects/shuriq-report-studio/, deployed to shuriq-report-studio.pages.dev Production. Vite, React, Cloudflare Pages Functions, D1, Anthropic SDK
Report Engine Managed Agent Anthropic managed agent agent_01Uj1TbRtS5jAbLGNzpyKrT5 Live since 2026-05-29
Semantic layer shuriq_kg package plus Oxigraph Live, 119,054 triples. GraphDB is licence-expired and unusable
OKF toolchain projects/shur/okf/ Live
Content series content/build.rb and content/publish.rb, deployed to content-series-b6l.pages.dev Live, 13 registered series, 91 lessons
Slack agent projects/shur/slack-agent/, channel #shur-iq Live
Grammar gate projects/shur/report-grammar/grammar-gate.py Built, not in CI
Nightly SBPI pipeline scheduled, 06:13 Live

The work runs out of an Obsidian vault driven by Claude Code, with skills, agent specs, and Bases dashboards. It does not run out of a conventional application repository. That is the single biggest thing an outside agent gets wrong.

The tools that are genuinely in the loop

Obsidian (the vault is the system of record), Claude Code (the harness), InfraNodus (text network analysis and knowledge graphs, reached over MCP and REST), DEVONthink, mem0 and OpenMemory (semantic recall over a REST endpoint on port 8765), Cloudflare Pages and Workers (every deploy), Oxigraph (triples), and Excalidraw.

GitHub and Jira, stated exactly

This is the part most likely to be reported wrongly, so it is written without softening.

GitHub. The organization shuriq-lab exists at https://github.com/shuriq-lab, created 2026-07-28T17:56:18Z. Team plan, five seats, three filled. jonnydubowsky is the sole owner. AsianPelican (Alex Ishida) and nac70x7 (Nicholas Crabill) have accepted and are members, so the organization has three members and zero pending invitations. Confirmed against the live API on 2026-08-02. A secret team named core exists with no members. Two-factor authentication is required, repository creation is restricted to owners, and base permission is read.

The organization contains zero repositories. No repository name has been chosen. The only candidate on record is platform. This blocks the scaffold and everything under it.

Note one constraint discovered during setup: GitHub has no private-organization setting, so the organization profile page is always publicly visible.

Jira does not exist. There is no site, no project key, no epic identifiers, and no board. The design for it is written and the instance has never been created.

The specified Jira design, for when it is created:

The planned monorepo layout, which exists as a specification and as seed files, not as a repository:

<slug>/
  apps/         report-studio, command-center, atlas
  modules/      dashboard-design-studio (deferred), slack-agent, viz-studio
  engines/      kg, competitive-intel
  interfaces/   okf/
  registries/   channels.yaml, forms.yaml, readers.yaml, routes/<client>/*.yaml
  intake/       <slug>/manifest.yaml
  gates/        route-gate.py, template-gates/, grammar-gate.py
  .github/      ISSUE_TEMPLATE/, workflows/

Seed files that are written and ready to copy in on day one live at projects/shur/dev-sprint-1/monorepo-seed/. They include gates/route-gate.py, whose self-test passes 13 of 13 deterministically with no model calls, plus registries/channels.yaml (CH-01 through CH-12), forms.yaml (F-01 through F-20), and readers.yaml (R-01 only).

Decided constraints on the repository: no GitHub Projects boards, no hardcoded organization URLs, secrets tracked by name in a SECRETS.md inventory, and agent automation through a GitHub App rather than a machine user, because a bot account would consume one of five paid seats.

The delivery grammar the monorepo is organized around

Route = Channel x Form x Reader x Action, plus two gating fields, attenuates and evidence. Channel first, form last. A route declares a standing query rather than a payload. A dashboard is what a set of route declarations composes into. The claim that ties this to delivery: a route declaration and a Jira user story are the same object in two vocabularies.

Status: draft. Nothing here is signed under Schema-is-Law. Registries v0 hold 12 channels, 20 forms (11 built), and 1 reader. Zero real route declarations exist as files.

Sprint state

Sprint 1 is in specification, not execution. Preparation began 2026-07-17 and kickoff was set for 2026-07-28. The feature register holds 120 rows: 37 work today, 22 need a person, 61 are to build. Priority is empty on every row.

The order of work is: pick the repository slug, create the repository and seed the layout, land route-gate.py as the first pull request, run the kickoff session, build the sprint-1 cut, mount Jira, adjudicate registries, sign the grammar, extend style coverage, then the vertical intelligence block. Everything after step one is blocked on step one.

Roles

Person Role
Kristine Hagedorn (KG) Sprint lead: directives, scope, priorities, acceptance. Jira participant, not admin
Alex Ishida Design: wireframes, design language, renderer integration
Nicholas Crabill Front-end build and integration
Jonny Dubowsky Architecture, backend, endpoints, pull-request review and merge
Diana Horowitz Intake and pacing, review gates
Limore Shur Direction and client priority calls

Jonny decides everything that moves through the system. Everyone else proposes. There is no QA function, and whether to add one is open.

Writing standards

Every document names a reader and a style guide. The mapping is projects/shur/report-grammar/STYLE-REGISTRY.md.

Hard rules that apply to all of it: full ISO dates, never "June 2026" or "Q2 2026". No em-dashes. No inversion rhetoric of the "not X, but Y" shape; lead affirmative. No consulting abstraction the reader cannot point to. One thought per sentence. Say each point once. A list of blocked words is enforced by the gate below; the anatomical metaphor for a central organizing thing is one of them, and the replacement is "core".

The deterministic check is python3 projects/shur/report-grammar/grammar-gate.py <file-or-dir>. It globs *.html under a directory, so Markdown files must be passed by path. The multi-agent voice check is the shuriq-megaeval skill, and it is mandatory before anything external ships.

Naming and confidentiality

ShurIQ is in stealth. Do not name the product or framework in public material. Describe it by capability. The GitHub organization slug shuriq-lab is an accepted exception, decided 2026-07-28.

Client artifacts never expose internal methodology, system vocabulary, or self-audit. Content produced for a client publishes under that client's account.

Where the concept writing lives

Published and drafted concept posts are at content/series/<slug>/pathways/<NN-pathway>/<NN-slug>.md, built by content/build.rb and deployed to https://content-series-b6l.pages.dev. There are 15 series directories, 13 of which carry a _series.yml, and 91 lesson files: 6 published, 16 ready, 69 draft. Counted directly on 2026-08-02 by matching type: content_lesson.

The densest correct explanation of the architecture is the 08-composite-intelligence pathway of the shuriq-concept-flywheel series, which runs from intake as ontology induction, through REA as a value grammar and BMC as a canvas grammar, to SBPI as the scoring pass, OKF as the shared substrate, and Totem Persona as portable identity.

Concept-space research runs live at projects/dkr-agency/concept-space-*/, each with the same shape: intake/, analysis/, mykg/, _okf/, and site/.