Agentic PrimitivesAGENTIC PRIMITIVES

Ontology

One description of the world.
Every layer binds to it.

Most agent stacks describe their domain four times: in a system prompt, in a database schema, in an agent card typed by hand, and in a playbook that names things the model has never heard of. They drift, and the drift is invisible. Here the domain is described once — as an ontology — and the conversation, the harness, the card, the vault, the receipt and the chain all bind to that one description by IRI. A term the ontology does not declare cannot be a field of a record, an argument of a tool, or a word on a screen.

Upper
DOLCE · PROV-O · EP-Plan · GC — what kind of thing is it?
Agentic Trust (at:)
46 modules — what every agentic system has
Substrate (ap:)
39 T-box files in @agenticprimitives/ontology — one per concern
Domain (th:)
Texas hold’em — 14 modules, imports at: and card-room
Archetype
holdem-coach — the classes one kind of agent may mean

01Two ontologies

An upper ontology of agentic systems. A domain ontology of a card room. The second imports the first.

Agentic Trust says what every agentic system has: agents in PROV-O’s three kinds, delegation and its caveats, intents, endorsements, deployments, situations. Texas hold’em says what this domain has — tables, hands, coaching, chips — and grounds each class on one above it. Below: the Agent module of the upper ontology, and the Coaching module of the domain, as the skills registry renders them.

Agentic Trust upper ontology — the Agent module graph: Agent ⊑ prov:Agent with Person, Organization, Team, Software Agent, Service Agent, Treasury, Registry Agent, Workspace Agent, Church Agent, Circle Agent, Household Agent, Agent Provider, Agent Deployment, Agent Archetype, Agent Status, Intent and Endorsement
agentic-trust · the Agent module. Every node is ⊑ prov:Agent or an Information Artifact / Category / Attestation about one. Person, Organization and Software Agent are the three kinds nothing may subsume across; Service, Treasury, Registry, Workspace, Team, Church, Circle and Household are DERIVED types — the suffix a name carries (.svc .treasury .registry .workspace .team .church .circle) names one of these, never a role. Agent Archetype is an Information Artifact, and an Agent Deployment is a deployment of one.
AgentPersonOrganizationTeamSoftware AgentService AgentTreasuryRegistry AgentWorkspace AgentChurch AgentCircle AgentHousehold AgentAgent ProviderAgent DeploymentAgent ArchetypeAgent StatusIntentEndorsement
Texas Hold'em domain ontology — the Coaching module graph: Coach Service, Study Grant, Consultation, Advice Request, Review Request, Hand Review, Hand Record, Coach Note, Adviser Appointment and the Person's Own Agent, Advising
texas-holdem · the Coaching module. A person names her own agent as adviser (Adviser Appointment); the table addresses her agent, which forwards a Consultation to the Coach Service she chose, presenting the Study Grant she signed. The service answers in its own name, reads her Hand Records under the grant, and may append a Coach Note — nothing else. Green nodes are the classes the holdem-coach archetype must know.
Coach ServiceStudy GrantConsultationAdvice RequestReview RequestHand ReviewHand RecordCoach NoteAdviser AppointmentPerson’s Own Agent, Advising

How the coaching module grounds — three tiers, real subsumption

th:CoachService ⊑ cr:CoachService ⊑ at:ServiceAgent

A coaching service a person custodies — its own card, endpoint and playbook; the only language model on the clock. Never the table’s addressee, never a seat.

th:StudyGrant ⊑ cr:StudyGrant ⊑ at:Delegation

The signed, scoped, revocable authority one person gives ONE service to read her study records and append a note — no spend, no seat, no poker.act. Revoking it on chain fires the coach at the next hand.

th:Consultation ⊑ cr:Consultation ⊑ at:SkillInvocation

Her own agent asking its coach: the same seat payload the table sent, plus the grant, one hop, no model call on her agent. Refused when the grant is missing or revoked.

th:HandReview ⊑ cr:PlayReview ⊑ at:Assessment

Asked for in her own words, in her own time, through th:ReviewRequest ⊑ at:SkillInvocation. Never sent at hand end by the table: a review is asked for, or it is a bill.

