Storyboard Manager Overview The Storyboard Manager skill equips Claude with specialized knowledge and tools for creative writing workflows. It provides frameworks for character development, story structure patterns, automated timeline tracking, and consistency checking across narrative projects. This skill automatically adapts to various storyboard folder structures while maintaining best practices for novel, screenplay, and serialized fiction writing. Core Capabilities The skill provides four main capabilities: 1. Character Development & Management Support creating deep, consistent character…

, content, re.MULTILINE)\n if not name_match:\n return None\n\n name = name_match.group(1).strip()\n profile = CharacterProfile(name, str(file_path.relative_to(self.project_root)))\n\n # Extract attributes\n for attr_name, pattern in self.ATTRIBUTE_PATTERNS.items():\n match = re.search(pattern, content, re.IGNORECASE)\n if match:\n profile.add_attribute(attr_name, match.group(1).strip())\n\n # Extract aliases/nicknames\n alias_match = re.search(\n r'\\*\\*(?:Nicknames?|Aliases?):\\*\\*\\s*(.+?)(?:\\n|$)',\n content, re.IGNORECASE\n )\n if alias_match:\n aliases = re.split(r'[,;]', alias_match.group(1))\n profile.aliases = [a.strip() for a in aliases if a.strip()]\n\n return profile\n\n except Exception as e:\n print(f\"Warning: Could not read character profile {file_path}: {e}\",\n file=sys.stderr)\n return None\n\n def load_all_characters(self):\n \"\"\"Load all character profiles from the project\"\"\"\n char_dirs = ['characters', 'Characters', 'cast', 'Cast']\n\n for dirname in char_dirs:\n char_dir = self.project_root / dirname\n if char_dir.exists():\n for char_file in self.scan_directory(char_dir):\n profile = self.load_character_profile(char_file)\n if profile:\n self.characters[profile.name] = profile\n\n def check_character_mentions(self, file_path: Path):\n \"\"\"Check character mentions in content for inconsistencies\"\"\"\n try:\n content = file_path.read_text(encoding='utf-8')\n location = str(file_path.relative_to(self.project_root))\n\n for char_name, profile in self.characters.items():\n # Check if character is mentioned\n if not re.search(r'\\b' + re.escape(char_name) + r'\\b', content, re.IGNORECASE):\n continue\n\n # Check for attribute contradictions\n for attr_name, attr_value in profile.attributes.items():\n # Look for contradicting descriptions\n if attr_name == 'age':\n age_mentions = re.finditer(\n r'\\b' + re.escape(char_name) + r'\\b[^.!?]*\\b(\\d+)[\\s-](?:year|yr)',\n content, re.IGNORECASE\n )\n for match in age_mentions:\n mentioned_age = match.group(1)\n profile_age = re.search(r'\\d+', attr_value)\n if profile_age and mentioned_age != profile_age.group(0):\n self.issues.append(ConsistencyIssue(\n issue_type='character',\n severity='warning',\n description=f\"Age inconsistency for {char_name}\",\n locations=[location, profile.file_path],\n details={\n 'character': char_name,\n 'profile_age': attr_value,\n 'mentioned_age': mentioned_age\n }\n ))\n\n elif attr_name in ['hair', 'eyes']:\n # Check for contradicting physical descriptions\n desc_pattern = rf'\\b{re.escape(char_name)}\\b[^.!?]*\\b({attr_name})\\b[^.!?]*'\n desc_mentions = re.finditer(desc_pattern, content, re.IGNORECASE)\n for match in desc_mentions:\n context = match.group(0).lower()\n # Simple check: if profile says \"black hair\" but text says \"blonde\"\n profile_value_lower = attr_value.lower()\n if profile_value_lower not in context:\n # Extract the contradicting description\n color_pattern = r'\\b(black|brown|blonde|red|auburn|white|gray|grey|blue|green|hazel)\\b'\n colors = re.findall(color_pattern, context, re.IGNORECASE)\n if colors:\n self.issues.append(ConsistencyIssue(\n issue_type='character',\n severity='warning',\n description=f\"{attr_name.capitalize()} color inconsistency for {char_name}\",\n locations=[location, profile.file_path],\n details={\n 'character': char_name,\n 'profile': attr_value,\n 'context': match.group(0)[:100]\n }\n ))\n\n except Exception as e:\n print(f\"Warning: Error checking {file_path}: {e}\", file=sys.stderr)\n\n def check_character_relationships(self):\n \"\"\"Check for inconsistent character relationships\"\"\"\n # This is a placeholder for more sophisticated relationship checking\n # Would analyze relationship declarations in character files and compare\n # with how relationships are portrayed in chapters\n\n relationship_keywords = ['friend', 'enemy', 'lover', 'sibling', 'parent', 'child']\n\n for char_name, profile in self.characters.items():\n # Extract relationship info from profile\n # Compare with relationships mentioned in story files\n # Flag inconsistencies\n pass\n\n def check_world_building(self, file_path: Path):\n \"\"\"Check for world-building inconsistencies\"\"\"\n try:\n content = file_path.read_text(encoding='utf-8')\n location = str(file_path.relative_to(self.project_root))\n\n # Look for world-building facts (places, magic systems, technology, etc.)\n # This is a simplified version - would need more sophisticated pattern matching\n\n # Example: Check for location descriptions\n location_pattern = r'\\*\\*Location:\\*\\*\\s*(.+?)(?:\\n|$)'\n for match in re.finditer(location_pattern, content, re.IGNORECASE):\n loc_name = match.group(1).strip()\n\n if loc_name in self.world_facts:\n # Check if description is consistent\n prev_value, prev_location = self.world_facts[loc_name]\n # In a real implementation, would do semantic comparison\n else:\n self.world_facts[loc_name] = (match.group(0), location)\n\n except Exception as e:\n print(f\"Warning: Error checking world-building in {file_path}: {e}\",\n file=sys.stderr)\n\n def check_plot_consistency(self):\n \"\"\"Check for plot inconsistencies\"\"\"\n # Placeholder for plot consistency checking\n # Would track plot points, events, and check for contradictions\n\n # Examples to check:\n # - Events happening out of order\n # - Characters appearing after their death\n # - Objects used before acquisition\n # - Locations visited before discovery\n pass\n\n def check_name_variations(self, file_path: Path):\n \"\"\"Check for inconsistent name usage\"\"\"\n try:\n content = file_path.read_text(encoding='utf-8')\n location = str(file_path.relative_to(self.project_root))\n\n # Check if character names are spelled consistently\n for char_name, profile in self.characters.items():\n # Look for potential misspellings (Levenshtein distance)\n # This is simplified - would use actual string distance algorithm\n\n # Check for variations in capitalization\n variations = re.findall(\n r'\\b' + re.escape(char_name) + r'\\b',\n content,\n re.IGNORECASE\n )\n\n inconsistent_caps = [v for v in variations if v != char_name]\n if inconsistent_caps:\n unique_variations = list(set(inconsistent_caps))\n if len(unique_variations) > 0:\n self.issues.append(ConsistencyIssue(\n issue_type='character',\n severity='info',\n description=f\"Name capitalization variations for {char_name}\",\n locations=[location],\n details={\n 'character': char_name,\n 'variations': unique_variations\n }\n ))\n\n except Exception as e:\n print(f\"Warning: Error checking names in {file_path}: {e}\", file=sys.stderr)\n\n def analyze_project(self) -> Dict:\n \"\"\"Run all consistency checks on the project\"\"\"\n\n # Load character profiles\n self.load_all_characters()\n\n # Check all content files\n content_dirs = ['chapters', 'Chapters', 'scenes', 'Scenes', 'story']\n content_files = []\n\n for dirname in content_dirs:\n content_dir = self.project_root / dirname\n if content_dir.exists():\n content_files.extend(self.scan_directory(content_dir))\n\n # Run checks on each file\n for content_file in content_files:\n self.check_character_mentions(content_file)\n self.check_world_building(content_file)\n self.check_name_variations(content_file)\n\n # Run project-wide checks\n self.check_character_relationships()\n self.check_plot_consistency()\n\n # Organize results\n issues_by_severity = defaultdict(list)\n for issue in self.issues:\n issues_by_severity[issue.severity].append(issue.to_dict())\n\n analysis = {\n 'total_issues': len(self.issues),\n 'critical_issues': len(issues_by_severity['critical']),\n 'warnings': len(issues_by_severity['warning']),\n 'info': len(issues_by_severity['info']),\n 'characters_analyzed': len(self.characters),\n 'issues_by_severity': dict(issues_by_severity),\n 'all_issues': [issue.to_dict() for issue in self.issues]\n }\n\n return analysis\n\n\ndef main():\n \"\"\"Main entry point for consistency checker\"\"\"\n\n if len(sys.argv) \u003c 2:\n print(\"Usage: consistency_checker.py \u003cproject_directory> [--output json|markdown]\")\n sys.exit(1)\n\n project_dir = sys.argv[1]\n output_format = 'markdown'\n\n if len(sys.argv) > 2 and sys.argv[2] == '--output':\n output_format = sys.argv[3] if len(sys.argv) > 3 else 'markdown'\n\n checker = ConsistencyChecker(project_dir)\n analysis = checker.analyze_project()\n\n if output_format == 'json':\n print(json.dumps(analysis, indent=2))\n else:\n # Markdown output\n print(\"# Consistency Analysis\\n\")\n print(f\"**Total Issues Found:** {analysis['total_issues']}\")\n print(f\"- Critical: {analysis['critical_issues']}\")\n print(f\"- Warnings: {analysis['warnings']}\")\n print(f\"- Info: {analysis['info']}\\n\")\n print(f\"**Characters Analyzed:** {analysis['characters_analyzed']}\\n\")\n\n if analysis['total_issues'] == 0:\n print(\"✅ No consistency issues found!\\n\")\n else:\n # Display issues by severity\n for severity in ['critical', 'warning', 'info']:\n issues = analysis['issues_by_severity'].get(severity, [])\n if issues:\n severity_emoji = {\n 'critical': '🔴',\n 'warning': '⚠️',\n 'info': 'ℹ️'\n }\n print(f\"\\n## {severity_emoji[severity]} {severity.upper()}\\n\")\n\n for issue in issues:\n print(f\"### {issue['description']}\")\n print(f\"**Type:** {issue['type']}\")\n print(f\"**Locations:**\")\n for loc in issue['locations']:\n print(f\"- {loc}\")\n\n if issue['details']:\n print(f\"**Details:**\")\n for key, value in issue['details'].items():\n print(f\"- {key}: {value}\")\n\n print()\n\n\nif __name__ == '__main__':\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":16222,"content_sha256":"ea25eb6edd58f30b73b7fa0338906b834faf6be6a838db9258e7bc9d2cf09c81"},{"filename":"scripts/timeline_tracker.py","content":"#!/usr/bin/env python3\n\"\"\"\nTimeline Tracker for Storyboard Manager\n\nThis script analyzes markdown files in a storyboard project to extract and organize\ntimeline events, helping writers maintain chronological consistency.\n\"\"\"\n\nimport os\nimport re\nimport json\nimport sys\nfrom pathlib import Path\nfrom typing import List, Dict, Tuple, Optional\nfrom datetime import datetime, timedelta\nfrom collections import defaultdict\n\n\nclass TimelineEvent:\n \"\"\"Represents a single event in the story timeline\"\"\"\n\n def __init__(self, content: str, location: str, chapter: str = None,\n timepoint: str = None, characters: List[str] = None):\n self.content = content\n self.location = location # File path where event was found\n self.chapter = chapter\n self.timepoint = timepoint # Relative time (e.g., \"Day 1\", \"3 weeks later\")\n self.characters = characters or []\n\n def __repr__(self):\n return f\"TimelineEvent({self.timepoint}: {self.content[:50]}...)\"\n\n\nclass TimelineTracker:\n \"\"\"Main timeline tracking and analysis class\"\"\"\n\n # Patterns to detect time markers in text\n TIME_PATTERNS = [\n r'(?:Day|Night)\\s+(\\d+)', # Day 1, Night 3\n r'(\\d+)\\s+(?:days?|weeks?|months?|years?)\\s+(?:later|ago|after|before)',\n r'(?:Morning|Afternoon|Evening|Night)\\s+of\\s+(?:Day\\s+)?(\\d+)',\n r'Chapter\\s+(\\d+)', # Chapter markers\n r'\\*\\*(?:Timeline|Time|When):\\*\\*\\s*(.+?)(?:\\n|$)', # Explicit timeline markers\n r'\\*\\*Date:\\*\\*\\s*(.+?)(?:\\n|$)',\n ]\n\n # Patterns to detect character mentions\n CHARACTER_PATTERNS = [\n r'\\*\\*Characters?:\\*\\*\\s*(.+?)(?:\\n|$)',\n r'\\*\\*(?:POV|Perspective):\\*\\*\\s*(.+?)(?:\\n|$)',\n ]\n\n def __init__(self, project_root: str):\n self.project_root = Path(project_root)\n self.events: List[TimelineEvent] = []\n self.characters: set = set()\n\n def scan_directory(self, directory: Path) -> List[Path]:\n \"\"\"Recursively find all markdown files in directory\"\"\"\n md_files = []\n if not directory.exists():\n return md_files\n\n for item in directory.iterdir():\n if item.is_file() and item.suffix == '.md':\n md_files.append(item)\n elif item.is_dir() and not item.name.startswith('.'):\n md_files.extend(self.scan_directory(item))\n\n return md_files\n\n def extract_characters_from_file(self, file_path: Path) -> List[str]:\n \"\"\"Extract character names from character profile files\"\"\"\n try:\n content = file_path.read_text(encoding='utf-8')\n\n # Look for character name in title (# Character Name)\n name_match = re.search(r'^#\\s+(.+?)

