Coherence Hub
Every system is built around code.
A few systems can thoroughly explain why that code exists, what's important, how the system works, what states it have, and which claims must be verified.
Coherence Hub is an IntentHub for software systems. Similar to GitHub, it is organized by project, but the main artifact is the version-controlled graph of intent[link:intent-graph].
The purpose is to answer the question:
How to quickly understand what the system is supposed to do?
The problem
Most of the system intent is trapped into code symbols today.
Some of it exist purely in tickets, pull requests, ADRs, old bugtrackers nobody cared to migrate from, Slack threads, WIP diagrams from 2019, onboarding notes, production incidents, and Pete's memory.
And the challenge for the Engineers is somehow to make it all coherent. One system model that everybody is working on.
A new engineer
An agent can scan the repository and still miss the product constraint that explains the shape of the implementation.
A reviewer can inspect a diff and still not know which user outcome, invariant, or system rule the change is supposed to preserve.
GitHub stores how the code changed.
Coherence Hub should show what the change means.
Core model
The Hub has two primary graphs.
The intent graph describes desired outcomes:
- specifications
- acceptance criteria
- constraints
- design decisions
- risks
- dependencies
- relations between claims
The system state graph describes what the system knows and changes:
- entities
- attributes
- invariants
- state transitions
- observable effects
- before and after snapshots
- evidence that a transition happened
Together, these graphs form an implementation-independent model of the system.
Once this model exists, the implementation becomes replaceable.
A team can build the same system in Ruby, Rust, Elixir, TypeScript, Kotlin, Go, or something else, because the important part is no longer trapped inside one codebase.
The important part is the model of intent and state.
Code becomes one possible realization of that model.
What the Hub stores
A project in Coherence Hub should contain the smallest useful explanation of a system.
Not everything.
Not every thought.
Not every meeting note.
Only the durable structure needed to understand and evolve the system safely.
At minimum, a project should contain:
- specifications
- acceptance criteria
- system state models
- relations between specifications
- links to code, tests, documents, and external systems
- verification and evidence records
- historical revisions of the graph
This creates a stable object that both humans and agents can inspect.
A developer should be able to ask:
What behavior is this module responsible for?
A product person should be able to ask:
Which user outcome does this change affect?
A reviewer should be able to ask:
What claim is being changed, and what evidence says it still holds?
An agent should be able to ask:
Which slice of the system model do I need before touching this code?
Project view
A project would live at:
hub.usecoherence.dev/{owner}/{project}
A project page should provide a web interface for exploring:
- specifications and acceptance criteria
- system state models
- relations between specifications
- specification slices
- editable Coherence DSL
- code locations and tests linked to individual claims
- generated code graphs
- verification and coverage results
- historical revisions of the intent and state graphs
The same project should remain accessible through the CLI, TUI, and public API.
The web interface is not a replacement for local tools.
It is another client for the same underlying model.
Repository integration
Repository import is useful, but it is not the product.
The product is shared system understanding.
A repository is only one source of evidence.
The minimum repository shape can remain simple:
.coherence/
├── project.toml
└── specs.jsonl
From there, the Hub can discover more.
It can detect languages used by the project, run SCIP indexers, import the specification graph, connect specifications to code locations, and generate derived artifacts.
The user should not need to configure the entire analysis pipeline before seeing anything useful.
Add the repository.
Let Coherence inspect it.
Show the intent graph first.
Then show how the code connects to it.
Change review
A normal pull request shows a code diff.
A Coherence change review should show:
- the intended outcome
- the specification diff
- the state model diff
- acceptance criteria added, changed, or removed
- relations added or removed from the graph
- code locations affected by the change
- claims whose verification status changed
- the minimal system slice required to understand the change
This turns a pull request from:
Here are the lines that changed.
into:
Here is the intended outcome, the system state affected by it, the code that implements it, and the evidence that verifies it.
Initially, Coherence Hub does not need to replace GitHub or GitLab pull requests.
It can attach analysis to an existing upstream pull request, publish checks, and provide a richer review page.
Later, Coherence changelists may become native review objects of their own and materialize into branches and commits in the connected repository.
Specification issues and pull requests
Specifications are version-controlled project data.
They should support the same collaboration model as code:
- issues proposing missing or incorrect behavior
- pull requests updating specifications
- inline review comments
- approvals
- automated checks
- historical blame and revision browsing
A specification update may exist without an immediate code change.
That is valid.
It means the team learned something about the system before implementing it.
A code change may also reveal that the specification is incomplete.
That is valid too.
It means the implementation discovered missing intent.
Both are changes to the same project model.
Project discovery
Public projects containing a valid .coherence directory can be indexed automatically.
This creates a discovery layer for Coherence-compatible systems:
- browse public intent graphs
- inspect how other projects structure acceptance criteria
- explore reusable rules and architectural constraints
- find projects with unusually strong specification coverage
- fork an existing project together with its system model
GitHub lets us discover code.
Coherence Hub could let us discover explicit software intent.
That matters because code reuse is not enough.
A library without its intent is only partially reusable.
A system with its intent graph, state model, constraints, and evidence is much easier to understand, adapt, and rebuild.
Authentication and permissions
The Hub should support:
- GitHub authentication
- GitLab authentication
- email authentication
- public SSH keys for CLI and TUI access
Private repositories should mirror the permissions of their connected provider.
A user who cannot access the upstream repository must not be able to inspect its specification graph, state model, code index, generated artifacts, or change history through Coherence Hub.
Intent is project knowledge.
Project knowledge needs the same permission boundaries as source code.
Architecture
The Hub is primarily a control plane over intent graphs, state graphs, repositories, and generated artifacts.
It needs to coordinate:
- repository synchronization
- webhook processing
- SCIP indexing
- specification imports
- state model imports
- graph materialization
- asynchronous verification jobs
- pull request checks
- live review updates
- API and client sessions
Elixir, Erlang, and Phoenix are a natural fit for this workload: many concurrent projects, supervised background processes, streaming updates, and long-running indexing pipelines.
The Coherence runtime itself does not need to be rewritten in Elixir.
The Hub coordinates existing tools and stores their results.
First useful version
The first useful version does not need to replace GitHub.
It only needs to let a project publish its intent graph, state model, acceptance criteria, links, and evidence in one browsable place.
A small first version should:
- import a public GitHub repository
- read
.coherence/project.tomlandspecs.jsonl - render specifications, acceptance criteria, links, slices, and DSL
- render a basic system state model
- connect claims to code locations when links exist
- compare two project revisions
- show intent, state, and code changes together
- expose the project through a public API
Native issues, native pull requests, private repositories, GitLab integration, project discovery, and richer verification workflows can follow later.
The smallest valuable product is not another Git forge.
It is a place where a system becomes understandable as a version-controlled graph of intent, state, implementation, and evidence.
GitHub stores the software.
Coherence Hub stores the reason the software exists.