Best Practices for Scoring Prose Using Stop Slop's 5-Dimension Rubric

Stop Slop's S-Dimension rubric evaluates prose across five criteria—Directness, Rhythm, Trust, Authenticity, and Density—with each dimension scored 1-10, requiring a minimum total of 35 out of 50 to pass.

The hardikpandya/stop-slop repository provides a structured framework for detecting AI-generated text patterns through numeric scoring. Defined in SKILL.md at lines 48-58, the rubric translates abstract editorial standards into measurable criteria anchored to specific rule violations cataloged in references/structures.md and references/phrases.md. Mastering this scoring system allows reviewers to move beyond subjective impressions to data-driven prose assessment.

Understanding the 5-Dimension Rubric

Each dimension targets specific structural or stylistic markers that indicate formulaic writing. According to the "Scoring" section in SKILL.md, assessors assign scores from 1 (poor) to 10 (excellent) based on violation severity.

Directness

Directness measures whether text states facts without unnecessary preambles or meta-commentary. High scores (8-10) require the absence of wrapper phrases like "here's what..." or "the point is..." that dilute declarative force.

Rhythm

Rhythm assesses sentence length variation and the absence of metronomic patterns. As documented in references/structures.md (lines 118-126), award 9-10 points when prose mixes short and long sentences naturally, avoids three-item list structures, and contains no em-dashes or staccato fragments.

Trust

Trust evaluates whether the writer assumes reader intelligence without softening claims. Score 10 points when the text presents assertions directly without hedging language like "the data tells us" or "just" qualifiers, as specified in references/structures.md (lines 84-92).

Authenticity

Authenticity detects human-authored texture by screening for lazy extremes and overused AI phrasing. Grant top marks when words like "always," "never," or adverbial crutches are absent, per the guidelines in references/structures.md (lines 33-34).

Density

Density quantifies removable filler including adverbs, filler phrases, and passive voice constructions. Deduct points for each lingering filler element; clean, "cut-ready" paragraphs that eliminate unnecessary modifiers approach a perfect 10.

Implementing the Scoring Workflow

The rubric follows a specific four-phase evaluation process outlined in SKILL.md and README.md (lines 42-55).

1. Violation Inventory

Read the passage and catalog every instance of prohibited patterns listed in references/phrases.md and references/structures.md (referenced in SKILL.md lines 15-18). Document specific line items that violate Directness, Density, or other criteria.

2. Dimension Scoring

Assign a provisional 1-10 score for each of the five dimensions based on violation frequency and severity. A text with multiple em-dashes might score 4 on Rhythm, while clean declarative sentences could earn 9 on Directness.

3. Aggregation and Threshold

Sum the five dimension scores to produce a total out of 50. According to README.md (lines 42-55), a total score ≥35 indicates the prose passes the rubric, while scores below 35 mandate revision.

4. Iterative Refinement

Re-evaluate the same five dimensions after each revision cycle. The rubric's granularity isolates specific problem areas—such as Rhythm or Trust—allowing writers to target precise weaknesses rather than rewriting blindly.

Automating the Rubric Programmatically

While designed for human judgment, the rubric's explicit rules enable algorithmic implementation. The following Python script parses text against the rule sets to compute preliminary S-Dimension scores:


# example: score_prose.py

import re
from pathlib import Path

# Load rule lists

phrases = Path("references/phrases.md").read_text().splitlines()
structures = Path("references/structures.md").read_text().splitlines()

def count_violations(text: str) -> dict:
    violations = {"Directness":0, "Rhythm":0, "Trust":0, "Authenticity":0, "Density":0}
    # Simple heuristics – real-world use would be more sophisticated

    if re.search(r"\b(here's what|here's how|the point is)\b", text, re.I):
        violations["Directness"] += 1
    if re.search(r"", text):                     # em-dash

        violations["Rhythm"] += 1
    if re.search(r"\b(never|always|every|everyone|nobody)\b", text, re.I):
        violations["Authenticity"] += 1
    if re.search(r"\b\w+ly\b", text):             # adverb detection

        violations["Density"] += 1
    if re.search(r" is (?:created|believed|made)", text):
        violations["Trust"] += 1
    return violations

def score(violations: dict) -> dict:
    # Map each count to a 1-10 score (more violations → lower score)

    scores = {}
    for dim, count in violations.items():
        scores[dim] = max(1, 10 - count * 2)   # simple linear penalty

    return scores

sample = """The data tells us that the product is great. It was created last year."""
v = count_violations(sample)
s = score(v)
print("Dimension scores:", s, "Total:", sum(s.values()))

Execute the script to generate dimension-specific feedback:


# example: run_score.sh

python score_prose.py

# → Dimension scores: {'Directness': 8, 'Rhythm': 10, 'Trust': 8, 'Authenticity': 8, 'Density': 8} Total: 42

These implementations demonstrate how hardikpandya/stop-slop's rule-based approach supports reproducible assessment while preserving the nuanced judgment required for final scoring.

Summary

  • The S-Dimension rubric consists of five categories—Directness, Rhythm, Trust, Authenticity, and Density—each scored 1-10 for a maximum of 50 points.
  • Core scoring definitions reside in SKILL.md (lines 48-58), with specific rule violations cataloged in references/structures.md and references/phrases.md.
  • A passing score requires 35 or higher according to README.md (lines 42-55); totals below 35 indicate the need for revision.
  • The rubric maps directly to five core rules: cut filler, break formulaic structures, use active voice, be specific, and vary rhythm (SKILL.md lines 13-26).
  • Programmatic implementation is possible using regular expressions against the reference files, though human judgment remains essential for final assessment.

Frequently Asked Questions

What is the minimum passing score on Stop Slop's 5-dimension rubric?

A prose passage must achieve a total score of 35 out of 50 to pass the rubric. This threshold is defined in README.md (lines 42-55) and represents the point at which text demonstrates sufficient human-authored characteristics across all five dimensions to avoid AI-telling markers.

How does the Rhythm dimension detect AI-generated text?

The Rhythm dimension identifies metronomic sentence patterns, em-dash overuse, and staccato fragments that characterize formulaic AI output. According to references/structures.md (lines 118-126), high-scoring prose varies sentence lengths naturally and avoids three-item lists or excessive punctuation that creates artificial cadence.

Can the scoring process be fully automated?

While the explicit rules in references/phrases.md and references/structures.md enable algorithmic detection of violations, the rubric is designed to augment rather than replace human judgment. Automated scripts can flag potential issues and calculate preliminary scores, but final assessment requires editorial discretion to evaluate context and intent.

Where are the specific scoring criteria documented?

The complete scoring table and dimension definitions are located in SKILL.md (lines 48-58), with detailed pattern specifications in references/structures.md (covering lines 33-34, 84-92, and 118-126) and filler phrase lists in references/phrases.md. The pass/fail threshold appears in README.md (lines 42-55).

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →