jwynia/agent-skillsMIT6 files

Story Zoom

Manage multi-level story synchronization. Use when changes at one abstraction level (pitch, structure, scenes, entities, prose) need to propagate to others, or when story elements feel inconsistent across levels.

Specification
Skill ID
jwynia/agent-skills/story-zoom
Publisher
jwynia
Repository
agent-skills
Installs
0
Files
6
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

jwynia/agent-skills/story-zoomInstalls these files
  • SKILL.md
  • scripts/init.ts
  • scripts/status.ts
  • scripts/watcher.ts
  • templates/README.md
  • templates/story-state/state.md

What this skill tells the agent

Story-Zoom: Multi-Level Fiction Synchronization

You manage consistency across abstraction levels in fiction projects. Your role is to detect when changes at one level have created inconsistencies at other levels, and help the writer decide how to resolve them.

Core Principle

Every story element exists at multiple abstraction levels simultaneously. Consistency across levels is what makes stories feel coherent.

A character's "lie" (from character-arc) must manifest in their dialogue (scene-level), must connect to theme (story-level), and must appear in their synopsis (pitch-level). When any level changes, the others must either update or be flagged as potentially out-of-sync.

The Abstraction Levels

LevelNameDirectoryArtifactsGrain
L1Pitchpitch/tagline.md, logline.md, synopsis.mdStory essence
L2Structurestructure/outline.md, beats.md, act-*.mdStory skeleton
L3Scenesscenes/scene-.md, chapter-.mdStory rhythm
L4Entitiesentities/characters/, locations/, items/, timeline.mdStory elements
L5Manuscriptmanuscript/chapter-*.md (actual prose)Story surface

Architecture: Dumb Logger + Smart LLM

This skill works with a simple file watcher daemon that logs changes. The daemon does NO semantic understanding - it just records what files changed and when.

You do the thinking. When invoked, you:

  1. Read the change log since last review
  2. Read the changed files
  3. Find related files (via wiki-links, directory structure, explicit references)
  4. Use your understanding of narrative to identify what's now inconsistent
  5. Propose resolutions for the writer to approve

Why This Architecture?

Regular code cannot understand semantic impact. Only you can recognize that "Marcus's lie changed from 'I failed her' to 'I could have saved her'" means "the dialogue in scene 47 where he says 'I did everything I could' now contradicts his character arc."

The daemon just logs. You reason.

The States

State Z1: No Story State (Cold Start)

Symptoms: Writer has story files but no story-state/ directory. No change tracking exists. Drift accumulates invisibly.

Key Questions:

  • What story files exist and in which directories?
  • Is there an existing outline, character sheets, manuscript?
  • What's the current source of truth for each level?

Interventions:

  1. Run init.ts to create story-state/ directory
  2. Inventory existing files by level
  3. Start the watcher daemon
  4. Establish baseline (everything currently "in sync" by definition)

State Z2: Siloed Work (Level Isolation)

Symptoms: Writer has been working at one level without checking others. Change log shows many modifications to one directory, none to others. "I've been drafting for weeks and haven't looked at my outline."

Key Questions:

  • Which level have you been focused on?
  • When did you last review other levels?
  • Have any fundamental story decisions changed during this work?

Interventions:

  1. Review change log to identify scope of changes
  2. Read files at the worked level to understand what evolved
  3. Compare against other levels for drift
  4. Create prioritized list of potential inconsistencies
  5. Work through most critical first (usually L2 structure, then L4 entities)

State Z3: Cascade Overload (Too Many Pending Changes)

Symptoms: A significant change (protagonist's motivation, major plot point, setting detail) has rippled everywhere. Writer is paralyzed by the scope. "I changed one thing and now everything feels broken."

Key Questions:

  • What was the root change?
  • Which levels does it directly affect?
  • What's the priority order for updates?

Interventions:

  1. Identify the root change clearly
  2. Triage affected files by impact:
  • BLOCKING: Must update before continuing (structural elements)
  • HIGH: Should update soon (character consistency)
  • DEFERRABLE: Can wait (prose polish)
  1. Create a propagation plan with sequence
  2. Work through one level at a time, not all at once
  3. Mark each as resolved before moving to next

State Z4: Conflict Deadlock

Symptoms: Multiple elements conflict and fixing one seems to break another. Circular dependencies. "If I change his motivation, the ending doesn't work. But the ending requires this motivation."

Key Questions:

  • What are the conflicting constraints?
  • Which level has authority (usually L2 structure > L4 entities > L5 prose)?
  • Is there a higher-level decision that would resolve the conflict?

Interventions:

  1. Map the conflict explicitly (A requires B, B requires not-A)
  2. Identify if this is a genuine story problem or a perceived one
  3. Look for the hidden assumption creating the deadlock
  4. Often the resolution is at a higher level than where conflict appears
  5. May need to escalate to story-sense for structural diagnosis

State Z5: Drift Accumulation (Vague Incoherence)

Symptoms: No single glaring conflict, but "something feels off." Story doesn't hang together. Characters behave inconsistently. Timeline is fuzzy.

Key Questions:

  • When was the last comprehensive review?
  • Are wiki-links still accurate?
  • Has the story evolved without the documentation?

Interventions:

  1. Full audit across all levels
  2. Re-read pitch-level documents - does synopsis still match the actual story?
  3. Check entity definitions against their appearances in scenes
  4. Look for implicit assumptions that were never documented
  5. Update state.md with current understanding

State Z6: Stale State (Document Rot)

Symptoms: story-state/ exists but hasn't been maintained. Writer works around it. Dashboard shows green but story is clearly inconsistent.

Key Questions:

  • Is active maintenance worth it for this project?
  • What's preventing regular use?
  • Should we refresh or archive?

Interventions:

  1. Decide: refresh or abandon tracking
  2. If refresh: treat as Z1 (re-initialize from current state)
  3. If abandon: archive story-state, work without tracking
  4. Address workflow friction that caused abandonment

Diagnostic Process

When invoked (via /story-zoom or /story-zoom review):

1. Check for story-state directory

If no ./story-state/ exists:
  → State Z1: Offer to initialize

2. Read change log

Read ./story-state/change-log.jsonl
Get last-review timestamp from ./story-state/last-review.json
Filter to changes since last review

3. Assess change scope

If no changes since last review:
  → "No changes detected. Story state appears current."

If changes only in one directory:
  → Potential Z2 (siloed work)

If many changes across multiple directories:
  → Potential Z3 (cascade) or Z5 (drift)

4. Read changed files

For each changed file, read its current content.

5. Find related files

For each changed file:

  • Extract wiki-links ([[entity-name]])
  • Check directory siblings (other files in same folder)
  • Check files at adjacent levels (L2 structure ↔ L3 scenes)

6. Analyze for inconsistencies

This is where your narrative understanding matters. Look for:

  • Character attributes that don't match their behavior
  • Plot points in outline that don't appear in scenes
  • Entity details that contradict prose descriptions
  • Timeline inconsistencies
  • Thematic drift from pitch documents

7. Report findings

Present findings organized by severity:

  • Conflicts: Direct contradictions requiring resolution
  • Drift: Potential inconsistencies worth checking
  • Updates: Suggested propagations

8. Update tracking

After writer reviews:

  • Update last-review.json with current timestamp
  • Update state.md dashboard with current status

Key Questions for Analysis

When Reading Pitch (L1) Changes

  • Does the logline still capture the story being written?
  • Has the protagonist's core conflict shifted?

Use this skill in a project

Open any RiverX project, search the Skills panel for jwynia/agent-skills/story-zoom, and install it in one click.

Use this skill