Skip to content

StoryScope: discourse-level AI tells and what transfers to docs

Researched 2026-09-18 and checked against the paper body on 2026-09-19. Sources: StoryScope: Investigating idiosyncrasies in AI fiction (Russell, Rajendhran, Pham, Iyyer, Wieting; University of Maryland and Google DeepMind; COLM 2026, arXiv v6), its code at jenna-russell/storyscope, and the 304-feature table the authors released with it.

This note asks which of the paper's AI-versus-human differences have a form in the docs this repo ships. The answer became the Structural tells checks in context/skills/atomic-writing/SKILL.md.

What the paper claims

AI-written stories separate from human ones on discourse choices, not only on word choice. StoryScope induces 304 interpretable features across 10 narrative dimensions and applies them to 61,608 stories. Each of 10,272 prompts has one human story from Books3 and one story from each of five LLMs, less 24 generations the models refused.

A classifier on the narrative features alone, with the 47 style-related features withheld, reaches 93.2% macro-F1 on human-vs-AI. It reaches 68.4% on six-way attribution. The 30 core features alone reach 84.8% on human-vs-AI.

The claim that these choices survive a style edit rests on one experiment (§4.2). The authors rewrote 278 Gemini stories with Gemini, using the LAMP span-level editor. LAMP removes seven categories of surface artifacts, such as cliché and purple prose. Detection fell from 95.5% to 93.9% macro-F1. That is one model editing its own output, not a human editor.

The dimensions, with the feature count the authors assigned to each and one feature name from the released taxonomy:

DimensionFeaturesExample feature
Agents54Naming practice for the central character
Social networks39Size of social network
Style39Figurative device density
Plot28Thematic resolution pattern
Setting27Dominant spatial scale
Events26Event density per text length
Revelation25Global withholding intensity
Situatedness25Genre fidelity mode
Temporal structure24Dominant pacing mode
Perspective17Dominant narrative person

What we reproduced

data/storyscope_features.parquet at commit 642e746 of the authors' repo has feature values for 61,575 stories. The 33 missing from the 61,608 are human stories with no feature row.

For each feature we took the share of non-null values at each value, for source == human and for the five AI sources pooled. We then ranked all 304 features by total variation distance. A multi-select feature counts each joined combination as one value. The scripts are not committed; this method and the pinned commit reproduce every figure below.

The first table lists the features behind the Structural tells checks, plus figurative device density, which shows where Claude departs from the pool. Most ranks it skips describe characters, setting, genre, allusion, or plot. Rank 7 is typical: emotional expression through embodied sensation, 81% against 39%. A few skipped style features could transfer and are not used yet, such as Latinate versus Anglo-Saxon vocabulary at rank 19.

RankIDFeatureAI-typical valueAIHuman
2STY_FIG_001Figurative device density4 of 565%18%
4SIT_MET_303Thematic explicitness and moralizing4 of 575%37%
5STY_FIG_004Presence of extended conceitpresent83%40%
9STY_ALL_015Lexical register and consistencyconsistently elevated40%11%
10PLT_MOR_007Post-climax denouement lengthextended51%15%
12STY_TON_006Sound patterning prominencenoticeable91%55%
14PLT_THM_008Thematic unity5 of 574%41%
15STY_TON_024Rhythmic markedness of prose4 of 561%28%
21STY_TON_029Information density per sentence4 of 562%36%
22STY_FIG_005Recurrent metaphorical motifpresent96%69%
27SIT_MET_501Narratorial thematic commentary presenceyes76%52%
47PLT_THM_009Integration of subplots with themeno subplots79%58%
52REV_SUS_005Reader expectation strategyset up and fulfilled73%53%

Four features lean the other way, toward a value human authors choose more often:

IDFeatureHuman-typical valueAIHuman
STY_ALL_015Lexical register and consistencymixed, frequent code-switching19%56%
PLT_MOR_007Post-climax denouement lengthbrief44%73%
STY_FIG_003Conventional vs fresh figurative languagemix of cliché and fresh35%69%
STY_TON_023Use of irony and humoroccasional or pervasive62%88%

Of the AI stories, 38% are entirely straight-faced, against 12% of human ones.

Output in this repo is written by Claude, so we repeated the comparison per model. Claude shows the same tells as the pooled AI sources. On every feature in the first table except figurative density, its rate falls within 10 points of the pooled figure. On figurative density it sits near human authors, at 20% against 18%. Its widest gap from human authors is the extended denouement, 60% against 15%.

Where Claude departs from the other four models:

IDFeatureClaude-typical valueClaudeHumanOther AI
STY_CPX_002Predominant sentence length band21-35 words85%46%41%
STY_CPX_010Mean sentence length category21-30 words55%30%17%
STY_CPX_011Syntactic subordination depth4 of 556%29%26%
STY_CPX_013Parenthetical aside frequencyfrequent32%14%6%
EVT_SCH_003Strength of event escalation3 of 556%30%28%
STY_FIG_001Figurative device density3 of 577%64%22%

Claude has the lowest mean figurative density of the five models, at 3.18. Human authors average 3.00 and the other models 3.73 to 3.87. Claude also has the highest mean subordination depth of all six sources: 3.57, against 3.27 for human authors. The abstract describes Claude's event escalation as notably flat.

What transfers to the files this repo ships

The corpus is short fiction averaging 4,753 words, so nothing here is a measurement about READMEs. The mechanism transfers: these are defaults the model reaches for when producing text, and several have a direct form in technical prose. Features about characters, relationships, setting, point of view, events, and time order have no analogue in a reference page.

Figurative density has no row of its own, because Claude already sits near human authors on it.

atomic-writing already fixed the page order and kept an avoid list of lexical tells. It had no check for page-level defaults such as a closing verdict or a recap.

Decision

Add a page-level layer to atomic-writing rather than more words to the avoid list: a Structural tells check list in context/skills/atomic-writing/SKILL.md.

Rejected: porting the 30 core features as a checklist. Most of them describe characters, senses, setting, and time order in fiction. The ones that do transfer are already the closing-line and exception checks.

What would settle the open question

Whether these checks hold for technical prose is untested. The cheap experiment points the paper's own pipeline at a parallel corpus built from this repo:

  1. Take 100 merged PRs that changed a docs/ page.
  2. Use the human-written page as the reference.
  3. Regenerate the page from the diff with the model.
  4. Score both with a docs-adapted feature set.

Released under the MIT License.