th:HandRecord · th:CoachNote ⊑ cr:StudyRecord ⊑ at:KnowledgeRecord

Her records, in her vault. The coach reads them under the grant and writes exactly one kind of thing back — its own notes — into hers, never its own.

th:AdviserAppointment ⊑ cr:AdviserAppointment ⊑ at:RoleBinding

The person naming her own agent as adviser at a table — a role bound for a while, with a start and an end, not a flag on a row.

The middle tier, card-room (cr:), is what hold’em shares with canasta: a coach, a study grant, a consultation, a review are the same things at either table. Hold’em adds the hand. Where the correspondence is alignment rather than identity the T-box says rdfs:seeAlso, not subClassOf — the ontology is honest about what it does not know.

02Every layer

The ontology is not a documentation layer. It is the spine.

Seven layers of the architecture ask the ontology a question, and each binds to the answer by IRI from a module in @agenticprimitives/ontology. The same T-box grounds on the upper ontologies and is extended by the domain. Nothing re-describes the domain; a gate fails the build when code tries.

The ontology as the spine of the architecture: seven layers bind to one T-box by IRI; the T-box grounds on upper ontologies and is extended by a domain ontology and an archetypeTHE ARCHITECTURE — EVERY LAYER BINDS TO THE SPINETHE ONTOLOGY — ONE MEANING, FROM UPPER TO ARCHETYPEONE T-BOX · BOUND BY IRI · NEVER RE-DESCRIBEDAsk · the conversationwho is "alice"? which account pays? what is "20 USDC"?a party is a KIND + a RELATION to follow, never a name matchparty-roles · arg-types · decisionsHarness · playbooks · plansSKILL.md knowledge.requires names classes, not prosea fan-out runs only over a modelled, bounded relationplan-shapes · capability idsAgent cards · discoverycapabilities[] → A2A skills[] — projected, never typedthe public KB is RDF; a question is a CONSTRUCT queryagent-profile · apdisc:Vault recordsevery record key IS a T-box class — Endeavor, Invitation, Granta question compiles to a selector run inside the storevault-recordsInteraction · coordinationapix:Interaction / Exchange · apcoord:Endeavor / PlanSHACL constrains structure — an unauthorized act stays validinteraction.ttl · coordination.ttlProvenance · receiptsa run is a JSON-LD ep-plan:ExecutionTraceBundlea span IS a prov:Activity and names itrun-provenance.jsonldIdentity · the chainPerson · Organization · Service — PROV-O’s trichotomymirrored by atl:agentType on chain; a name suffix names the typeidentity.ttl · naming.ttlupper · DOLCE · PROV-O · EP-Plan · GCdul:Description · dul:Situation · dul:Categoryprov:Agent · prov:Activity · prov:Entityp-plan:Plan · p-plan:Step — what kind of thing is it?groundsagentic-trust (at:) ⇄ @agenticprimitives/ontology (ap:)46 semantic modules · 39 T-box files, one per concernAgent · Delegation · Intent · Endorsement · Situation · Skillat: grounds on ap: by rdfs:seeAlso — one meaning, two homeswhat does EVERY agentic system have?imports · subclassestexas-holdem (th:) · owl:imports at: · card-room14 modules: Rules · Room · Cards · Hand · Coaching · Chips …th:CoachService ⊑ cr:CoachService ⊑ at:ServiceAgentth:StudyGrant ⊑ cr:StudyGrant ⊑ at:Delegationwhat does THIS domain have?bundlesholdem-coach · the archetypeknowledge.requires: 14 th: classes — the coach can only mean thosecapabilities: poker.advise · poker.review (never poker.act)compiled to a definition by digest; assigned at a HomeisextendsMeaning flows through the spine. Authority never does.It says what a thing IS and IS NOT; only a signed, caveated grant says what MAY happen. No verifier reads a term as permission.pnpm check:ontology-bindingsan undeclared IRI fails the buildthe ontology is the architecture's one description of the worldagenticprimitives.dev
Left: the seven layers, each with the module that binds it. Right: the ontology from upper to archetype. The spine is one T-box. The rail at the bottom is the rule that keeps the whole thing safe to build on: meaning flows through the spine, authority never does — no verifier reads an ontology term as permission.
Ask — the conversation

