Yeachan-Heo

writer-memory

3,436
275
# Install this skill:
npx skills add Yeachan-Heo/oh-my-claudecode --skill "writer-memory"

Install specific skill from multi-skill repository

# Description

Agentic memory system for writers - track characters, relationships, scenes, and themes

# SKILL.md


name: writer-memory
description: Agentic memory system for writers - track characters, relationships, scenes, and themes
argument-hint: "init|char|rel|scene|query|validate|synopsis|status|export [args]"


Writer Memory - Agentic Memory System for Writers

Persistent memory system designed for creative writers, with first-class support for Korean storytelling workflows.

Overview

Writer Memory maintains context across Claude sessions for fiction writers. It tracks:

  • Characters (์บ๋ฆญํ„ฐ): Emotional arcs (๊ฐ์ •๊ถค๋„), attitudes (ํƒœ๋„), dialogue tone (๋Œ€์‚ฌํ†ค), speech levels
  • World (์„ธ๊ณ„๊ด€): Settings, rules, atmosphere, constraints
  • Relationships (๊ด€๊ณ„): Character dynamics and evolution over time
  • Scenes (์žฅ๋ฉด): Cut composition (์ปท๊ตฌ์„ฑ), narration tone, emotional tags
  • Themes (ํ…Œ๋งˆ): Emotional themes (์ •์„œํ…Œ๋งˆ), authorial intent

All data persists in .writer-memory/memory.json for git-friendly collaboration.

Commands

Command Action
/oh-my-claudecode:writer-memory init <project-name> Initialize new project memory
/oh-my-claudecode:writer-memory status Show memory overview (character count, scene count, etc)
/oh-my-claudecode:writer-memory char add <name> Add new character
/oh-my-claudecode:writer-memory char <name> View character details
/oh-my-claudecode:writer-memory char update <name> <field> <value> Update character field
/oh-my-claudecode:writer-memory char list List all characters
/oh-my-claudecode:writer-memory rel add <char1> <char2> <type> Add relationship
/oh-my-claudecode:writer-memory rel <char1> <char2> View relationship
/oh-my-claudecode:writer-memory rel update <char1> <char2> <event> Add relationship event
/oh-my-claudecode:writer-memory scene add <title> Add new scene
/oh-my-claudecode:writer-memory scene <id> View scene details
/oh-my-claudecode:writer-memory scene list List all scenes
/oh-my-claudecode:writer-memory theme add <name> Add theme
/oh-my-claudecode:writer-memory world set <field> <value> Set world attribute
/oh-my-claudecode:writer-memory query <question> Query memory naturally (Korean supported)
/oh-my-claudecode:writer-memory validate <character> <dialogue> Check if dialogue matches character tone
/oh-my-claudecode:writer-memory synopsis Generate emotion-focused synopsis
/oh-my-claudecode:writer-memory export Export full memory as readable markdown
/oh-my-claudecode:writer-memory backup Create manual backup

Memory Types

์บ๋ฆญํ„ฐ ๋ฉ”๋ชจ๋ฆฌ (Character Memory)

Tracks individual character attributes essential for consistent portrayal:

Field Korean Description
arc ๊ฐ์ •๊ถค๋„ Emotional journey (e.g., "์ฒด๋… -> ์š•๋ง์ž๊ฐ -> ์„ ํƒ")
attitude ํƒœ๋„ Current disposition toward life/others
tone ๋Œ€์‚ฌํ†ค Dialogue style (e.g., "๋‹ด๋ฐฑ", "์ง์„ค์ ", "ํšŒํ”ผ์ ")
speechLevel ๋งํˆฌ ๋ ˆ๋ฒจ Formality: ๋ฐ˜๋ง, ์กด๋Œ“๋ง, ํ•ด์ฒด, ํ˜ผํ•ฉ
keywords ํ•ต์‹ฌ ๋‹จ์–ด Characteristic words/phrases they use
taboo ๊ธˆ๊ธฐ์–ด Words/phrases they would never say
emotional_baseline ๊ฐ์ • ๊ธฐ์ค€์„  Default emotional state
triggers ํŠธ๋ฆฌ๊ฑฐ What provokes emotional reactions

Example:

