Agent Skills: Conceptual Modelling

Build and evolve a living, representation-agnostic conceptual model for a product (programming) project — the domain's entities, attributes, relationships, and meaning — and choose how it is rendered. Use to model the domain, do conceptual data modelling in UML, run ontology-engineering at the concept level (stable-IRI policy, vocabulary reuse), decide the model *source* (LinkML directly vs model2owl-first), set up a conceptual model, or run terminology/definitions/glossary management. Trigger on "model the domain", "conceptual/UML data model", "set up conceptual model", "which model source", "ontology/terminology management", "ubiquitous language glossary". For the LinkML craft itself (authoring, generation, gates) see linkml-engineering; for generic modelling conventions see modelling-conventions. Conditional: applies to product-development repos that build software; a doc-only/non-product repo does not need it.

engineeringID: meaningfy-ws/agent-skills/conceptual-modelling

Install this agent skill to your local

pnpm dlx add-skill https://github.com/meaningfy-ws/skillery/tree/HEAD/.opencode/skills/conceptual-modelling

Skill Files

Browse the full folder contents for conceptual-modelling.

Download Skill

Loading file tree…

.opencode/skills/conceptual-modelling/SKILL.md

Skill Metadata

Name
conceptual-modelling
Description
Build and evolve a living, representation-agnostic conceptual model for a product (programming) project — the domain's entities, attributes, relationships, and meaning — and choose how it is rendered. Use to model the domain, do conceptual data modelling in UML, run ontology-engineering at the concept level (stable-IRI policy, vocabulary reuse), decide the model *source* (LinkML directly vs model2owl-first), set up a conceptual model, or run terminology/definitions/glossary management. Trigger on "model the domain", "conceptual/UML data model", "set up conceptual model", "which model source", "ontology/terminology management", "ubiquitous language glossary". For the LinkML craft itself (authoring, generation, gates) see linkml-engineering; for generic modelling conventions see modelling-conventions. Conditional: applies to product-development repos that build software; a doc-only/non-product repo does not need it.

Conceptual Modelling

Provisional pending the first-engagement gate. This skill's consulting-facing depth will be refined after the first real engagement that builds a domain model; treat the wiring here as the floor.

Overview

The conceptual model is the single, living, representation-agnostic definition of the domain: entities, attributes, relationships, and their meaning. It is generative — code, contracts, and documentation are derived deterministically from it, never hand-maintained in parallel. The generation layer is a make generate-models-style bridge that stays outside the LLM path (the principled answer to spec-drift and failed model-driven development): the LLM authors the source, a deterministic toolchain renders the targets.

Conditional. This skill applies only to product-development (programming) projects — repos that build software with a domain to model. A documentation-only or non-product repo does not need a conceptual model and should not scaffold one.

This skill owns the model; it does not own system topology, code layering, or normative requirements — see Boundary & Related Skills.

Where the model lives (two modes)

The model is a first-class asset with a home of its own. Pick the mode explicitly:

  • In-project model/ directory (default). This is what project-setup scaffolds by default (EPIC-09): the model lives beside the code it generates, versioned with the repo. Generated artefacts land under the relevant package (e.g. models/, see cosmic-python) via make generate-models. Use this for a model owned by one product.
  • Own repo / imported library. For a model shared across repos, give it its own repository and import it as a dependency (LinkML schema published as a package, or generated artefacts released as a versioned library). Each consuming repo regenerates from the pinned version.

Golden-thread implication. Model entities carry stable IDs (see ontology practices). When the model lives in its own repo, downstream code and specs cite those entity IDs across repos — the cross-repo rung of the golden thread (see ../../spine/golden-thread.md, which notes cross-repo IDs are convention-only for now).

The source: LinkML by default, not by default-only

LinkML is the wired default source for the model. It is declarative, generates many targets, and is the canonical domain-definition format the architecture skill already references for contracts.

Choosing the source is an explicit decision point — never silently defaulted:

  • LinkML (default) — author the schema directly; drives all generators below.
  • model2owl — a UML-driven ontology-engineering path with strong OWL, SHACL, and HTML generators. In some projects model2owl is used to generate LinkML artefacts, which then drive the other generators — so model2owl can be a prerequisite step before the LinkML generators, not an alternative to them. Surface this ordering when a project models in UML.
  • Other ontology-engineering tooling exists (Protégé/OWL-first, SHACL-first, etc.); document the chosen one as a named pattern.

We deliberately do not build a source-adapter abstraction (YAGNI) — alternatives are documented as named patterns, not wired behind an interface. The source decision and the concept-level ontology policy are owned here (see references/ontology-practices.md); the LinkML craft that executes on the chosen source is owned by linkml-engineering.

Deterministic multi-target generation (the concept)

From the chosen source, code, contracts, and documentation are generated deterministically and outside the LLM path — reproducible, diffable, CI-checkable. This skill owns that this is how the model becomes artefacts; it does not own the LinkML authoring, the generator wiring, the custom templates, or the quality gates — those belong to ../linkml-engineering/SKILL.md. The semantic core (Pydantic, JSON Schema, OWL, SHACL) and the enable-on-demand targets are catalogued there; see references/generators.md for the pointer.

The seam to cosmic-python. The model owns the contract; the generated Pydantic/JSON Schema is the contract. A service's entrypoints/api consumes the generated contract — it does not redefine the domain. This skill owns the source side of that seam; linkml-engineering owns the generation that crosses it.

The craft around the model

A model is more than a schema. Two adjacent practices are part of the discipline:

  • Diagrams alongside the formal model. Generate/maintain Mermaid (and other) diagrams from or beside the model so the human view and the formal view stay in step. Architecture's C4/UML class diagrams are a consumer of the same domain concepts — keep them coherent, but the formal source of truth is the model.
  • Terminology, disambiguation, and definitions management. The glossary / ubiquitous-language layer: every model class is a term with a definition, and OpenSpec specs reference those classes as ubiquitous language. See references/terminology-management.md.

Boundary & Related Skills

This skill OWNS: the living conceptual model (representation-agnostic source of domain truth); conceptual data modelling in UML; the concept-level ontology policy (stable-IRI policy, modularity, vocabulary-reuse principle); the model-source decision (LinkML-direct vs model2owl-first); and terminology / definitions / glossary management (ubiquitous language).

This skill REUSES:

  • Representation-agnostic modelling craft (reusable-property and URI-everywhere principles, naming, anti-patterns, guardrails) → ../modelling-conventions/SKILL.md. This skill applies those conventions; it does not restate them.

This skill DELEGATES:

  • The LinkML craft — authoring, generation, custom templates, quality gates, per-module output → ../linkml-engineering/SKILL.md. This skill picks the source and owns the model; linkml-engineering executes the LinkML.
  • System/solution architecture — C4 levels, ADRs, the contract-first order of artifacts../architecture/SKILL.md. Architecture authors which contracts exist; this skill owns the domain model that backs them.
  • Code layering and what consumes the generated contract → ../cosmic-python/SKILL.md. entrypoints/api consumes the generated contract; this skill owns the model that produces it.
  • Normative requirements and the spec spine → the spine specs (see ../../spine/README.md). Model classes are ubiquitous language that specs reference; specs state the rules.

Conditional: product-development (programming) projects only — see the Overview.

Related: modelling-conventions, linkml-engineering, architecture, cosmic-python.