Who is "alice"? Which account pays? What is "20 USDC"?

check:ontology-bindings · check:ask-truth

Binds: party-roles.ts · arg-types.ts · decisions.ts — a party is a KIND plus a RELATION to follow (ap:charteredUnder), never a name match

The bug it replaced: The Ask looked for a treasury whose NAME resembled the person’s — alice → alice.treasury. Hers is alice2.treasury. A payment that should have worked dead-ended on a rule nobody wrote down.

Harness — playbooks and plans

What may this agent mean? What may a plan fan out over?

the skills compiler refuses an unknown class · check:interaction-coverage

Binds: SKILL.md knowledge.requires names T-box classes; plan-shapes.ts says which relations are bounded and owner-recorded

The bug it replaced: A planner improvised "pay every member" over a public search result — an unbounded list of strangers, array-shaped. Nothing could refuse it because the difference lived nowhere.

Agent cards and discovery

What does the world see? What can it ask?

check:capability-vocabulary · SHACL on the KB

Binds: profile.capabilities[] is the record; A2A skills[] and ARD capabilities[] are projections; the KB is RDF and a question is a generated CONSTRUCT query

The bug it replaced: A card editor titled a section "Capabilities" and filled it with protocol flags, next to "Skills" holding what the agent could do. Backwards twice, in the one screen where a steward decides what the world sees.

Vault records

What is this record? Which of mine answer this question?

check:no-cross-subject-vault-reads · check:privacy-lint

Binds: vault-records.ts binds every record key to a T-box class; a question compiles to a selector evaluated INSIDE the store

The bug it replaced: A Home listed an organization’s vault faithfully and uselessly — coordination.endeavor:end_05b… · show. Every key was already a class; nothing had said so.

Interaction and coordination

What situation are we in? Who committed to what?

cbox/interaction-shapes.shacl.ttl · check:coordination-coverage

Binds: apix:Interaction / Exchange with a pinned profile version; apcoord:Endeavor / CoordinationPlan; SHACL shapes constrain STRUCTURE only

The bug it replaced: An unauthorized command must stay shape-valid — refusing to record overreach deletes the evidence. Shapes that encoded permission would have hidden the incident.

Provenance and receipts

What ran, under whose authority, and what did it touch?

the context and the T-box are tested byte-for-byte against each other

Binds: run-provenance.jsonld — a run is an ep-plan:ExecutionTraceBundle; a span IS a prov:Activity and names it (ap.prov.activity.id)

The bug it replaced: Spans, log lines and attestations joined by ids somebody invented. Three evidence formats; no one graph a stock RDF stack could load.

Identity and the chain

What kind of agent is this? What does its name say?

a mismatched suffix fails closed · check:demo-person-org-distinct

Binds: prov:Person / prov:Organization / prov:SoftwareAgent — mirrored by AgentType in code and atl:agentType on chain; a typed name suffix (.me .org .svc .treasury) names the derived type

The bug it replaced: A demo person pointed at as his own organization. The operator check compared one address to itself and went green; the workspace switcher walked a person as if he were a parent org.

03From ontology to a running agent

Upper → domain → archetype → signed card. Meaning flows down. Authority never does.

An archetype bundles the classes, capabilities and SKILL.md packages one kind of agent needs; its knowledge.requires is a list of T-box classes, and a package that names one the ontology lacks fails to compile. From the archetype, the A2A agent card is projected and signed — its skills[] are the capability ids the ontology names. The coach can then mean exactly fourteen things about hold’em, and may do none of them until Alice signs a Study Grant at her Home.