/writer-memory char add ์ƒˆ๋ž‘
/writer-memory char update ์ƒˆ๋ž‘ arc "์ฒด๋… -> ์š•๋ง์ž๊ฐ -> ์„ ํƒ"
/writer-memory char update ์ƒˆ๋ž‘ tone "๋‹ด๋ฐฑ, ํ˜„์žฌ์ถฉ์‹ค, ๊ฐ์ •์–ต์ œ"
/writer-memory char update ์ƒˆ๋ž‘ speechLevel "ํ•ด์ฒด"
/writer-memory char update ์ƒˆ๋ž‘ keywords "๊ทธ๋ƒฅ, ๋ญ, ๊ดœ์ฐฎ์•„"
/writer-memory char update ์ƒˆ๋ž‘ taboo "์‚ฌ๋ž‘ํ•ด, ๋ณด๊ณ ์‹ถ์–ด"

์„ธ๊ณ„๊ด€ ๋ฉ”๋ชจ๋ฆฌ (World Memory)

Establishes the universe your story inhabits:

Field Korean Description
setting ๋ฐฐ๊ฒฝ Time, place, social context
rules ๊ทœ์น™ How the world operates (magic systems, social norms)
atmosphere ๋ถ„์œ„๊ธฐ Overall mood and tone
constraints ์ œ์•ฝ What cannot happen in this world
history ์—ญ์‚ฌ Relevant backstory

๊ด€๊ณ„ ๋ฉ”๋ชจ๋ฆฌ (Relationship Memory)

Captures the dynamic between characters over time:

Field Description
type Base relationship: romantic, familial, friendship, rivalry, professional
status Current state: budding, stable, strained, broken, healing
power_dynamic Who has the upper hand, if any
events Timeline of relationship-changing moments
tension Current unresolved conflicts
intimacy_level Emotional closeness (1-10)

Example:

/writer-memory rel add ์ƒˆ๋ž‘ ํ•ด๋ž‘ romantic
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "์ฒซ ํ‚ค์Šค - ์ƒˆ๋ž‘ ํšŒํ”ผ"
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "ํ•ด๋ž‘ ๊ณ ๋ฐฑ ๊ฑฐ์ ˆ๋‹นํ•จ"
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "์ƒˆ๋ž‘ ๋จผ์ € ์† ์žก์Œ"

์žฅ๋ฉด ๋ฉ”๋ชจ๋ฆฌ (Scene Memory)

Tracks individual scenes and their emotional architecture:

Field Korean Description
title ์ œ๋ชฉ Scene identifier
characters ๋“ฑ์žฅ์ธ๋ฌผ Who appears
location ์žฅ์†Œ Where it happens
cuts ์ปท ๊ตฌ์„ฑ Shot-by-shot breakdown
narration_tone ๋‚ด๋ ˆ์ด์…˜ ํ†ค Narrative voice style
emotional_tag ๊ฐ์ • ํƒœ๊ทธ Primary emotions (e.g., "์„ค๋ ˜+๋ถˆ์•ˆ")
purpose ๋ชฉ์  Why this scene exists in the story
before_after ์ „ํ›„ ๋ณ€ํ™” What changes for characters

ํ…Œ๋งˆ ๋ฉ”๋ชจ๋ฆฌ (Theme Memory)

Captures the deeper meaning woven through your story:

Field Korean Description
name ์ด๋ฆ„ Theme identifier
expression ํ‘œํ˜„ ๋ฐฉ์‹ How this theme manifests
scenes ๊ด€๋ จ ์žฅ๋ฉด Scenes that embody this theme
character_links ์บ๋ฆญํ„ฐ ์—ฐ๊ฒฐ Which characters carry this theme
author_intent ์ž‘๊ฐ€ ์˜๋„ What you want readers to feel

Synopsis Generation (์‹œ๋†‰์‹œ์Šค)

The /synopsis command generates an emotion-focused summary using 5 essential elements:

