Agent skill

ontology-core

Core Ontology Schema Validator for Ontology-Driven-Architecture (ODA) codebases. Validates ObjectType, LinkType, ActionType, and PropertyDefinition schemas. Generates scaffold templates and checks cross-type consistency.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/ontology-core

SKILL.md

/ontology-core - Core Ontology Schema Validator

Version: 3.0.0 | Model: opus


Overview

Aspect Description
Purpose Validate and scaffold ODA ontology type definitions
Output L1: Pass/fail summary / L2: Per-file results / L3: Detailed fix suggestions
Reference .claude/rules/ontology.md for naming conventions and rules

Cross-Skill Integration

Skill Relationship
/ontology-objecttype Calls this skill for validation after generation
/ontology-why Provides design rationale for validation errors
/ontology-linktype (Planned) LinkType definition assistant

Commands

Command Description
validate <file> Validate single ontology file
validate-all <dir> Validate all files in directory
scaffold <type> <name> Generate ObjectType/LinkType/ActionType template
check-links <dir> Cross-validate LinkType source/target references

Supported Types

Type Key Validations
ObjectType Primary key, properties, backing dataset
LinkType Cardinality, foreign key, cascade policy
ActionType Parameters, affected types, edit specs
PropertyDefinition Data type, constraints, visibility

Validation Rules

ObjectType Rules

Rule ID Name Severity
OT-001 Primary Key Required ERROR
OT-002 Primary Key Property Exists ERROR
OT-003 Unique Property Names ERROR
OT-004 Valid Status ERROR
OT-005 Endorsed Requires Active WARNING
OT-006 Backing Dataset RID Format ERROR
OT-007 Property Data Type Valid ERROR

LinkType Rules

Rule ID Name Severity
LT-001 Source ObjectType Required ERROR
LT-002 Target ObjectType Required ERROR
LT-003 Cardinality Required ERROR
LT-004 Foreign Key Implementation ERROR
LT-005 Backing Table for N:N ERROR
LT-006 No Endorsed Status WARNING
LT-007 Cascade Policy Consistency WARNING

ActionType Rules

Rule ID Name Severity
AT-001 Unique Parameter Names ERROR
AT-002 Required Parameters First WARNING
AT-003 Affected ObjectType Exists ERROR
AT-004 Hazardous Flag WARNING
AT-005 Edit Spec Property Valid ERROR
AT-006 Implementation Required ERROR
AT-007 No Endorsed Status WARNING

PropertyDefinition Rules

Rule ID Name Severity
PD-001 Valid Data Type ERROR
PD-002 Array Item Type ERROR
PD-003 Struct Reference ERROR
PD-004 Required Without Default WARNING
PD-005 Primary Key Constraints ERROR

Output Format

L1 - Summary (Default)

Validation Complete: 3 files, 21 rules passed, 1 warning, 0 errors

L2 - Per-File Results

Validating: src/ontology/

src/ontology/employee.py
  ObjectType: Employee (7 passed, 1 warning)
    OT-005: Endorsed Requires Active

src/ontology/links.py
  LinkType: ProjectToEmployee (5 passed, 2 errors)
    LT-001: Source ObjectType 'Project' not found

Summary: 26 passed, 1 warning, 2 errors

L3 - Detailed with Fix Suggestions

LT-001: Source ObjectType Required
   File: src/ontology/links.py:45
   LinkType: ProjectToEmployee
   Issue: source_object_type references 'Project' which doesn't exist

   Fix: Create Project ObjectType first, or change source to existing type

   Available ObjectTypes:
   - Employee (src/ontology/employee.py)
   - Department (src/ontology/department.py)

Scaffold Templates

ObjectType Template

python
from ontology_definition.types import (
    ObjectType, PropertyDefinition, DataTypeSpec,
    PrimaryKeyDefinition, PropertyConstraints,
)
from ontology_definition.core.enums import DataType, ObjectStatus

{entity_name_lower}_type = ObjectType(
    api_name="{EntityName}",
    display_name="{Entity Name}",
    description="TODO: Add description",
    primary_key=PrimaryKeyDefinition(property_api_name="{entityName}Id"),
    properties=[
        PropertyDefinition(
            api_name="{entityName}Id",
            display_name="{Entity Name} ID",
            data_type=DataTypeSpec(type=DataType.STRING),
            constraints=PropertyConstraints(required=True, unique=True),
        ),
        # TODO(human): Add more properties
    ],
    status=ObjectStatus.ACTIVE,
)

LinkType Template

python
from ontology_definition.types import (
    LinkType, ObjectTypeReference, CardinalityConfig,
    LinkImplementation, ForeignKeyConfig,
)
from ontology_definition.core.enums import Cardinality, LinkImplementationType

{source_lower}_to_{target_lower} = LinkType(
    api_name="{Source}To{Target}",
    display_name="{Source} to {Target}",
    source_object_type=ObjectTypeReference(api_name="{Source}"),
    target_object_type=ObjectTypeReference(api_name="{Target}"),
    cardinality=CardinalityConfig(type=Cardinality.MANY_TO_ONE),
    implementation=LinkImplementation(
        type=LinkImplementationType.FOREIGN_KEY,
        foreign_key=ForeignKeyConfig(
            foreign_key_property="{target}Id",
            foreign_key_location=ForeignKeyLocation.SOURCE,
        ),
    ),
)

Package Reference

python
from ontology_definition.types import (
    ObjectType, LinkType, ActionType, PropertyDefinition,
)
from ontology_definition.core.enums import (
    DataType, ObjectStatus, Cardinality, LinkImplementationType,
)

Package Location: /home/palantir/park-kyungchan/palantir/Ontology-Definition/


Error Handling

Error Recovery
File not found Show available files
Parse error Show line number and context
Unknown type Suggest valid type names
Validation timeout Save partial results

Version History

Version Change
1.0.0 Core ontology schema validator
3.0.0 Frontmatter normalization, MCP tool inclusion, duplicate removal

End of Skill Definition

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results