Offsession adventure yaml
Skill lectral/dnd-workshop/.agents/skills/offsession-adventure-yaml
A collection of structured AI workflows (SKILL.md) for building D&D content monsters, NPCs, adventures, items, and spells - enhanced with tarot spreads, bibliomancy, and weighted random tables to push AI beyond generic fantasy tropes.
npx -y skills add lectral/dnd-workshop --skill offsession-adventure-yamlAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Build branching Offsession adventure YAML files with scenes, exits, counters, inventory, and gates. Use when a DM needs repository-ready YAML that passes remote validation before the adventure is considered complete.
SKILL.md
5.1 KB, as published. Nobody here has run it
Offsession Adventure YAML
Use this skill when the user wants a branching adventure file for the Offsession app, including new adventures, rewrites, expansions, examples, and schema corrections.
Core operating rules
- Final output is YAML only unless the user explicitly asks for commentary.
- The adventure is not complete until the full YAML has been validated with
node .agents/skills/offsession-adventure-yaml/scripts/validate-yaml.js <path-to-yaml>, which forwards the YAML to the remote validation API and reports its response. - Always include
metaandscenes. - The first playable scene must be
id: start. - Every non-terminal branch must lead somewhere. Avoid dead ends unless the scene intentionally ends with
exits: []. - When a gate can fail, provide
failure_targetto avoid soft locks. - Keep official D&D ability and skill names in English inside gate text and labels.
- The canonical gate vocabulary in
references/CHECKS.mdis recommended as a default set. The validator script itself does not enforce repository-local lint rules. - Inventory items may include an optional
iconfield with an RPG Awesome icon id (seereferences/ICONS.md). The validator script will translateicon:intoimage:before validation. - Use only
bonusinventory items withbonus_timing: "after". Repository references and the validator do not supportbeforeorboth.
Workflow
- Confirm the adventure frame: premise, tone, theme, one-shot or campaign use, and expected branch depth.
- Build the state model only as needed:
countersfor hidden logic.inventoryfor items, currencies, rerolls, andafterbonuses.
- Outline the scene graph before writing prose. Ensure
startexists and every exit target resolves to a scene id. - Write scenes with concise titles, markdown-ready descriptions, and exits that are easy to run at the table.
- Use gates only when tension or uncertainty improves the branch. Keep DCs readable and consequences clear.
- For each gate, use a short, readable label. The canonical list in
references/CHECKS.mdremains the default recommendation. - Use
visible_if,requires_item,one_time,effects,add_items,remove_items, andcoloronly when they materially change play. - Validate the finished YAML with the validator script. If the remote validator reports errors, fix them and validate again before presenting the result as complete.
Output contract
Default deliverable: a single YAML document, ready to save as an Offsession adventure file.
Unless the user requests otherwise, include sections in this order when they are needed:
metacountersinventoryscenes
Schema guidance
meta.titleis required.description,theme, andone_shotshould be present unless the user explicitly wants a minimal stub.- Counter types must be
numberorboolean. - Valid inventory types are
currency,item,reroll, andbonus. usage_countis available for charge-based non-currency inventory.- If
type: "bonus", always includevalueand setbonus_timing: "after". - Keep inventory ids stable, lowercase, and underscore-separated.
- Scene descriptions can use markdown and multiple paragraphs.
- Ending scenes should use
exits: [].
Exit and gate rules
gate.textshould clearly describe the roll and the stakes.gate.short_textshould be a short, readable label for the check, such asDexterity,Investigation, or a custom label supported by your adventure.gate.show_shortshould betruewhenshort_textis present.gate.dcshould reflect the actual challenge, not arbitrary difficulty inflation.gate.failure_targetshould resolve to an existing scene id.requires_itemshould use an existing inventory id and a positive integer amount.visible_ifshould define exactly one subject:counter,item, orcurrency.- Prefer
effectson an exit when choosing that path should immediately change state. - Prefer
add_itemsandremove_itemson a scene when the state change should happen on arrival and needs player-facing text. - Use exit
colorsparingly to signal urgency, danger, reward, or a highlighted path.
Completion checklist
The YAML is complete only if all of the following are true:
- The document follows the schema summarized in
references/SCHEMA.md. - Every scene id and exit target is valid.
- The first playable scene is
start. - Conditional logic references existing counters or inventory ids.
- The remote validator returns success.
References
- Schema summary:
references/SCHEMA.md - Canonical gate checks:
references/CHECKS.md - Example adventure:
references/EXAMPLE.yaml - Validator script:
scripts/validate-yaml.js