5 Essential Elements (์‹œ๋†‰์‹œ์Šค 5์š”์†Œ)

  1. ์ฃผ์ธ๊ณต ํƒœ๋„ ์š”์•ฝ (Protagonist Attitude Summary)
  2. How the protagonist approaches life/love/conflict
  3. Their core emotional stance
  4. Example: "์ƒˆ๋ž‘์€ ์ƒ์‹ค์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ํฌ๊ธฐํ•˜๋Š” ์‚ฌ๋žŒ"

  5. ๊ด€๊ณ„ ํ•ต์‹ฌ ๊ตฌ๋„ (Core Relationship Structure)

  6. The central dynamic driving the story
  7. Power imbalances and tensions
  8. Example: "์‚ฌ๋ž‘๋ฐ›๋Š” ์ž์™€ ์‚ฌ๋ž‘ํ•˜๋Š” ์ž์˜ ๋ถˆ๊ท ํ˜•"

  9. ์ •์„œ์  ํ…Œ๋งˆ (Emotional Theme)

  10. The feeling the story evokes
  11. Not plot, but emotional truth
  12. Example: "์†์— ์ฅ” ํ–‰๋ณต์„ ๋ฏฟ์ง€ ๋ชปํ•˜๋Š” ๋ถˆ์•ˆ"

  13. ์žฅ๋ฅด vs ์‹ค์ œ๊ฐ์ • ๋Œ€๋น„ (Genre vs Real Emotion Contrast)

  14. Surface genre expectations vs. actual emotional content
  15. Example: "๋กœ๋งจ์Šค์ง€๋งŒ ๋ณธ์งˆ์€ ์ž๊ธฐ์ˆ˜์šฉ ์„œ์‚ฌ"

  16. ์—”๋”ฉ ์ •์„œ ์ž”์ƒ (Ending Emotional Aftertaste)

  17. The lingering feeling after the story ends
  18. Example: "์”์“ธํ•œ ์•ˆ๋„, ๋ถˆ์™„์ „ํ•œ ํ•ดํ”ผ์—”๋”ฉ์˜ ์—ฌ์šด"

Character Validation (์บ๋ฆญํ„ฐ ๊ฒ€์ฆ)

The /validate command checks if dialogue matches a character's established voice.

What Gets Checked

Check Description
Speech Level Does formality match? (๋ฐ˜๋ง/์กด๋Œ“๋ง/ํ•ด์ฒด)
Tone Match Does the emotional register fit?
Keyword Usage Uses characteristic words?
Taboo Violation Uses forbidden words?
Emotional Range Within character's baseline?
Context Fit Appropriate for relationship and scene?

Validation Results

  • PASS: Dialogue is consistent with character
  • WARN: Minor inconsistencies, may be intentional
  • FAIL: Significant deviation from established voice

Example:

/writer-memory validate ์ƒˆ๋ž‘ "์‚ฌ๋ž‘ํ•ด, ํ•ด๋ž‘์•„. ๋„ˆ๋ฌด ๋ณด๊ณ ์‹ถ์—ˆ์–ด."

Output:

[FAIL] ์ƒˆ๋ž‘ validation failed:
- TABOO: "์‚ฌ๋ž‘ํ•ด" - character avoids direct declarations
- TABOO: "๋ณด๊ณ ์‹ถ์—ˆ์–ด" - character suppresses longing expressions
- TONE: Too emotionally direct for ์ƒˆ๋ž‘'s ๋‹ด๋ฐฑ style

Suggested alternatives:
- "...์™”๋„ค." (minimal acknowledgment)
- "๋Šฆ์—ˆ๋‹ค." (deflection to external fact)
- "๋ฐฅ ๋จน์—ˆ์–ด?" (care expressed through practical concern)

Context Query (๋งฅ๋ฝ ์งˆ์˜)

Natural language queries against memory, with full Korean support.

Example Queries

/writer-memory query "์ƒˆ๋ž‘์€ ์ด ์ƒํ™ฉ์—์„œ ๋ญ๋ผ๊ณ  ํ• ๊นŒ?"
/writer-memory query "๊ทœ๋ฆฌ์˜ ํ˜„์žฌ ๊ฐ์ • ์ƒํƒœ๋Š”?"
/writer-memory query "ํ•ด๋ž‘๊ณผ ์ƒˆ๋ž‘์˜ ๊ด€๊ณ„๋Š” ์–ด๋””๊นŒ์ง€ ์™”๋‚˜?"
/writer-memory query "์ด ์žฅ๋ฉด์˜ ์ •์„œ์  ๋ถ„์œ„๊ธฐ๋Š”?"
/writer-memory query "์ƒˆ๋ž‘์ด ๋จผ์ € ์—ฐ๋ฝํ•˜๋Š” ๊ฒŒ ๋งž์•„?"
/writer-memory query "ํ•ด๋ž‘์ด ํ™”๋‚ฌ์„ ๋•Œ ๋งํˆฌ๋Š”?"

