analyze-variation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited analyze-variation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reports rhythm (within-post sentence-length variation) and length spread (across a sequence of posts), and flags monotone posts and too-similar neighbors.
Why this is a skill with a script, not a prompt: length and rhythm metrics must be deterministic. The numbers are computed by the bundled Node script — this skill just tells the agent to run it and how to read the output. Do not eyeball the counts; run the script.
same-length content machine.
is voice-agnostic; the style rules stay in the project's own voice doc).
Always execute the bundled script — never compute the metrics yourself.
The script lives at scripts/analyze-variation.mjs inside this skill's own directory. Resolve that directory however your harness exposes it, then run the absolute path with Node:
$CLAUDE_PLUGIN_ROOT/skills/analyze-variation/scripts/analyze-variation.mjsSKILL.md'sdirectory + /scripts/analyze-variation.mjs (the env var above is Claude-Code-only).
# pick whichever resolves on your harness; SCRIPT points at the bundled .mjs
SCRIPT="$CLAUDE_PLUGIN_ROOT/skills/analyze-variation/scripts/analyze-variation.mjs"
# one post per file → sequence analysis with neighbor flags
node "$SCRIPT" posts/*.md
# a single post inline or piped
node "$SCRIPT" --text "Short. Then a noticeably longer sentence."
pbpaste | node "$SCRIPT"
# machine-readable, or write a version-tracked report
node "$SCRIPT" posts/*.md --json
REPORT_DATE=2026-06-07 node "$SCRIPT" posts/*.md --write report.mdMarkdown frontmatter and JSX/HTML tags are stripped before analysis. The script is CJK-aware (Chinese characters count as tokens; wide chars weighted ×2 for length), so it works for English and mixed CJK copy alike. Dependency-free (Node built-ins).
Below 0.35 with ≥3 sentences is flagged monotone.
≥ 0.35; lower means the posts are all about the same size.
"Show more" fold (informational, not a cap on Premium accounts).
Mix short and long sentences within a post; let post length rise and fall across the schedule. Apply the project's own voice rules for how to cut or expand — this tool only tells you where the rhythm is flat.
Defined as named constants at the top of the script:
MONOTONE_CV_THRESHOLD = 0.35 — a post with ≥3 sentences and a lowersentence-length CV is flagged monotone.
NEIGHBOR_SIMILARITY_THRESHOLD = 0.15 — adjacent posts within this lengthfraction are flagged too-similar.
These are first-guess heuristics; tune them to your corpus.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.