a private walkthroughv1 · planning

The old bees feed the young ones with pollen.


A persistent memory of your own organization and of every organization you work with — in one graph, kept as evidence.

the problem

a normal Tuesday

She leaves in March. Nothing was written down where it would survive her.


Not because she wouldn't tell anyone — because there was nowhere to put it that outlived the deal, the thread, or her inbox.

Every company has a Maria. And every company pays for her twice: once to learn it, and once to learn it again.

what Maria knew

who really decides · what the works council blocks · why the 2023 pilot died · who signs · who was burned before

what is left in March

two facts survive, both in somebody's inbox

what it is

A living understanding of your own organization and of every organization you work with — in one graph, which anyone can inherit instead of repeating the research others have already done.

not a CRM · not a wiki · not a chatbot

the vocabulary, in bee

inside the hive

The product speaks bee. The system doesn't.

One language for the people who use it, one for the people who read the code. The glossary maps them, so nothing has two names at once.

nectar → ripening → honeycomb → honey
The Queen

Your organization. The hive exists for it.

The Hive

Your own organization — the inside.

Fields

The organizations you work with — the outside.

The entrance

Everything you send arrives at one door.

Guards

They check every knock. Nobody gets a pass.

Foragers

They fly out to fetch: mailboxes, calendars, APIs.

Nectar

Raw information: mail, chats, calls, files.

Ripening

Turning nectar into structured records.

Honeycomb

Your storage: one cell per fact, sealed, labelled.

Pollen

The knowledge that makes people grow.

Honey

The outcome: revenue won.

Waggle

Showing the others where the good stuff is.

glossary.md
inside and outside

one graph, both sides

Your own organization is not a separate system. It is the other half of every answer.

The Hiveyour teams, roles, products, promises
Field: Acmean organization you work with
  • Same rules on both sides: who said what, when, and where it came from.
  • The edge is the value, not the node: who of yours knows whom there, what you already delivered, what worked at one client for the next.
  • No leaking: external contacts never see your Hive, and no field ever sees another field. Every answer is given to a person, from what that person may see.
D-075 · D-076
the core assumption

Don't trust.
No truth.
Only evidence.


  • It never declares that something is true. It shows who said it, when, and where it came from.
  • Confidence is computed — rules and models — and stays guidance, never a verdict.
  • “Nobody knows yet” is a value, stored like any other.
D-025
the evidence card

who, when, from where

The “what” can wait. This card cannot.

Every arrival carries a card that the system fills in itself, so it can never be missing — even when nobody understood the content yet.

Two dates, because “when it arrived” and “when it happened” are not the same. Two people, because the messenger is not the source.

evidence · arrival 4f2c…9a

originalworks-council-timeline.eml · sha256 9c1e…
received at2026-10-24 14:03
brought in byMaria · forwarded email
channelpush · external
areasHive · Acme external
said byKlaus Berger · works council
happened at2026-03-12 precision: day
aboutunknown suggested: Acme
“unknown” is a valid value
capture

the front door

“Got it” means it is safe. Nothing else has to work.

1

The original goes to disk, under its hash — unless that exact file is already there.

2

The evidence card is written and committed.

3

“Got it.” This is the safe moment.

4

“Process this” goes on the queue. If that step dies, a timer finds the original anyway.

everything lands on the landing board

they knock · push

A webhook, a forwarded mail, an upload, a calendar invite.
beehave holds no credentials for the source — it only checks who knocks.
If the door is down, the sender may never retry.

→ an external instance is the physical boundary: no path from it to anything internal

beehave knocks · pull

A mailbox, a calendar, an API, the shared public base.
beehave holds the credentials, and a marker for where it stopped.
If it is down, it simply catches up later.

Capture never opens a file, never reads it, never calls a model. Scanning and sandboxing happen later, in processing.

D-015 · capture.md
processing

ripening

However it arrives, it becomes text. However it is understood, it becomes a record.

01Route What is it really? Structured lane for mail, chat, calendar; messy lane for everything uploaded. The table is data, not code.
02Read Scan first, then a parsing tool, a layout model, OCR, transcription. A vision reader only for images. No LLM decides anything here.
gateReadable text Contract 1: whatever produced it, the next step sees text.
03Segment & label Rules find signatures, quotes, footers. Unsure blocks go to a small encoder that can only label, never write.
04The “what” Dates and amounts by rule, known names by lookup, meaning by the model — which may only answer with numbers, labels and verbatim quotes.
gateRecord shape Contract 2: whatever understood it, storage sees the same shape.
05Validate · store Broken goes back with reasons, then to quarantine. Uncertain passes. The database checks the same rules again.
contract 1 · readable text contract 2 · record shape validation = one rule file, checked twice
rules first, a model only where it has to understand D-044 · D-052
storage

three levels, three jobs

Records say what. The text says it all. The original proves it.

1The original

Untouched, on disk, under its hash, kept forever. It is the evidence, and the source of every re-run.

never changed · never deleted

2The readable text

The full cleaned content, fetched in a blink. Not in the records, not in the graph — so nobody pays for OCR twice.

cold, fast, complete

3The records

Compact: enough to know what it is about. Every record points at the exact passage it came from.

hot · in the graph · one click to the quote

D-048
claims

what a user actually sees

Anna works at Siemens.
Since when, and says who?

A statement is who + kind of link + other side. Time is not part of its identity: overlapping dates do not chain, so identity would depend on the order the mail arrived. Time lives on each piece of evidence.

A claim is what you see: statements joined through accepted same-as links, with periods computed from the evidence. A merge is itself a claim, with evidence — and it can be undone. Nothing is ever rewritten.

corrections are added · disputed evidence stays visible · 3 sources beat 1

Anna as arrived works_at Siemens AG as arrived
2015 2019 2022 today

one claim · two periods · the gap in 2019–22 stays a gap

email 172016 supports
call notes2021 disputes 2019
contract2024 supports
same-as“Anna” = “A. Smith” reversible
statement · evidence · same-as · claim D-058 · D-062
the models

four models, each named by its job

Where AI is allowed to sit — and what it is never allowed to do.

vision readerimages and hard scans → text
block labelerunsure blocks → a label. Cannot write at all
meaning extractorthe “what”: numbers, labels, verbatim quotes
note readeryour one-line note → fixed fields

Everything else is deterministic: routing, scanning, parsing, rules, lookup, validation, storage.

why the labeller is not an LLM

In a 2026 study, fake-authority text inside a document flipped 68 % of an LLM's labels. Constrain the output to the allowed labels and it still flipped 33 %: constrained output limits what a model writes, not what it decides.

so: a fine-tuned encoder — no instructions to override, no text to write, milliseconds per block on a CPU

The model may point and label. It never rewrites.

And when the encoder is unsure, the block stays in the body. Nothing is ever hidden by a guess, and no model is called as a fallback.

D-053 · D-055 · D-065
re-runs

the compounding part

A better model is a new version — not a migration.

  • Same version + same original = the same result. Every answer is reproducible.
  • A new version may give a better result. Old results are kept, so you can read v1 next to v3 and see what changed, and why.
  • Vectors, the graph, the queue are derived: throw them away and rebuild them from the originals.

The memory improves while nobody works on it.

v1
first model
v2
better rules
v3
better model, same originals

every version kept · every score records what produced it

D-029 · D-057
retrieval

classic queries first

Every answer can be checked without a language model.

who decides?“Who is CTO at Acme — and who was before her?”
what breaks?“Tom leaves. What does his knowledge hold together?”
why believe?“Show me everything behind this link, disputes included.”

Only when the classic answers are good does the intelligence model come in — and it reaches the data only through retrieval, as the person asking. Its answers point back at claims and evidence, or they aren't answers.

the common mistake is adding the LLM too early, because it is convenient

retrieval → the served answer

D-056 · D-064
the machine room

boring on purpose

Six decisions that keep this simple to run for years.

One Postgres

Graph as plain tables, vectors beside them with the same ids. “Similar to this, and everything linked to it” is one query, not two systems.

The queue in its own database

It churns; the record doesn't. Every job can be rebuilt from the record, so the queue needs no careful backup.

An in-memory graph

Built from Postgres, swapped in one step. Evidence, time and disputes are built into the edge. No second database to keep in sync.

One door per module

gRPC on a unix socket. A module can become its own process without a rewrite — and nothing reaches into another module's tables.

One server per customer

Separation is physical, not a check in the code. 4–32 GB, data on their own machine, AI never in a cloud service.

A fleet manager

Creates servers, pushes one version, pulls encrypted backups, tests restores. A backup nobody has restored is not a backup.

no graph database: its production features are paid-only, and it would be a second source of record to keep in sync

D-007 · D-014
access

the guards

Nobody is trusted. Not the outsider, and not the insider either.

  • Every knock is checked: who is this, may they, how much, how often.
  • Internal or external is a label on the card, set by the guards — never a security level. An upset insider gets the same treatment as a stranger.
  • Areas: the Hive, one per field, and Unassigned where things wait for a person to place them. The way in decides the area; the content decides what it is about.
  • An outsider sees only their own uploads, through their own entrance, until their end date.

