validate-template
π―Skillfrom hopeoverture/worldbuilding-system
Validates templates and entity files to ensure they meet worldbuilding system standards and structural requirements.
Installation
npx skills add https://github.com/hopeoverture/worldbuilding-system --skill validate-templateSkill Details
Validate a template or entity file has all required sections, YAML fields, and follows the worldbuilding system conventions. Use when creating new templates or checking if entities are properly structured.
Overview
# Validate Template
Validate: $ARGUMENTS
Overview
This skill validates that templates and entity files conform to the worldbuilding system standards:
- Required YAML frontmatter fields are present
- Required sections exist
- Image Prompts section is properly formatted
- Connections section has correct structure
- Content follows directive patterns
Instructions
Parse Arguments
| Argument | Purpose |
|----------|---------|
| [path] | Path to template or entity file |
| --fix | Auto-fix simple issues (add missing sections) |
| --template-type [Type] | Force validation as specific type |
| --all-templates | Validate all templates in Templates/ |
| --all-entities [world] | Validate all entities in a world |
---
Validation Rules
Universal Requirements (All Files)
#### YAML Frontmatter
Every file must have:
```yaml
---
tags:
- [category tag]
name: "[Entity Name]"
aliases:
- [optional aliases]
status: draft | in-progress | complete
image: "" | "[[Entity Name.png]]"
---
```
Checks:
- [ ] YAML block exists (between
---markers) - [ ]
tags:field exists and is non-empty array - [ ]
name:field exists and is non-empty string - [ ]
aliases:field exists (can be empty array) - [ ]
status:field exists with valid value - [ ]
image:field exists
#### Title Section
```markdown
# {{title}}
```
or
```markdown
# [Entity Name]
```
Checks:
- [ ] H1 heading exists as first content line after YAML
- [ ] Only one H1 heading in file
#### Connections Section
```markdown
Connections
[Category]
- [Relationship]: [[Entity]]
```
Checks:
- [ ]
## Connectionssection exists - [ ] At least one subsection with wikilinks
- [ ] Wikilinks use proper format
[[Entity Name]]
#### Image Prompts Section
```markdown
Image Prompts
[Art Style]
[Style description]
[Scene Type]
[Scene setup]
Prompt: [Filled prompt text]
```
Checks:
- [ ]
## Image Promptssection exists (for most entity types) - [ ] At least one subsection with
Prompt:field - [ ]
Prompt:field contains actual content (not placeholder)
---
Category-Specific Requirements
#### Characters (Protagonist, Antagonist, Support Character)
Additional YAML:
```yaml
species: "[species]"
class: "[class]"
level: [number] # OR
challenge_rating: "[CR]" # (one required, not both)
armor_class: [number]
hit_points: [number]
proficiency_bonus: [number]
```
Additional Sections:
- [ ]
## Stat Block - [ ]
### Ability Scores - [ ]
## Personality - [ ]
## Background - [ ]
## Combat Statistics
Validation Notes:
- Either
level:ORchallenge_rating:must be filled (not both, not neither) - Proficiency bonus must match level/CR per D&D 5e 2024 rules
#### Settlements (Village, Town, City, Stronghold)
Additional YAML:
```yaml
settlement_type: "[type]"
population: "[range]"
government_type: "[type]"
```
Additional Sections:
- [ ]
## Overview - [ ]
## Districtsor## Areas - [ ]
## Notable Locations
#### Organizations
Additional YAML:
```yaml
organization_type: "[type]" # or appropriate tag
```
Additional Sections:
- [ ]
## Overview - [ ]
## Leadership - [ ]
## Goals - [ ]
## Resources
#### Creatures (Monster, Animal, Insect)
Additional YAML:
```yaml
size: "[size]"
creature_type: "[type]"
challenge_rating: "[CR]"
experience_points: [number]
```
Additional Sections:
- [ ]
## Stat Block - [ ]
### Classification - [ ]
### Ability Scores - [ ]
## Traits - [ ]
## Actions
#### Geography
Additional YAML:
```yaml
terrain_type: "[type]" # or appropriate geographic tag
```
Additional Sections:
- [ ]
## Overview - [ ]
## Features - [ ]
## Inhabitants
#### Items
Additional YAML:
```yaml
rarity: "[rarity]"
item_type: "[type]"
```
Additional Sections:
- [ ]
## Description - [ ]
## Properties
#### History (Event, Age, War, Battle)
Additional YAML:
```yaml
date: "[date or era]"
```
Additional Sections:
- [ ]
## Overview - [ ]
## Causes - [ ]
## Key Figures - [ ]
## Consequences
---
Validation Report
```
=== VALIDATION REPORT: [File Name] ===
Template Type: [Detected or Specified]
Category: [Category]
YAML FRONTMATTER
βββββββββββββββββββββββββββββββββββββ
β tags: present (3 tags)
β name: present ("Lord Varic Valdren")
β aliases: present (2 aliases)
β status: present (in-progress)
β image: present (empty - needs image)
β species: present ("Human")
β class: present ("Fighter")
β level: present (8)
β challenge_rating: N/A (using level-based)
β armor_class: present (18)
β hit_points: present (75)
β proficiency_bonus: present (+3) β Matches level 8
REQUIRED SECTIONS
βββββββββββββββββββββββββββββββββββββ
β # Title (line 15)
β ## Stat Block (line 20)
β ### Ability Scores (line 25)
β ## Personality (line 60)
β ## Background (line 80)
β ## Combat Statistics (line 45)
β ## Connections (line 200)
β ## Image Prompts (line 230)
IMAGE PROMPTS
βββββββββββββββββββββββββββββββββββββ
β ### Portrait found
β Prompt: filled (45 characters)
β ### Action Scene found
β Prompt: EMPTY or placeholder
CONNECTIONS
βββββββββββββββββββββββββββββββββββββ
β Has wikilinks in Connections section
- [[Lady Serana Valdren]]
- [[House Valdren]]
- [[Aldersgate]]
SUMMARY
βββββββββββββββββββββββββββββββββββββ
Checks Passed: 18/20
Checks Failed: 2
Warnings: 1
ISSUES FOUND:
- [ERROR] Image Prompt for "Action Scene" is empty (line 245)
- [WARNING] image: field is empty (entity has no generated image)
RECOMMENDATIONS:
- Fill the Action Scene prompt before running /generate-image
- Run /generate-image after filling prompts
```
---
Auto-Fix Mode (--fix)
When --fix is specified, the skill can automatically fix:
| Issue | Auto-Fix Action |
|-------|-----------------|
| Missing YAML field | Add field with placeholder value |
| Missing required section | Add section header with TODO comment |
| Missing Connections section | Add empty Connections section |
| Missing Image Prompts section | Add template Image Prompts section |
| Empty aliases array | Add aliases: [] |
Cannot auto-fix:
- Missing content in sections
- Empty image prompts (requires creative content)
- Incorrect stat block values
- Missing wikilinks
---
Bulk Validation
Validate All Templates
```bash
/validate-template --all-templates
```
Report:
```
=== TEMPLATE VALIDATION: Templates/ ===
Category | Files | Valid | Issues |
---------------------|-------|-------|--------|
Characters | 6 | 6 | 0 |
Settlements | 8 | 7 | 1 |
Items | 11 | 11 | 0 |
Creatures | 5 | 5 | 0 |
Organizations | 9 | 9 | 0 |
Concepts | 10 | 9 | 1 |
History | 9 | 9 | 0 |
Geography | 18 | 18 | 0 |
Encounters | 4 | 4 | 0 |
Maps | 4 | 4 | 0 |
---------------------|-------|-------|--------|
TOTAL | 84 | 82 | 2 |
FILES WITH ISSUES:
- Templates/Settlements/Tavern.md: Missing ## Notable NPCs section
- Templates/Concepts/Religion.md: Empty image prompt
```
Validate All Entities in World
```bash
/validate-template --all-entities Eldermyr
```
Report:
```
=== ENTITY VALIDATION: Worlds/Eldermyr/ ===
Category | Files | Valid | Issues |
---------------------|-------|-------|--------|
Characters | 12 | 10 | 2 |
Settlements | 8 | 8 | 0 |
...
ENTITIES WITH ISSUES:
- Characters/Old Merchant.md: Missing level OR challenge_rating
- Characters/Guard Captain.md: Proficiency +2 doesn't match level 7
```
---
Integration with Other Skills
Before `/create-template`
Run validation on similar templates to understand the expected structure.
After `/create-entity`
Run validation to ensure generated entity meets all requirements.
With `/audit-world`
Validation is complementary to audit:
/validate-templatechecks structure and format/audit-worldchecks content consistency and links
---
Examples
```bash
# Validate a single entity
/validate-template "Worlds/Eldermyr/Characters/Lord Varic Valdren.md"
# Validate and auto-fix issues
/validate-template "Worlds/Eldermyr/Characters/Lord Varic Valdren.md" --fix
# Validate as specific type
/validate-template "some-file.md" --template-type "Support Character"
# Validate all templates
/validate-template --all-templates
# Validate all entities in a world
/validate-template --all-entities Eldermyr
# Validate with auto-fix
/validate-template --all-entities Eldermyr --fix
```
More from this repository10
Generates random, contextually appropriate encounters tailored to location, party level, and world, spanning combat, social, and exploration scenarios.
Generates a comprehensive, interconnected world with 80-120 entities, including geography, characters, organizations, and history, using 75 worldbuilding templates.
Generates intricate political landscapes with alliance networks, conflicts, treaties, and power dynamics for worldbuilding.
Generates a comprehensive worldbuilding project structure with customizable genre and tone options for creating immersive fantasy settings.
Generates a structured Obsidian worldbuilding template for a specific fantasy entity type with comprehensive sections, tags, and image prompt guidelines.
Connects entities bidirectionally by creating contextual wikilinks between them, either manually or automatically across a world.
Guides users through collaborative worldbuilding by asking targeted questions, offering choices, and creating world elements step-by-step with user approval.
Generates comprehensive D&D session preparation materials, quickly compiling world details, NPCs, locations, and encounter suggestions for Dungeon Masters.
Populates a geographic region with settlements, landmarks, encounters, legends, and adventure sites based on its terrain and characteristics.
Expands a settlement by generating detailed NPCs, establishments, districts, local issues, and atmospheric details for villages, towns, cities, or strongholds.