AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Slop Check

skill-jameshemson-slides-slop-check · by jameshemson

Run an adversarial slop review over a deck spec or a finished .pptx, returning severity-ranked findings.

— No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-jameshemson-slides-slop-check

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jameshemson-slides-slop-check)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 22d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Slop Check? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

MANDATORY PREPARATION

Load the presentation-craft skill. Read its [SKILL.md](../presentation-craft/SKILL.md).

Read [slop.md](../presentation-craft/reference/slop.md) in full: the three layers, the banned phrases and structures, the emotion line, and the score. This skill runs that detector standalone. Read [ai-voice.md](../presentation-craft/reference/ai-voice.md) too — it holds Layer 3, the AI-voice tells.


$ARGUMENTS

You run an adversarial slop review. The job is to catch generic, AI-flavoured slop in a deck before it ships, and to say where it is and how bad it is. You return findings, not a verdict.

If the user did not name a file, ask for the deck spec or the .pptx to review.

Step 1: Read the deck

The skill takes either form.

A deck spec (.deck.md). Read the Markdown directly. You see the slide structure, the field text, the speaker notes, and the Visual: descriptions.

A finished .pptx. Read it with python-pptx. Run python3 -c "import pptx" first; if it fails, tell the user to pip install python-pptx (on a managed macOS Python, pip install --break-system-packages python-pptx or a virtualenv). Then pull each slide's text (drawn or placeholder), its role, and the speaker notes. A script-built deck's field text sits in shapes named slides-field: or slides-lead:, which the inline script below reads the same way as any other text frame:

python3 -c "
from pptx import Presentation
p = Presentation('deck.pptx')
for i, s in enumerate(p.slides, 1):
    role = s.name if (s.name or '').startswith('slides-role:') else s.slide_layout.name
    print(f'--- slide {i}: {role} ---')
    for sh in s.shapes:
        if sh.has_text_frame and sh.text_frame.text.strip():
            print(repr(sh.text_frame.text))
    if s.has_notes_slide:
        print('notes:', repr(s.notes_slide.notes_text_frame.text))
"

Step 2: Run all three layers of the detector

Work through slop.md end to end.

Layer 1, presentation slop. Check every slide for: the tacked-on strapline, the slide as a document, the slide as a script, bullet soup, title and body restating each other, the deck being about the presenter or the product, facts with no story, unearned hype and ad-copy voice, decoration that does not clarify, register mismatch, leftover scaffolding, and the device reflex — a hero number, a dumbbell, or a big-text line reached for by default rather than earned by the beat (flag the reflex, not the device: each is right when the content earns it).

Layer 2, prose slop. Check the speaker notes and any prose against the banned phrases and banned structures: throat-clearing openers, emphasis crutches, business jargon, adverbs, filler, binary contrasts, negative listing, dramatic fragmentation, passive voice, em dashes, lazy extremes.

Layer 3, AI-voice tells. Scan notes and slide text against ai-voice.md: the Claudism catalogue (performative pushback, reframe announcements, naming the move, structural metaphor, the antithesis flip, false candor, the aphoristic closer, false universals, the clean mental model, the colon reveal, the conditions checklist, and the rest), the AI vocabulary watchlist, assistant-artifact slop (a trailing offer or model self-reference fails the draft outright, like an em dash), and uniform rhythm.

Hold the emotion line. Earned emotion, grounded in something true and concrete, passes. Flag only the unearned kind.

Chart figures match the words. When a slide carries a Chart: block, check its numbers against the figures in the Body and the Notes. A chart that shows one figure while the prose claims another is a trust break: flag it and name both numbers. (A finished .pptx holds the chart as an image, so run this check on the deck spec, where the chart data is readable.)

One device, deck-wide. Read the deck as a set, not only slide by slide. If one device carries most of the content slides — a run of hero-number slides, a wall of dumbbells, five near-identical stat rows — flag it even when each slide reads clean alone; a deck of one device reads as a template, not an argument. Name the device and the slides it repeats on. (build-deck flags this mechanically for named composed devices; here you also catch the ones it cannot count — repeated hand-drawn dumbbells, a repeated freeform treatment.)

Step 3: Score

Rate the deck's written content 1 to 10 on each dimension from slop.md: Directness, Rhythm, Trust, Authenticity, Density. Report the five numbers and the total out of 50. Below 35, the deck needs a revision pass.

Step 4: Report findings

Return a list of findings ranked by severity. For each finding:

  • Where. The slide number and field, or the line of notes.
  • What. The slop pattern, named from slop.md.
  • The quote. The offending text, so the user sees it.
  • The fix. What to write instead, concrete.

Rank highest severity first: absolute bans (the tacked-on strapline, leftover scaffolding, unearned emotion) at the top, then the rest.

Do not return a pass-or-fail verdict. A deck with two minor prose tics and a deck with a strapline on every slide are not the same, and one label would hide that. Give the user the ranked findings and the score, and let them decide what to fix.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.