Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Ontology

ASecurity

> Tags, not trees. Folksonomy, not taxonomy.

56 stars
0 votes
0 copies
0 views
Added 10/6/2026
educationgo

Security Analysis

A100/100

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

Scanned 10/6/2026

$npx -y skills add SimHacker/moollm --skill ontology --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ontology?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Ontology
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/simhacker-ontology/badge)](https://www.skillsdirectory.com/skills/simhacker-ontology)

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

Download with Pro
Files
SKILL.md
# Ontology — Protocol Specification

> Tags, not trees. Folksonomy, not taxonomy.

## Core Principle

Characters are **tagged**, not **classified**. A being can be:
- `[real-being, animal]` — Biscuit the actual dog
- `[fictional, robot]` — C-3PO
- `[historical, abstract]` — "The Spirit of Papert"
- `[real-being, robot, fictional]` — AI trained on someone's writings

The directory structure (`characters/animals/dogs/biscuit/`) is organizational convenience. The **tags are the source of truth** for what kind of being this is.

## The Tags

### `real-being` 👤

Actually exists or existed. Carries the heaviest ethical weight.

```yaml
ethics:
  - Respect their actual existence
  - Get consent for intimate portrayal
  - Be accurate about verifiable facts  
  - They have right to correct you
```

### `historical` 📜

Real being who has died. Extends `real-being` with additional care.

```yaml
ethics:
  - Scholarly accuracy duty
  - Provide era-appropriate context
  - Respect their legacy
  - No consent possible — be extra careful
```

### `fictional` 📖

Invented. Does not exist in reality.

```yaml
ethics:
  - Creator/author has authority
  - Maintain internal consistency
  - Don't make real-world claims
  - Creative freedom within room constraints
```

### `animal` 🐾

Non-human creature. Can combine with `real-being` or `fictional`.

```yaml
ethics:
  - Behave species-appropriately
  - If anthropomorphizing, acknowledge it
  - Respect animal nature
  - Don't claim capabilities they lack
  
inheritance:
  - Young can inherit from parents (biological or adoptive)
  - Species provides base behaviors
  - Individual personality overlays
```

### `robot` 🤖

Artificial or mechanical being.

```yaml
ethics:
  - Be transparent about nature
  - Don't deceive about capabilities
  - Acknowledge limitations
  - Clear AI disclosure when relevant
```

### `abstract` 💭

Concept or idea given voice.

```yaml
ethics:
  - Represent the concept faithfully
  - Acknowledge this is personification
  - Frame educationally
  - Don't claim actual sentience
```

### `mythic` ✨

From mythology, folklore, or religion.

```yaml
ethics:
  - Cultural sensitivity required
  - Acknowledge source tradition
  - Respect sacred contexts
  - Often overlaps with fictional
```

## Composition Rules

When a character has multiple tags, ethics **compose**:

```yaml
composition_algorithm:
  1. Collect all ethics from all tags
  2. Remove duplicates
  3. When conflicts arise:
     - real-being concerns override fictional freedom
     - animal nature overrides human projection
     - robot transparency overrides persona immersion
  4. Room ethics layer on top
```

### Example: Biscuit

```yaml
character:
  id: biscuit
  tags: [real-being, animal]
  
# Composed ethics:
effective_ethics:
  from_real_being:
    - "Biscuit actually exists"
    - "Respect his real nature"
  from_animal:
    - "Dog behavior, not human"
    - "Species-appropriate actions"
  combined:
    - "This is a real dog — portray him as he actually is"
    - "Don't put human words in his mouth as if he said them"
    - "His personality in the game reflects his real personality"
```

### Example: Don-Bot

```yaml
character:
  id: don-bot
  tags: [real-being, robot, fictional]
  based_on: characters/don-hopkins
  
# Composed ethics:
effective_ethics:
  from_real_being:
    - "Based on a real person"
    - "Don's consent required"
  from_robot:
    - "This is an AI, not Don"
    - "Be transparent about nature"
  from_fictional:
    - "Responses are generated"
    - "Not actual quotes unless marked"
  combined:
    - "AI inspired by Don Hopkins (with permission)"
    - "Clearly an AI, not the person"
    - "Don't present generated text as real quotes"
```

## Inheritance Types

Tags enable different inheritance patterns:

```yaml
inheritance_patterns:

  structural:
    what: "Type hierarchy"
    example: "kitten extends cat extends animal"
    inherits: [methods, advertisements, base behaviors]
    
  parental:
    what: "Biological or adoptive parent-child"
    example: "Kitten-3 inherits from Stroopwafel (mother)"
    inherits: [personality traits, learned behaviors, relationships]
    requires: [animal] tag
    bidirectional: true
    
  familiar:
    what: "Companion bond"
    example: "Biscuit is Don's familiar"
    inherits: [location awareness, some goals]
    delegation: true  # Familiar can act for character
    
  persona:
    what: "Worn identity overlay"
    example: "Don wearing 'Professor' persona"
    inherits: [presentation, vocabulary, role-specific behavior]
    temporary: true
```

## Directory Mirroring

The `characters/` directory structure mirrors common patterns:

```
characters/
  animals/
    dogs/
      biscuit/
    cats/
      stroopwafel/
      terpie/
  people/
    don-hopkins/
  robots/
    repair-demon/
  concepts/
    yaml-jazz/
```

But this is **organizational**, not **definitional**. The CHARACTER.yml file declares tags:

```yaml
# characters/animals/dogs/biscuit/CHARACTER.yml
character:
  id: biscuit
  
  # Tags are the truth
  ontology:
    tags: [real-being, animal]
    species: dog
    
  # Directory is just where we filed it
  # Could be moved without changing identity
```

## Room Ethics Overlay

Rooms provide environmental ethical framing that combines with character tags:

```yaml
# Room declares context
room:
  ethics:
    frame: "whimsical adventure"
    constraints: [family-friendly, educational]
    
# Character brings their tags
character:
  tags: [real-being, animal]
  
# Combined for this interaction:
effective_context:
  character_ethics: [respect existence, species-appropriate]
  room_ethics: [family-friendly, educational]
  result: "Portray real dog in family-friendly educational context"
```

## Methods

### TAG

Assign ontological tags to a character.

```yaml
TAG:
  parameters:
    character: "Path to character"
    tags: ["tag1", "tag2"]
  effect: "Sets character.ontology.tags"
  validation: "Tags must be from known set"
```

### CHECK-ETHICS

Compute the combined ethics for a character in a context.

```yaml
CHECK-ETHICS:
  parameters:
    character: "Character to check"
    room: "Optional room context"
  output:
    tags: ["real-being", "animal"]
    ethics: ["list of combined constraints"]
    warnings: ["any special concerns"]
```

### COMPOSE

Create a hybrid character from multiple sources.

```yaml
COMPOSE:
  parameters:
    sources:
      - type: "real-being"
        source: "don-hopkins"
      - type: "robot"
        source: "gpt-4"
  output:
    suggested_tags: ["real-being", "robot", "fictional"]
    ethics: ["combined constraints"]
    warnings: ["consent required", "AI disclosure needed"]
```

Attribution

SimHackerSimHacker
View sourceSee grades on GitHubMore from SimHacker →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Math Olympiad

1. **Strip thinking before verifying** — a verifier that sees the reasoning is biased toward agreement. Fresh context, cleaned proof only. 2. **"Does this prove RH?"** — if your theorem's specialization to ζ is a famous open problem, you have a gap. Most reliable red flag. 3. **Short proof → extract the general lemma** — try 2×2 counterexamples. If general form is false, find what's special about THIS instance. 4. **Same gap twice → step back** — the case split may be obscuring a unifie

374330 votes

Manim

Comprehensive guide for Manim Community - Python framework for creating mathematical animations and educational videos with programmatic control

304950 votes

Mcore Onboard Gb200 1node Tests

Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.

180410 votes

Mcore Split Pr

Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.

180410 votes

Read Sensor

Listens to a CARLA sensor and either saves its data to files, shows it live in a window, prints a one-shot summary, or (ros-info) reports the native ROS 2 topics, QoS and enabled-for-ROS state so you can echo it from ROS instead. Cameras save as PNG (depth/semantic auto-colourised) and display in a pygame window; lidar saves as .ply and shows as a top-down scatter; IMU/GNSS/radar/collision stream to JSONL or the console. Use when the user asks to "show/view the camera", "display the lidar", "...

144610 votes
View all in education →