Skip to content
Back to skills

Enumeration Discovery

ASecurity

Identify OWL enumeration classes and preserve their members in generated application models and diagrams. Use for owl:NamedIndividual discovery, rdf:type membership, enum deduplication, and regeneration checks.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 6, 2026
datapythonnodedatabase

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add lanliwz/neo4j-onto2ai-toolset --skill enumeration-discovery --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Enumeration Discovery?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Enumeration Discovery
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lanliwz-enumeration-discovery/badge)](https://www.skillsdirectory.com/skills/lanliwz-enumeration-discovery)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: enumeration-discovery
description: Identify OWL enumeration classes and preserve their members in generated application models and diagrams. Use for owl:NamedIndividual discovery, rdf:type membership, enum deduplication, and regeneration checks.
---
# Enumeration Discovery Skill

Use these instructions to automatically identify which `owl__Class` nodes in the schema/model database, normally `stagingdb`, should be treated as enumerations in diagrams and generated application code models.

## Discovery Logic
An enumeration is defined as an `owl__Class` that has one or more `owl__NamedIndividual` members linked via `rdf__type`.

### Cypher Identification Pattern
Run this query to find active enums in the staging database:
```cypher
MATCH (c:owl__Class)<-[:rdf__type]-(i:owl__NamedIndividual)
WITH c, count(i) as memberCount, collect(i.rdfs__label)[0..5] as sampleMembers
WHERE memberCount > 0
RETURN c.rdfs__label as className, c.uri as uri, memberCount, sampleMembers
ORDER BY memberCount DESC
```

## Application Model Rendering
When an enum class is identified, generated application code models should render it as a native enumeration type when the target language supports one.

For Pydantic output, `generate_schema_code(target_type='pydantic')` renders it as a Python `Enum` automatically when `owl__NamedIndividual` members exist via `rdf__type`.

### Verification Pattern
After regeneration, confirm:
- the generated Pydantic artifact contains `from enum import Enum`
- Enum classes are present (for example, `class Currency(Enum):`)
- Member constants are present (for example, `US_DOLLAR`, `MARRIED_FILING_JOINTLY`)

## UML Visualization
In UML diagrams, ensure these classes use the `«enumeration»` stereotype.

- **Flattening Rule**: When a class has a relationship to an enumeration, render it as an **Attribute** inside the class box rather than an Association arrow, unless the enum itself has complex metadata that needs visualization.

## Maintenance
- **New Members**: When adding new individuals to the database, always ensure they are linked to the correct class via `rdf__type`.
- **Deduplication**: Periodically run deduplication queries to ensure that enumeration members are not duplicated across different URIs.
- **Schema vs Dataset Boundary**: `rdf__type` links are valid in `stagingdb` for schema/model enumeration discovery. Do not load ontology-only `rdf__type` links into dataset databases unless the task explicitly requires schema validation there.
- **Regeneration Workflow**: After enum changes, use the checked-in domain artifact generator when available. For entitlement, run `venv/bin/python scripts/regenerate_entitlement_artifacts.py --database stagingdb`; otherwise regenerate transient review artifacts and promote only reviewed output into the package.

Files in this skill

  • SKILL.md2.8 KB
  • agents/openai.yaml228 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.