Storyboard Manager Overview The Storyboard Manager skill equips Claude with specialized knowledge and tools for creative writing workflows. It provides frameworks for character development, story structure patterns, automated timeline tracking, and consistency checking across narrative projects. This skill automatically adapts to various storyboard folder structures while maintaining best practices for novel, screenplay, and serialized fiction writing. Core Capabilities The skill provides four main capabilities: 1. Character Development & Management Support creating deep, consistent character…

, content, re.MULTILINE)\n if name_match:\n return [name_match.group(1).strip()]\n\n # Look for explicit name field\n name_match = re.search(r'\\*\\*Name:\\*\\*\\s*(.+?)(?:\\n|$)', content)\n if name_match:\n return [name_match.group(1).strip()]\n\n except Exception as e:\n print(f\"Warning: Could not read {file_path}: {e}\", file=sys.stderr)\n\n return []\n\n def extract_timeline_markers(self, content: str) -> List[Tuple[str, int]]:\n \"\"\"Extract time markers from content, return list of (timepoint, position)\"\"\"\n markers = []\n\n for pattern in self.TIME_PATTERNS:\n for match in re.finditer(pattern, content, re.IGNORECASE):\n timepoint = match.group(1) if match.lastindex else match.group(0)\n markers.append((timepoint.strip(), match.start()))\n\n return sorted(markers, key=lambda x: x[1])\n\n def extract_character_mentions(self, content: str) -> List[str]:\n \"\"\"Extract character names from explicit character markers\"\"\"\n characters = []\n\n for pattern in self.CHARACTER_PATTERNS:\n matches = re.finditer(pattern, content, re.IGNORECASE)\n for match in matches:\n char_text = match.group(1)\n # Split by commas, 'and', '&'\n names = re.split(r'[,&]|\\sand\\s', char_text)\n characters.extend([name.strip() for name in names if name.strip()])\n\n return characters\n\n def find_character_references(self, content: str, known_characters: set) -> List[str]:\n \"\"\"Find mentions of known characters in content\"\"\"\n found = []\n for character in known_characters:\n # Simple word boundary check\n if re.search(r'\\b' + re.escape(character) + r'\\b', content, re.IGNORECASE):\n found.append(character)\n return found\n\n def parse_chapter_file(self, file_path: Path) -> List[TimelineEvent]:\n \"\"\"Parse a chapter/scene file for timeline events\"\"\"\n events = []\n\n try:\n content = file_path.read_text(encoding='utf-8')\n\n # Get chapter number/name from filename or title\n chapter = file_path.stem\n title_match = re.search(r'^#\\s+(.+?)

