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

28
Gate threshold is 15. Cross it with a lever below 2 and the verdict moves.

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.

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.

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.

Get it — $89

Sold by RedHub AI LLC · Secured by Stripe · redhub.ai