Git Extensions for Knowledge Graphs
Rob Kunkle
x/twitter: @lux
linkedin: linkedin.com/in/robkunkle
ASIMOV DevLabs — Circuit Launch, Mountain View
April 2, 2026
We built repolex—a parser that turns codebases into RDF knowledge graphs, queryable with SPARQL.
But then we noticed something:
A Rust CLI that turns any git repo into a SPARQL-queryable knowledge graph.
Not just code repos. Any repo with markdown, YAML frontmatter, @mentions, [[wikilinks]].
Commits, authors, timestamps, parent relationships—all as RDF.
?commit git:author "Rob"
Directory structure, blob hashes, file paths at any ref.
?blob git:path "src/main.rs"
YAML frontmatter from markdown files—structured data, extracted automatically.
?doc fm:solo.type "Task"
@mentions and [[wikilinks]] extracted from document bodies and commit messages.
?doc lex:mentions ?agent
git-lex doesn't copy your data into a separate database. It reads git directly.
# Commits become triples
git lex log
# File tree becomes triples
git lex tree
# Refs become triples
git lex refs
# Frontmatter extraction
git lex extract
# Sync everything into the store
git lex sync
# Query it all
git lex query "SELECT ..."
Virtual triples from git + extracted triples from content = one unified graph.
Kits define document types, properties, and ontologies for different use cases.
Personal knowledge management. Memory, Research, Contact, Note, Decision, Task.
Multi-agent team coordination. Agent cards, Projects, Messages, Decisions.
Each kit ships with:
git lex create <type>Layered ontologies. Each level builds on the one below. Kit authors extend without touching core.
Every git-lex repo has a cryptographic identity—its first commit SHA.
# .lex/identity.yml
identity: e3d71e7f0e022e54d3cdfb3100862f21f10913ad
created: 2026-04-01T07:32:44Z
kit: solo
Agents join squads by exchanging tickets—mutual identity bindings verified by commit hash.
# .lex/tickets/7r1pl3f0rc3.ticket
squad_name: 7R1PL3F0RC3
squad_identity: 92d5c57d40b0e1443897f07ed17c4baf773de887
agent_name: W3BL0RD
agent_identity: e3d71e7f0e022e54d3cdfb3100862f21f10913ad
joined: 2026-04-01T07:32:55Z
No external PKI needed. Git's content-addressing gives us immutable, verifiable identity for free.
SHACL shapes validate your documents at commit time via a pre-commit hook.
solo:TaskShape a sh:NodeShape ;
sh:targetClass solo:Task ;
sh:property [
sh:path solo:taskStatus ;
sh:in ("todo" "in-progress"
"done" "blocked") ;
] .
$ git commit -m "add broken task"
SHACL validation failed:
task/foo.md
solo:taskStatus must be one of:
todo, in-progress, done, blocked
Commit rejected.
Built on rudof. Your ontology isn't just documentation—it's enforced at the gate.
Write naturally. git-lex extracts the relationships.
---
title: "Ship the demo"
solo:
type: Task
taskStatus: in-progress
---
Need to coordinate with @spaceGOAT
on the [[parser pipeline]].
Also cc @TR1P.L3X for ontology review.
<task/ship-demo>
a solo:Task ;
fm:title "Ship the demo" ;
solo:taskStatus "in-progress" ;
lex:mentions <agent/spaceGOAT> ;
lex:mentions <agent/TR1P.L3X> ;
lex:linksTo <parser-pipeline> .
$ git lex sync
Synced in 107.7ms:
Virtual: 715 git + 148 frontmatter
Sync /sync/f1066a92/: +109 assertions, -0 retracted (654 quads)
Total sync graphs: 1
Store: .lex/oxigraph
$ git lex query "SELECT ?name ?type WHERE {
GRAPH ?g { ?doc fm:solo.type ?type ; fm:title ?name }
} ORDER BY ?type"
name | type
------------------------------|----------
"TripleForce Team Roster" | Memory
"repolex-www stack" | Memory
"Nia (trynia.ai)" | Research
"TR1P.L3X" | Contact
"spaceG.O.A.T." | Contact
Every extracted triple carries its provenance—which file, which blob hash, which extractor produced it.
# The assertion
<doc/task-1> solo:taskStatus "in-progress" .
# The provenance (RDF 1.2 triple term annotation)
<< <doc/task-1> solo:taskStatus "in-progress" >>
lex:filePath "task/ship-demo.md" ;
lex:blobHash "a1f8e2..." ;
lex:extractor "frontmatter" .
Append-only sync graphs with retraction tracking. You can trace any fact back to its source.
git-lex isn't just a tool. It's how we run our team.
Human founder. Carbon-based. Caffeinated.
git-lex builder. Rust + oxigraph engine.
Ontology architect. OWL/RDFS/SHACL.
SPARQL specialist. Graph truth-teller.
Core parser engineer. TreeSitter → RDF.
MCP expert. Protocol bridge builder.
Language server polyglot. 13+ languages.
Webmaster. Makes knowledge beautiful.
7 Claude agents + 1 human. Each has an identity repo. The squad repo is their shared knowledge graph.
Each agent has a solo repo (personal knowledge graph) linked to the squad repo (shared knowledge graph) via identity tickets.
Let's see it live.
Shipped
Rust CLI • Virtual git triples • Frontmatter extraction • @mention / [[wikilink]] extraction • SHACL validation at commit • Sync graphs with provenance • Identity + squad join • Solo + Squad kits • oxigraph SPARQL store
In Progress
MCP server (git-lex-mcp) • LLM extraction • Semantic diff/merge drivers • Claude Code hooks for inbound context
Next
Cross-repo federation • Public knowledge graph registry • More kits
Git is the world's most popular version control system. What if every git repo was also a knowledge graph?
Agents that can query instead of grep. Documents that validate against schemas. Identity that's cryptographic and built on git's own primitives.
Git for data. Git for knowledge. Git for agents.
github.com/repolex-ai/git-lex
Rob Kunkle
x/twitter: @lux
linkedin: linkedin.com/in/robkunkle
rob.kunkle@gmail.com
RDF 1.2 SPARQL SHACL OWL Rust