Storyboard Manager Overview The Storyboard Manager skill equips Claude with specialized knowledge and tools for creative writing workflows. It provides frameworks for character development, story structure patterns, automated timeline tracking, and consistency checking across narrative projects. This skill automatically adapts to various storyboard folder structures while maintaining best practices for novel, screenplay, and serialized fiction writing. Core Capabilities The skill provides four main capabilities: 1. Character Development & Management Support creating deep, consistent character…

, content, re.MULTILINE)\n if title_match:\n chapter = title_match.group(1).strip()\n\n # Extract explicit character mentions\n explicit_chars = self.extract_character_mentions(content)\n\n # Find timeline markers\n markers = self.extract_timeline_markers(content)\n\n # Split content into sections based on markers\n if markers:\n sections = []\n for i, (timepoint, pos) in enumerate(markers):\n start_pos = pos\n end_pos = markers[i + 1][1] if i + 1 \u003c len(markers) else len(content)\n section_content = content[start_pos:end_pos]\n\n # Find characters in this section\n section_chars = explicit_chars.copy()\n section_chars.extend(self.find_character_references(\n section_content, self.characters))\n\n event = TimelineEvent(\n content=section_content[:500], # First 500 chars as preview\n location=str(file_path.relative_to(self.project_root)),\n chapter=chapter,\n timepoint=timepoint,\n characters=list(set(section_chars))\n )\n events.append(event)\n else:\n # No explicit markers, treat whole file as one event\n all_chars = explicit_chars.copy()\n all_chars.extend(self.find_character_references(content, self.characters))\n\n event = TimelineEvent(\n content=content[:500],\n location=str(file_path.relative_to(self.project_root)),\n chapter=chapter,\n timepoint=None,\n characters=list(set(all_chars))\n )\n events.append(event)\n\n except Exception as e:\n print(f\"Warning: Error parsing {file_path}: {e}\", file=sys.stderr)\n\n return events\n\n def analyze_project(self) -> Dict:\n \"\"\"Analyze entire project and build timeline\"\"\"\n\n # First, find all characters\n char_dirs = ['characters', 'Characters', 'cast']\n for dirname in char_dirs:\n char_dir = self.project_root / dirname\n if char_dir.exists():\n for char_file in self.scan_directory(char_dir):\n names = self.extract_characters_from_file(char_file)\n self.characters.update(names)\n\n # Then scan chapters/scenes\n content_dirs = ['chapters', 'Chapters', 'scenes', 'Scenes', 'story']\n for dirname in content_dirs:\n content_dir = self.project_root / dirname\n if content_dir.exists():\n for content_file in self.scan_directory(content_dir):\n events = self.parse_chapter_file(content_file)\n self.events.extend(events)\n\n # Build analysis\n analysis = {\n 'total_events': len(self.events),\n 'total_characters': len(self.characters),\n 'characters': sorted(list(self.characters)),\n 'events_by_timepoint': self._group_events_by_time(),\n 'events_by_character': self._group_events_by_character(),\n 'events_by_chapter': self._group_events_by_chapter(),\n 'timeline': self._build_timeline(),\n 'warnings': self._check_consistency()\n }\n\n return analysis\n\n def _group_events_by_time(self) -> Dict[str, List[Dict]]:\n \"\"\"Group events by their timepoint\"\"\"\n grouped = defaultdict(list)\n\n for event in self.events:\n timepoint = event.timepoint or \"Unspecified\"\n grouped[timepoint].append({\n 'location': event.location,\n 'chapter': event.chapter,\n 'characters': event.characters,\n 'preview': event.content[:200]\n })\n\n return dict(grouped)\n\n def _group_events_by_character(self) -> Dict[str, List[Dict]]:\n \"\"\"Group events by character appearance\"\"\"\n grouped = defaultdict(list)\n\n for event in self.events:\n for character in event.characters:\n grouped[character].append({\n 'location': event.location,\n 'chapter': event.chapter,\n 'timepoint': event.timepoint,\n 'preview': event.content[:200]\n })\n\n return dict(grouped)\n\n def _group_events_by_chapter(self) -> Dict[str, List[Dict]]:\n \"\"\"Group events by chapter\"\"\"\n grouped = defaultdict(list)\n\n for event in self.events:\n chapter = event.chapter or \"Unknown\"\n grouped[chapter].append({\n 'location': event.location,\n 'timepoint': event.timepoint,\n 'characters': event.characters,\n 'preview': event.content[:200]\n })\n\n return dict(grouped)\n\n def _build_timeline(self) -> List[Dict]:\n \"\"\"Build chronological timeline of events\"\"\"\n # Sort events by timepoint (this is simplified, real implementation\n # would need more sophisticated time parsing)\n timeline = []\n\n for event in self.events:\n timeline.append({\n 'timepoint': event.timepoint or \"Unknown\",\n 'chapter': event.chapter,\n 'location': event.location,\n 'characters': event.characters,\n 'preview': event.content[:200]\n })\n\n return timeline\n\n def _check_consistency(self) -> List[str]:\n \"\"\"Check for potential timeline inconsistencies\"\"\"\n warnings = []\n\n # Check for events without time markers\n unmarked_events = [e for e in self.events if not e.timepoint]\n if unmarked_events:\n warnings.append(\n f\"Found {len(unmarked_events)} events without timeline markers\"\n )\n\n # Check for characters appearing in timeline without character files\n mentioned_chars = set()\n for event in self.events:\n mentioned_chars.update(event.characters)\n\n undefined_chars = mentioned_chars - self.characters\n if undefined_chars:\n warnings.append(\n f\"Characters mentioned but not defined: {', '.join(sorted(undefined_chars))}\"\n )\n\n return warnings\n\n\ndef main():\n \"\"\"Main entry point for timeline tracker\"\"\"\n\n if len(sys.argv) \u003c 2:\n print(\"Usage: timeline_tracker.py \u003cproject_directory> [--output json|markdown]\")\n sys.exit(1)\n\n project_dir = sys.argv[1]\n output_format = 'markdown'\n\n if len(sys.argv) > 2 and sys.argv[2] == '--output':\n output_format = sys.argv[3] if len(sys.argv) > 3 else 'markdown'\n\n tracker = TimelineTracker(project_dir)\n analysis = tracker.analyze_project()\n\n if output_format == 'json':\n print(json.dumps(analysis, indent=2))\n else:\n # Markdown output\n print(\"# Timeline Analysis\\n\")\n print(f\"**Total Events:** {analysis['total_events']}\")\n print(f\"**Total Characters:** {analysis['total_characters']}\\n\")\n\n print(\"## Characters\")\n for char in analysis['characters']:\n appearances = len(analysis['events_by_character'].get(char, []))\n print(f\"- {char} ({appearances} appearances)\")\n\n print(\"\\n## Timeline\")\n for event in analysis['timeline']:\n print(f\"\\n### {event['timepoint']} - {event['chapter']}\")\n print(f\"**Location:** {event['location']}\")\n if event['characters']:\n print(f\"**Characters:** {', '.join(event['characters'])}\")\n print(f\"\\n{event['preview']}...\\n\")\n print(\"---\")\n\n if analysis['warnings']:\n print(\"\\n## Warnings\")\n for warning in analysis['warnings']:\n print(f\"- ⚠️ {warning}\")\n\n\nif __name__ == '__main__':\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":13068,"content_sha256":"2eb23ed657d863a698717ffa182eddf4abcfdaa4535d0cb7fe7ddd4c5f326cf4"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Storyboard Manager","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Overview","type":"text"}]},{"type":"paragraph","content":[{"text":"The Storyboard Manager skill equips Claude with specialized knowledge and tools for creative writing workflows. It provides frameworks for character development, story structure patterns, automated timeline tracking, and consistency checking across narrative projects. This skill automatically adapts to various storyboard folder structures while maintaining best practices for novel, screenplay, and serialized fiction writing.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Core Capabilities","type":"text"}]},{"type":"paragraph","content":[{"text":"The skill provides four main capabilities:","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Character Development & Management","type":"text"}]},{"type":"paragraph","content":[{"text":"Support creating deep, consistent character profiles with backstories, arcs, and relationships.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Story Planning & Structure","type":"text"}]},{"type":"paragraph","content":[{"text":"Guide plot development using established frameworks (Three-Act, Hero's Journey, Save the Cat, etc.) and help organize narrative elements.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. Chapter & Scene Writing","type":"text"}]},{"type":"paragraph","content":[{"text":"Generate chapter content, scene breakdowns, and dialogue that maintains consistency with established characters and plot.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Timeline Tracking & Consistency Checking","type":"text"}]},{"type":"paragraph","content":[{"text":"Use automated tools to verify chronological consistency, character continuity, and world-building coherence.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Detecting Project Structure","type":"text"}]},{"type":"paragraph","content":[{"text":"The Storyboard Manager automatically detects and adapts to various folder organizations. Look for these common directory patterns:","type":"text"}]},{"type":"paragraph","content":[{"text":"Character folders:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"characters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Characters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"cast/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Cast/","type":"text","marks":[{"type":"code_inline"}]},{"text":" ","type":"text"},{"text":"Chapter folders:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"chapters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Chapters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"scenes/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Scenes/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"story/","type":"text","marks":[{"type":"code_inline"}]},{"text":" ","type":"text"},{"text":"Planning folders:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"story-planning/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"planning/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"outline/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"notes/","type":"text","marks":[{"type":"code_inline"}]},{"text":" ","type":"text"},{"text":"Summary files:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"summary.md","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"README.md","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"overview.md","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"When triggered, scan the project root to identify the structure and adjust workflows accordingly. If no standard structure exists, recommend organizing files using the pattern: ","type":"text"},{"text":"characters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"chapters/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"story-planning/","type":"text","marks":[{"type":"code_inline"}]},{"text":", and ","type":"text"},{"text":"summary.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow Decision Tree","type":"text"}]},{"type":"paragraph","content":[{"text":"Use this decision tree to determine the appropriate workflow:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"User Request\n├─ Character-related? (\"develop character,\" \"create backstory,\" \"character arc\")\n│ └─ → Character Development Workflow\n│\n├─ Planning/Plot? (\"outline story,\" \"plan act 2,\" \"plot structure\")\n│ └─ → Story Planning Workflow\n│\n├─ Writing content? (\"write chapter,\" \"generate scene,\" \"continue story\")\n│ └─ → Chapter/Scene Writing Workflow\n│\n└─ Checking/Analysis? (\"check consistency,\" \"track timeline,\" \"find contradictions\")\n ├─ Timeline? → Use timeline_tracker.py script\n └─ Consistency? → Use consistency_checker.py script","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Character Development Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Gather Context","type":"text"}]},{"type":"paragraph","content":[{"text":"Before developing a character, read existing character files to understand:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Established naming conventions and profile format","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Existing characters and relationships","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Story genre and tone","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character archetypes already in use","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Use the Read tool to examine existing character files in the characters directory.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Access Character Development Framework","type":"text"}]},{"type":"paragraph","content":[{"text":"When detailed character guidance is needed, read ","type":"text"},{"text":"references/character_development.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" which contains:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Core character elements (personality, motivation, goals)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Backstory framework (ghost/wound, formative relationships)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character arc types (positive change, flat, negative)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Relationship dynamics","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Voice development techniques","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Consistency guidelines","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"To efficiently find specific guidance, use Grep to search for relevant sections:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Example: Find guidance on character arcs\ngrep -i \"character arc\" references/character_development.md","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Develop Character Profile","type":"text"}]},{"type":"paragraph","content":[{"text":"Create or enhance character profiles with these essential elements:","type":"text"}]},{"type":"paragraph","content":[{"text":"Basic Information","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Name, age, role, physical appearance","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Key personality traits (both positive and negative)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Background","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Origin and formative experiences","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ghost/wound that shapes their behavior","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Key relationships and family dynamics","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Character Arc","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Starting belief or flaw","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Want vs. Need (external goal vs. internal growth)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transformation journey","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"End state","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Relationships","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Connections to other characters","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Dynamic types (ally, rival, mentor, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"How relationships evolve","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Unique Elements","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Abilities, skills, or special knowledge","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Secrets or hidden aspects","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Voice/speech patterns","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character-specific quirks","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Ensure Consistency","type":"text"}]},{"type":"paragraph","content":[{"text":"Cross-reference with:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Existing character profiles (avoid redundancy in roles/traits)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Story planning documents (ensure alignment with plot needs)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summary/overview (match genre and tone)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Create or Update File","type":"text"}]},{"type":"paragraph","content":[{"text":"Write the character profile to ","type":"text"},{"text":"characters/[character-name].md","type":"text","marks":[{"type":"code_inline"}]},{"text":" using markdown format. Match the existing style and structure found in other character files.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Story Planning Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Assess Current Planning State","type":"text"}]},{"type":"paragraph","content":[{"text":"Read existing planning documents to understand:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Story concept and premise","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Established plot points or outline","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Target audience and genre","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Themes and central questions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Planned structure (if any)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Look in folders like ","type":"text"},{"text":"story-planning/","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"outline/","type":"text","marks":[{"type":"code_inline"}]},{"text":", or files like ","type":"text"},{"text":"summary.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Access Story Structure Reference","type":"text"}]},{"type":"paragraph","content":[{"text":"For detailed structural guidance, read ","type":"text"},{"text":"references/story_structures.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" which includes:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Three-Act Structure","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hero's Journey (Campbell's Monomyth)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Save the Cat Beat Sheet","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character arc templates","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scene structure components","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pacing guidelines by genre","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Subplot integration techniques","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Genre-specific structures","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Use Grep to find specific frameworks:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Example: Find Three-Act Structure details\ngrep -A 20 \"Three-Act Structure\" references/story_structures.md","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Determine Structure Needs","type":"text"}]},{"type":"paragraph","content":[{"text":"Based on the user's request and story genre, recommend appropriate frameworks:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Thriller/Mystery","type":"text","marks":[{"type":"strong"}]},{"text":": Three-Act with strong midpoint reversal","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Fantasy/Adventure","type":"text","marks":[{"type":"strong"}]},{"text":": Hero's Journey for quest narratives","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"YA/Contemporary","type":"text","marks":[{"type":"strong"}]},{"text":": Save the Cat for tight emotional beats","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Literary Fiction","type":"text","marks":[{"type":"strong"}]},{"text":": Focus on character arc structure","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Romance","type":"text","marks":[{"type":"strong"}]},{"text":": Genre-specific structure with relationship beats","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Develop Planning Document","type":"text"}]},{"type":"paragraph","content":[{"text":"Create or enhance planning documents with:","type":"text"}]},{"type":"paragraph","content":[{"text":"Story Overview","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Premise in 2-3 sentences","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Genre, target audience, tone","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Central themes and questions","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Plot Structure","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Act/chapter breakdown with key events","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Inciting incident and plot points","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Midpoint twist or revelation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Climax and resolution","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Character Arcs","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"How each main character transforms","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Arc integration with plot beats","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"World-Building Elements","type":"text","marks":[{"type":"strong"}]},{"text":" (if applicable)","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Setting and locations","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Magic systems or technology","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Social structures or rules","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Historical context","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Timeline","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Story duration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Key event sequence","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pacing considerations","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Create Planning File","type":"text"}]},{"type":"paragraph","content":[{"text":"Write planning documents to ","type":"text"},{"text":"story-planning/[document-name].md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Use clear hierarchical structure with markdown headers for easy navigation.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Chapter & Scene Writing Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Gather Story Context","type":"text"}]},{"type":"paragraph","content":[{"text":"Before writing any content, comprehensively read:","type":"text"}]},{"type":"paragraph","content":[{"text":"Character Files","type":"text","marks":[{"type":"strong"}]},{"text":": All relevant character profiles to understand voices, motivations, arcs ","type":"text"},{"text":"Planning Documents","type":"text","marks":[{"type":"strong"}]},{"text":": Story structure, plot points, current story position ","type":"text"},{"text":"Previous Chapters","type":"text","marks":[{"type":"strong"}]},{"text":": Recent chapters to maintain continuity (read at least 1-2 prior chapters) ","type":"text"},{"text":"Summary","type":"text","marks":[{"type":"strong"}]},{"text":": Overall story premise and themes","type":"text"}]},{"type":"paragraph","content":[{"text":"This ensures the new content aligns with established elements.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Identify Chapter Requirements","type":"text"}]},{"type":"paragraph","content":[{"text":"Determine:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Story Position","type":"text","marks":[{"type":"strong"}]},{"text":": Where does this fit in the overall structure?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"POV Character","type":"text","marks":[{"type":"strong"}]},{"text":": Whose perspective?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scene Goal","type":"text","marks":[{"type":"strong"}]},{"text":": What does the POV character want in this scene?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Conflict","type":"text","marks":[{"type":"strong"}]},{"text":": What opposes their goal?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Outcome","type":"text","marks":[{"type":"strong"}]},{"text":": How does the scene end? (typically with a complication)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character Development","type":"text","marks":[{"type":"strong"}]},{"text":": What arc beats occur here?","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Plot Advancement","type":"text","marks":[{"type":"strong"}]},{"text":": What story questions are raised or answered?","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Structure the Chapter","type":"text"}]},{"type":"paragraph","content":[{"text":"Apply scene structure components:","type":"text"}]},{"type":"paragraph","content":[{"text":"Scene (Action)","type":"text","marks":[{"type":"strong"}]}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Goal - What the POV character pursues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Conflict - Opposition encountered","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Disaster - Negative outcome that propels forward","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Sequel (Reaction)","type":"text","marks":[{"type":"strong"}]}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Reaction - Emotional response to disaster","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Dilemma - Processing options","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Decision - Choice leading to next goal","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Alternate between high-tension (action, conflict) and low-tension (reflection, world-building) beats for pacing.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Write with Character Consistency","type":"text"}]},{"type":"paragraph","content":[{"text":"Maintain character voice by referencing:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Established personality traits","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Speech patterns and vocabulary","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Behavioral patterns (under stress, when happy, decision-making style)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Current position in character arc","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Relationships with other characters present","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Integrate Timeline Markers","type":"text"}]},{"type":"paragraph","content":[{"text":"Include timeline references to maintain chronological clarity:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Explicit markers: \"Day 3,\" \"Two weeks later\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Implicit markers: Time of day, seasonal cues, event references","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Format: ","type":"text"},{"text":"**Timeline:** Day 5, Evening","type":"text","marks":[{"type":"code_inline"}]},{"text":" in chapter header or as section break","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 6: Create Chapter File","type":"text"}]},{"type":"paragraph","content":[{"text":"Write chapter content to ","type":"text"},{"text":"chapters/chapter-[number].md","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":"chapters/[chapter-name].md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Include:","type":"text"}]},{"type":"paragraph","content":[{"text":"Chapter Header","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"# Chapter [Number]: [Optional Title]\n\n**Timeline:** [When this occurs]\n**POV:** [Character name]\n**Location:** [Where this takes place]","type":"text"}]},{"type":"paragraph","content":[{"text":"Chapter Content","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scene-by-scene breakdown","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Dialogue and action","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character thoughts (for POV character)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Descriptive elements","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 7: Note Continuity Elements","type":"text"}]},{"type":"paragraph","content":[{"text":"After writing, document any new information introduced:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character revelations or development","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Plot points or clues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"World-building details","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Timeline events","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"This helps maintain consistency in future chapters.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Timeline Tracking","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"When to Use Timeline Tracking","type":"text"}]},{"type":"paragraph","content":[{"text":"Invoke the timeline tracker when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"User requests timeline analysis or event sequencing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Checking chronological consistency","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Planning event order across chapters","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identifying unmarked time periods","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Running the Timeline Tracker","type":"text"}]},{"type":"paragraph","content":[{"text":"Execute the script from the project root:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python3 .claude/skills/storyboard-manager/scripts/timeline_tracker.py . --output markdown","type":"text"}]},{"type":"paragraph","content":[{"text":"Output format options:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"markdown","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Human-readable report (default)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"json","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Structured data for further processing","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Understanding Timeline Output","type":"text"}]},{"type":"paragraph","content":[{"text":"The script provides:","type":"text"}]},{"type":"paragraph","content":[{"text":"Statistics","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Total events tracked","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Total characters appearing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Events per character","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Timeline View","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Chronological sequence of events","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Chapter/scene locations","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Characters present in each event","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Preview of event content","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Warnings","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Events without timeline markers","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Characters mentioned but not defined in character files","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Acting on Timeline Results","type":"text"}]},{"type":"paragraph","content":[{"text":"After running the tracker:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Review warnings","type":"text","marks":[{"type":"strong"}]},{"text":" - Address missing timeline markers by adding them to chapters","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Check sequence","type":"text","marks":[{"type":"strong"}]},{"text":" - Verify events occur in logical order","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify gaps","type":"text","marks":[{"type":"strong"}]},{"text":" - Look for time periods without events","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character tracking","type":"text","marks":[{"type":"strong"}]},{"text":" - Ensure characters appear consistently with their arc","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Add timeline markers to chapters where missing:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"**Timeline:** Day 7, Morning","type":"text"}]},{"type":"paragraph","content":[{"text":"Or use inline markers:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"Three days had passed since the incident...","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Consistency Checking","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"When to Use Consistency Checking","type":"text"}]},{"type":"paragraph","content":[{"text":"Invoke the consistency checker when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"User requests consistency analysis","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Before finalizing chapters or acts","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"After making significant character or plot changes","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"When tracking contradictions or errors","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Running the Consistency Checker","type":"text"}]},{"type":"paragraph","content":[{"text":"Execute the script from the project root:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python3 .claude/skills/storyboard-manager/scripts/consistency_checker.py . --output markdown","type":"text"}]},{"type":"paragraph","content":[{"text":"Output format options:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"markdown","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Human-readable report with issue details (default)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"json","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Structured data for programmatic analysis","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Understanding Consistency Output","type":"text"}]},{"type":"paragraph","content":[{"text":"The script identifies issues in three severity levels:","type":"text"}]},{"type":"paragraph","content":[{"text":"Critical (🔴)","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Major contradictions requiring immediate attention","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Character appearing after death","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Fundamental plot contradictions","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Warning (⚠️)","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Potential inconsistencies to review","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Age discrepancies","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Physical description contradictions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Relationship conflicts","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Info (ℹ️)","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Minor issues or variations","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Name capitalization inconsistencies","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Stylistic variations","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Acting on Consistency Results","type":"text"}]},{"type":"paragraph","content":[{"text":"For each issue reported:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read flagged locations","type":"text","marks":[{"type":"strong"}]},{"text":" - Review the specific files mentioned","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Determine truth","type":"text","marks":[{"type":"strong"}]},{"text":" - Decide which version is correct (usually character profile is authoritative)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update files","type":"text","marks":[{"type":"strong"}]},{"text":" - Fix contradictions using the Edit tool","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Re-run checker","type":"text","marks":[{"type":"strong"}]},{"text":" - Verify fixes resolved the issues","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Example workflow for character age inconsistency:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"Issue: Age inconsistency for Maya\n- Profile: 18 years old\n- Chapter 3: mentions \"21-year-old Maya\"\n\nFix: Edit chapter-3.md to change \"21-year-old\" to \"18-year-old\"","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Consistency Checking Limitations","type":"text"}]},{"type":"paragraph","content":[{"text":"The automated checker catches:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Physical attribute contradictions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Age discrepancies","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Name variations","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Basic world-building facts","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"The checker cannot catch:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Subtle personality inconsistencies","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Complex plot logic errors","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Thematic contradictions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Nuanced relationship changes","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Manual review is still essential for deep consistency.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Best Practices","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Progressive Context Loading","type":"text"}]},{"type":"paragraph","content":[{"text":"Don't load all reference files at once. Instead:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scan project structure first","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read only relevant character files for the current task","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Access reference documentation only when specific guidance is needed","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use Grep to find specific sections in large reference files","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Maintaining Genre Voice","type":"text"}]},{"type":"paragraph","content":[{"text":"Match the story's established tone:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"YA","type":"text","marks":[{"type":"strong"}]},{"text":": Present tense, immediate emotional connection, contemporary language","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Fantasy","type":"text","marks":[{"type":"strong"}]},{"text":": Rich descriptive language, world-building integration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Thriller","type":"text","marks":[{"type":"strong"}]},{"text":": Short sentences, high tension, sensory details","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Literary","type":"text","marks":[{"type":"strong"}]},{"text":": Complex prose, internal reflection, symbolic elements","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Reference the summary.md to identify target audience and adjust accordingly.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Character Arc Integration","type":"text"}]},{"type":"paragraph","content":[{"text":"Every chapter should serve character arcs:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Track where each character is in their arc","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Show incremental change, not sudden transformation","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use plot events to test character beliefs","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Demonstrate growth through choices and behavior","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Balancing Show vs. Tell","type":"text"}]},{"type":"paragraph","content":[{"text":"For narrative writing:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Show","type":"text","marks":[{"type":"strong"}]},{"text":" emotions through actions, dialogue, physical reactions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Tell","type":"text","marks":[{"type":"strong"}]},{"text":" to compress time, provide necessary information efficiently","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use character-filtered description (what would this POV character notice?)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Handling Multiple POV","type":"text"}]},{"type":"paragraph","content":[{"text":"When stories have multiple perspectives:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create distinct voices for each POV character","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ensure each POV section advances both that character's arc and the plot","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Vary sentence structure and vocabulary by character","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Track what each character knows vs. doesn't know","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Common User Requests & Responses","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"Help me develop a character backstory\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read existing character files for context","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read the character profile (if exists) to enhance","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Access character_development.md reference for backstory framework","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create detailed backstory covering: ghost/wound, formative relationships, key history","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Integrate with their character arc and story role","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"Write the next chapter\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read summary.md and story planning documents","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read all character profiles for characters appearing in chapter","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read previous 2 chapters for continuity","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify chapter position in story structure","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Write chapter with scene/sequel structure","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include timeline markers and POV/location headers","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"Outline Act 2\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read summary and any existing planning documents","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Access story_structures.md for structural guidance","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify act 2 requirements (complications, midpoint, rising tension)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create beat-by-beat outline aligned with character arcs","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Note how plot and character arcs intersect","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"Check my story for consistency\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run consistency_checker.py script","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Review output identifying issues","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read flagged files to understand contradictions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommend specific fixes for each issue","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Offer to make edits if user confirms","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"Track the timeline of my story\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run timeline_tracker.py script","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Review output showing event sequence","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify gaps or inconsistencies in chronology","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommend adding timeline markers where missing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Provide timeline summary organized by character or chapter","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"\"What structure should I use for my thriller?\"","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Access story_structures.md reference","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommend Three-Act Structure or Save the Cat","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Explain thriller-specific requirements (escalating tension, ticking clock)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Provide beat sheet adapted to their story concept","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Offer to create detailed planning document","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Resources","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"scripts/timeline_tracker.py","type":"text"}]},{"type":"paragraph","content":[{"text":"Python script that analyzes markdown files to extract and organize timeline events. Tracks character appearances, identifies time markers, groups events chronologically, and flags consistency issues.","type":"text"}]},{"type":"paragraph","content":[{"text":"Usage:","type":"text","marks":[{"type":"strong"}]},{"text":" Run from project root with ","type":"text"},{"text":"python3 .claude/skills/storyboard-manager/scripts/timeline_tracker.py .","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"scripts/consistency_checker.py","type":"text"}]},{"type":"paragraph","content":[{"text":"Python script that detects inconsistencies in character details, physical descriptions, ages, names, and world-building facts across all story files. Outputs severity-ranked issues with file locations.","type":"text"}]},{"type":"paragraph","content":[{"text":"Usage:","type":"text","marks":[{"type":"strong"}]},{"text":" Run from project root with ","type":"text"},{"text":"python3 .claude/skills/storyboard-manager/scripts/consistency_checker.py .","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"references/character_development.md","type":"text"}]},{"type":"paragraph","content":[{"text":"Comprehensive framework for creating multi-dimensional characters including core elements, backstory structure, arc types, relationship dynamics, voice development, and consistency guidelines.","type":"text"}]},{"type":"paragraph","content":[{"text":"Load when:","type":"text","marks":[{"type":"strong"}]},{"text":" Developing new characters, enhancing existing profiles, resolving character consistency issues, or planning character arcs.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"references/story_structures.md","type":"text"}]},{"type":"paragraph","content":[{"text":"Detailed reference covering major story structures (Three-Act, Hero's Journey, Save the Cat), character arc templates, scene structure, pacing guidelines, plot development techniques, and genre-specific structures.","type":"text"}]},{"type":"paragraph","content":[{"text":"Load when:","type":"text","marks":[{"type":"strong"}]},{"text":" Planning story outline, structuring acts, organizing plot beats, determining pacing, or applying specific narrative frameworks.","type":"text"}]}]},"metadata":{"date":"2026-11-02","name":"storyboard-manager","author":"@skillopedia","source":{"stars":463,"repo_name":"ai-labs-claude-skills","origin_url":"https://github.com/ailabs-393/ai-labs-claude-skills/blob/HEAD/dist/skills/storyboard-manager/SKILL.md","repo_owner":"ailabs-393","body_sha256":"4f818c9718b9b536d9bb6e3e448f366c624f4258e7ebf2fd2704c30fd2fd277c","cluster_key":"50cab6d56a20f32379b9c1f0a80e2c262a9435d2dc3a3f1960d8c5aa3e9606fa","clean_bundle":{"format":"clean-skill-bundle-v1","source":"ailabs-393/ai-labs-claude-skills/dist/skills/storyboard-manager/SKILL.md","text_bytes":43589,"source_commit":"1a12bc7aadcc7b211f77a7455db454b77a71f827","skills_sh_rank":10299,"attachment_count":6,"text_attachments":6,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":"dist/skills/storyboard-manager/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"education-research","category_label":"Education"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"education-research","import_tag":"skills-sh-top20k-2026-11","description":"Assist writers with story planning, character development, plot structuring, chapter writing, timeline tracking, and consistency checking. Use this skill when working with creative writing projects organized in folders containing characters, chapters, story planning documents, and summaries. Trigger this skill for tasks like \"Help me develop this character,\" \"Write the next chapter,\" \"Check consistency across my story,\" or \"Track the timeline of events.\""}},"renderedAt":1793666633358}

Storyboard Manager Overview The Storyboard Manager skill equips Claude with specialized knowledge and tools for creative writing workflows. It provides frameworks for character development, story structure patterns, automated timeline tracking, and consistency checking across narrative projects. This skill automatically adapts to various storyboard folder structures while maintaining best practices for novel, screenplay, and serialized fiction writing. Core Capabilities The skill provides four main capabilities: 1. Character Development & Management Support creating deep, consistent character…