agentleFS
powerczukpowerczuk/seo-machine/skills/score/SKILL.md

score

Skill0 starsChanged 2 months agoMITView on GitHub

Score an article against the 100-point A–G framework: category tables, dual verdict (overall + AI Overviews readiness), priority fixes, checklists. PL/EN/DE/ES/FR/IT.

15 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 13 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask only for what is missing and cannot be inferred:

    line 17
  2. Distinctive:

    If a script cannot run (no network, no Python), say so and mark the affected criteria "unverified".

    line 28
  3. Very specific:

    Use ${CLAUDE_SKILL_DIR}/references/report-template.md.

    line 43

“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/score — Article scorer (A–G, dual verdict)

Target: $ARGUMENTS

The canonical article-level scorer of this plugin. /optimize uses it for before/after, /write-seo uses it as the final self-check. Weights, verdict tables, and every numeric target come from ${CLAUDE_PLUGIN_ROOT}/skills/seo-fundamentals/references/scoring-spec.md; per-criterion anchors from ${CLAUDE_SKILL_DIR}/references/criteria-details.md. Read both before scoring. Follow the ground-truth rules in ${CLAUDE_PLUGIN_ROOT}/skills/seo-fundamentals/SKILL.md.

1. Inputs

Ask only for what is missing and cannot be inferred:

  1. Article (URL, file, or paste).
  2. Primary keyword — infer from title/H1/URL if not given and state the assumption.
  3. Language/locale — infer from the text.
  4. Domain Rating (if known; affects A5) and whether other language versions exist (affects C7/F1).

2. Measure before judging

  • URL: run python3 ${CLAUDE_PLUGIN_ROOT}/scripts/fetch_page.py "<url>" --json → title, meta, canonical, hreflang, OG, JSON-LD blocks, headings, links, images, body text. Then run python3 ${CLAUDE_PLUGIN_ROOT}/scripts/text_metrics.py --from-json <output> --keyword "<kw>".
  • File or paste: save to a temp file and run text_metrics.py <file> --keyword "<kw>".
  • The scripts return word count, sentences, Flesch / FK grade / Fog, passive ratio, keyword density and placements, words-per-heading, and citable-passage candidates per 1,000 words. Use those numbers; do not estimate them.
  • If a script cannot run (no network, no Python), say so and mark the affected criteria "unverified".
  • For A2/B2/G3 you need the SERP: WebSearch the primary keyword, note the top 5–10 content types and depth; for G3 build or reuse an /entity-coverage matrix when the user wants a rigorous information-gain check (otherwise mark G3 as an estimate).

3. Score

Score all seven categories A–G using the anchors. Be strict: 2 means genuinely met. When a criterion cannot be verified (no GSC, no CWV data), score what is visible and mark the rest "unverified — verify via {tool}". Never invent SERP or DR data.

Additional analysis modules to report alongside the score (they feed A, B, C but are not extra points):

  • Intent alignment — target keyword, intent class, does the content type match the top-5 SERP, confidence.
  • Length vs SERP — word count vs estimated top-10 median; sections to expand if below.
  • Readability — script output vs targets; overall grade.
  • Entity salience — G1 proxy checks (title, H1, first 50 words, sentence-subject count).

4. Output (in the article's language)

Use ${CLAUDE_SKILL_DIR}/references/report-template.md. Sections, in order:

  1. Header (title, URL, language, date, primary keyword, DR).
  2. Category tables A–G (#, criterion, max, score, evidence/notes) with subtotals.
  3. Overall scorecard (A–G, max, score, %).
  4. Dual verdict — overall (✅🟡🟠🔴⛔) and AI Overviews readiness (G/15 normalized: AI-READY / PARTIAL / WEAK / OPAQUE). Say explicitly when they diverge.
  5. Priority fixes — categories under 60% of max; top 3–5 criteria with concrete action, effort, and re-check date. Put G fixes first whenever AI Overviews readiness is below PARTIAL.
  6. Pre-publish checklists — classical TOP 10 and entity/AI TOP 7 (in the template), ✅/❌ each.
  7. Locale notes when relevant (${CLAUDE_SKILL_DIR}/references/locale-notes.md).

5. Follow-ups to offer

  • /citable-passage — passage-level deep dive when G6 < 2.
  • /entity-coverage — build the matrix behind G2/G3.
  • /alignment-audit — when G4 < 2 or schema was detected.
  • /optimize — apply the fixes and re-score.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.