login without a password: email → a swipe pattern → a one-time code → an authenticator app

the guards at the entrance

a wrong pattern and an unknown address look and take exactly the same time

D-016 · D-035 · D-042
status

where this actually stands

A designed system, measured in documents. Not yet in code.

83

decisions written down, each with what, why, and what was rejected

done
17 · 50 · 11

entity types, link kinds, attribute kinds — defined, not sketched

done
capture → retrieval

the whole pipeline with its contracts and its failure modes

designed
research

models, licences, CPU speeds, prompt injection — checked against primary sources

done
bench

a harness on this machine that pins cores, caps memory and refuses to run when the box is busy

ready
0

lines of product code

next

The next step is not another document. It is numbers from a real corpus: one customer's mail and files, ten link kinds, one classic question answered end to end.

evidence in the comb, not a verdict in a badge

Nothing here is a promise about a date. It is what exists today, and what the next measurement decides.

HANDOVER.md · decisions.md
the point of all of it

Nobody starts from zero again.


The old bees feed the young ones with pollen — and the hive keeps what it learned, with the evidence still attached.

beehave · organizational memory everything quoted here is in v1/planning/
appendix · termsa1

The same word in bee, in the product, and in the code.

beeplaintechnical
The Queenyour organizationcustomer (one server per customer)
The Hiveyour own organizationhome organization, area “Home”
Fieldsthe organizations you work withclients, one area per client
The entrancewhere everything you send arrivescapture-push
Foragersthe system goes out and fetchescapture-pull, one adapter per source
Guardswho may come inaccess module (zero trust)
Nectarraw informationoriginals + evidence cards
Ripeningturning it into recordsprocessing: route → read → label → extract → validate
Honeycombstored knowledgeclaims in Postgres + the in-memory graph
Honeythe outcomecontract value of won deals
Wagglepointing at what mattersretrieval; later the intelligence model
Pollenwhat makes people growreferences, lessons, decisions — reuse
Broodthe next teamonboarding from stored claims
Propolissealing the gapsscanning, sandbox, least privilege
Waterkeeping it healthyheartbeats, dashboard, error codes only

glossary.md · wiki/terms.md

a1
appendix · vocabularya2

A closed list, so two customers can never mean two different things.

entity typeexample
Persona human
Organizationcompany, public body
Unitdepartment, team
Role“CTO at Acme” as a thing
Systemsoftware in use
Productwhat an org makes
Initiativeproject, migration
Requirementsomething that must be met
Decisionincluding rejections
ContractMSA, NDA, licence
Issuecomplaint, incident, risk
Meetingcall, visit, series
Dealopportunity, tender
Documentproposal, deck, offer
StandardISO 27001, GDPR as a norm
Place · Topicsite · industry, skill
link kindstate / event
works_atstate → periods computed
holds_rolestate → “who was CTO before her”
reports_tostate
responsible_forstate
has_requirementstate
favours · opposesstate → champion, blocker
decidedevent
attended · hostedevent → points at a Meeting
signed · party_toevent · state
raisedevent → points at an Issue
complies_withstate → Standard
same_asreversible, with evidence
otherstored, never dropped; goes to review

50 kinds in total, anchored to Wikidata · 11 attribute kinds (headcount, budget, deal stage, recurrence …) · phrasings are versioned, kinds only grow

“hired”, “left”, “acquired” are not kinds — they are time effects on a statea2
appendix · the whole pipelinea3

One page, from a forwarded email to an answer you can check.

stagewhat happenswho does it
captureaccess check · checksum · original + evidence card · “got it” · enqueuecapture-push / capture-pull → capture-store (the only writer)
routereal file type → structured lane or messy lanerules; the routing table is data
readscan → parsing tool · layout model · OCR · transcription · vision readerML tools, no LLM
segment & labelsignatures, quotes, footers, disclaimers; unsure blocks labelledrules → ban-list filter → encoder
the “what”who, kind, other side, time, attribute valuesrules → lookup → meaning extractor (quotes only)
validateone rule file → code checks + database checks; reasons back to the modelvalidation module; quarantine after N attempts
storestatements, evidence, same-as; versions recordedprocessing (only writer)
enrichmatching proposes same-as · evidence ranking · embeddingsenrichment: own tables, never blocks
resolvestatements + accepted same-as → the claims users see, with periodsresolver, per version
retrieveclassic queries + in-memory graph, as the person askingretrieval (reads only)
intelligenceanswers and researches — only through retrieval's doorlater, once the classic answers are good

pipeline-map.md · queue: LISTEN/NOTIFY is the doorbell, the timer is the safety net