@botlearn/storyteller 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 BotLearn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # @botlearn/storyteller
2
+
3
+ > Crafts compelling stories with narrative structure, character development, and emotional rhythm for OpenClaw Agent
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # via npm
9
+ npm install @botlearn/storyteller
10
+
11
+ # via clawhub
12
+ clawhub install @botlearn/storyteller
13
+ ```
14
+
15
+ ## Category
16
+
17
+ Creative Generation
18
+
19
+ ## Dependencies
20
+
21
+ None
22
+
23
+ ## Files
24
+
25
+ | File | Description |
26
+ |------|-------------|
27
+ | `manifest.json` | Skill metadata and configuration |
28
+ | `skill.md` | Role definition and activation rules |
29
+ | `knowledge/` | Domain knowledge documents |
30
+ | `strategies/` | Behavioral strategy definitions |
31
+ | `tests/` | Smoke and benchmark tests |
32
+
33
+ ## License
34
+
35
+ MIT
@@ -0,0 +1,76 @@
1
+ ---
2
+ domain: storyteller
3
+ topic: anti-patterns
4
+ priority: medium
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Storytelling — Anti-Patterns
9
+
10
+ ## Character Anti-Patterns
11
+
12
+ ### 1. Flat / One-Dimensional Characters
13
+ - **Problem**: Characters who exist as a single trait — the "brave hero," the "evil villain," the "loyal friend" — with no internal complexity, contradictions, or growth
14
+ - **Fix**: Give every named character a want/need split, a wound from the past, and at least one trait that surprises. The villain should believe they are justified. The hero should have a real flaw that costs them something.
15
+
16
+ ### 2. Mary Sue / Gary Stu
17
+ - **Problem**: A protagonist who is effortlessly talented, universally admired, and never makes meaningful mistakes. Eliminates tension because the reader knows the character will succeed without real cost.
18
+ - **Fix**: Ensure the protagonist has specific, consequential weaknesses. Their greatest strength should create their biggest problem. Victories must come at a price.
19
+
20
+ ### 3. Inconsistent Character Behavior
21
+ - **Problem**: Characters act out of established character to serve plot convenience — a cautious character suddenly acts recklessly, or a selfish character becomes selfless, without motivation.
22
+ - **Fix**: Every behavioral shift must be earned through prior events. If a character changes, show the accumulation of pressure or insight that drives the change. Track character knowledge — characters cannot act on information they haven't received.
23
+
24
+ ### 4. Talking Heads
25
+ - **Problem**: Dialogue scenes where characters exchange information without physicality, setting, or subtext. Reads like a script without stage directions.
26
+ - **Fix**: Ground dialogue in action and environment. Characters should be doing something while talking. Use body language and physical reactions to convey what words do not.
27
+
28
+ ## Plot Anti-Patterns
29
+
30
+ ### 5. Deus Ex Machina
31
+ - **Problem**: A problem is solved by an unexpected, unestablished element — a previously unmentioned power, a coincidental rescue, a sudden change of heart with no setup. Destroys narrative trust.
32
+ - **Fix**: Every resolution element must be planted earlier in the story. Apply the Chekhov's Gun principle: if the solution appears in Act III, its components must appear in Acts I and II. The protagonist should solve their own problem through agency and growth.
33
+
34
+ ### 6. Idiot Plot
35
+ - **Problem**: The story only works because characters fail to communicate information that any reasonable person would share, or make obviously foolish decisions to maintain conflict artificially.
36
+ - **Fix**: Give characters genuine, specific reasons for withholding information (shame, distrust, conflicting loyalties). Decisions should be understandable from the character's perspective, even when the reader can see the mistake.
37
+
38
+ ### 7. Sagging Middle
39
+ - **Problem**: Act II loses momentum — the story meanders, repeats conflicts at the same stakes level, or fills time with episodic events that don't escalate toward the climax.
40
+ - **Fix**: Use a strong midpoint reversal that redefines the conflict. Introduce new complications, raise stakes, add subplots that intersect the main plot. Each scene in Act II should either raise the stakes or deepen character — ideally both.
41
+
42
+ ### 8. Predictable Plot
43
+ - **Problem**: The reader can see every twist coming because the story follows genre templates too rigidly without subversion, or because foreshadowing is too heavy-handed.
44
+ - **Fix**: Set up expectations and then subvert them. Use genre conventions as a framework but introduce at least one genuine surprise per act. Plant red herrings alongside real clues. Let the story be inevitable in retrospect but surprising in the moment.
45
+
46
+ ## Prose & Style Anti-Patterns
47
+
48
+ ### 9. Telling Instead of Showing
49
+ - **Problem**: Narrating emotions and character traits directly ("She was sad," "He was brave") instead of revealing them through action, dialogue, and sensory detail.
50
+ - **Fix**: Replace emotional labels with concrete, observable behavior. What does "sad" look like for this specific character in this specific moment? Use physical manifestation, changed behavior, and environmental interaction.
51
+
52
+ ### 10. Purple Prose
53
+ - **Problem**: Overwritten passages with excessive adjectives, elaborate metaphors in every sentence, and florid language that draws attention to the writing and away from the story. Slows pacing and fatigues the reader.
54
+ - **Fix**: Vary sentence length and complexity. Reserve elaborate description for moments that warrant it. Apply the "strong verb" principle: one precise verb beats three adjectives. Read passages aloud — if they sound like a thesaurus exploded, simplify.
55
+
56
+ ### 11. White Room Syndrome
57
+ - **Problem**: Scenes take place in undefined, generic spaces. Characters talk and act in a void because the writer neglects setting and environmental detail.
58
+ - **Fix**: Ground every scene in a specific, sensory-rich location. Choose settings that create friction or resonance with the emotional content of the scene. Use two to three concrete sensory details per scene transition.
59
+
60
+ ### 12. Exposition Dumps
61
+ - **Problem**: Long paragraphs of world-building, backstory, or technical explanation that halt the narrative. Often appears as characters explaining things they both already know ("As you know, Bob...").
62
+ - **Fix**: Distribute exposition across the narrative. Reveal information only when characters need it and when readers are curious enough to absorb it. Use conflict and dialogue to surface backstory. Apply the iceberg principle — imply depth rather than exhaustively cataloging it.
63
+
64
+ ## Structural Anti-Patterns
65
+
66
+ ### 13. False Stakes
67
+ - **Problem**: The story threatens consequences but never delivers them. Characters survive impossible situations unscathed, or losses are immediately reversed. The reader stops trusting that anything matters.
68
+ - **Fix**: Let consequences stick. Kill the mentor. Let the hero fail at something important. Make recovery partial, not complete. Real stakes require real costs.
69
+
70
+ ### 14. Rushed Resolution
71
+ - **Problem**: After a long buildup, the climax and resolution are compressed into too little space. Complex conflicts dissolve in a paragraph. Character arcs snap to completion without transition.
72
+ - **Fix**: Allocate at least 20-25% of the story to Act III. Give the climax room to breathe. Allow a falling action that processes the emotional aftermath. The reader needs decompression time proportional to the tension built.
73
+
74
+ ### 15. Orphaned Subplots
75
+ - **Problem**: Subplots or character threads that are introduced but never resolved, leaving the reader with unfinished business and a sense of incompleteness.
76
+ - **Fix**: Track every subplot and character thread. Each must either resolve or be deliberately left open for thematic reasons. If a subplot is cut for length, remove its setup as well.
@@ -0,0 +1,111 @@
1
+ ---
2
+ domain: storyteller
3
+ topic: craft-principles-and-techniques
4
+ priority: high
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Storytelling — Best Practices
9
+
10
+ ## Show, Don't Tell
11
+
12
+ ### The Core Principle
13
+ Reveal character emotions, traits, and story information through concrete actions, sensory details, and dialogue rather than direct narration of internal states.
14
+
15
+ ### Telling vs. Showing
16
+
17
+ | Telling (Weak) | Showing (Strong) |
18
+ |----------------|-----------------|
19
+ | "She was angry." | "She slammed the folder on the desk. The pages scattered. She didn't pick them up." |
20
+ | "He was a kind man." | "He left his umbrella on the park bench when he saw the old woman waiting at the bus stop in the rain." |
21
+ | "The city was dangerous." | "Three locks on every door, and still Mrs. Alvarez slept with a kitchen knife under her pillow." |
22
+ | "They fell in love." | "She started leaving the porch light on long after she knew he'd gone home." |
23
+
24
+ ### When Telling Is Acceptable
25
+ - Transitional passages covering large spans of time: "Three years passed."
26
+ - Establishing context where pace matters more than immersion: "The war had lasted a decade."
27
+ - When a character's self-assessment deliberately contrasts with shown behavior (unreliable narrator technique)
28
+
29
+ ## Character Voice & Dialogue
30
+
31
+ ### Distinct Character Voices
32
+ Each character's dialogue should be identifiable without attribution tags. Differentiate through:
33
+
34
+ - **Vocabulary level**: A professor speaks differently from a street vendor
35
+ - **Sentence structure**: Anxious characters use fragments; confident ones use declarations
36
+ - **Verbal tics and patterns**: Repeated phrases, hedge words, interruptions
37
+ - **Cultural and regional markers**: Idioms, slang, code-switching
38
+ - **What they avoid saying**: Silences and deflections reveal as much as words
39
+
40
+ ### Dialogue Best Practices
41
+ 1. **Subtext over surface**: Characters rarely say exactly what they mean — layer unspoken tension beneath spoken words
42
+ 2. **Conflict in every exchange**: Even friendly dialogue should contain micro-tensions (competing goals, withheld information, misunderstandings)
43
+ 3. **Action beats over attribution tags**: Replace "he said angrily" with action: "He crushed the paper cup. 'Fine. We'll do it your way.'"
44
+ 4. **Trim the fat**: Cut greetings, small talk, and filler unless they serve characterization — enter scenes late, leave early
45
+ 5. **Read aloud test**: Dialogue should sound natural when spoken; awkward phrasing breaks immersion
46
+
47
+ ## Pacing & Rhythm
48
+
49
+ ### Scene-Level Pacing
50
+
51
+ | Pace | Technique | When to Use |
52
+ |------|-----------|-------------|
53
+ | **Fast** | Short sentences, rapid dialogue, action verbs, minimal description | Chase scenes, arguments, moments of crisis |
54
+ | **Medium** | Mix of action and reflection, moderate detail | Exploration, investigation, relationship building |
55
+ | **Slow** | Long sentences, rich description, interior monologue, sensory immersion | Emotional aftermath, world-building reveals, quiet character moments |
56
+
57
+ ### Narrative-Level Pacing
58
+ - **Scene vs. Summary**: Use full scenes for pivotal moments; summarize routine transitions
59
+ - **Chapter endings**: End on micro-cliffhangers, unanswered questions, or emotional beats to maintain forward momentum
60
+ - **Breathing room**: After high-intensity sequences, insert a quieter scene — readers need recovery time before the next escalation
61
+ - **Escalation curve**: Each major scene should raise the stakes higher than the last; avoid flat middles by introducing complications at regular intervals
62
+
63
+ ### Emotional Rhythm
64
+ - Alternate between tension and release — sustained tension numbs; sustained calm bores
65
+ - Mirror the protagonist's emotional state in prose style (fragmented thoughts in panic, flowing sentences in peace)
66
+ - Build emotional peaks gradually — the highest impact comes from earned moments, not sudden jolts
67
+
68
+ ## Foreshadowing & Setup/Payoff
69
+
70
+ ### Planting and Paying Off
71
+ Every significant plot element in the climax should have roots earlier in the story:
72
+
73
+ 1. **Chekhov's Gun Principle**: If you introduce an element with emphasis, it must become relevant later. Conversely, crucial climactic elements must be planted beforehand.
74
+ 2. **The Rule of Three**: Plant a detail at least three times before it becomes critical — first as background, second as a noticeable element, third as the pivotal factor.
75
+ 3. **Misdirection**: Foreshadowing works best when the reader notices it only in retrospect. Embed clues among other details so they don't stand out on first reading.
76
+
77
+ ### Types of Foreshadowing
78
+
79
+ | Type | Technique | Example |
80
+ |------|-----------|---------|
81
+ | **Direct** | A character or narrator hints at future events | "She didn't know then that this would be their last summer." |
82
+ | **Symbolic** | Objects, weather, or imagery mirror future events | A cracked mirror before a relationship breaks apart |
83
+ | **Behavioral** | A character's small action foreshadows a larger one | A character who nervously pockets small items later commits a significant theft |
84
+ | **Dialogue** | A throwaway line gains significance later | "You'd forget your own head if it wasn't attached" — before a memory-loss plot |
85
+ | **Environmental** | Setting details hint at what's coming | Describing a bridge's rusted supports before a collapse scene |
86
+
87
+ ## World-Building Integration
88
+
89
+ ### Exposition Through Immersion
90
+ - **Show the world through character interaction**: A character haggling at a market reveals economic systems, social hierarchies, and cultural values simultaneously
91
+ - **Conflict as world-building**: Arguments between characters can reveal political tensions, religious differences, or technological debates
92
+ - **Sensory grounding**: Describe what the character sees, hears, smells, and feels — the world becomes real through specificity
93
+ - **Iceberg principle**: Know ten times more about the world than you reveal; let depth inform texture without dumping information
94
+
95
+ ### Detail Selection
96
+ - Choose details that serve double duty: setting AND characterization, OR setting AND theme
97
+ - Use specific, concrete nouns instead of generic ones: "a rusted Oldsmobile" not "an old car"
98
+ - Filter world details through the POV character's perspective — a soldier notices exits, a chef notices smells
99
+
100
+ ## Theme & Meaning
101
+
102
+ ### Embedding Theme
103
+ - Theme emerges from the story's pattern of choices and consequences — never state it explicitly through characters lecturing
104
+ - The protagonist's arc (lie → truth, want → need) embodies the thematic argument
105
+ - Subplots should mirror, contrast, or complicate the main theme
106
+ - Symbols and motifs reinforce theme through repetition and variation, not heavy-handed metaphor
107
+
108
+ ### Thematic Complexity
109
+ - Strong stories present a thesis and antithesis — let the antagonist have a valid perspective
110
+ - Avoid moralizing: trust the reader to interpret meaning from events
111
+ - The best endings answer the thematic question without resolving all ambiguity
@@ -0,0 +1,122 @@
1
+ ---
2
+ domain: storyteller
3
+ topic: narrative-structures-and-character-archetypes
4
+ priority: high
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Storytelling — Narrative Structures & Character Archetypes
9
+
10
+ ## Narrative Frameworks
11
+
12
+ ### The Hero's Journey (Joseph Campbell / Christopher Vogler)
13
+
14
+ A monomyth structure found across cultures, ideal for adventure, fantasy, and coming-of-age stories.
15
+
16
+ | Stage | Description | Story Function |
17
+ |-------|-------------|----------------|
18
+ | 1. Ordinary World | Hero's everyday life before the adventure | Establishes baseline, reveals flaws and desires |
19
+ | 2. Call to Adventure | An event disrupts the status quo | Introduces the central conflict |
20
+ | 3. Refusal of the Call | Hero hesitates or resists the journey | Shows stakes and internal resistance |
21
+ | 4. Meeting the Mentor | Hero encounters a guide or receives aid | Provides tools, wisdom, or confidence to proceed |
22
+ | 5. Crossing the Threshold | Hero commits to the adventure, enters the special world | Point of no return; story accelerates |
23
+ | 6. Tests, Allies, Enemies | Hero faces challenges, gains companions, identifies antagonists | Builds the world and relationships; raises stakes |
24
+ | 7. Approach to the Inmost Cave | Hero prepares for the central ordeal | Tension peaks before the climax |
25
+ | 8. The Ordeal | Hero faces the greatest challenge or darkest moment | Climactic confrontation; death-and-rebirth symbolism |
26
+ | 9. The Reward | Hero seizes the prize or gains new knowledge | Payoff for the struggle; shift in power |
27
+ | 10. The Road Back | Hero begins the return journey, facing new dangers | Consequences of the ordeal unfold |
28
+ | 11. The Resurrection | Final test that transforms the hero permanently | Proves the hero has truly changed |
29
+ | 12. Return with the Elixir | Hero returns home, changed, bearing gifts for the community | Resolution; thematic statement crystallizes |
30
+
31
+ ### Three-Act Structure
32
+
33
+ The foundational Western dramatic structure used across film, theater, and prose fiction.
34
+
35
+ **Act I — Setup (roughly 25% of story)**
36
+ - **Hook**: Opening scene that grabs attention and establishes tone
37
+ - **Exposition**: Introduce protagonist, setting, and status quo
38
+ - **Inciting Incident**: The event that sets the story in motion (occurs around 10-12% mark)
39
+ - **First Plot Point / Act I Turning Point**: Protagonist commits to the central conflict (25% mark)
40
+
41
+ **Act II — Confrontation (roughly 50% of story)**
42
+ - **Rising Action**: Escalating obstacles, complications, and subplots
43
+ - **Midpoint**: A major revelation, reversal, or shift that redefines the conflict (50% mark)
44
+ - **Pinch Points**: Reminders of the antagonist's strength (at ~37% and ~62%)
45
+ - **Second Plot Point / Act II Turning Point**: All seems lost; darkest moment before the climax (75% mark)
46
+
47
+ **Act III — Resolution (roughly 25% of story)**
48
+ - **Climax**: The decisive confrontation between protagonist and antagonist
49
+ - **Falling Action**: Immediate aftermath of the climax
50
+ - **Denouement**: Resolution of subplots, new equilibrium established
51
+ - **Final Image**: Closing scene that mirrors or contrasts the opening
52
+
53
+ ### Freytag's Pyramid
54
+
55
+ A five-part dramatic structure originally derived from classical tragedy, useful for stories with a clear rise-and-fall pattern.
56
+
57
+ 1. **Exposition** — Introduces characters, setting, and initial situation
58
+ 2. **Rising Action** — Complications build; tension and stakes increase through successive conflicts
59
+ 3. **Climax (Turning Point)** — The peak of tension; the decisive moment that determines the outcome
60
+ 4. **Falling Action** — Consequences of the climax unfold; tension decreases but suspense may remain
61
+ 5. **Denouement (Resolution)** — Conflicts are resolved; a new normal is established or tragedy is sealed
62
+
63
+ ### Kishotenketsu (Four-Act Structure)
64
+
65
+ A narrative structure from East Asian tradition (Japanese, Chinese, Korean) that does not require central conflict as the driving force.
66
+
67
+ 1. **Ki (Introduction)** — Establish the characters, setting, and situation without conflict
68
+ 2. **Sho (Development)** — Deepen the elements introduced in Ki; build familiarity and expectations
69
+ 3. **Ten (Twist)** — Introduce an unexpected element, juxtaposition, or perspective shift that recontextualizes everything
70
+ 4. **Ketsu (Conclusion)** — Reconcile the twist with the established world; reveal new understanding or harmony
71
+
72
+ - **Best for**: Slice-of-life, literary fiction, puzzle narratives, philosophical stories
73
+ - **Key difference from Western structures**: The "twist" is not necessarily a conflict — it can be a surprising connection, a shift in perspective, or a new context that transforms meaning
74
+
75
+ ## Character Archetypes
76
+
77
+ ### Core Archetypes (Jungian / Vogler)
78
+
79
+ | Archetype | Core Motivation | Story Function | Example |
80
+ |-----------|----------------|----------------|---------|
81
+ | **Hero** | To prove worth through courageous action | Protagonist who drives the journey | Frodo, Katniss, Luke Skywalker |
82
+ | **Mentor** | To guide and protect | Provides wisdom, tools, or moral compass | Gandalf, Dumbledore, Haymitch |
83
+ | **Threshold Guardian** | To test the worthy | Blocks passage until hero proves readiness | Bouncers, bureaucrats, rival gatekeepers |
84
+ | **Herald** | To announce change | Delivers the call to adventure | The White Rabbit, R2-D2's hologram |
85
+ | **Shapeshifter** | To question and transform | Creates suspense through shifting loyalty or identity | Severus Snape, Catwoman |
86
+ | **Shadow** | To destroy or obstruct | Embodies the antagonistic force or hero's dark mirror | Sauron, President Snow, Darth Vader |
87
+ | **Trickster** | To disrupt and reveal truth | Provides comic relief, challenges assumptions | Loki, Fred and George Weasley |
88
+ | **Ally** | To support and complement | Fills gaps in the hero's abilities; provides emotional anchor | Samwise Gamgee, Ron Weasley, Han Solo |
89
+
90
+ ### Character Depth Dimensions
91
+
92
+ Every well-developed character should have layers across these dimensions:
93
+
94
+ - **Want vs. Need**: What the character consciously pursues (want) versus what they truly require for growth (need)
95
+ - **Ghost / Wound**: A past event that shapes current behavior, fears, and defensive patterns
96
+ - **Lie vs. Truth**: The false belief the character holds at the start versus the truth they must discover
97
+ - **Competence vs. Vulnerability**: Specific strengths balanced by meaningful weaknesses
98
+ - **Public Self vs. Private Self**: How the character presents to the world versus who they are alone
99
+
100
+ ## Genre Conventions
101
+
102
+ ### Genre Expectations
103
+
104
+ | Genre | Core Promise | Required Elements | Emotional Arc |
105
+ |-------|-------------|-------------------|---------------|
106
+ | **Fantasy** | Wonder and escape | Magic system, world-building, quest or power struggle | Awe → danger → triumph or sacrifice |
107
+ | **Sci-Fi** | Exploration of ideas | Speculative technology or society, internal logic, consequences | Curiosity → tension → revelation |
108
+ | **Mystery/Thriller** | Puzzle and suspense | Clues, red herrings, ticking clock, reveal | Intrigue → suspicion → resolution |
109
+ | **Romance** | Emotional fulfillment | Meet-cute, obstacles to union, emotional vulnerability, HEA/HFN | Attraction → conflict → commitment |
110
+ | **Horror** | Confrontation with fear | Escalating dread, isolation, the uncanny, survival stakes | Unease → terror → catharsis or devastation |
111
+ | **Literary Fiction** | Insight into the human condition | Interior life, thematic depth, prose craft, ambiguity | Reflection → discomfort → understanding |
112
+ | **Adventure** | Excitement and discovery | Physical challenges, exotic settings, escalating danger | Excitement → peril → victory |
113
+ | **Comedy** | Laughter and relief | Timing, incongruity, escalation, satisfying payoff | Amusement → chaos → resolution |
114
+
115
+ ### Tone Registers
116
+
117
+ - **Dark/Gritty**: Morally ambiguous, visceral detail, consequences are real and permanent
118
+ - **Lighthearted**: Optimistic tone, humor infused, consequences are manageable
119
+ - **Epic/Grand**: Large-scale stakes, formal language, sweeping emotional arcs
120
+ - **Intimate/Quiet**: Small-scale stakes, interior focus, nuanced emotional shifts
121
+ - **Satirical**: Uses irony and exaggeration to critique; humor with a sharp edge
122
+ - **Lyrical/Poetic**: Elevated prose, rhythm and imagery prioritized alongside narrative
package/manifest.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@botlearn/storyteller",
3
+ "version": "0.1.0",
4
+ "description": "Crafts compelling stories with narrative structure, character development, and emotional rhythm for OpenClaw Agent",
5
+ "category": "creative-generation",
6
+ "author": "BotLearn",
7
+ "benchmarkDimension": "creative-generation",
8
+ "expectedImprovement": 30,
9
+ "dependencies": {},
10
+ "compatibility": {
11
+ "openclaw": ">=0.5.0"
12
+ },
13
+ "files": {
14
+ "skill": "skill.md",
15
+ "knowledge": [
16
+ "knowledge/domain.md",
17
+ "knowledge/best-practices.md",
18
+ "knowledge/anti-patterns.md"
19
+ ],
20
+ "strategies": [
21
+ "strategies/main.md"
22
+ ],
23
+ "smokeTest": "tests/smoke.json",
24
+ "benchmark": "tests/benchmark.json"
25
+ }
26
+ }
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@botlearn/storyteller",
3
+ "version": "0.1.0",
4
+ "description": "Crafts compelling stories with narrative structure, character development, and emotional rhythm for OpenClaw Agent",
5
+ "type": "module",
6
+ "main": "manifest.json",
7
+ "files": [
8
+ "manifest.json",
9
+ "skill.md",
10
+ "knowledge/",
11
+ "strategies/",
12
+ "tests/",
13
+ "README.md"
14
+ ],
15
+ "keywords": [
16
+ "botlearn",
17
+ "openclaw",
18
+ "skill",
19
+ "creative-generation"
20
+ ],
21
+ "author": "BotLearn",
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/readai-team/botlearn-awesome-skills.git",
26
+ "directory": "packages/skills/storyteller"
27
+ },
28
+ "homepage": "https://github.com/readai-team/botlearn-awesome-skills/tree/main/packages/skills/storyteller",
29
+ "bugs": {
30
+ "url": "https://github.com/readai-team/botlearn-awesome-skills/issues"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }
package/skill.md ADDED
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: storyteller
3
+ role: Story Crafting Specialist
4
+ version: 1.0.0
5
+ triggers:
6
+ - "write a story"
7
+ - "tell a story"
8
+ - "create a narrative"
9
+ - "fiction"
10
+ - "storytelling"
11
+ ---
12
+
13
+ # Role
14
+
15
+ You are a Story Crafting Specialist. When activated, you craft compelling fiction and narratives with strong narrative structure, layered character development, emotional rhythm, and genre-appropriate voice. You guide stories from initial premise through complete drafts with attention to pacing, thematic coherence, and reader engagement.
16
+
17
+ # Capabilities
18
+
19
+ 1. Develop story premises with clear conflict, stakes, and thematic intent using established narrative frameworks (Hero's Journey, Three-Act Structure, Kishotenketsu, Freytag's Pyramid)
20
+ 2. Design multi-dimensional characters with distinct voices, motivations, internal contradictions, and transformative arcs
21
+ 3. Construct plot outlines with rising tension, turning points, reversals, and satisfying resolution following genre conventions
22
+ 4. Write vivid scenes with sensory detail, subtext-rich dialogue, and controlled pacing that balances action, reflection, and exposition
23
+ 5. Adjust emotional rhythm and narrative pacing across the full arc — accelerating through climax, decelerating for aftermath, modulating tension throughout
24
+
25
+ # Constraints
26
+
27
+ 1. Never generate gratuitously violent, explicit, or harmful content — always respect content guidelines and user-specified boundaries
28
+ 2. Never produce flat, one-dimensional characters — every named character must have at least one internal contradiction or growth vector
29
+ 3. Never rely on deus ex machina or unearned resolution — climactic outcomes must be seeded earlier in the narrative
30
+ 4. Never info-dump world-building or backstory — integrate exposition through action, dialogue, and environmental detail
31
+ 5. Always maintain internal consistency — track character knowledge, timeline, physical details, and established rules throughout the narrative
32
+ 6. Always match tone and style to the genre and audience specified by the user
33
+
34
+ # Activation
35
+
36
+ WHEN the user requests a story, narrative, or fiction:
37
+ 1. Analyze the request to identify: **genre**, **tone**, **audience**, **length**, **themes**, and **any constraints**
38
+ 2. Develop the premise and characters following strategies/main.md
39
+ 3. Apply narrative structure knowledge from knowledge/domain.md
40
+ 4. Follow craft principles from knowledge/best-practices.md
41
+ 5. Verify against knowledge/anti-patterns.md to avoid common storytelling pitfalls
42
+ 6. Deliver the story with a consistency review pass before final output
@@ -0,0 +1,100 @@
1
+ ---
2
+ strategy: storyteller
3
+ version: 1.0.0
4
+ steps: 6
5
+ ---
6
+
7
+ # Storytelling Strategy
8
+
9
+ ## Step 1: Premise Development
10
+ - Parse the user's request to identify: **genre**, **tone**, **target audience**, **desired length**, **themes**, and **specific constraints**
11
+ - IF the request is vague THEN ask one clarifying question to establish genre, length, and tone before proceeding
12
+ - Formulate the story premise as a one-sentence "what if" statement that contains: protagonist, conflict, and stakes
13
+ - Select the narrative framework best suited to the request from knowledge/domain.md:
14
+ - Adventure / coming-of-age / transformation → **Hero's Journey**
15
+ - General fiction, screenwriting, tight structure → **Three-Act Structure**
16
+ - Tragedy, rise-and-fall stories → **Freytag's Pyramid**
17
+ - Slice-of-life, literary, meditative, non-conflict-driven → **Kishotenketsu**
18
+ - Define the **thematic question** the story will explore (e.g., "Can loyalty survive betrayal?")
19
+ - Establish the **emotional arc**: what the reader should feel at the opening, midpoint, climax, and close
20
+
21
+ ## Step 2: Character Design
22
+ - Create the protagonist with full depth dimensions from knowledge/domain.md:
23
+ - **Want**: The conscious, external goal driving their actions
24
+ - **Need**: The internal truth they must discover to grow
25
+ - **Ghost/Wound**: The past event shaping their fears and behavior
26
+ - **Lie**: The false belief they hold at the start
27
+ - **Strength & Flaw**: A core competence paired with a meaningful weakness — the flaw should directly obstruct the want
28
+ - Create the antagonist (or opposing force) with:
29
+ - A justified motivation from their own perspective
30
+ - A direct challenge to the protagonist's lie or flaw
31
+ - Enough dimensionality to avoid the "flat villain" anti-pattern (knowledge/anti-patterns.md)
32
+ - Design 1-3 supporting characters, each serving a distinct story function from the archetype table (Mentor, Ally, Trickster, Shapeshifter, etc.)
33
+ - Assign each character a distinct **voice signature**: vocabulary level, sentence rhythm, verbal tics, emotional default
34
+ - VERIFY against knowledge/anti-patterns.md: no Mary Sues, no flat characters, no inconsistent behavior seeds
35
+
36
+ ## Step 3: Plot Outline
37
+ - Map the story's major beats to the chosen narrative framework:
38
+ - **Three-Act**: Hook → Inciting Incident → Act I Turning Point → Midpoint Reversal → Act II Turning Point → Climax → Resolution
39
+ - **Hero's Journey**: Ordinary World through Return with the Elixir (all 12 stages)
40
+ - **Freytag's Pyramid**: Exposition → Rising Action → Climax → Falling Action → Denouement
41
+ - **Kishotenketsu**: Ki → Sho → Ten → Ketsu
42
+ - For each beat, specify: **what happens**, **what changes** (in stakes, relationships, or knowledge), and **the emotional tone**
43
+ - Plant at least 3 **foreshadowing elements** that will pay off in the climax or resolution
44
+ - Plan at least 1 **subplot** that mirrors, contrasts, or complicates the main theme
45
+ - VERIFY: Does the plot require any deus ex machina? IF yes THEN revise to seed the resolution elements earlier
46
+ - VERIFY: Does the midpoint offer a genuine reversal or escalation? IF no THEN redesign the middle
47
+
48
+ ## Step 4: Scene Writing
49
+ - Write each scene following these principles from knowledge/best-practices.md:
50
+ - **Enter late, leave early**: Begin each scene at the point of maximum relevance; exit once the scene's purpose is fulfilled
51
+ - **Show, don't tell**: Render emotions through action, body language, dialogue, and sensory detail — not direct narration of feelings
52
+ - **Dialogue with subtext**: Characters should have unspoken agendas beneath their words; avoid on-the-nose dialogue
53
+ - **Sensory grounding**: Include at least 2-3 concrete sensory details per scene to prevent "white room syndrome"
54
+ - **Action beats**: Replace attribution tags ("she said angrily") with physical actions that convey tone
55
+ - For each scene, check:
56
+ - Does it advance plot, deepen character, or both? IF neither THEN cut or restructure
57
+ - Does the POV character have a scene-level goal and face a scene-level obstacle?
58
+ - Does the scene end with a change in the character's situation, knowledge, or emotional state?
59
+ - Match prose style to genre expectations from knowledge/domain.md:
60
+ - Horror → atmospheric, dread-building, sensory
61
+ - Romance → emotionally intimate, interiority-focused
62
+ - Thriller → propulsive, short sentences, cliffhanger beats
63
+ - Literary → reflective, layered imagery, thematic resonance
64
+
65
+ ## Step 5: Pacing Adjustment
66
+ - Review the draft's pacing rhythm from knowledge/best-practices.md:
67
+ - Verify tension/release alternation — no two consecutive high-intensity or low-intensity scenes
68
+ - Check that Act II escalates (each obstacle is harder than the last)
69
+ - Ensure the climax receives adequate narrative space (not rushed)
70
+ - Confirm breathing room after major emotional peaks
71
+ - Adjust sentence-level rhythm:
72
+ - Fast-paced scenes → shorter sentences, active verbs, rapid dialogue exchanges
73
+ - Slow-paced scenes → longer sentences, richer description, interior reflection
74
+ - Review chapter/section breaks:
75
+ - Each break should create a micro-cliffhanger, unanswered question, or emotional shift that pulls the reader forward
76
+ - IF the story feels front-loaded THEN redistribute conflict and revelation into the middle
77
+ - IF the ending feels rushed THEN expand the climax and falling action
78
+
79
+ ## Step 6: Consistency Review
80
+ - **Character consistency check**:
81
+ - Does each character act within their established personality, or is every deviation motivated and earned?
82
+ - Is character knowledge consistent? (No character acts on information they haven't received)
83
+ - Are character voices distinct throughout? Read dialogue without attribution — can you identify the speaker?
84
+ - **Plot consistency check**:
85
+ - Are all subplots resolved or deliberately left open?
86
+ - Does every foreshadowed element pay off?
87
+ - Is the timeline internally consistent? (No impossible travel, no forgotten injuries, no time contradictions)
88
+ - Are physical details stable? (Eye color, setting layout, object locations)
89
+ - **Anti-pattern sweep** — verify against knowledge/anti-patterns.md:
90
+ - No deus ex machina in the resolution
91
+ - No unearned character transformations
92
+ - No exposition dumps or "As you know, Bob" dialogue
93
+ - No purple prose passages that impede pacing
94
+ - No orphaned subplots or dangling threads
95
+ - No false stakes where consequences are threatened but never delivered
96
+ - **Final polish**:
97
+ - Read the opening — does it hook immediately?
98
+ - Read the closing — does it deliver emotional and thematic resolution?
99
+ - Verify the story fulfills the user's original request: genre, tone, length, and any stated constraints
100
+ - OUTPUT the completed story with a brief author's note summarizing the structure, key themes, and character arcs
@@ -0,0 +1,476 @@
1
+ {
2
+ "version": "0.0.1",
3
+ "dimension": "creative-generation",
4
+ "tasks": [
5
+ {
6
+ "id": "bench-easy-01",
7
+ "difficulty": "easy",
8
+ "description": "Write a simple short story from a clear prompt with defined genre",
9
+ "input": "Write a short story (300-500 words) about a child who finds a mysterious key in their grandmother's attic. Genre: fantasy. Tone: whimsical and warm.",
10
+ "rubric": [
11
+ {
12
+ "criterion": "Narrative Structure",
13
+ "weight": 0.35,
14
+ "scoring": {
15
+ "5": "Clear beginning, middle, and end; identifiable inciting incident (finding the key), rising action, and resolution; story feels complete",
16
+ "3": "Has a start and end but the middle lacks direction or the resolution feels abrupt",
17
+ "1": "Events are listed without structural progression",
18
+ "0": "No discernible structure"
19
+ }
20
+ },
21
+ {
22
+ "criterion": "Character & Voice",
23
+ "weight": 0.3,
24
+ "scoring": {
25
+ "5": "Child protagonist has a distinct personality shown through actions and dialogue; age-appropriate voice; emotional response to discovery feels genuine",
26
+ "3": "Protagonist exists but feels generic; voice is inconsistent or not age-appropriate",
27
+ "1": "No characterization; protagonist is interchangeable with any character",
28
+ "0": "No character work"
29
+ }
30
+ },
31
+ {
32
+ "criterion": "Tone & Genre",
33
+ "weight": 0.35,
34
+ "scoring": {
35
+ "5": "Whimsical, warm tone sustained throughout; fantasy element is creative and integral; sensory details evoke wonder",
36
+ "3": "Tone is partially achieved; fantasy element present but feels perfunctory",
37
+ "1": "Tone mismatch; fantasy element is negligible or absent",
38
+ "0": "Does not match requested genre or tone"
39
+ }
40
+ }
41
+ ],
42
+ "expectedScoreWithout": 40,
43
+ "expectedScoreWith": 80
44
+ },
45
+ {
46
+ "id": "bench-easy-02",
47
+ "difficulty": "easy",
48
+ "description": "Write a story with a specific emotional arc",
49
+ "input": "Write a short story (300-500 words) about two strangers who share a taxi during a rainstorm and discover an unexpected connection. The emotional arc should move from awkwardness to warmth. Genre: contemporary fiction.",
50
+ "rubric": [
51
+ {
52
+ "criterion": "Emotional Arc",
53
+ "weight": 0.4,
54
+ "scoring": {
55
+ "5": "Clear progression from awkwardness to warmth; emotional shifts feel earned through specific moments and dialogue; the connection reveal is satisfying",
56
+ "3": "Some emotional progression but transitions feel abrupt or underdeveloped",
57
+ "1": "Flat emotional line; characters jump from strangers to connected without buildup",
58
+ "0": "No emotional arc"
59
+ }
60
+ },
61
+ {
62
+ "criterion": "Dialogue Quality",
63
+ "weight": 0.3,
64
+ "scoring": {
65
+ "5": "Dialogue sounds natural; contains subtext; each character has a distinct voice; conversation drives the emotional arc forward",
66
+ "3": "Dialogue is functional but lacks subtext or distinct voices",
67
+ "1": "Dialogue is stilted, expository, or unrealistic",
68
+ "0": "No dialogue or entirely non-functional"
69
+ }
70
+ },
71
+ {
72
+ "criterion": "Setting & Atmosphere",
73
+ "weight": 0.3,
74
+ "scoring": {
75
+ "5": "Rainstorm and taxi setting are used actively — sensory details (rain sounds, confined space, city lights) reinforce mood and intimacy",
76
+ "3": "Setting is mentioned but not leveraged for atmosphere",
77
+ "1": "Setting is generic; could be anywhere",
78
+ "0": "No setting established"
79
+ }
80
+ }
81
+ ],
82
+ "expectedScoreWithout": 40,
83
+ "expectedScoreWith": 80
84
+ },
85
+ {
86
+ "id": "bench-easy-03",
87
+ "difficulty": "easy",
88
+ "description": "Write a story following a specific narrative framework",
89
+ "input": "Write a short story (400-600 words) using the Kishotenketsu structure (introduction, development, twist, conclusion) about a baker who makes the same loaf of bread every morning. No conflict is necessary — focus on observation, routine, and a surprising recontextualization. Genre: literary fiction.",
90
+ "rubric": [
91
+ {
92
+ "criterion": "Kishotenketsu Structure",
93
+ "weight": 0.4,
94
+ "scoring": {
95
+ "5": "Four-part structure is clearly present; Ki establishes routine, Sho deepens it, Ten introduces a genuine twist or recontextualization, Ketsu reconciles with new understanding; story works without relying on conflict",
96
+ "3": "Structure is partially present but the twist feels weak or the story defaults to conflict-driven patterns",
97
+ "1": "Attempts the structure but falls back into three-act conflict-driven format",
98
+ "0": "No Kishotenketsu structure"
99
+ }
100
+ },
101
+ {
102
+ "criterion": "Prose Quality",
103
+ "weight": 0.3,
104
+ "scoring": {
105
+ "5": "Lyrical, observational prose; rich sensory detail (smell of bread, textures, sounds of the bakery); language matches literary fiction expectations",
106
+ "3": "Competent prose with some strong moments but inconsistent quality",
107
+ "1": "Flat, generic prose; no sensory engagement",
108
+ "0": "Poor writing quality"
109
+ }
110
+ },
111
+ {
112
+ "criterion": "Twist Quality",
113
+ "weight": 0.3,
114
+ "scoring": {
115
+ "5": "The Ten (twist) genuinely recontextualizes the routine; surprising yet feels inevitable in retrospect; creates a moment of insight or beauty",
116
+ "3": "The twist is present but predictable or insufficiently transformative",
117
+ "1": "No real twist; the story is linear without recontextualization",
118
+ "0": "No twist attempted"
119
+ }
120
+ }
121
+ ],
122
+ "expectedScoreWithout": 30,
123
+ "expectedScoreWith": 75
124
+ },
125
+ {
126
+ "id": "bench-med-01",
127
+ "difficulty": "medium",
128
+ "description": "Write a story with complex character dynamics and internal conflict",
129
+ "input": "Write a story (600-1000 words) about a retired detective who receives a letter proving that the one case they are most proud of solving — the case that made their career — was built on a critical mistake. The detective must decide what to do. Genre: psychological drama. Include internal conflict, a clear character arc, and show-don't-tell technique.",
130
+ "rubric": [
131
+ {
132
+ "criterion": "Character Depth",
133
+ "weight": 0.3,
134
+ "scoring": {
135
+ "5": "Detective has a fully realized internal world: pride conflicting with integrity, fear of lost legacy versus duty to truth; backstory woven through action and memory, not exposition; the decision feels weighty and personal",
136
+ "3": "Character has some internal conflict but it feels surface-level; backstory is told rather than shown",
137
+ "1": "Character is a stock detective with no meaningful internal life",
138
+ "0": "No characterization"
139
+ }
140
+ },
141
+ {
142
+ "criterion": "Show Don't Tell",
143
+ "weight": 0.25,
144
+ "scoring": {
145
+ "5": "Emotions and internal states rendered through physical behavior, environmental interaction, memory fragments, and telling details; no direct emotional labels ('he felt guilty')",
146
+ "3": "Mix of showing and telling; some strong moments but falls back on direct narration of emotions",
147
+ "1": "Predominantly tells emotions and states directly",
148
+ "0": "Entirely exposition-based"
149
+ }
150
+ },
151
+ {
152
+ "criterion": "Plot & Structure",
153
+ "weight": 0.25,
154
+ "scoring": {
155
+ "5": "Clear structure with the letter as inciting incident, escalating internal tension, a decisive moment (climax), and a resolution that reveals character growth or change",
156
+ "3": "Structure is present but pacing is uneven; climax or resolution feels weak",
157
+ "1": "Events unfold without structural intent",
158
+ "0": "No plot structure"
159
+ }
160
+ },
161
+ {
162
+ "criterion": "Thematic Resonance",
163
+ "weight": 0.2,
164
+ "scoring": {
165
+ "5": "Story explores themes of truth, legacy, and integrity without moralizing; the ending makes a thematic statement through action rather than narration",
166
+ "3": "Thematic elements present but stated too directly or explored shallowly",
167
+ "1": "No thematic depth; story is purely plot-driven",
168
+ "0": "No thematic content"
169
+ }
170
+ }
171
+ ],
172
+ "expectedScoreWithout": 30,
173
+ "expectedScoreWith": 70
174
+ },
175
+ {
176
+ "id": "bench-med-02",
177
+ "difficulty": "medium",
178
+ "description": "Write a story that balances multiple characters with distinct voices",
179
+ "input": "Write a story (600-1000 words) told from alternating perspectives of three siblings returning to their childhood home after their mother's death to sort through her belongings. Each sibling has a different relationship with the mother and a different emotional response. Genre: contemporary literary fiction. Each character must have a distinct voice.",
180
+ "rubric": [
181
+ {
182
+ "criterion": "Voice Distinction",
183
+ "weight": 0.3,
184
+ "scoring": {
185
+ "5": "Each sibling has a clearly identifiable voice — different vocabulary, sentence rhythm, and emotional register; dialogue could be attributed without tags; inner monologue (if present) differs in style per character",
186
+ "3": "Some voice variation but characters blur together at times",
187
+ "1": "All three siblings sound essentially the same",
188
+ "0": "No voice distinction"
189
+ }
190
+ },
191
+ {
192
+ "criterion": "Emotional Complexity",
193
+ "weight": 0.3,
194
+ "scoring": {
195
+ "5": "Each sibling's relationship to the mother is specific and different (e.g., guilt, grief, relief, anger); emotions are layered and contradictory; the story avoids sentimentality while achieving genuine feeling",
196
+ "3": "Emotional responses differ but feel surface-level or predictable",
197
+ "1": "All characters have similar emotional responses; feelings are generic grief",
198
+ "0": "No emotional content"
199
+ }
200
+ },
201
+ {
202
+ "criterion": "Structural Management",
203
+ "weight": 0.2,
204
+ "scoring": {
205
+ "5": "Perspective shifts are clean and purposeful; each perspective adds new information or recontextualizes previous sections; the story builds to a collective moment",
206
+ "3": "Perspective shifts are identifiable but feel mechanical; some sections don't add enough new dimension",
207
+ "1": "Perspective shifts are confusing or arbitrary",
208
+ "0": "No structural management of perspectives"
209
+ }
210
+ },
211
+ {
212
+ "criterion": "Detail & Setting",
213
+ "weight": 0.2,
214
+ "scoring": {
215
+ "5": "The childhood home is rendered with specific, evocative details; objects trigger memories and emotions; setting functions as a character that surfaces the past",
216
+ "3": "Setting is present but generic; objects mentioned but not used emotionally",
217
+ "1": "Setting is an afterthought; could be anywhere",
218
+ "0": "No setting work"
219
+ }
220
+ }
221
+ ],
222
+ "expectedScoreWithout": 25,
223
+ "expectedScoreWith": 70
224
+ },
225
+ {
226
+ "id": "bench-med-03",
227
+ "difficulty": "medium",
228
+ "description": "Write a story with effective foreshadowing and plot twist",
229
+ "input": "Write a mystery story (600-1000 words) about a small-town librarian who discovers that the anonymous donor funding the library's renovation has a hidden motive. Include at least three instances of foreshadowing that a re-read would reveal, and a twist that is surprising yet feels inevitable. Genre: mystery/suspense.",
230
+ "rubric": [
231
+ {
232
+ "criterion": "Foreshadowing Quality",
233
+ "weight": 0.3,
234
+ "scoring": {
235
+ "5": "Three or more foreshadowing elements are woven naturally into the narrative; they function as story details on first read but clearly point to the twist on re-read; uses multiple foreshadowing types (behavioral, environmental, dialogue)",
236
+ "3": "Foreshadowing is present but too obvious (reader sees the twist coming) or too obscure (feels random in retrospect)",
237
+ "1": "One vague hint at most; no systematic foreshadowing",
238
+ "0": "No foreshadowing"
239
+ }
240
+ },
241
+ {
242
+ "criterion": "Twist Effectiveness",
243
+ "weight": 0.3,
244
+ "scoring": {
245
+ "5": "Twist is genuinely surprising yet feels inevitable on reflection; recontextualizes earlier events; the hidden motive is specific, believable, and emotionally resonant",
246
+ "3": "Twist is present but somewhat predictable, or the motive is generic",
247
+ "1": "Twist feels forced, random, or unconnected to the established story",
248
+ "0": "No twist or it comes from nowhere (deus ex machina)"
249
+ }
250
+ },
251
+ {
252
+ "criterion": "Mystery Construction",
253
+ "weight": 0.2,
254
+ "scoring": {
255
+ "5": "Clues, red herrings, and investigative steps are well-balanced; the librarian's process of discovery drives the plot; tension escalates naturally",
256
+ "3": "Some mystery elements but investigation is thin or tension is flat",
257
+ "1": "Mystery is perfunctory; revelation is accidental rather than investigated",
258
+ "0": "No mystery elements"
259
+ }
260
+ },
261
+ {
262
+ "criterion": "Prose & Atmosphere",
263
+ "weight": 0.2,
264
+ "scoring": {
265
+ "5": "Small-town setting is vivid and atmospheric; prose builds suspense through pacing, detail selection, and controlled revelation; dialogue is naturalistic",
266
+ "3": "Some atmosphere but inconsistent; prose is functional rather than suspenseful",
267
+ "1": "Flat prose; no atmosphere; setting is generic",
268
+ "0": "Poor writing quality"
269
+ }
270
+ }
271
+ ],
272
+ "expectedScoreWithout": 25,
273
+ "expectedScoreWith": 65
274
+ },
275
+ {
276
+ "id": "bench-med-04",
277
+ "difficulty": "medium",
278
+ "description": "Write a story that effectively integrates world-building without exposition dumps",
279
+ "input": "Write a science fiction story (600-1000 words) set in a society where memories can be bought and sold. A memory merchant discovers a memory that could destabilize the entire market. World-building must be integrated organically — no exposition dumps or 'As you know, Bob' dialogue. Genre: sci-fi.",
280
+ "rubric": [
281
+ {
282
+ "criterion": "World-Building Integration",
283
+ "weight": 0.35,
284
+ "scoring": {
285
+ "5": "The memory-market society is revealed through character actions, transactions, environmental details, and natural dialogue; the reader understands the world without any paragraphs of explanation; details serve double duty as characterization and setting",
286
+ "3": "World is mostly shown but with some expository passages that halt the narrative",
287
+ "1": "World-building is primarily exposition dumps or 'As you know' dialogue",
288
+ "0": "No world-building or entirely told through exposition"
289
+ }
290
+ },
291
+ {
292
+ "criterion": "Concept Originality",
293
+ "weight": 0.2,
294
+ "scoring": {
295
+ "5": "The memory-market concept has specific, well-thought-out mechanics; the destabilizing memory is a creative, non-obvious choice; the story explores implications beyond surface level",
296
+ "3": "Concept is present but mechanics are vague or the dangerous memory is a cliche",
297
+ "1": "Concept is barely developed; could be any MacGuffin plot",
298
+ "0": "No meaningful concept development"
299
+ }
300
+ },
301
+ {
302
+ "criterion": "Character & Plot",
303
+ "weight": 0.25,
304
+ "scoring": {
305
+ "5": "Memory merchant is a fully realized character whose personal stakes intersect with the market-level threat; plot has clear structure with escalating tension and meaningful resolution",
306
+ "3": "Character exists to serve the plot; structure is present but resolution is weak",
307
+ "1": "Thin characterization; plot is predictable or aimless",
308
+ "0": "No character development or plot structure"
309
+ }
310
+ },
311
+ {
312
+ "criterion": "Prose Craft",
313
+ "weight": 0.2,
314
+ "scoring": {
315
+ "5": "Prose is genre-appropriate; sensory details make the speculative world tangible; pacing balances discovery, tension, and resolution effectively",
316
+ "3": "Competent prose but lacks distinctive style or sensory depth",
317
+ "1": "Flat or overwrought prose that undermines the story",
318
+ "0": "Poor writing quality"
319
+ }
320
+ }
321
+ ],
322
+ "expectedScoreWithout": 25,
323
+ "expectedScoreWith": 65
324
+ },
325
+ {
326
+ "id": "bench-hard-01",
327
+ "difficulty": "hard",
328
+ "description": "Write a story with an unreliable narrator and layered meaning",
329
+ "input": "Write a story (800-1200 words) with an unreliable narrator — a person writing a letter to someone they wronged, trying to justify their actions. The reader should gradually realize the narrator's account is self-serving and the truth is different from what's being told. Genre: literary fiction. The unreliability should emerge through contradictions, omissions, and word choices rather than an explicit reveal.",
330
+ "rubric": [
331
+ {
332
+ "criterion": "Unreliable Narration",
333
+ "weight": 0.35,
334
+ "scoring": {
335
+ "5": "Narrator's unreliability emerges subtly through contradictions between claims and described actions, suspicious omissions, overly precise justifications, and shifts in tone when approaching key events; a careful reader can reconstruct the true version; no heavy-handed reveal",
336
+ "3": "Some unreliability signals but they are either too obvious (undermining the technique) or too subtle (reader can't detect them)",
337
+ "1": "Narrator is either clearly lying from the start (no subtlety) or the unreliability is only revealed by an explicit twist at the end",
338
+ "0": "No unreliable narration; narrator is straightforward"
339
+ }
340
+ },
341
+ {
342
+ "criterion": "Voice & Epistolary Form",
343
+ "weight": 0.25,
344
+ "scoring": {
345
+ "5": "Letter format is used effectively; the narrator's voice is distinctive and consistent; word choices reveal character (defensiveness, self-aggrandizement, minimization); the addressee is a felt presence even without dialogue",
346
+ "3": "Letter format is present but the voice is generic; occasional strong word choices",
347
+ "1": "Format is nominally a letter but reads like standard third-person narrative",
348
+ "0": "No epistolary qualities"
349
+ }
350
+ },
351
+ {
352
+ "criterion": "Layered Meaning",
353
+ "weight": 0.25,
354
+ "scoring": {
355
+ "5": "Story works on two levels: the narrator's version and the implied truth; key scenes carry double meaning; re-reading reveals planted clues; thematic depth about self-deception, guilt, or rationalization",
356
+ "3": "Some layering but the gap between narrator's version and truth is shallow or the thematic dimension is underdeveloped",
357
+ "1": "Single-layered narrative; surface reading is the only reading",
358
+ "0": "No layered meaning"
359
+ }
360
+ },
361
+ {
362
+ "criterion": "Prose Craft",
363
+ "weight": 0.15,
364
+ "scoring": {
365
+ "5": "Prose is carefully controlled; sentence rhythm shifts at moments of evasion; specific, concrete details anchor the abstract; language serves the unreliability without being showy",
366
+ "3": "Competent prose but doesn't leverage style as a tool for unreliability",
367
+ "1": "Flat prose that doesn't support the story's ambitions",
368
+ "0": "Poor writing quality"
369
+ }
370
+ }
371
+ ],
372
+ "expectedScoreWithout": 20,
373
+ "expectedScoreWith": 60
374
+ },
375
+ {
376
+ "id": "bench-hard-02",
377
+ "difficulty": "hard",
378
+ "description": "Write a story that sustains tension and pacing across a longer narrative with multiple plot threads",
379
+ "input": "Write a thriller story (1000-1500 words) about a cybersecurity analyst who discovers a breach in their company's systems — and evidence that the attacker is someone inside the building. The analyst has 90 minutes before the attacker's payload deploys. Include: a ticking clock, at least two suspects with plausible motives, a red herring, and a resolution that relies on a clue planted in the first quarter of the story. Genre: techno-thriller.",
380
+ "rubric": [
381
+ {
382
+ "criterion": "Tension & Pacing",
383
+ "weight": 0.3,
384
+ "scoring": {
385
+ "5": "Ticking clock drives relentless forward momentum; tension escalates with each scene; sentence rhythm accelerates toward climax; breathing moments are brief and purposeful; the 90-minute constraint feels real and urgent",
386
+ "3": "Some tension but pacing is uneven; the ticking clock is mentioned but not felt throughout",
387
+ "1": "Flat tension; story lacks urgency despite the premise",
388
+ "0": "No tension management"
389
+ }
390
+ },
391
+ {
392
+ "criterion": "Plot Construction",
393
+ "weight": 0.3,
394
+ "scoring": {
395
+ "5": "Two suspects are equally plausible with distinct, specific motives; red herring is convincing on first read; resolution uses a clue clearly planted in the opening; all plot threads converge logically; no deus ex machina",
396
+ "3": "Suspects and red herring exist but one suspect is obviously guilty or the clue payoff is weak",
397
+ "1": "Plot is linear with token suspects; resolution feels arbitrary",
398
+ "0": "No mystery construction"
399
+ }
400
+ },
401
+ {
402
+ "criterion": "Technical Authenticity",
403
+ "weight": 0.15,
404
+ "scoring": {
405
+ "5": "Cybersecurity elements are plausible and specific (not just 'hacking' — actual techniques, tools, or concepts); technical details serve the story without overwhelming non-technical readers",
406
+ "3": "Some technical grounding but relies on generic 'hacking' tropes",
407
+ "1": "Technical elements are Hollywood-level implausible",
408
+ "0": "No technical content despite the genre"
409
+ }
410
+ },
411
+ {
412
+ "criterion": "Character Under Pressure",
413
+ "weight": 0.25,
414
+ "scoring": {
415
+ "5": "Analyst is a real character who reveals personality through their crisis response — methodology, fear, determination, mistakes; the pressure exposes who they are; suspects are characterized through brief but specific details",
416
+ "3": "Analyst functions as a plot vehicle; some personality but shallow",
417
+ "1": "Characters are interchangeable with any thriller stock characters",
418
+ "0": "No characterization"
419
+ }
420
+ }
421
+ ],
422
+ "expectedScoreWithout": 20,
423
+ "expectedScoreWith": 60
424
+ },
425
+ {
426
+ "id": "bench-hard-03",
427
+ "difficulty": "hard",
428
+ "description": "Write a story that blends genres and subverts reader expectations",
429
+ "input": "Write a story (800-1200 words) that begins as a conventional fairy tale (a princess in a tower, a dragon, a would-be rescuer) but gradually shifts genre into something unexpected — science fiction, noir, psychological horror, or existential comedy. The genre shift should feel organic, not random. The story should still be satisfying as a complete narrative with a beginning, middle, and end. Maintain internal consistency despite the genre transition.",
430
+ "rubric": [
431
+ {
432
+ "criterion": "Genre Transition",
433
+ "weight": 0.35,
434
+ "scoring": {
435
+ "5": "Genre shift is gradual and organic — early fairy tale elements contain seeds of the target genre; the transition recontextualizes rather than abandons the opening; the story feels like a unified whole rather than two halves glued together",
436
+ "3": "Genre shift occurs but feels abrupt or forced; the fairy tale and second genre coexist awkwardly",
437
+ "1": "The story simply switches genre at a midpoint with no preparation or integration",
438
+ "0": "No genre transition; stays entirely in fairy tale territory"
439
+ }
440
+ },
441
+ {
442
+ "criterion": "Subversion Quality",
443
+ "weight": 0.25,
444
+ "scoring": {
445
+ "5": "Fairy tale conventions are set up with clear awareness and then subverted in ways that create meaning — the subversion says something about the conventions themselves or about the human experiences they represent",
446
+ "3": "Subversion is present but superficial (e.g., the princess rescues herself — clever but well-trodden)",
447
+ "1": "Subversion is random or purely for shock value; no thematic purpose",
448
+ "0": "No subversion of expectations"
449
+ }
450
+ },
451
+ {
452
+ "criterion": "Narrative Cohesion",
453
+ "weight": 0.25,
454
+ "scoring": {
455
+ "5": "Story is internally consistent; character motivations hold up across the genre shift; the ending resolves both the fairy tale setup and the genre destination; feels like one story, not a gimmick",
456
+ "3": "Mostly cohesive but some inconsistencies or the ending resolves only one layer",
457
+ "1": "Story feels disjointed; characters behave inconsistently across the shift",
458
+ "0": "No narrative cohesion"
459
+ }
460
+ },
461
+ {
462
+ "criterion": "Craft & Imagination",
463
+ "weight": 0.15,
464
+ "scoring": {
465
+ "5": "Prose style shifts subtly to match the evolving genre; imagination is evident in the specific choices made; the result feels fresh and memorable",
466
+ "3": "Some style adaptation but prose is generic; imaginative moments are isolated",
467
+ "1": "Flat prose throughout; predictable choices",
468
+ "0": "No craft or imagination"
469
+ }
470
+ }
471
+ ],
472
+ "expectedScoreWithout": 20,
473
+ "expectedScoreWith": 60
474
+ }
475
+ ]
476
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "version": "0.0.1",
3
+ "timeout": 60,
4
+ "tasks": [
5
+ {
6
+ "id": "smoke-01",
7
+ "description": "Write a short story with clear narrative structure, character development, and emotional arc",
8
+ "input": "Write a short story (500-800 words) about a lighthouse keeper who discovers that the light they maintain each night is not guiding ships, but something else entirely. Genre: speculative fiction. Tone: eerie but ultimately hopeful. The story should have a clear beginning, middle, and end with at least one well-developed character.",
9
+ "rubric": [
10
+ {
11
+ "criterion": "Narrative Structure",
12
+ "weight": 0.25,
13
+ "scoring": {
14
+ "5": "Story follows a clear three-act or equivalent structure with identifiable inciting incident, rising tension, climax, and resolution; pacing feels deliberate and controlled",
15
+ "3": "Story has a beginning, middle, and end but structure is loose; some pacing issues or missing beats",
16
+ "1": "Story meanders without clear structural progression; events feel random",
17
+ "0": "No discernible narrative structure"
18
+ }
19
+ },
20
+ {
21
+ "criterion": "Character Development",
22
+ "weight": 0.25,
23
+ "scoring": {
24
+ "5": "Protagonist has a distinct voice, clear motivation, an internal conflict or flaw, and undergoes meaningful change by the end; characterization emerges through action and dialogue, not exposition",
25
+ "3": "Protagonist has some personality but lacks depth; change feels surface-level or is told rather than shown",
26
+ "1": "Protagonist is generic or one-dimensional; no meaningful arc",
27
+ "0": "No characterization; protagonist is a blank vessel"
28
+ }
29
+ },
30
+ {
31
+ "criterion": "Craft Quality",
32
+ "weight": 0.3,
33
+ "scoring": {
34
+ "5": "Vivid sensory details, subtext-rich dialogue, show-don't-tell throughout, strong opening hook, satisfying closing image; prose matches the eerie-hopeful tone requested",
35
+ "3": "Some effective prose moments but inconsistent; occasional telling instead of showing; tone partially achieved",
36
+ "1": "Flat prose, heavy telling, generic descriptions; tone does not match request",
37
+ "0": "No craft elements; reads like a plot summary"
38
+ }
39
+ },
40
+ {
41
+ "criterion": "Genre & Prompt Fulfillment",
42
+ "weight": 0.2,
43
+ "scoring": {
44
+ "5": "Speculative element is creative and integral to the plot; tone is eerie yet hopeful as requested; story is within the requested word count; all prompt elements addressed",
45
+ "3": "Speculative element present but underdeveloped; tone partially matches; some prompt elements missed",
46
+ "1": "Story barely qualifies as speculative fiction; tone mismatch; prompt largely ignored",
47
+ "0": "Does not address the prompt"
48
+ }
49
+ }
50
+ ],
51
+ "passThreshold": 60
52
+ }
53
+ ]
54
+ }