System · Build & Ship
An agent cannot refusewhat nobody everwrote down.
Every deterministic check an agent could run needs something to check against: what types exist, which values are allowed, which things cannot be true at once, what makes two records the same. Most organisations have some of this, informally, in the heads of three people. This surveys how much of it is actually written down — and whether your domain has grown past the point where informal was enough.
Deterministic and offline. Inspects no schema, connects to nothing.
Grades the model you describe — never people.
Instant download. Python engine, workbook, two playbooks, worked portfolio.
01
Six things that let a machine say no
None of them requires a graph database, a modelling tool, or a vocabulary standard. All of them require somebody to write a sentence down.
Entity types are named
An inventory of the things in your domain, each with a definition anyone would recognise — not just tables with rows in them.
Status and category fields have closed sets
Every branch-driving field has an enumerated set that is closed and reviewed, rather than free text where new values appear unannounced.
Which types cannot overlap is written down
Declared explicitly for the pairs where overlap would be a contradiction. This is the one almost nobody has.
How many of X can relate to Y is stated
Every relationship states its cardinality — including the ones where the answer is exactly one, which is where the contradictions live.
What makes two records the same thing is defined
A stated functional key per type, and it is the one the systems actually use rather than the one in the design doc.
What kind of value each property takes is declared
Every property declares the type or class its value must be, so a value of the wrong kind is detectable rather than merely surprising.
02
Why the survey counts your entity types
This is the part people argue with, and then stop arguing with.
Six types
You hold the distinctions in your head. A reviewer reads a proposed change and says “wait, a supplier can’t also be a customer here.” Informal works, because there is little enough of it to be informal about.
Twenty-eight types
Nobody holds it all. The undeclared distinctions become the source of the contradictions, because the model is now large enough to be wrong in ways nobody notices. Partial stops being untidy and starts being the problem.
So the gate reads a count, not a mark
At or above the threshold, a partially-declared value set or a partially-declared overlap forces UNMODELED regardless of how the rest of the survey scored. Below it, the same marks read PARTIAL. Size alone never fires it — a fully declared domain reads MODELED at any size, and the shipped portfolio has a 41-type domain that does.
03
Move the count and watch a verdict change
Take D-01 down below fifteen entity types and it reads PARTIAL. Put it back and it does not.
D-01 · Billing
UNMODELED
Coverage 83% — context only. Weakest dimension reads PARTIAL. At 28 entity types, a gate lever below 2 is dispositive. Fix first: Status and category fields have closed sets.
Entity types in this domain
Entity types are named
Status and category fields have closed setsgate lever
Which types cannot overlap is written downgate lever
How many of X can relate to Y is stated
What makes two records the same thing is defined
What kind of value each property takes is declared
Portfolio verdict
NO MODEL
2 modeled · 1 partial · 3 unmodeled, of 6. Mean coverage 88% — it decides nothing. Fix first: D-04.
Same arithmetic as the shipped engine and workbook. It grades the model you describe, never people, and inspects no schema.
04
What the engine prints
This is the shipped engine’s complete output on the shipped portfolio.
DOMAIN ONTOLOGY READINESS SURVEY
==========================================================================
D-01 Billing (28 entity types)
coverage 83% weakest PARTIAL UNMODELED
2 Entity types are named MODELED
1 Status and category fields have closed sets PARTIAL [gate lever]
1 Which types cannot overlap is written down PARTIAL [gate lever]
2 How many of X can relate to Y is stated MODELED
2 What makes two records the same thing is defined MODELED
2 What kind of value each property takes is declared MODELED
[GATE] 28 entity types - past this many entity types, undeclared sets and overlaps are where contradictions come from
weakest dimension read PARTIAL; the gate overrides it
fix first: Status and category fields have closed sets
D-02 Support desk (6 entity types)
coverage 83% weakest PARTIAL PARTIAL
2 Entity types are named MODELED
1 Status and category fields have closed sets PARTIAL [gate lever]
1 Which types cannot overlap is written down PARTIAL [gate lever]
2 How many of X can relate to Y is stated MODELED
2 What makes two records the same thing is defined MODELED
2 What kind of value each property takes is declared MODELED
fix first: Status and category fields have closed sets
D-03 Billing (hardened) (28 entity types)
coverage 100% weakest MODELED MODELED
2 Entity types are named MODELED
2 Status and category fields have closed sets MODELED [gate lever]
2 Which types cannot overlap is written down MODELED [gate lever]
2 How many of X can relate to Y is stated MODELED
2 What makes two records the same thing is defined MODELED
2 What kind of value each property takes is declared MODELED
every dimension declared - nothing to fix
D-04 Inventory (9 entity types)
coverage 67% weakest UNMODELED UNMODELED
2 Entity types are named MODELED
2 Status and category fields have closed sets MODELED [gate lever]
1 Which types cannot overlap is written down PARTIAL [gate lever]
1 How many of X can relate to Y is stated PARTIAL
0 What makes two records the same thing is defined UNMODELED
2 What kind of value each property takes is declared MODELED
fix first: What makes two records the same thing is defined
D-05 Product catalog (41 entity types)
coverage 100% weakest MODELED MODELED
2 Entity types are named MODELED
2 Status and category fields have closed sets MODELED [gate lever]
2 Which types cannot overlap is written down MODELED [gate lever]
2 How many of X can relate to Y is stated MODELED
2 What makes two records the same thing is defined MODELED
2 What kind of value each property takes is declared MODELED
every dimension declared - nothing to fix
D-06 Fulfilment (22 entity types)
coverage 92% weakest PARTIAL UNMODELED
2 Entity types are named MODELED
2 Status and category fields have closed sets MODELED [gate lever]
1 Which types cannot overlap is written down PARTIAL [gate lever]
2 How many of X can relate to Y is stated MODELED
2 What makes two records the same thing is defined MODELED
2 What kind of value each property takes is declared MODELED
[GATE] 22 entity types - past this many entity types, undeclared sets and overlaps are where contradictions come from
weakest dimension read PARTIAL; the gate overrides it
fix first: Which types cannot overlap is written down
--------------------------------------------------------------------------
PORTFOLIO VERDICT: NO MODEL
2 modeled / 1 partial / 3 unmodeled (of 6 domains)
mean coverage 88% -- context only, it decides nothing
gate fired on 2 domain(s) (>= 15 entity types)
fix first: D-04 -- identity_rules
Grades the model you describe. Not legal, security, or compliance advice.D-01 and D-02 are the pair worth reading twice. Their marks are identical and their coverage is identical — both 83% — and one reads UNMODELED while the other reads PARTIAL. Nothing separates them but the number of entity types. Note also D-04, which is UNMODELED on its weakest dimension alone with the gate quiet, and the portfolio mean of 88% attached to a set of domains that reads NO MODEL.
05
What is inside
Six files, all editable, none requiring an account.
Survey engine
Zero-dependency Python. Reads your marks and entity counts, prints a verdict per dimension, per domain, and for the portfolio. No network access of any kind.
Editable dimension set
A JSON file holding the six dimensions, what each mark means, which two are gate levers, and the entity-count threshold. Change the threshold; the engine checks the lever flags still match.
Workbook that reproduces it
Four tabs — Start Here, Dimensions, Survey, Dashboard — with 99 live formulas and no macros. Opens in Excel, Google Sheets, or Numbers.
Modelling Workshop Playbook
How to run the survey with the people who actually know the domain, in about two hours, without it turning into a data-dictionary project.
Unmodeled Runbook
What each verdict means, which dimension to declare first, and the three cases where the honest answer is that you do not need a model at all.
Worked 6-domain portfolio
Including the pair that makes the point: two domains with identical marks and identical coverage that get different verdicts.
06
Who it is for, and what it will not do
It is for whoever will be asked why the agent did something nobody thought was possible.
Built for
- Teams about to put an agent on a domain that has never been written down.
- Anyone whose status fields have accumulated values nobody can account for.
- Architects who need a defensible reason to spend two weeks on definitions before building.
It will not
- Read your schema, your database, or your code. You describe the model; it grades the description.
- Build the model for you. It tells you which dimension is missing and roughly what it would cost to have it.
- Check whether what you declared is right. A closed set with the wrong values still reads as closed.
- Insist you need an ontology. Three cases where you honestly do not are in the runbook.
This System grades a domain model you describe. It is a working aid, not legal, security, or compliance advice, and it is not an audit or a certification. It never scores, ranks, or assesses people. MODEL HOLDS means these six things are written down — not that they are correct.
07
What sits either side of it
Three neighbours that assume the definitions this survey grades.
CSV / Data-Export Schema & Quality Gate
$69
Whether a specific file can be parsed and lined up. This asks whether the domain behind it is defined at all.
Multi-Source Data Reconciliation Engine
$89
What to do when three systems disagree. A stated identity rule here is what makes that question answerable.
Document Field Validator
$79
Enforces field rules on records once they exist. This grades whether you have written the rules down anywhere.
08
Questions people actually ask
Short answers first, with the caveat after it rather than in front of it.
Whether your domain is written down in a form a machine could check. Six dimensions per domain, marked 0, 1 or 2: named entity types, closed value sets, declared overlaps, stated relationship cardinality, identity rules, and property ranges. It returns MODELED, PARTIAL, or UNMODELED per domain and a portfolio verdict. It reads no schema, connects to nothing, and grades the description you write.
Because a domain with five dimensions fully declared and one absent is not 83% modelled — it has one hole wide enough to drive contradictions through. Coverage is computed and printed for context, and no verdict formula in the engine or the workbook refers to it. The shipped sample averages 88% coverage and reads NO MODEL.
Because scale changes what partial costs you. With six entity types you hold the distinctions in your head and a reviewer catches the contradictions. Past a threshold — 15 by default, and editable — undeclared value sets and undeclared overlaps become where the contradictions come from, since the model is now large enough to be wrong in ways nobody notices. The shipped sample includes two domains with identical marks and identical 83% coverage: the one with 28 entity types reads UNMODELED, the one with 6 reads PARTIAL.
No, and the verifier asserts it. Size alone never fires the gate — a 400-type domain with everything declared reads MODELED, and the shipped sample includes a 41-type domain that does exactly that. The gate needs both conditions: enough entity types that undeclared distinctions matter, and at least one of the two gate levers below full.
This comes first. The Turnstile grades whether your tool contracts could refuse a bad call; this grades whether anything in your organisation defines what a bad call would be. A closed status set here is what a Turnstile enum guard points at, and a disjointness declaration here is what the Agent Action Admissibility Engine later checks against. If this reads UNMODELED, the other tools have less to work with.
No. It means these six things are written down, not that they are right. A closed value set with the wrong values in it still reads as closed, and a disjointness declaration between the wrong pair of types still reads as declared. This finds the absent, not the mistaken. It grades models — never people — and it is a working aid, not legal, security, or compliance advice.
Find out how much of your domain is only in someone’s head.
Six dimensions, one count, and an honest answer about whether informal is still working. Deterministic, offline, and clear that written down is not the same as correct.
This System grades a domain model you describe. A working aid, not legal, security, or compliance advice, and it never scores or ranks people.
Sold by RedHub AI LLC · Secured by Stripe · redhub.ai