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.
Use this skill when the user wants a branching adventure file for the Offsession app, including new adventures, rewrites, expansions, examples, and schema corrections.
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.meta and scenes.id: start.exits: [].failure_target to avoid soft locks.references/CHECKS.md is recommended as a default set. The validator script itself does not enforce repository-local lint rules.iconreferences/ICONS.mdicon:image:bonus inventory items with bonus_timing: "after". Repository references and the validator do not support before or both.counters for hidden logic.inventory for items, currencies, rerolls, and after bonuses.start exists and every exit target resolves to a scene id.references/CHECKS.md remains the default recommendation.visible_if, requires_item, one_time, effects, add_items, remove_items, and color only when they materially change play.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:
metacountersinventoryscenesmeta.title is required. description, theme, and one_shot should be present unless the user explicitly wants a minimal stub.number or boolean.currency, item, reroll, and bonus.usage_count is available for charge-based non-currency inventory.type: "bonus", always include value and set bonus_timing: "after".exits: [].gate.text should clearly describe the roll and the stakes.gate.short_text should be a short, readable label for the check, such as Dexterity, Investigation, or a custom label supported by your adventure.gate.show_short should be true when short_text is present.gate.dc should reflect the actual challenge, not arbitrary difficulty inflation.gate.failure_target should resolve to an existing scene id.requires_item should use an existing inventory id and a positive integer amount.visible_if should define exactly one subject: counter, item, or currency.effects on an exit when choosing that path should immediately change state.add_items and remove_items on a scene when the state change should happen on arrival and needs player-facing text.color sparingly to signal urgency, danger, reward, or a highlighted path.The YAML is complete only if all of the following are true:
references/SCHEMA.md.start.references/SCHEMA.mdreferences/CHECKS.mdreferences/EXAMPLE.yamlscripts/validate-yaml.js