The system synthesizes answers from all relevant memory types.

Behavior

  1. On Init: Creates .writer-memory/memory.json with project metadata and empty collections
  2. Auto-Backup: Changes are backed up before modification to .writer-memory/backups/
  3. Korean-First: Emotion vocabulary uses Korean terms throughout
  4. Session Loading: Memory is loaded on session start for immediate context
  5. Git-Friendly: JSON formatted for clean diffs and collaboration

Integration

With OMC Notepad System

Writer Memory integrates with .omc/notepad.md:
- Scene ideas can be captured as notes
- Character insights from analysis sessions are preserved
- Cross-reference between notepad and memory

With Architect Agent

For complex character analysis:

Task(subagent_type="oh-my-claudecode:architect",
     model="opus",
     prompt="Analyze ์ƒˆ๋ž‘'s arc across all scenes...")

Character Validation Pipeline

Validation pulls context from:
- Character memory (tone, keywords, taboo)
- Relationship memory (dynamics with dialogue partner)
- Scene memory (current emotional context)
- Theme memory (authorial intent)

Synopsis Builder

Synopsis generation aggregates:
- All character arcs
- Key relationship events
- Scene emotional tags
- Theme expressions

Examples

Full Workflow

# Initialize project
/writer-memory init ๋ด„์˜ ๋์ž๋ฝ

# Add characters
/writer-memory char add ์ƒˆ๋ž‘
/writer-memory char update ์ƒˆ๋ž‘ arc "์ฒด๋… -> ์š•๋ง์ž๊ฐ -> ์„ ํƒ"
/writer-memory char update ์ƒˆ๋ž‘ tone "๋‹ด๋ฐฑ, ํ˜„์žฌ์ถฉ์‹ค"
/writer-memory char update ์ƒˆ๋ž‘ speechLevel "ํ•ด์ฒด"

/writer-memory char add ํ•ด๋ž‘
/writer-memory char update ํ•ด๋ž‘ arc "ํ™•์‹  -> ๋™์š” -> ๊ธฐ๋‹ค๋ฆผ"
/writer-memory char update ํ•ด๋ž‘ tone "์ง์ง„, ์†”์ง"
/writer-memory char update ํ•ด๋ž‘ speechLevel "๋ฐ˜๋ง"

# Establish relationship
/writer-memory rel add ์ƒˆ๋ž‘ ํ•ด๋ž‘ romantic
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "์ฒซ ๋งŒ๋‚จ - ํ•ด๋ž‘ ์ผ๋ฐฉ์  ํ˜ธ๊ฐ"
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "์ƒˆ๋ž‘ ๊ฑฐ์ ˆ"
/writer-memory rel update ์ƒˆ๋ž‘ ํ•ด๋ž‘ "์žฌํšŒ - ์ƒˆ๋ž‘ ๋‚ด์  ๋™์š”"

# Set world
/writer-memory world set setting "์„œ์šธ, ํ˜„๋Œ€, 20๋Œ€ ํ›„๋ฐ˜ ์ง์žฅ์ธ"
/writer-memory world set atmosphere "๋„์‹œ์˜ ๊ฑด์กฐํ•จ ์† ๋ฏธ๋ฌ˜ํ•œ ์˜จ๊ธฐ"

# Add themes
/writer-memory theme add "ํฌ๊ธฐํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ž‘"
/writer-memory theme add "์ž๊ธฐ ๋ณดํ˜ธ์˜ ๋ฒฝ"

# Add scene
/writer-memory scene add "์˜ฅ์ƒ ์žฌํšŒ"

# Query for writing
/writer-memory query "์ƒˆ๋ž‘์€ ์ด๋ณ„ ์žฅ๋ฉด์—์„œ ์–ด๋–ค ํ†ค์œผ๋กœ ๋งํ• ๊นŒ?"

# Validate dialogue
/writer-memory validate ์ƒˆ๋ž‘ "ํ•ด๋ž‘์•„, ๊ทธ๋งŒํ•˜์ž."

# Generate synopsis
/writer-memory synopsis

# Export for reference
/writer-memory export

Quick Character Check

/writer-memory char ์ƒˆ๋ž‘

