A company brain with a second axis

Relevance is not a property of knowledge. It’s a property of you.

Other knowledge bases rank a fact once and serve it to everyone. We compute it live, per person, from your distance to the fact and how well corroborated it is.

See it think
How’s the Atlas project going?

Asking as

Answer

Atlas is on track for your sprint. #4821 closes the auth blocker and staging is green again — one infra flake is still hitting two suites.

Context assembled4 of 8 · threshold 0.35
  • Auth service unblocked — PR #4821 closes the sprint-14 blockerd 0.20 · c 0.88 · w 0.72 · PR thread
  • Sprint 14 notes: staging green after the flake fixd 0.35 · c 0.92 · w 0.65 · sprint notes
  • Atlas is a customer-facing migration, GA targeted this yeard 0.90 · c 0.95 · w 0.39 · all-hands recap
  • Standup: intermittent infra flake still blocking two suitesd 0.50 · c 0.61 · w 0.37 · standup transcript
  • Atlas infra spend trending 18% over forecastd 1.70 · c 0.79 · w 0.14 — too far to be relevant
  • Board pre-read v3 lists Atlas as green with one cost riskd 2.40 · c 0.84 · w 0.08 — leadership channel, out of reach
  • [withheld — a classified fact exists here]d 2.90 · c 0.90 · w 0.05 — classified · not on allow-list
  • CEO sync: Atlas headcount ask deferred to next quarterd 3.10 · c 0.71 · w 0.03 — leadership channel, out of reach

The claim

Every company brain treats importance as fixed. Tagged once, ranked once, embedded once — so two people asking the same question get the same retrieval.

Relevance belongs to the relationship, not the document. The CEO’s strategy notes matter enormously to the VP who reports to her, and almost not at all to an engineer three hops away asking about their own sprint. Same node, different weight.

So we compute the weight instead of storing it. Every query recomputes it per person, from two numbers the graph already knows: your distance to a fact, and how well corroborated it is.

Built on Hexclave

We didn’t rebuild identity, org data, or encrypted storage.

Hexclave already knows who your people are, how they’re organized, and how to keep a secret. We sit on top of it instead of re-deriving any of that — four concrete integration points, each one narrow on purpose.

Identity & API keys checkApiKey() validates Hexclave user- and team-scoped keys. Hexclave-derived headers are only trusted when Hexclave is configured.

Org graph ingestion syncHexclaveOrg() pulls people and org metadata from Hexclave, then mirrors reporting lines, titles, and projects into local SQLite via getGraph().

Authorization inputs Hexclave permissions and org-derived access are unioned with the app’s existing allow-lists — never replacing them, so Hexclave can’t accidentally remove access someone granted by hand.

Protected storage Vault data sits inside Hexclave’s server-side envelope encryption. lib/vault.ts adds its own AES-256-GCM layer on top, so Hexclave guards the storage layer and the app controls the inner ciphertext.

The division of labor, end to end.

Hexclave supplies the ground truth. The application mirrors, combines, and re-encrypts it — the scoring logic you saw above never had to change.

Hexclave

  • Validates identities & API keys
  • Supplies org structure & metadata
  • Supplies permission information
  • Provides encrypted server-side storage

Application

  • Mirrors org data into SQLite
  • Unions Hexclave permissions with local allow-lists
  • Retrieves using unchanged local scoring logic
  • Re-encrypts vault contents with lib/vault.ts

Axis one · distance

Two people, one question, two correct answers.

Distance is not the org chart. Pure hierarchy misses the engineer pairing with the CEO all month and over-weights the VP two departments away. We compose it from three signals instead, and the reporting line is only one of them.

Reporting distance how many hops separate you from the people attached to a fact.

Collaboration frequency the inverse of how often you two actually appear in the same threads, reviews, and calls.

Project overlap how much a fact’s tags intersect the work you are currently attached to.

An engineer can be closer than a VP.

Priya is four org hops from the CEO with no reporting line, but she has been in the Atlas thread daily for a month. Marcus outranks her from two departments over. The composite puts her closer — correctly.

distance = 0.12 · hops + 0.18 · (1 / collaboration) + 0.9 · (1 − overlap)
PersonHopsCollabOverlapDistance
Priya · Engineerdaily in the Atlas thread40.820.900.79closer
Marcus · VP, other orgoutranks her, unrelated work20.090.153.00

Axis two · confidence

A rumor does not become true because a VP repeated it.

Distance tells you whether a fact is yours, not whether it is true. So every claim carries a second score, computed from the graph: how many independent sources converge on it, how old it is, and whether later events confirmed or contradicted it. Seniority is not an input.

confidence = 0.15 + 0.28 · ln(1 + sources) − decay

Claim: “Enterprise customers are hitting a rate limit during bulk import.”

Confidence0.28 / threshold 0.50

Below the threshold — held out of everyone's context, however close they are.

Independent sources

When two accounts disagree, both are shown.

The cheap thing is to pick the better-corroborated version and answer confidently. We surface the disagreement instead, with both provenance trails, and let the reader decide.

Q3 launch is confirmed — signed off in Monday's leadership sync.

0.74

leadership notes · 2 independent sources

Q3 launch slipped to Q4 — the infra migration is not ready.

0.41

eng lead DM · 1 source, but closest to the work

Surfaced as a conflict. Both claims are reported with their scores rather than resolved. Higher confidence is more corroboration, not authority — and the weaker account here comes from the person nearest the infrastructure.

Confidentiality

Soft decay handles most of it. A hard floor handles the rest.

Weight already falls off with distance, so most confidential material never reaches the wrong person — not by a rule someone wrote, but as an outcome of the arithmetic. Anything marked classified gets a hard floor on top: dropped from every context window unless the asker is on the allow-list.

An engineer never reaches the C-suite leadership channels sit many hops from an IC, so a general question about the company scores them below threshold. Nobody wrote that rule.

The floor is unconditional a classified node is dropped before scoring. Weight 0.9 does not buy access; only the allow-list does.

Declared, never paraphrased the model is told a fact it cannot read exists, so it declines instead of inventing. There is nothing to leak — the text never entered the prompt.

Exclusion happens before the prompt is built.

  • Removed at assembly time

    Classified nodes are filtered out while context is gathered. No instruction tells the model to keep a secret — the secret was never in the window.

  • Acknowledged, not described

    The context records that a withheld fact exists. The answer can say so; it cannot summarize or reconstruct it.

  • Testable, not aspirational

    The guarantee is a filter over a list, so you can assert it: a classified node must never appear in the context of a person off the allow-list.

assembled context · marcus

  • Atlas infra spend trending 18% over forecast0.53
  • Board pre-read v3 marks Atlas green0.65
  • CEO sync: headcount ask deferred0.39
  • 1 classified fact exists on this topic and was withheld

weight 0.67 — dropped anyway, allow-list only

Axis zero · sources

Everywhere your company already talks becomes one graph.

Every node you saw above — a PR thread, a board doc, a standup transcript — was pulled live from the tools your team already uses. Nothing re-tagged, nothing re-typed.

Slack
N
Notion
Google Drive
Gmail
GitHub
31
Google Calendar
Figma
Linear

One question, one graph, a different correct answer each time.

Nothing is tagged by hand or ranked by seniority, and every answer can show you the rows it used and the rows it refused.

weight(person, node) = confidence(node) × relevance(distance(person, node))