From upper ontology to signed agent card: Agentic Trust → Texas hold'em → Hold'em Coach archetype → A2A capabilities and SKILL.md packages1 · FOUNDATIONS2 · UPPER ONTOLOGY3 · DOMAIN ONTOLOGY4 · AGENT ARCHETYPE5 · PUBLISHED ARTIFACTSDOLCE · PROV-O · ep-plandul:Description / dul:Situationprov:Entity · Activity · Agentp-plan:Plan · Step the trichotomy nothingmay subsume acrossagentic-trust (at:)46 semantic modulesAgents & IdentityDelegation & AuthoritySkills & CapabilitiesProvenance & Crypto TrustSituations & Descriptionstexas-holdem (th:)14 modules · owl:imports at:Coaching · The Hand · AdviceCoachService ⊑ at:ServiceAgentStudyGrant ⊑ at:DelegationConsultation ⊑ at:SkillInvocationHandReview ⊑ at:Assessmentholdem-coacha Service Agent a coach custodiesskills: holdem-preflop · -flop -turn · -river · -memory · -reviewcapabilities: poker.advise poker.review (never poker.act)knowledge.requires: 14 th: classesA2A signed agent cardskills[] = capability idsES256 JWS · delegate key theauthor authorised onceverifiable against the JWKS SKILL.md packages by digestgroundsimports · subclassesbundlesprojectswhat kind of thing is it?what does every agentic system have?what does THIS domain have?what does one agent bundle?what does the world see?ONE THING, FOLLOWED DOWN THE LADDER — THE STUDY GRANTdul:Description → prov:Entityat:Delegationth:StudyGrant ⊑ at:Delegationknowledge.requires: [StudyGrant]card: advise · reviewThe coach reads her hands only under a grant she signed at her Home; the domain ontology says what the grant IS; the archetype declares it must know that class;the SKILL.md for each street names it in knowledge.requires; the agent card advertises the two capabilities that need it. Change the class once and every surface moves.A SHACL shape on th:StudyGrant is checked at build — a playbook that names a class the ontology does not have fails to compile.WHAT FLOWS DOWN THE LADDER, AND WHAT NEVER DOESMeaning flows down: classes, shapes, capability ids, the words an Ask understands, the tools an agent may be given, what follows an act.Authority does not. An archetype grants nothing; a signed agent card grants nothing; a SKILL.md grants nothing. No verifier reads any of them.The only thing that lets the coach see Alice's hands is the StudyGrant — a delegation she signed, caveated, revocable in one transaction.behaviour is generated · authority never isagenticprimitives.dev
One class, followed down the ladder: th:StudyGrant ⊑ cr:StudyGrant ⊑ at:Delegation. The archetype declares it must know it; the review package names it; the card advertises the two capabilities that need it. The grant itself — a signed, caveated delegation, verified where the records live — is the only thing that lets the coach see a hand.
Agent archetypes for Texas Hold'em — Hold'em Coach and the coach Bob custodies
The archetype. Eight card-room skills, two capabilities (poker.advise, poker.review — never poker.act), fourteen ontology areas from Study Grant to Coach Note. Bob’s coach layers his doctrine on the same craft; the classes are the same.
The Hold'em Coach's A2A signed agent card
The artifact. The A2A card, server-built and signed by a delegate key the author authorised once. Its skills[] are the capability ids; nobody typed them.

04What it is not

The ontology says what a thing is. Only a grant says what may happen.

Not authority

ap:charteredUnder says a treasury is chartered under the person who holds it. A resolver may follow that to find her treasury. A verifier may not read it as permission to pay from it — that is a delegation with a Value caveat, checked on chain at redemption.

Not a prompt

A planner prompt is the most tempting place to write a domain rule and the worst place to keep one: invisible to every gate, drifting silently, applied confidently to cases it was never meant for. Prompts say how to BEHAVE; the ontology says how the world is SHAPED; prompt text is rendered from the binding.

Not a table in the app

A lookup table is simpler once. From then on it is a second opinion about the domain, and this page exists because one of those was wrong in production. If the term is missing, adding it to the T-box is the work.

A string-similarity heuristic standing in for a modelled relationship is the specific failure this exists to prevent.

agent rule · ontology drives behavior

Browse the namespaces. Then build a domain.

Every T-box module is published with its IRI. The skills registry at skills.faithnet.io renders every module of Agentic Trust and of each domain as a graph, signed in as a demo person.

Build guide → · packages/ontology in the repository →