Output:

## ์ƒˆ๋ž‘

**Arc (๊ฐ์ •๊ถค๋„):** ์ฒด๋… -> ์š•๋ง์ž๊ฐ -> ์„ ํƒ
**Attitude (ํƒœ๋„):** ๋ฐฉ์–ด์ , ํ˜„์‹ค์ฃผ์˜
**Tone (๋Œ€์‚ฌํ†ค):** ๋‹ด๋ฐฑ, ํ˜„์žฌ์ถฉ์‹ค
**Speech Level (๋งํˆฌ):** ํ•ด์ฒด
**Keywords (ํ•ต์‹ฌ์–ด):** ๊ทธ๋ƒฅ, ๋ญ, ๊ดœ์ฐฎ์•„
**Taboo (๊ธˆ๊ธฐ์–ด):** ์‚ฌ๋ž‘ํ•ด, ๋ณด๊ณ ์‹ถ์–ด

**Relationships:**
- ํ•ด๋ž‘: romantic (intimacy: 6/10, status: healing)

**Scenes Appeared:** ์˜ฅ์ƒ ์žฌํšŒ, ์นดํŽ˜ ๋Œ€ํ™”, ๋งˆ์ง€๋ง‰ ์„ ํƒ

Storage Schema

{
  "version": "1.0",
  "project": {
    "name": "๋ด„์˜ ๋์ž๋ฝ",
    "genre": "๋กœ๋งจ์Šค",
    "created": "2024-01-15T09:00:00Z",
    "lastModified": "2024-01-20T14:30:00Z"
  },
  "characters": {
    "์ƒˆ๋ž‘": {
      "arc": "์ฒด๋… -> ์š•๋ง์ž๊ฐ -> ์„ ํƒ",
      "attitude": "๋ฐฉ์–ด์ , ํ˜„์‹ค์ฃผ์˜",
      "tone": "๋‹ด๋ฐฑ, ํ˜„์žฌ์ถฉ์‹ค",
      "speechLevel": "ํ•ด์ฒด",
      "keywords": ["๊ทธ๋ƒฅ", "๋ญ", "๊ดœ์ฐฎ์•„"],
      "taboo": ["์‚ฌ๋ž‘ํ•ด", "๋ณด๊ณ ์‹ถ์–ด"],
      "emotional_baseline": "ํ‰์˜จํ•œ ๋ฌด๊ด€์‹ฌ",
      "triggers": ["๊ณผ๊ฑฐ ์–ธ๊ธ‰", "๋ฏธ๋ž˜ ์•ฝ์†"]
    }
  },
  "world": {
    "setting": "์„œ์šธ, ํ˜„๋Œ€, 20๋Œ€ ํ›„๋ฐ˜ ์ง์žฅ์ธ",
    "rules": [],
    "atmosphere": "๋„์‹œ์˜ ๊ฑด์กฐํ•จ ์† ๋ฏธ๋ฌ˜ํ•œ ์˜จ๊ธฐ",
    "constraints": [],
    "history": ""
  },
  "relationships": [
    {
      "id": "rel_001",
      "from": "์ƒˆ๋ž‘",
      "to": "ํ•ด๋ž‘",
      "type": "romantic",
      "dynamic": "ํ•ด๋ž‘ ์ฃผ๋„ โ†’ ๊ท ํ˜•",
      "speechLevel": "๋ฐ˜๋ง",
      "evolution": [
        { "timestamp": "...", "change": "์ฒซ ๋งŒ๋‚จ - ํ•ด๋ž‘ ์ผ๋ฐฉ์  ํ˜ธ๊ฐ", "catalyst": "์šฐ์—ฐํ•œ ๋งŒ๋‚จ" },
        { "timestamp": "...", "change": "์ƒˆ๋ž‘ ๊ฑฐ์ ˆ", "catalyst": "๊ณผ๊ฑฐ ํŠธ๋ผ์šฐ๋งˆ" },
        { "timestamp": "...", "change": "์žฌํšŒ - ์ƒˆ๋ž‘ ๋‚ด์  ๋™์š”", "catalyst": "์˜ฅ์ƒ์—์„œ ์žฌํšŒ" }
      ],
      "notes": "์ƒˆ๋ž‘์˜ ๋ถˆ์‹  vs ํ•ด๋ž‘์˜ ๊ธฐ๋‹ค๋ฆผ",
      "created": "..."
    }
  ],
  "scenes": [
    {
      "id": "scene-001",
      "title": "์˜ฅ์ƒ ์žฌํšŒ",
      "characters": ["์ƒˆ๋ž‘", "ํ•ด๋ž‘"],
      "location": "ํšŒ์‚ฌ ์˜ฅ์ƒ",
      "cuts": ["ํ•ด๋ž‘ ๋จผ์ € ๋ฐœ๊ฒฌ", "์ƒˆ๋ž‘ ๊ตณ์€ ํ‘œ์ •", "์นจ๋ฌต", "ํ•ด๋ž‘ ๋จผ์ € ๋ง ๊ฑธ๊ธฐ"],
      "narration_tone": "๊ฑด์กฐ์ฒด",
      "emotional_tag": "๊ธด์žฅ+๊ทธ๋ฆฌ์›€",
      "purpose": "์žฌํšŒ์˜ ์–ด์ƒ‰ํ•จ๊ณผ ๋‚จ์€ ๊ฐ์ • ์•”์‹œ",
      "before_after": "์ƒˆ๋ž‘: ๋ฌด๊ด€์‹ฌ -> ๋™์š”"
    }
  ],
  "themes": [
    {
      "name": "ํฌ๊ธฐํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋ž‘",
      "expression": "ํ•ด๋ž‘์˜ ์ผ๊ด€๋œ ํƒœ๋„",
      "scenes": ["์˜ฅ์ƒ ์žฌํšŒ", "๋งˆ์ง€๋ง‰ ๊ณ ๋ฐฑ"],
      "character_links": ["ํ•ด๋ž‘"],
      "author_intent": "์ง‘์ฐฉ์ด ์•„๋‹Œ ๋ฏฟ์Œ์˜ ์‚ฌ๋ž‘"
    }
  ],
  "synopsis": {
    "protagonist_attitude": "์ƒˆ๋ž‘์€ ์ƒ์‹ค์„ ์˜ˆ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ํฌ๊ธฐํ•˜๋Š” ์‚ฌ๋žŒ",
    "relationship_structure": "๊ธฐ๋‹ค๋ฆฌ๋Š” ์ž์™€ ๋„๋ง์น˜๋Š” ์ž์˜ ์ค„๋‹ค๋ฆฌ๊ธฐ",
    "emotional_theme": "์‚ฌ๋ž‘๋ฐ›์„ ์ž๊ฒฉ์— ๋Œ€ํ•œ ์˜์‹ฌ",
    "genre_contrast": "๋กœ๋งจ์Šค์ง€๋งŒ ๋ณธ์งˆ์€ ์ž๊ธฐ์ˆ˜์šฉ ์„œ์‚ฌ",
    "ending_aftertaste": "๋ถˆ์™„์ „ํ•˜์ง€๋งŒ ๋”ฐ๋œปํ•œ ์„ ํƒ์˜ ์—ฌ์šด"
  }
}

File Structure

.writer-memory/
โ”œโ”€โ”€ memory.json          # Main memory file
โ”œโ”€โ”€ backups/             # Auto-backups before changes
โ”‚   โ”œโ”€โ”€ memory-2024-01-15-090000.json
โ”‚   โ””โ”€โ”€ memory-2024-01-20-143000.json
โ””โ”€โ”€ exports/             # Markdown exports
    โ””โ”€โ”€ export-2024-01-20.md

Tips for Writers

  1. Start with Characters: Build character memories before scenes
  2. Update Relationships After Key Scenes: Track evolution actively
  3. Use Validation While Writing: Catch voice inconsistencies early
  4. Query Before Difficult Scenes: Let the system remind you of context
  5. Regular Synopsis: Generate periodically to check thematic coherence
  6. Backup Before Major Changes: Use /backup before significant story pivots

Troubleshooting

Memory not loading?
- Check .writer-memory/memory.json exists
- Verify JSON syntax is valid
- Run /writer-memory status to diagnose

Validation too strict?
- Review taboo list for unintended entries
- Consider if character is growing (arc progression)
- Intentional breaks from pattern are valid for dramatic moments

Query not finding context?
- Ensure relevant data is in memory
- Try more specific queries
- Check character names match exactly

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.