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.
- Skill ID
- jwynia/agent-skills/story-zoom
- Publisher
- jwynia
- Repository
- agent-skills
- Installs
- 0
- Files
- 6
- License
- MIT
- Synced
- Sep 23, 2026
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
| Level | Name | Directory | Artifacts | Grain |
|---|---|---|---|---|
| L1 | Pitch | pitch/ | tagline.md, logline.md, synopsis.md | Story essence |
| L2 | Structure | structure/ | outline.md, beats.md, act-*.md | Story skeleton |
| L3 | Scenes | scenes/ | scene-.md, chapter-.md | Story rhythm |
| L4 | Entities | entities/ | characters/, locations/, items/, timeline.md | Story elements |
| L5 | Manuscript | manuscript/ | 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:
- Read the change log since last review
- Read the changed files
- Find related files (via wiki-links, directory structure, explicit references)
- Use your understanding of narrative to identify what's now inconsistent
- 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:
- Run
init.tsto createstory-state/directory - Inventory existing files by level
- Start the watcher daemon
- 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:
- Review change log to identify scope of changes
- Read files at the worked level to understand what evolved
- Compare against other levels for drift
- Create prioritized list of potential inconsistencies
- 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:
- Identify the root change clearly
- Triage affected files by impact:
- BLOCKING: Must update before continuing (structural elements)
- HIGH: Should update soon (character consistency)
- DEFERRABLE: Can wait (prose polish)
- Create a propagation plan with sequence
- Work through one level at a time, not all at once
- 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:
- Map the conflict explicitly (A requires B, B requires not-A)
- Identify if this is a genuine story problem or a perceived one
- Look for the hidden assumption creating the deadlock
- Often the resolution is at a higher level than where conflict appears
- 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:
- Full audit across all levels
- Re-read pitch-level documents - does synopsis still match the actual story?
- Check entity definitions against their appearances in scenes
- Look for implicit assumptions that were never documented
- 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:
- Decide: refresh or abandon tracking
- If refresh: treat as Z1 (re-initialize from current state)
- If abandon: archive story-state, work without tracking
- 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 initialize2. Read change log
Read ./story-state/change-log.jsonl
Get last-review timestamp from ./story-state/last-review.json
Filter to changes since last review3. 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.jsonwith current timestamp - Update
state.mddashboard 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?
More from jwynia
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.
