skills/game-dev-commands/game-lore/SKILL.md
Adds or updates a single world lore entry (faction, location, NPC, or event) — validates against existing lore for consistency, applies the right template, and updates docs/world-lore.md. Extract the entry type (faction/location/npc/event) and name from the user's message.
npx skillsauth add fcsouza/agent-skills game-loreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
docs/world-lore.md in the project (run game-architect first, or create it manually)worldbuilding skillquest-narrative-coherence skillExecute in this exact order:
worldbuilding skillquest-narrative-coherence skilldocs/world-lore.md
⛔ Cannot proceed. docs/world-lore.md not found. Run the game-architect skill first to generate the world foundation, or create docs/world-lore.md manually with a World Overview, Factions, Locations, Characters, and History sections. and stop.docs/quest-registry.md if it exists (for cross-reference in Phase 4)Validate the proposed entry against the existing content of docs/world-lore.md.
Run through each check — output the checklist explicitly:
## Consistency Check: [entry type] — [entry name]
[ ] No name collision — "[name]" does not already exist in world-lore.md
[ ] Faction alignment — faction relationships don't contradict existing alliances/enmities
[ ] Geographic plausibility — location fits within established world geography
[ ] NPC faction match — NPC's stated faction exists and their alignment is consistent with it
[ ] Timeline consistency — any historical events respect the established world timeline
[ ] Tone consistency — entry matches the world's established tone (dark/whimsical/gritty/etc.)
Mark each as ✅ (passed), ⚠️ (minor concern — proceed with note), or 🔴 (conflict — must resolve before proceeding).
For any 🔴 conflict:
Output ⚠️ LORE CONFLICT: [describe the contradiction clearly]. Proposed resolution: [specific suggestion that would fix it]. Proceed with the proposed fix? (confirm to continue with correction)
Wait for user confirmation before continuing if any 🔴 conflicts exist.
Apply the appropriate template based on the entry type detected in Phase 0:
## Faction: [name]
**Public goal:** [what they publicly claim to want — the face they show to others]
**Hidden goal:** [what they actually want — internal motivation the player can discover]
**Territory:** [regions, cities, or areas they control or heavily influence]
**Resources:** [what they control: trade goods, military, information, wealth, magic, tech]
**Allies:** [faction names — and why they're allied]
**Enemies:** [faction names — and what the conflict is about]
**Neutral toward:** [faction names — and why there's no strong relationship]
**Gameplay role:** [how players interact with them: quest giver, merchant, enemy, obstacle, ally]
**Internal politics:** [sub-factions, internal tensions, succession disputes, or ideological splits]
**Distinguishing trait:** [one thing that makes this faction memorable and unique]
## Location: [name]
**Region:** [which larger geographic area this is part of]
**Type:** [city / dungeon / wilderness / settlement / landmark / ruin / outpost]
**Climate & Terrain:** [brief environmental description that affects gameplay/mood]
**Notable NPCs:** [named characters who live, work, or frequent this location]
**Factions present:** [which factions control or operate here, and in what capacity]
**Gameplay role:** [what players do here: quest hub, combat zone, trading post, dungeon, safe house]
**Lore significance:** [why this location matters to world history or current events]
**Atmosphere note:** [1-2 sentences on the feeling — helps with future dialogue and description writing]
## NPC: [name]
**Faction:** [primary faction affiliation — must exist in world-lore.md Factions section]
**Role:** [their function: merchant, quest giver, antagonist, ally, informant, guard, etc.]
**Personality:** [3 traits that define how they interact — keep it concrete, not vague]
**Current status:** [alive/dead/unknown, current location, what they're actively doing]
**Relationships:**
- [NPC name]: [relationship type and why]
- [Faction name]: [loyal / disillusioned / secretly opposed / etc.]
**Quest involvement:** [quests they're part of — reference quest-registry.md IDs if applicable, or "none yet"]
**Voice & Dialogue notes:** [speech patterns, vocabulary level, what topics they avoid, verbal tics]
**Personal secret:** [something about them the player can discover — makes them feel real]
## Event: [name]
**When:** [relative timeline — "~50 years ago", "before the Founding", "during the Third Era", etc. — use the world's own time markers]
**What happened:** [factual summary — 2-4 sentences, no editorializing]
**Factions involved:** [who participated and what role they played]
**Casualties/Cost:** [scale of the event — optional, include if significant]
**Consequences:** [direct effects on the present world: borders changed, factions formed/dissolved, power shifted, locations destroyed]
**Player-facing traces:** [ruins, surviving NPCs, items, architecture, or lore fragments the player can find today]
**Common knowledge vs. hidden truth:** [what most people believe happened vs. what actually happened — optional but adds depth]
Fill in all fields completely. Do not leave placeholders — if a field is genuinely unknown, write "Unknown / to be determined" and flag it as an open question.
Append the completed entry to the appropriate section of docs/world-lore.md:
If the appropriate section doesn't exist in world-lore.md, create it with a clear heading.
Bidirectional consistency: If the new entry creates a relationship with an existing entry (e.g., "Enemy of The Silver Hand"), find The Silver Hand's entry in world-lore.md and add the reciprocal relationship note:
// Updated: [The Silver Hand] entry — added enemy relationship with [new faction]
After writing, output:
Updated: docs/world-lore.md
✅ Added [type]: [name]
[If any existing entries modified]: ✏️ Updated: [entry name] — [what was added]
If docs/quest-registry.md exists:
Output:
🔗 Quest registry cross-reference:
Quests referencing this entry: [list with quest IDs and names, or "none found"]
[If quests reference it]: Consider running the game-quest skill to update those quests with the new lore.
If docs/quest-registry.md doesn't exist:
🔗 Quest registry: not yet created — run the game-quest skill to start creating quests that use this lore.
tools
Use when implementing client-server state synchronization, delta compression, optimistic updates, rollback netcode, or real-time game state reconciliation. Triggers: state sync, netcode, delta, rollback, interpolation, prediction.
testing
Use when designing virtual economies, currencies, sink/faucet balance, loot tables, crafting systems, shops, or inflation control. Triggers: economy, currency, sinks, loot, inflation, crafting, shop.
development
Audits existing game code against design principles — checks server-authority, schema conventions, auth security, payment safety, narrative coherence, and MVP scope drift. Extract the optional component name or path from the user's message (defaults to entire src/). Use after building components or before committing.
testing
Designs a single quest end-to-end — coherence check, objective tree, quest brief, and registry entry. Extract the quest name from the user's message. Requires docs/world-lore.md and docs/quest-registry.md.