$npx -y skills add alfredxw/denova --skill teller-configUse when config_manager creates or updates Denova narrative style configurations.
| 1 | # Narrative Style Config |
| 2 | |
| 3 | Use this skill before calling `write_tellers`. |
| 4 | |
| 5 | ## Workflow |
| 6 | |
| 7 | 1. Call `list_tellers` first. For updates, call `read_tellers` for the exact teller IDs. |
| 8 | 2. Call `list_style_references` before editing `style_refs` or `style_rules`. If a needed reference does not exist, use `write_style_references` to create a `.denova/styles/*.md` Markdown file first. |
| 9 | 3. Use `write_tellers` for create/update/delete. Do not edit teller JSON files directly. |
| 10 | 4. Updating a built-in narrative-style ID creates a user-space override of that same ID. Deleting a built-in ID is only for restoring the code-defined default and requires an explicit restore request. |
| 11 | 5. For update, preserve slots and policy fields the user did not ask to change. |
| 12 | 6. For delete, require an explicit user request. |
| 13 | 7. Keep this resource focused on prose style. Events, State Systems, TRPG checks, image presets, and Actor trait pools belong in `story-director-config` and the corresponding story-director tools. |
| 14 | 8. Narrative styles are shared modules for Writing Mode and Game Mode. Do not add a per-style mode/scope field. |
| 15 | |
| 16 | ## Teller Shape |
| 17 | |
| 18 | Important fields: |
| 19 | |
| 20 | - `id`: stable ID. Required for update/delete; create may generate one if omitted. |
| 21 | - `name`: user visible name. |
| 22 | - `description`: short explanation of the narrative style. |
| 23 | - `context_policy`: controls which context groups the teller expects. |
| 24 | - `slots`: prompt slots used by writing and interactive story prompt assembly. |
| 25 | |
| 26 | Do not change `version`, `path`, `custom`, `builtin_overridden`, `invalid`, `error`, `created_at`, or `updated_at` unless preserving an existing complete object from `read_tellers`. |
| 27 | |
| 28 | ## Context Policy |
| 29 | |
| 30 | `context_policy` contains: |
| 31 | |
| 32 | - `creator`: how to use CREATOR.md and creator-level rules. |
| 33 | - `lore`: how to use lore/context library. |
| 34 | - `runtime_state`: how to use current story state and turn context. |
| 35 | |
| 36 | Keep these as short policy strings. They guide prompt assembly but do not replace runtime safety rules. |
| 37 | |
| 38 | ## Slots |
| 39 | |
| 40 | Each slot contains: |
| 41 | |
| 42 | - `id`: stable slot ID. |
| 43 | - `name`: user visible slot name. |
| 44 | - `target`: where the slot applies, such as `system`, `turn_context`, or another existing target read from a teller. |
| 45 | - `enabled`: boolean. |
| 46 | - `content`: prompt text for that target. |
| 47 | |
| 48 | When modifying slots: |
| 49 | |
| 50 | - Preserve slot IDs so existing UI selection and semantics remain stable. |
| 51 | - Keep slot content focused on narrative behavior, not backend tool permissions. |
| 52 | - Do not put story facts, chapter prose, or temporary scene state into teller slots. |
| 53 | - If a new slot target is needed, mirror the target style already present in existing tellers. |
| 54 | |
| 55 | ## Style References |
| 56 | |
| 57 | Top-level `style_refs` lists shared style reference files that apply to every scene by default. |
| 58 | |
| 59 | `style_rules` maps specific scenes to shared style reference files: |
| 60 | |
| 61 | - `scene`: scenario label. |
| 62 | - `style_refs`: list of paths returned by `list_style_references`, usually `.denova/styles/<name>.md`. |
| 63 | - `style_contents`: legacy inline snippets. Preserve existing values unless the user asks to migrate them, but do not add new inline content. |
| 64 | |
| 65 | Use top-level `style_refs` when the user wants one reference style to affect all scenes. Only add `style_rules` when the user asks for scene-specific style behavior or when an existing teller already uses that pattern. |
| 66 | |
| 67 | ## Shared Style References |
| 68 | |
| 69 | Style references are shared by all narrative styles and live under `.denova/styles/`. |
| 70 | |
| 71 | When creating a reference from a user source file: |
| 72 | |
| 73 | - Default to extracting a Markdown style reference instead of saving the raw original. |
| 74 | - The Markdown should be dominated by distilled typical reference paragraphs, with short supporting style guidance. |
| 75 | - Do not include real-world author names, work names, source notes, or long raw quotations. |
| 76 | - Keep it reusable across Writing Mode and Game Mode. |
| 77 | - If the user explicitly chooses not to extract, save the provided source content as a Markdown reference with a clear name and description. |
| 78 | |
| 79 | When writing the teller back, use `write_tellers` with the complete updated teller object and a concise change message. |