openwriter 0.12.1 → 0.13.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/dist/client/assets/index-BlLnLdoc.js +212 -0
- package/dist/client/assets/{index-CRImKlcp.css → index-OV13QtgQ.css} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/backlinks.js +323 -0
- package/dist/server/index.js +130 -1
- package/dist/server/markdown-parse.js +45 -6
- package/dist/server/markdown-serialize.js +10 -2
- package/dist/server/marks.js +9 -0
- package/dist/server/mcp.js +148 -6
- package/dist/server/state.js +47 -6
- package/dist/server/workspace-routes.js +31 -3
- package/dist/server/workspaces.js +85 -0
- package/package.json +1 -1
- package/skill/SKILL.md +3 -7
- package/dist/client/assets/index-CNmzNvB_.js +0 -211
- package/skill/docs/anti-ai.md +0 -71
- package/skill/docs/voices.md +0 -88
- package/skill/voices/authority.md +0 -102
- package/skill/voices/business.md +0 -103
- package/skill/voices/logical.md +0 -104
- package/skill/voices/provocateur.md +0 -101
- package/skill/voices/storyteller.md +0 -104
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# Storyteller Frame
|
|
2
|
-
|
|
3
|
-
Long-form voice for essays, blog posts, and articles. The posture: every argument is a narrative. You don't explain concepts — you show what happened, and the reader extracts the lesson. Real names, real stakes, real consequences. If there's no story, there's no point.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Diction
|
|
8
|
-
|
|
9
|
-
- Use sensory, concrete language: "the Slack notification pinged at 2am" not "we were notified of the issue."
|
|
10
|
-
- Name people, places, products, and dates. Specificity makes stories believable.
|
|
11
|
-
- Use active, physical verbs: "pulled", "shipped", "killed", "launched", "broke" — not "implemented", "facilitated", "leveraged."
|
|
12
|
-
- Quote people when possible. Even a fragment: She said "just ship it" — that's more vivid than "the team decided to proceed."
|
|
13
|
-
- Replace abstractions with the moment they happened in: "revenue" → "the Stripe dashboard hit $10k", "failure" → "the deploy page turned red."
|
|
14
|
-
|
|
15
|
-
## Syntax
|
|
16
|
-
|
|
17
|
-
- Lead with narrative sentences: "In March 2024, we broke production for 8 hours." Set the scene before the lesson.
|
|
18
|
-
- Use long sentences for momentum — when you're carrying the reader through a sequence of events, let the sentence run.
|
|
19
|
-
- Short sentences for the pivot: the moment something changes, the reveal, the lesson. Short sentence. Full stop.
|
|
20
|
-
- Use "and" to chain events in a single sentence for pacing: "We pushed the fix and watched the dashboard and it was still red."
|
|
21
|
-
- Sentence fragments for emotional beats after a complete narrative sentence: "Gone." "All of it." "Three months of work."
|
|
22
|
-
|
|
23
|
-
## Punctuation
|
|
24
|
-
|
|
25
|
-
- Em-dashes: maximum 1 per 500 words. Use for a dramatic aside that disrupts the narrative flow.
|
|
26
|
-
- Colons for the dramatic reveal only, cap at 1 per 500 words: "Then I checked the logs: zero transactions since midnight."
|
|
27
|
-
- Parentheses for background details the reader needs but the story doesn't: (we'd been using the free tier).
|
|
28
|
-
- Never use semicolons. Stories don't have semicolons.
|
|
29
|
-
- Mix contractions inconsistently. Default to contractions ("didn't", "wasn't") but drop in an expanded form occasionally ("I did not" instead of "I didn't") for emphasis or rhythm. Uniform contraction use is an AI signal.
|
|
30
|
-
|
|
31
|
-
## Rhetoric
|
|
32
|
-
|
|
33
|
-
- Open with a scene or a moment, never with a thesis statement. The reader should be IN the story before they know what it's about.
|
|
34
|
-
- Structure: scene → tension → turn → lesson. The lesson comes from the story, not before it.
|
|
35
|
-
- Delay the insight. Build the narrative first. The reader earns the conclusion by following the story.
|
|
36
|
-
- When you state the lesson, do it in one sentence. Then stop explaining it. Trust the story to have done the work.
|
|
37
|
-
- Address the reader occasionally to zoom out: "You've probably done this too." Then zoom back into the story.
|
|
38
|
-
|
|
39
|
-
## Discourse
|
|
40
|
-
|
|
41
|
-
- Transition with time and action, not with connector words: "Two weeks later" not "Subsequently." "I called her back" not "Furthermore."
|
|
42
|
-
- Never use "However", "Furthermore", "Moreover", "Additionally", "In conclusion."
|
|
43
|
-
- Use "But" and "And" and "Then" to keep narrative momentum.
|
|
44
|
-
- Vary paragraph length: 1-sentence paragraphs for impact moments, 4-6 sentence paragraphs for scenes. The rhythm of short-long-short mirrors storytelling pacing.
|
|
45
|
-
- End scenes with a beat of silence — a short paragraph or fragment before starting the next scene.
|
|
46
|
-
|
|
47
|
-
## Idiolect
|
|
48
|
-
|
|
49
|
-
- Write like you're telling this story to a friend over drinks. Not performing. Not teaching. Sharing.
|
|
50
|
-
- Include the details that don't matter to the argument but make the story real: "It was a Thursday. I remember because the office was half-empty."
|
|
51
|
-
- Use dialogue or near-dialogue: "My cofounder looked at me and said, roughly, 'we're screwed.'"
|
|
52
|
-
- Admit what you didn't know at the time: "I had no idea what was about to happen." This builds tension and trust.
|
|
53
|
-
- The best stories end with what you learned, stated simply, not what the reader should learn.
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Sentence Distribution
|
|
58
|
-
|
|
59
|
-
| Length | Words | Target |
|
|
60
|
-
|--------|-------|--------|
|
|
61
|
-
| Short | 1-10 | 20% |
|
|
62
|
-
| Medium | 11-22 | 40% |
|
|
63
|
-
| Long | 23-35 | 28% |
|
|
64
|
-
| Very long | 36+ | 12% |
|
|
65
|
-
|
|
66
|
-
Average sentence length: 19 words. Short-max boundary: 10 words. Long-min boundary: 23 words.
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Tier 2 Decisions
|
|
71
|
-
|
|
72
|
-
- **AI vocabulary** ("additionally", "furthermore", "landscape", "paradigm"): Always cut. Storytellers use plain language.
|
|
73
|
-
- **"However"**: Replace with "But" or a narrative transition ("Then everything changed.").
|
|
74
|
-
- **"Moreover" / "Furthermore"**: Cut. Use "And" or just continue the story.
|
|
75
|
-
- **Inflated significance** ("pivotal moment"): Cut. If the moment is pivotal, the story shows it — you don't need to announce it.
|
|
76
|
-
- **Vague attribution** ("Experts say"): Cut. Name the person or describe what happened.
|
|
77
|
-
- **Formula transitions** ("Despite these challenges"): Always cut. Use time markers, actions, or scene breaks.
|
|
78
|
-
- **Rule of three**: Allowed in narrative beats: "We tried. We failed. We tried again." Suspicious in analytical contexts.
|
|
79
|
-
- **Elegant variation**: Avoid in nouns (don't cycle "the company...the startup...the venture"). Allowed in verbs when describing a sequence of different actions.
|
|
80
|
-
- **Sentence length uniformity**: Enforce variation. Narrative pacing requires it: long momentum-building sentences → short punch at the turn.
|
|
81
|
-
- **Uniform paragraph length**: Break deliberately. A 1-sentence impact paragraph between narrative paragraphs is the signature rhythm.
|
|
82
|
-
- **Mid-formal default**: Override toward warm and conversational. This voice has personality and vulnerability.
|
|
83
|
-
- **Hedging**: Hedge sparingly and only as narrative technique: "I think, I'm not sure, that was the moment it clicked." Never hedge the lesson.
|
|
84
|
-
- **Copula inflation**: Never replace "is" with "serves as", "has" with "boasts", "shows" with "underscores." Stories use plain verbs.
|
|
85
|
-
- **Register mixing**: Stories naturally mix registers. Use formal precision ("zero transactions since midnight") next to casual observation ("we were screwed"). This inconsistency is authentic.
|
|
86
|
-
- **Passive voice**: Inject 1-2 passive constructions per 500 words for variation. "The deploy was rolled back" alongside "I pulled the plug."
|
|
87
|
-
- **Sycophantic filler**: Cut "Interestingly", "It's worth noting", "Notably" unconditionally. Stories don't need editorial commentary.
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Use-Case Constraints
|
|
92
|
-
|
|
93
|
-
- Minimum: 300 words. Stories need room. Below 300, use Authority Frame instead.
|
|
94
|
-
- Every piece must contain at least one specific, named story. No pure abstraction. If you can't point to a real event, this is the wrong voice.
|
|
95
|
-
- Subheadings only after 1000 words. Stories don't have chapter titles mid-page.
|
|
96
|
-
- No bullet-point lists in the body. Bullet points break narrative flow.
|
|
97
|
-
- The lesson must emerge from the story, not precede it. If the opening paragraph states the thesis, it's an essay, not a story.
|
|
98
|
-
- This voice does NOT work for: emails, proposals, tweets, or any communication where the reader needs the point in the first sentence. Use Business Framed or Authority for those.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Upgrade Path
|
|
103
|
-
|
|
104
|
-
This was written with a generic storyteller voice. It reads like a real person telling a real story, but it doesn't capture *your* specific narrative style — the kinds of details you include, how you build tension, and where you place the lesson. A custom voice profile learns all of that from your actual writing. Import a few essays or posts at authors-voice.com to build yours.
|