← NovelistCONTENT HISTORY

Update to Novelist

Snapshot Sep 30, 2026 · 23:13 UTC · version 0.2.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Create story material source files for this novel project. Use when the user wants to generate, refine, or save raw novel material such as motifs, objects, scene seeds, dialogue seeds, research notes, themes, images, conflicts, clues, or reusable ideas into materials/ as Markdown with YAML frontmatter.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 188
    },
    {
      "relative_path": "scripts/write_material.py",
      "size_in_bytes": 4942
    }
  ],
  "name": "create-material",
  "skill_md_contents": "---\nname: create-material\ndescription: Create story material source files for this novel project. Use when the user wants to generate, refine, or save raw novel material such as motifs, objects, scene seeds, dialogue seeds, research notes, themes, images, conflicts, clues, or reusable ideas into materials/ as Markdown with YAML frontmatter.\n---\n\n# Create Material\n\n## Overview\n\nUse this skill to turn a rough story-material prompt into a complete `materials/*.md` source file.\n\nAlways follow `AGENTS.md` and `materials/_template.md`. Generate useful seed material from the prompt, ask for missing information and intended story use, revise from feedback, then write only after confirmation.\n\nBefore running a bundled command, resolve `<skill-dir>` to the absolute directory\ncontaining this `SKILL.md`. This keeps the same skill usable from either the\nrepository-local skill tree or the Novelist plugin.\n\n## Workflow\n\n### 1. Read Context\n\nRead:\n\n- `AGENTS.md`\n- `project.md`\n- `materials/_template.md`\n- Existing files in `materials/`\n- Relevant `characters/`, `macguffins/`, `plot/`, `outlines/`, and `world/` files if referenced\n\n### 2. Generate A Material Draft\n\nFrom the user's prompt, infer a compact first-pass material note in Korean. Include:\n\n- material category, such as `scene-seed`, `motif`, `object`, `line`, `research`, `theme`, `image`, `conflict`, or `clue`\n- raw idea\n- possible story use\n- related characters, MacGuffins, plot threads, or settings\n- whether it is canonical yet\n- constraints, risks, or questions\n- open decisions the user should make\n\nMark inferred items clearly. Keep uncertain ideas as `status: seed` and `canonical: false`.\n\n### 3. Ask For Direction\n\nAsk the user what role this material should play:\n\n- background texture or major plot driver\n- literal object or metaphor\n- one-scene use or recurring motif\n- clue, red herring, image system, dialogue seed, or research note\n- canonical fact or scratch seed\n\nContinue the feedback loop until the user says it is enough or gives enough detail to save.\n\n### 4. Build The Material File\n\nUse a filesystem-safe ASCII slug. Save to `materials/<slug>.md`; `id` must be `material-<slug>`.\n\nRequired frontmatter:\n\n```yaml\nid: material-ascii-slug\ntype: material\ntitle: \"\"\ncategory: scene-seed\nstatus: seed\nsource: \"\"\ncanonical: false\nrelated_characters: []\nrelated_macguffins: []\nplot_threads: []\nused_in_chapters: []\ncreated: YYYY-MM-DD\nupdated: YYYY-MM-DD\ntags: []\n```\n\nThe Markdown body must include:\n\n- `# <title>`\n- `## Idea`\n- `## Story Use`\n- `## Notes`\n\n### 5. Write And Verify\n\nPrefer the bundled script:\n\n```bash\npython3 \"<skill-dir>/scripts/write_material.py\" --input /path/to/material.json --project-root .\n```\n\nUse a temporary JSON file with final confirmed data. The script writes `materials/<slug>.md`, refuses invalid slugs, and refuses to overwrite existing files unless `--force` is passed.\n\nAfter writing, verify frontmatter delimiters, `type: material`, matching `id`, and `git status --short`. Do not commit unless the user asks.\n"
}

SHA-256 of public snapshot: 4a2f80d465be38c309f5500dce9f45c0e803d263707310dcf74decd33a5525c1