Add six discourse patterns for story shape (#36-41) - #244
Open
zarubinphil wants to merge 3 commits into
Open
Conversation
added 3 commits
August 24, 2026 17:20
The section had the paper backwards. Style is the stronger raw cue: style features alone reach 85.8% macro-F1, and the paper's own premise is that style-based detectors are brittle to light editing. The result worth shipping is the other one. Narrative features alone reach 93.2% macro-F1, within 2.8 points of the 96.0% combined model, and the narrative classifier still scores 93.9% after a full span-level style rewrite (95.5% before). A style pass alone does not clear a text, because it leaves the shape layer untouched. - Sources and section intro now state the measured result - 38, 39 and 40 carry the real figures instead of categorical absolutes - 38 drops the claim that AI routes almost every emotion through the body; the 81/38 and 8/29 splits measure which mode dominates a story - 40's After keeps the chemistry detail its Before introduces - 41's Before no longer contains the reader nod the pattern names - Embedded mode skips 38 and 41, which have nowhere to put a suggestion - Frontmatter and README credit both sources - Validator cap tightened from 550 to 520 lines
The heading said the trait was categorical while the body states a 0.28 shift on a 1-5 scale. 'Chronology without jumps' names what the check looks for in a text instead of asserting it of every AI draft.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
A new "Discourse patterns" section (§36-41), with matching README table, version notes, source links, and validator updates.
Patterns 38 and 41 are offered to the writer rather than edited in.
Why this layer matters
Most current patterns work at the sentence or paragraph level. A few already reach document structure (sections 6, 29, 30). None cover narrative shape.
StoryScope (Russell et al., COLM 2026, arXiv:2604.03136) extracted 304 features from 61,608 human and LLM stories. Of the 304 features, 39 sit in the style dimension and 8 more were flagged style-related. The remaining 257 are discourse-level: how the story is shaped and when information is released.
To test whether that layer holds up on its own, the authors ran LAMP span-level rewriting (cliché, purple prose, redundant exposition) over 278 Gemini stories, rewritten by Gemini itself. Their narrative classifier scored 93.9% macro-F1 on the edited stories against 95.5% on the same stories unedited, a drop of 1.6 points. In their words, "editing out clichéd phrasing or purple prose does not alter the structural narrative choices (causal linearity, thematic explicitness, sensory over-description) that drive our classifier."
Narrative features alone reach 93.2% macro-F1, within 2.8 points of the 96.0% combined model. The paper is explicit that style stays the stronger cue; the point is that shape carries near-equivalent signal on its own and survives a style rewrite, so a shape pass catches what a style pass cannot.
Caveats, stated in the section too
Checks
python3 scripts/validate-package.pypasses (v2.12.0)npx skills add . --listfinds the skillclaude plugin validate .passesThe section is self-contained; renumbering it touches two validator lines.