Platform
One platform.
Three modules.
The same discipline runs through all three: capture the thing while it is happening, keep it in a form that can be checked later, and never assert what cannot be traced to a source. What differs is the question each one answers.
Hold one of them, or hold all three. A module you do not have is absent from your console — not greyed out, not teased.
Signum Causa · available
“What happened, and why?”
Know why it happened, not just that it did.
Signum joins the incident channel and buffers every message, edit, reaction and file as it arrives. When the incident closes, a model reads the sealed transcript and returns the timeline, the delays, the decisions and the root-cause hypotheses — each claim carrying the message ids it came from.
- Reconstruct the hour in a timeline built from what was actually said, not from what anyone remembered afterwards.
- Find where the time went — detection to acknowledgement to escalation to fix, measured rather than estimated.
- Draft the RCA from the evidence, with every claim traceable and anything ungrounded flagged as ungrounded.
- Write it back to the ticket so your ITSM stays the system of record and nothing lives only in Signum.
Signum Custos · available
“Can we show the control operated?”
Evidence the control operated, without reassembling it later.
The auditor's question is narrower than the engineer's: can you show the control worked, on this occasion, from a record made at the time? Custos maps what happened during the incident onto your own policy and the obligations you are held to, and assembles the pack that demonstrates it.
- Keep policy as a governed corpus — your documents, versioned, approved, and the thing reports are actually checked against.
- Define your own report types with a name, instructions and a redaction mode. No code, and no waiting on us.
- Run one incident or a set — aggregate reporting across a quarter reads the same evidence as a single RCA.
- Keep prescriptive output as a draft a human approves. Nothing Signum proposes is ever applied on its own.
Signum Memoria · still being built
“What do we already know about this?”
Asking is not searching.
Point Memoria at the places your knowledge already lives and it keeps a standing index of them, so a question does not kick off a hunt through folders and wikis. It answers from memory it already holds, in the language you asked in, with the page the answer came from. The index refreshes as the sources change — which means the answer does not depend on who still works here, or on anyone remembering where a document was filed.
- Ask in plain language and get the page the answer came from. An answer without a citation is not shown at all.
- Keep a standing index rather than searching on demand — the corpus is embedded and indexed as it changes, so a question hits memory rather than your source systems.
- Keep the corpus as files in your own Git repository — still readable, still greppable, on the day the service is not running.
- Gate everything on the way in — nothing joins the corpus without passing a content check and a named human approval.
- Let an agent ask too over MCP, against the same index, the same classification ceiling and the same audit log as a person.
- Hear “I don’t know” when nothing clears the floor, instead of a confident paragraph assembled from near-misses.
How they fit together
Separate modules, not separate silos.
The modules integrate at defined seams and nowhere else. Each keeps its own store and its own audit trail, so a fault in one cannot quietly corrupt another, and a deployment that holds only one is a complete product rather than a crippled version of three.
- Causa feeds Memoria, through the front door. A knowledge-base article that Causa drafts from an incident and a human approves becomes a candidate page for Memoria’s corpus — entering through the same content gate and the same review queue as any other source. Causa does not write into Memoria’s database.
- Custos reads the record, it does not create one. The evidence in a Custos pack is the sealed transcript and the structured signals Causa already produced. Nothing is re-derived for the auditor’s benefit, because a record assembled for an audit is not evidence.
- Memoria runs as its own service. Its own database, its own append-only audit log, its own release cadence. That is a deliberate cost: it means two things to run, and it means neither can take the other down.
Where Memoria actually stands
Built and tested. Not yet meeting its own bar.
Memoria is still being built, and the number we care about most is not where we want it. Measured on a reviewed 29-question set over a corpus of roughly 46,000 pages, normalised precision at five is 0.29 against our own gate of 0.85, and recall at five is 0.55 to 0.59 against 0.80. Two problems sit underneath: the refusal floor cannot yet separate a question the corpus can answer from one it only looks able to answer, and the evaluation does not reproduce cleanly from run to run.
We publish that because it is exactly why Memoria is not sold on retrieval accuracy. It is sold on the shape it will still have once the ranking improves — your pages are plain Markdown in a repository you own, nothing reaches the corpus without passing the ingestion gate and a human reviewer, every answer cites the page it came from, and where the corpus does not know, it says so instead of inventing. The screen above is that refusal, captured from a running instance.
What it connects to today. A Git repository of Markdown pages, a drop folder, and Confluence spaces you put on an allow-list. Slack and FreshService come next and come cheaply, because Causa already ships built adapters for both — the authentication and the transport are settled, and what is left is mapping their records onto pages. Jira and SharePoint are specified and are new work. The contract every connector implements — incremental, idempotent, read-only upstream, deletions tombstoned rather than silent — is built and running today for Confluence.
It is allow-list only, on purpose. There is no “index everything” mode and the code does not contain one. You name the spaces. A source nobody chose is a disclosure nobody reviewed, and the cheapest place to stop that is at the door rather than in a filter at query time.
Ranking improves with work. A system built to answer confidently regardless does not. Ask for the evaluation and we will send it, failing numbers included. We will not name a date we cannot hold.