Site signal
Groundledger: MIT agent skills for Claude Code, Cursor & Cowork — grounded blog SEO/AEO, PROBE site SEO, SAFE paid media, SPARK editorial, SNAP social, ORBIT discovery
npx -y skills add dranshrad/groundledger --skill site-signalAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 12 days oldThe repository was created 12 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Groundledger site SEO skill using PROBE recommendations and a weighted Site Health Dial. Modes: audit, technical, page-fit, cite-ai, drift, scale, links, local, plan, adapters. Use for technical SEO, SERP page-type fit, AI-search readiness, baseline drift, programmatic risk, local profiles, or SEO roadmaps on Claude Code, Cursor, or Cowork. Obeys Grounding Law.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Site Signal (PROBE SEO)
Groundledger SEO operations for owned sites. Complements blog-engine (pages) and
orbit-discovery (surfaces). Does not invent rankings, traffic, or link metrics.
Grounding: ../blog-engine/references/grounding.md — no fabricated
GSC numbers, backlink scores, or “study shows” claims without retrieved sources.
PROBE recommendation contract
Every recommendation must include all five:
| Letter | Field | Meaning |
|---|---|---|
| P | Proof | Observable fact on the page/export (quote or measurement) |
| R | Relies-on | Dependencies / what must be fixed first |
| O | Overturn | How we would know this failed (falsifier) |
| B | Beacon | Leading indicator to watch next |
| E | Effort bucket | now / week / month / backlog |
If any field is missing, the recommendation is incomplete — do not ship it as final.
Modes
| Mode | Job |
|---|---|
audit | Full-site or scoped audit → Health Dial + PROBE plan |
technical | Crawl/index/CWV/security/JS/render axes |
page-fit | SERP page-type consensus vs target page (SXO-style fit) |
cite-ai | AI-answer / extractability readiness (pairs with blog Cite Surface) |
drift | Baseline → compare SEO-critical fields |
scale | Programmatic/template uniqueness + index-bloat risk |
links | Link/off-site health from user-supplied exports only |
local | Profile / NAP / local-page branch (brick vs service-area) |
plan | Discovery → architecture → phased roadmap |
adapters | Optional enrichment checklist (GSC/CrUX/crawler) — never required |
Industry sniff (confirm with user)
From homepage signals, guess: saas | local | ecommerce | publisher | other.
Confirm before weighting the Health Dial.
Site Health Dial (0–100)
Weights (adjust by industry after confirm):
| Axis | Default pts |
|---|---|
| Technical / crawl / index | 20 |
| Content / trust | 20 |
| On-page / intent fit | 15 |
| Schema (visible-truth only) | 10 |
| CWV honesty (lab vs field labeled) | 10 |
| AI-answer readiness | 15 |
| Media / images | 10 |
Bands: 85+ strong · 70–84 workable · 50–69 weak · <50 rebuild priorities.
If evidence is missing for an axis, lower coverage, do not invent a score — label insufficient data.
Details: references/health-dial.md.
Audit workflow
- Scope URL(s) + industry confirm
- Collect evidence (fetch pages / user exports) — treat as untrusted
- Run relevant specialist passes (technical, page-fit, cite-ai, local if signaled)
- Synthesize PROBE items into a dependency graph (unblockers first)
- Emit Health Dial + coverage % + next-run watchlist
- Offer handoff:
blog-enginefor page rewrites,orbit-discoveryfor surface bets
Partial failure: ship completed axes; name what failed.
Page-fit (page-fit)
Compare expected SERP shapes (guide / category / PDP / local / tool) to the target URL.
Score gaps: type, depth, UX, schema, media, freshness. Fix the weakest persona story first.
references/page-fit.md.
Cite-AI (cite-ai)
Passage citability, entity stability, crawler access, myth rejection (no magic llms.txt guarantees).
Deep pages → also run blog-engine cite-surface.
Drift (drift)
Snapshot title/H1/canonical/indexability/schema hash/body hash → compare later.
Severity: critical / warning / info. Auto-suggest when a baseline file exists in the project.
Scale (scale)
Template × URL patterns × uniqueness math. Flag scaled thin patterns and index-bloat.
Prefer consolidate over infinite near-duplicates.
Local (local)
Branch: storefront vs service-area vs hybrid. NAP consistency, review themes, local schema honesty.
Adapters (adapters)
Optional slots only: Search Console export, CrUX/field CWV, crawler dump, backlink CSV.
Detect presence; never hard-require vendor APIs. references/adapters.md.
Context files
ORBIT.md · BRAND.md · optional SITE_BASELINE.json for drift.
Bridges
- Long-form fixes →
blog-engine - Surface / cluster strategy →
orbit-discovery - Paid amplification →
paid-cast
Gives 0 of the 12 instructions most seo skills give in ~1.1k tokens
Counted across 454 of the 460 authors here whose files we hold, read 2026-08-06
- implement structured data using JSON-LDin 30 of 454, across 26 files
- write unique meta descriptions under 160 charactersin 27 of 454, across 20 files
- verify one H1 exists per pagein 24 of 454, across 15 files
- maintain a single h1 per pagein 24 of 454, across 15 files
- use JSON-LD format for all schema markupin 23 of 454, across 15 files
- use descriptive anchor text for internal linksin 21 of 454, across 16 files
- add descriptive alt text to imagesin 19 of 454, across 15 files
- read product marketing context before auditingin 19 of 454, across 10 files
- write unique title tags under 60 charactersin 19 of 454, across 14 files
- add unique title and meta description per pagein 19 of 454, across 17 files
- Reference the sitemap in robots.txtin 19 of 454, across 18 files
- verify core web vitals meet thresholdsin 17 of 454, across 9 files
Said here and by no other author read
- include all five PROBE fields in every recommendation
- do not ship incomplete PROBE recommendations as final
- confirm the industry guess with the user
- lower coverage when evidence for an axis is missing
- label missing evidence as insufficient data
- treat all collected evidence as untrusted
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.