Run your business onrules that can't break
Any person or any model does the work, under the same permissions and laws.
Every action, checked
People and models act on the same records, and every step passes the laws first.
People and models, side by side
See who did what, and hand work back and forth. A person can always take over.
- order.confirmed2s ago
77fa…e0d2 - check.passed9s ago
e0d2…41b7 - order.drafted14s ago
41b7…9c1e - message.received21s ago
9c1e…a03f
A receipt for every write
Every change leaves a tamper-evident receipt you can export and verify.
01Core
One object, everything about itone typed definition, checked as a whole
Everything about a thing, its data, links, states, actions, rules and who may do what, is declared in one typed definition, your ontology, and checked as a whole.
OrderSO-1048object typetotalMoney · EGP132,000.00linesLine[ ]3customer→ CustomerDelta Toolsorder.shipMCP{ "order": "SO-1048" }confirmed → shippedWarehouseconfirmallowedshipallowedrefunddeniedtotal = Σ lines.amountholdsorder.confirmed09:3177fa…order.drafted09:1241b7…message.received09:129c1e…02Connect
Connected in one modelevery system in, any actor out
Connect the systems and tools you already run. Their records land in one typed model, each value tied to its source. Every tool call is checked against your policy, and credentials never pass through Norn.
03Workflows
Every process is a state machinesteps only happen when the rules allow
A record moves through declared states, and an action is the only way to move it.
04Rules
Who may, must and must neverone model for people and agents, default deny
Each step names who may take it. Values a role can't see come back withheld or masked, never leaked.
05Checks
Your business rules aren't commentsNorn checks your model before it goes live
And it refuses any change that would break a law, with the reason in plain words.
Laws are model-checked for simple lifecycles today. Contradiction search is bounded.
No unreachable states, no exits from an end state, no write that skips a step.
Each law becomes a model. If it can break, you get the exact case.
Definitions and mappings are searched for conflicts, with a concrete example.
Every source field is covered, and the source data meets the target's rules.
Who may, must and must never can't clash, and no one approves their own work.
Kilograms never mix with litres, and division by zero is refused.
Every tool's inputs and outputs match what they connect to.
Guard and laws run before commit. Nothing partial is ever written.
06Features
A business that runs itselfand explains every step
NornCounted 294 against 300 on Tuesday. Approved by the supervisor at 14:20.
NornDrafted. It's above your 5,000 limit, so a person approves it.Agents, checked like code
An agent's models, tools and laws are admitted by the checker. Anything over its limit waits for a person.
As of any time
Ask what the business knew then and what it knows now. Corrections restate the answer, they never overwrite history.
Ask why
Any value walks back through the events that produced it, on a hash-chained ledger.
SO-1031INV-4398noneRules that build on rules
Define facts from other facts, with exceptions, and Norn keeps the reason behind every one.
07Open
Open at the coreand yours to run
Read every line, and run it on your own servers.
git clone https://github.com/Norn-cloud/nornRust core
The kernel and checker, embeddable in your own service.
One file per business
Each business is its own SQLite cell. Export it and take it with you.
Definitions as code
Types and rules in TypeScript, admitted by a Rust checker.
Norn