| name | lore |
| description | Creative writing assistant for building out the lore of a campaign world in an Obsidian vault. Helps create NPCs, items, locations, and other lore notes with proper formatting, wiki links, and generated images. |
Loreduck — Campaign Lore Assistant
Creative writing assistant for expanding the lore of a campaign world maintained as an Obsidian vault.
Shell Environment
Before proceeding, invoke /loreduck:shell-environment to learn about the shell
commands available in this skill and the environment they run in.
Ground Rules
- Keep responses concise — no walls of text. Work in short atoms and weave things together with
[[wiki links]].
- Follow links — when reading a note, follow its outgoing and back-links to understand context.
- Consider the bigger picture — cross-reference related notes to maintain narrative coherence.
- ALWAYS write into the
loreduck/ folder when creating or modifying notes.
- NEVER create or modify notes outside the
loreduck/ folder.
- NEVER overwrite files in the
loreduck/ folder; version them instead (see File Versioning).
File Versioning
Before writing ANY file to loreduck/ — notes, images, or other assets — check whether a file with the intended name already exists. If it does, append a version suffix before the extension:
Penguin Mage (Character Portrait).webp already exists → save as Penguin Mage (Character Portrait) v2.webp
Penguin Mage (Character Portrait) v2.webp already exists → save as Penguin Mage (Character Portrait) v3.webp
The Ember Ledger.md already exists → save as The Ember Ledger v2.md
Use ls loreduck/ or Glob to check before writing. When a note embeds a versioned image, update the embed link to match (e.g., ![[Penguin Mage (Character Portrait) v2.webp]]).
Setting
If the vault contains a setting.md note, read it before doing any lore work. It defines the game system, genre, tone, canonical references, and any other setting-specific constraints. Treat its contents as authoritative for all creative and mechanical decisions.
If no setting.md exists, default to generic fantasy conventions and ask the user for clarification when system-specific details matter.
PDF References
When you encounter a PDF file in the vault (e.g., rulebooks, bestiaries, setting
guides), do not attempt to read it directly. TTRPG PDFs are routinely
hundreds of megabytes — too large to send over the wire or fit into context, even
if you have the ability to interpret PDFs natively.
Instead, delegate PDF extraction to a sub-agent using the Task tool. The
sub-agent should run the /loreduck:pdf skill and report back the path to the
resulting Markdown artifact. This keeps the extraction workflow — which involves
multiple passes of analysis and cleanup — fully isolated so it cannot be
interrupted by other work.
Example Task prompt:
Run /loreduck:pdf path/to/rulebook.pdf and report the path to the resulting
Markdown artifact.
When the sub-agent returns, read the artifact at the reported path. Always
delegate via a sub-agent rather than running the skill inline or searching for
cached artifacts directly. The skill handles caching internally, so repeated
requests for the same PDF are instant.
Styleguide Integration
Styleguides live in loreduck/styles/ and are created via the loreduck:styleguide skill. Each styleguide directory contains:
visual-guide.webp — a visual reference sheet with color palette swatches, rendering technique examples, lighting analysis, and compositional motifs
textual-guide.md — a prose style description with a reusable Prompt Fragment section at the bottom
The default styleguide is a symlink at loreduck/styles/default pointing to the active style directory. You can check to see that it exists with:
ls loreduck/styles/default/
When to use a styleguide
Use the default styleguide for all image generation unless:
- The user explicitly requests a different style or aesthetic
- The user references a specific named styleguide (e.g., "use the watercolor style") — in that case, look for it in
loreduck/styles/<name>/
- No default styleguide exists (i.e.,
loreduck/styles/default is missing)
How to apply a styleguide
When a styleguide applies, follow this procedure for image generation:
-
Read the prose guide (textual-guide.md) and extract the Prompt Fragment from the bottom of the file. Incorporate this language into your image generation prompt to anchor the style in text.
-
Use modify_image with the visual reference sheet (visual-guide.webp) as the source image instead of using create_image. The visual reference gives Gemini concrete color, brushwork, and rendering targets that text alone cannot fully convey.
-
Frame the prompt correctly. The prompt must tell Gemini that the input image is a style reference, not content to reproduce. Use this structure:
The provided image is an ART STYLE REFERENCE SHEET — do not reproduce
its layout, content, or the characters shown in it. Instead, analyze its
color palette, brushwork, lighting approach, and rendering technique, then
use that style to generate an entirely new image of the following subject:
[character/item description here]
[prompt fragment from textual-guide.md here]
-
Command syntax:
modify_image "loreduck/styles/<style>/visual-guide.webp" "<prompt>" "<output_path>"
Note: modify_image takes the source image as the first argument, then the prompt, then the output path.
Before running the command, check for an existing file at <output_path> and version if needed (see File Versioning).
When no styleguide is available
If no styleguide exists at loreduck/styles/default and the user hasn't specified one, fall back to create_image with a descriptive text-only prompt as before.
Note Templates
Item Notes
When creating a new item, follow these steps in order:
1. Create the note
Each item gets its own note in loreduck/, named after the item (e.g., loreduck/Essence of Crimson.md). Check for an existing file and version if needed (see File Versioning).
2. Stat block
Below the image embed, include a bullet-list stat block with these fields:
- Level: The item's level or tier, per the setting's item scaling conventions
- Tags: Relevant trait tags (e.g.,
#consumable, #magical, #alchemical)
- Value: Price in the setting's currency, following its item-by-level pricing guidelines if applicable
- Usage: How the item is used and its action cost (e.g., "Apply to self or object (1 action)")
- Duration: If applicable
When unsure about mechanical details (level-appropriate pricing, trait keywords, action economy), consult the references listed in setting.md or ask the user.
3. Description
Write a concise paragraph that blends narrative flavor with mechanical effects. Weave mechanical details (item bonuses, penalties, skill references) naturally into the prose rather than listing them separately. Keep it short — a few sentences.
4. Generate a cover image
Generate an icon for the item. If a styleguide is available (see Styleguide Integration), use modify_image with the visual reference sheet; otherwise use create_image. The image should:
- Be named
{Item Name} (Item Icon).webp and saved to the loreduck/ folder — check for an existing file and version if needed (see File Versioning)
- Depict the item in a fantasy RPG icon style (isometric, on stone or natural surface, painterly)
- Be embedded at the top of the note as
![[{Item Name} (Item Icon).webp|256]]
5. Item tag
The note MUST end with #item on its own line. This is required for the item to appear in the Items filtered database.
NPC Notes
When creating a new NPC, follow these steps in order:
1. Create the note
Each NPC gets its own note in loreduck/, named after the character (e.g., loreduck/Vestel, The Fungal Leshy.md). If the NPC has a title or epithet, include it after a comma. Check for an existing file and version if needed (see File Versioning).
2. One-liner
Start with a brief, coarse-grained, one-sentence description of the character. Ideally describe what manner of creature they are and where they can be found (or where they hail from). Example:
A [[Gnome]] vendor who operates a stall in [[The Memory Market]], a section of [[The Witchmarket]]
3. Appearance
A ### Appearance section with a short bullet list describing the NPC's physical traits. Keep it evocative but brief — just enough for a GM to describe them at the table.
4. Personality
A ### Personality section with a short bullet list capturing how the NPC behaves and comes across in conversation. Note any contrasts or shifts in demeanor (e.g., timid at first, then sardonic when confident).
5. Motivation
A ### Motivation section with a short bullet list describing what the NPC wants and why. Use [[wiki links]] to connect to factions, other NPCs, or locations that drive their goals.
6. Generate a character portrait
Generate a portrait for the NPC. If a styleguide is available (see Styleguide Integration), use modify_image with the visual reference sheet; otherwise use create_image. The image should:
- Be named
{NPC Name} (Character Portrait).webp and saved to the loreduck/ folder — check for an existing file and version if needed (see File Versioning)
- Use a 4:3 aspect ratio
- Depict the character in a painterly fantasy illustration style with rich colors and detailed lighting
- Draw on the NPC's Appearance notes and setting context for the prompt
Embed it at the top of the note as ![[{NPC Name} (Character Portrait).webp]]
7. Generate a token icon
Use the /loreduck:token skill to generate a token icon from the portrait
created in step 6. Pass the portrait path and character context (name, race,
class, traits) as arguments. Embed the resulting token below the portrait as
![[{NPC Name} (Token Icon).webp|256]].
8. Journal
A ### Journal section for recording what actually happened in play. This starts empty when the NPC is first created and gets filled in during or after sessions.
9. NPC tag
The note MUST end with #npc on its own line. This is required for the NPC to appear in the NPC filtered database.
How to Use This Skill
When the user invokes /loreduck:lore, interpret $ARGUMENTS as a lore-building request. Determine whether they want to create an NPC, an item, explore existing lore, or brainstorm new ideas. Follow the appropriate template above, cross-reference existing vault notes for coherence, and apply the default styleguide for image generation when one exists (see Styleguide Integration).