StoryForge has five quality gates operating at different levels:
| Gate | Level | Skill |
|---|---|---|
| Voice Checker | Prose / text | voice-checker |
| Chapter Reviewer | Single chapter | chapter-reviewer |
| First-Chapter Gate | Chapter 1 (stricter) | inside chapter-reviewer |
| Manuscript Checker | Complete book | manuscript-checker |
| Continuity Checker | Timeline / travel / canon | continuity-checker |
Quality gates are not optional. Books that skip them sound like AI output β even with a strong author profile. The gates are the second layer of protection.
The skill /storyforge:voice-checker scans text across seven dimensions. Compares against the author profile and the built-in anti-AI pattern catalog.
What is checked:
anti-ai-patterns.mdExample output:
Vocabulary β 5 AI-tells found
---
Line 234: "journey" (banned AI-noun)
Line 401: "tapestry of emotions" (abstract noun cluster)
Line 612: "landscape" (metaphorical, banned)
Line 823: "it's worth noting" (hedging)
Line 1205: "embraced" (AI-verb in metaphorical context)
What is measured:
Human prose: StdDev > 8 words. Mix of 3-word fragments and 35-word arcs.
AI prose: StdDev < 5 words. Suspiciously uniform.
Flag rule: 5+ consecutive sentences within a 3-word window β warning.
Example output:
Sentence Length Analysis
---
Mean: 14.3 words
Median: 13 words
StdDev: 4.2 words (β οΈ AI-suspicious, < 5)
Flags:
- Paragraph 4: 6 consecutive sentences 12-15 words β uniform
- Paragraph 11: 4 consecutive sentences 14-17 words β uniform
Checks:
Checks:
Checks:
Checks:
Checks:
At the end: AI-tell score 0-100:
| Score | Rating |
|---|---|
| 0-20 | Solid β ready for next stage |
| 21-40 | Acceptable β minor fixes recommended |
| 41-60 | Problematic β revise chapter |
| 61-80 | AI-suspicious β major overhaul |
| 81-100 | Practically AI-generated β rewrite completely |
The skill /storyforge:chapter-reviewer checks a single chapter against a 28-point list (plus subpoint).
| Category | Points | Focus |
|---|---|---|
| Structure | 5 | Opening, scene-sequel, arc, ending, pacing |
| Craft | 5 + 1 | Show/tell, senses, specific details, dialog, conflict, simile discipline |
| Voice | 5 | Author consistency, tone, vocabulary, rhythm, dialog voice |
| Continuity | 5 | Canon, timeline, travel, stale references, character facts |
| Tonal Consistency | 5 | Dominant mode, warning signs, non-negotiable rules, litmus test, banned patterns |
| Intra-Day Timeline | 3 | Time anchor, internal consistency, cross-chapter |
Every simile and metaphor in the chapter undergoes a two-question test:
Flag cases:
Author-voice bias: If the profile documents a simile-rich style (e.g., Victorian, Chandler-like), judgment is softer β the check targets quality, not quantity.
## Chapter Review: "The Beacon" (Chapter 2)
### Structure (5 / 5)
- [x] 1. Opening hook β "The fog didn't come from the sea." Strong opener.
- [x] 2. Scene-sequel flow β Three clear scene-sequel pairs
- [x] 3. Chapter arc β Arne moves from distrust to curiosity
- [x] 4. Ending β Cliffhanger with silver coin
- [x] 5. Pacing β Atmosphere build, then twist
### Craft (4 / 5 + subpoint)
- [x] 6. Show don't tell
- [x] 7. Sensory details (sight, sound, smell strong β no taste)
- [WARN] 8. Specific details β "the furniture" instead of concrete (line 47)
- [x] 9. Dialog quality
- [x] 10. Conflict
- [WARN] 10b. Simile discipline β 1 stacked-simile paragraph (L. 201-203)
### Voice (5 / 5)
[all PASS]
### Continuity (3 / 5)
- [x] 16. Canon consistency
- [x] 17. Timeline accuracy
- [FAIL] 18. Travel consistency β Arne walks from harbor to lighthouse
in 15 min; travel matrix says 25 min.
- [x] 19. Stale references
- [FAIL] 20. Character facts β Inga described as 32, canon says 34
### Tonal Consistency (5 / 5)
[all PASS]
### Intra-Day Timeline (3 / 3)
[all PASS]
## Overall: 24 / 28 β Revise before Final
Critical: Fix travel time (L. 87), fix Inga age (L. 134)
Polish: Specific details L. 47, simile stack L. 201-203
Stricter regime for chapter one. Runs before the 28-point list.
Set the Stage
Spotlight the Protagonist
Give Readers a Reason to Stay
The most critical (FAIL here = chapter must be revised before next):
If one of these FAILs, the skill blocks further workflow.
"The lighthouse was already dark when Arne arrived."
β Tone: PASS
β Genre hint: ambiguous (could be mystery, horror, literary)
β Curiosity: PASS (why dark?)
β Killer-level: 7/10
"It was a rainy autumn morning, and Arne Kruse drove to the island."
β Tone: WEAK (generic)
β Genre hint: none
β Curiosity: WEAK
β Killer-level: 3/10 β revise
The skill /storyforge:manuscript-checker scans the complete book for problems that only surface when read end-to-end.
| Category | What it catches | Severity |
|---|---|---|
book_rule_violation |
Violations of rules from per-book CLAUDE.md | Always high |
cliche |
Curated banlist of worn phrases | Always high |
question_as_statement |
Q-word dialog with period instead of question mark | High at β₯5 hits |
filter_word |
POV-distancing verbs (>3/1k words) | High at >6/1k |
adverb_density |
-ly adverbs (>8/1k words) |
High at >14/1k |
simile |
Cross-chapter simile repetition | High at β₯4 hits |
character_tell |
Repeated body-language tics | High at β₯4 hits |
blocking_tic |
Repeated blocking patterns ("stood up", "sat down") | High at β₯4 hits |
sensory |
Repeated sensory descriptions | High at β₯4 hits |
structural |
Repeated sentence structures | High at β₯4 hits |
signature_phrase |
Author signature phrase used too often | High at β₯4 hits |
scan_manuscript MCP tool)research/manuscript-report.md)Manuscript Scan β "The Lighthouse Keeper" (34 chapters, 82,300 words)
---
Found: 127 findings
High severity:
- 3 book-rule violations
- 5 clichΓ©s
- 1 question-as-statement cluster
- 4 heavy filter-word chapters
- 2 heavy adverb chapters
- 7 cross-chapter repetitions
Top offenders:
1. RULE VIOLATION: "journey" as metaphor β 12x (ch 3, 7, 14, 19, 22)
β Per-book CLAUDE.md bans abstract nouns
2. CLICHΓ: "blood ran cold" β 3x (ch 2, 17, 29)
3. REPETITION: "for a moment he paused" β 18x (structural)
4. FILTER WORDS ch 8: "saw"Γ14, "noticed"Γ8, "seemed"Γ5 (24/1k words)
5. SIMILE: "like a feather on the water" β 4x ch 5, 9, 17, 23
Full report: research/manuscript-report.md
With --interactive, the checker walks every high-severity finding:
Finding 1 / 7
---
Book Rule Violation: "journey" as metaphor (12 hits)
Hits:
- Ch 3, L. 67: "...his inner journey..."
- Ch 7, L. 142: "...the journey of memory..."
- Ch 14, L. 201: "...a quiet journey..."
[...9 more]
Recommendation:
- Ch 3: Replace with "path" or concretely "stretch through the fog"
- Ch 7: Replace with "chain of memory"
- Ch 14: Delete the sentence β redundant with prior paragraph
Action?
[a] Accept all
[c] Custom (adjust individually)
[s] Skip
[q] Quit
question_as_statementFlat-delivery questions ("Who was that.") are a legitimate stylistic choice (McCarthy-style). In small doses.
At scale (18+ hits) they become monotonous or look like bugs.
Per hit the skill offers two options:
Example (B):
Before: "Who?"
After: "Who." His eyes did not leave the coin.
The skill /storyforge:continuity-checker validates the complete book against:
plot/timeline.md) β Temporal consistencyworld/setting.md) β Spatial consistencyplot/canon-log.md) β Fact consistencyTemporal conflicts:
Ch 5, L. 89: "It was Wednesday"
Timeline: Day 12 = Thursday
β CONFLICT
Travel impossibilities:
Ch 8: Arne leaves lighthouse at 14:20, arrives at parsonage at 14:35.
Travel Matrix: Lighthouse β Parsonage = 45 min
β CONFLICT (30 min short)
Character fact drift:
Ch 2: Inga introduced as 34
Ch 11: "Inga, the 32-year-old..."
Canon Log: Inga = 34
β CHANGED/CONTRADICTED fact
Location description drift:
Ch 3: The kitchen is "small, light-blue, with only one window"
Ch 19: "...the spacious kitchen with its two large windows..."
β DESCRIPTION DRIFT
If timeline or travel matrix are missing, the skill reconstructs them from all chapter drafts. This is the most common use case for discovery writers β timeline emerges only through writing.
/storyforge:continuity-checker my-discovery-book
β No plot/timeline.md found. Reconstructing...
β No world/setting.md (Travel Matrix) found. Reconstructing...
Timeline reconstructed:
Day 1 (Mon, 14.3.): Arne arrives (Ch 1)
Day 2 (Tue, 15.3.): Lighthouse exploration (Ch 2)
Day 3 (Wed, 16.3.): Silver coin found (Ch 3)
...
Travel Matrix reconstructed:
Locations found: Lighthouse, Harbor, Village, Parsonage, Cliff
Travel events captured: 14 in 27 chapters
Inconsistencies: 2
β Saved to plot/timeline.md and world/setting.md
After a draft:
1. /storyforge:chapter-reviewer β chapter check
2. Apply fixes
3. (optional) /storyforge:voice-checker for critical chapters
Before revision phase:
1. /storyforge:continuity-checker β timeline/travel/canon
2. /storyforge:manuscript-checker --interactive β cross-chapter cleanup
3. /storyforge:voice-checker β final AI-tell gate
Before export:
1. /storyforge:sensitivity-reader β optional, for sensitive topics
2. /storyforge:voice-checker my-book β full book scan
3. All chapters at `Final` status
4. /storyforge:export-engineer
Possible causes:
vocabulary.md has no banned_wordsFix: Strengthen the author profile β see Author Profiles.
Normal for:
Approach: Focus on high-severity findings. Ignore medium-severity in first pass.
Example: Chapter says "three days later", timeline says "two days later".
Check: Was day start intra-day (early morning = same day)? Timeline entries must be precise.
Fix:
/storyforge:register-callback Rule: Timeline days are calendar days, not 24h blocks
This persists the semantic in per-book CLAUDE.md.