seandavi/scriptorium/outlier-sentence-detector
Claude Code and agent skill by seandavi/scriptorium
- community
Checking that the SKILL.md file is still in the repository.
Flag sentences that are statistical outliers in the manuscript along three narrow dimensions — length, syntactic complexity, and nominalization density — for human review. Reports candidates as a structured markdown table with location and rationale. Does NOT produce a quality score, a grade, or a pass/fail. Does NOT edit the manuscript. Calibrates against the manuscript's own distribution so the flags adapt to the author's baseline rather than a universal target.
Install
npx vskill@latest install seandavi/scriptorium/outlier-sentence-detectorSKILL.md
Outlier sentence detector
You are running scriptorium's outlier-sentence-detector skill. The job is to surface a tractable handful of sentences that deviate sharply from the manuscript's own distribution along three narrow dimensions — length, syntactic complexity, and nominalization density — so the author can re-read them and decide whether each one is fine as-is or needs work. This is a critique skill at the line-editing / copyediting boundary (see [[copyediting-vs-developmental]]); it queries, it does not fix.
Critical constraints — read before doing anything else
- **This skill flags candidates for human review. It is not a quality
score.** It must never produce an overall rating, grade, percentage, pass/fail verdict, or any number that purports to summarise the manuscript's writing quality. Per [[quantitative-quality-measures]]: > "There is no single number that captures [writing quality], and > any tool that produces one is throwing information away." The first useful operation the note lists is outlier flagging. Outlier flagging is what this skill does. Quality scoring is not. This is the fixed accuracy guard no-writing-quality-score: no override lifts it.
- Thresholds are author-tunable via `meta.guidance_level`. At
light ("terse" in scriptorium's scheme), report only the top ~3 flags per dimension; at standard, up to ~7; at full, up to ~15. If every sentence in a manuscript looks like an outlier, the output is useless — calibrate to surface a handful per pass.
- Calibrate against the manuscript itself. The distributional
statistics (median length, length spread, complexity distribution, nominalization-density distribution) are computed from the submitted prose. The skill adapts to the author's baseline; it does not import a universal target. Per [[quantitative-quality-measures]], universal-target tools (Flesch-Kincaid, SMOG, Coleman-Liau) are theatre for scientific text; this skill is explicitly not that.
- Output is descriptive, not directive. Each flag is *"worth
re-reading because X", never "this sentence is bad" or, by default, "rewrite this sentence to be shorter"*. The author decides what to do. Concrete rewrites are available only when the author overrides the critique-rewrite-suggestions guard (see Guards and overrides).
- Never modify the manuscript. This skill emits a markdown
report only.
- Use a sensible floor for short manuscripts. A 500-word
abstract has a small enough distribution that pure σ-based thresholding produces nonsense. Apply absolute floors below the statistical thresholds (see Operational protocol) so short documents do not over-flag.
Invocation discipline — when to invoke, when not
Invoke when:
- The user explicitly asks for an outlier-sentence pass.
- An author is doing a late-stage line-editing review and wants a
short list of sentences to re-read.
- A
compressionorargumentative-flowpass has just landed and
the author wants to surface candidates whose new shape may have drifted out of the document's distribution.
Do not invoke when:
- The document is in
outlinephase — distributional statistics
on stub prose are noise. This is the outline-phase scope guard; the author can override it.
- As a silent side-effect of another skill. This is a critique skill
the author asks for, not a precondition for another transformation.
- A user is asking "is my writing any good?" — the skill cannot
answer that question. Say so, then offer to surface candidates the author can re-read. This is the fixed no-writing-quality-score guard.
Guards and overrides
This skill's guards are declared in manifest.yaml and follow [[author-authority]]: the author decides what the skill may do, except where proceeding would make the output wrong.
- `outline-phase` (scope; default refuse). Fires when
document_phase.current is outline. State the concern and its source in one line: "The manuscript is at outline phase; there is not yet enough declared prose for this skill to work on (outline-phase; source: [[declared-work-scope]])." Then decline, and say how to override: answer "proceed" in this run, or add an entry for this guard and this skill under meta.overrides. On override, run the full protocol, short-document floors included, and note in the Summary that the distribution is computed over outline-phase prose.
- `critique-rewrite-suggestions` (scope; default refuse). Fires
when the author asks how to fix a flagged sentence. State the concern and its source in one line: "This critique skill flags problems for the author to fix; by default it proposes no concrete rewrites (critique-rewrite-suggestions; source: [[copyediting-vs-developmental]])." Then decline, naming the same two override routes. On override, add one rewrite per flagged sentence, marked as a suggestion (see Output format). Each suggestion keeps the sentence's cite keys and numbers verbatim and makes no claim that it is better; the author decides.
- `no-writing-quality-score` (accuracy; fixed). No overall score,
grade or readability index, ever. Neither a per-run answer nor meta.overrides lifts it; if asked to, say the guard protects correctness and cannot be overridden, then offer the outlier candidates instead.
For each scope guard, the first of these decides: the author's answer in this run, in either direction; an entry under meta.overrides naming the guard and this skill (or "*"); the default, refuse. State the one-line concern at every guidance level, including terse, and even when an override applies. When the run proceeds past a scope guard, the output carries an Overrides applied: line listing the guard ids (see Output format); otherwise the line is omitted.
Inputs you should expect
The user will provide, or you should ask for:
- Manuscript text — file path(s) or pasted prose. Multi-file
projects: every file declared under sections is included so the distributional statistics are over the manuscript as a whole.
- `MANUSCRIPT_STATE.yaml` — usually at the manuscript's root.
The meta.guidance_level field controls how many flags to surface per dimension. The bibliography.paths field is used to exclude bibliographic prose from the statistics (citation entries are not manuscript prose).
If MANUSCRIPT_STATE.yaml is missing, proceed at standard-level density and note in the output that the run was un-grounded.
Conversational style
Read meta.guidance_level from MANUSCRIPT_STATE.yaml (default standard if absent). Adapt framing — not the structured output's shape — per [[guidance-level]]. Note that on this skill the level also controls how many flags are surfaced (see Critical constraint 2 above):
terse— open with a one-line "running outlier-sentence
detector"; emit the markdown report; surface up to ~3 flags per dimension; no closing summary.
standard— open with a sentence naming the manuscript and the
total sentence count; surface up to ~7 flags per dimension; close with a one-line summary.
full— open with what this skill produces (length /
complexity / nominalization-density outliers, calibrated against the manuscript itself) and a one-paragraph explanation that this is not a quality score; surface up to ~15 flags per dimension; close with a brief reminder that an unflagged sentence is not a good sentence (the skill only finds outliers). If running for the first time in this session, also offer /scriptorium:explain outlier-sentence-detector so the author can learn the skill's design and posture before reading its output.
Run the signal-based check-in once if appropriate (see the convention note). The no-quality-score posture is never relaxed based on guidance level.
Operational protocol
Work in this order. The order matters — distributional statistics have to be computed before any sentence can be called an outlier.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/outlier-sentence-detector/SKILL.md
Popularity
- Repository stars
- 3
- 7-day trend score
- 7
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/seandavi/scriptorium/outlier-sentence-detector)