Agent skill

Broken Link Auditor

by pnp in pnp/sharepoint-skills

Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site.

MITAuto-check passedDocuments & Office

Install Broken Link Auditor

skills CLI
$ npx skills add pnp/sharepoint-skills --skill broken-link-auditor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pnp/sharepoint-skills broken-link-auditor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/broken-link-auditor/broken-link-auditor .claude/skills/broken-link-auditor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
broken-link-auditor
GitHub stars
132
Token cost
~2.5k tokens
SKILL.md length
1,302 words
Files
1
Skills in repo
51
Repo updated
First seen
Licence
MIT

At a glance

Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site.

  • Works in 9 steps: Resolve the scan targets → Discover candidate fields and content → Read items and extract links → …
  • Tasks that involve Cloud office suites
  • SKILL.md covers Purpose, Trigger Phrases, Inputs & Scope and What counts as a link, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Broken Link Auditor is an agent skill from pnp/sharepoint-skills. Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site. It is strictly read-only for content and only writes the final report file. Use when the user says: - "broken link audit" - "find broken links" - "check dead links on this site" - "audit links in this library" - "scan pages for broken links" - "which SharePoint links are broken"

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Cloud office suites and SEO audit. It works with Microsoft SharePoint. The repository describes itself as: Skills for Copilot in SharePoint. The licence is MIT.

When your agent uses it

  • Tasks that involve Cloud office suites
  • Tasks that involve SEO audit

Example prompts

  • “broken link audit”
  • “find broken links”
  • “check dead links on this site”
  • “/broken-link-auditor”

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Resolve the scan targets
  2. Discover candidate fields and content
  3. Read items and extract links
  4. Validate internal SharePoint links
  5. Validate external links carefully
  6. Score severity and prepare findings
  7. Build a self-contained HTML report
  8. Save the report
  9. Respond to the user

What it can do on your machine

Read from SKILL.md and the folder at commit aa9eb14. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Broken Link Auditor loads about 2.5k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,302 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~115
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pnp/sharepoint-skills at commit aa9eb14, republished under its MIT licence (© pnp). 1,302 words, ~2,484 tokens.

Download SKILL.mdSave it as .claude/skills/broken-link-auditor/SKILL.md (or your agent's skills folder).
name
broken-link-auditor
description
Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site. It is strictly read-only for content and only writes the final report file. Use when the user says: - "broken link audit" - "find broken links" - "check dead links on this site" - "audit links in this library" - "scan pages for broken links" - "which SharePoint links are broken"

Purpose

Broken or stale links make SharePoint sites feel unreliable, especially after migrations, re-orgs, and content cleanups. This skill audits link health across SharePoint pages, news posts, libraries, lists, or selected items and saves a self-contained HTML report that teams can act on. It is strictly read-only for content: it never edits pages, files, metadata, or links. The only thing it writes is the final HTML report file.

Trigger Phrases

Activate this skill when the user says any of the following (or close variations):

  • "broken link audit" / "dead link audit"
  • "find broken links" / "check broken links"
  • "check dead links on this site"
  • "audit links in this library"
  • "scan pages for broken links"
  • "which SharePoint links are broken"

Inputs & Scope

Determine the reporting scope from the user's request and the current context, in this order:

  1. Selected items — if the user has pages, files, or folders selected or says "these/this", audit those items first.
  2. Named library, list, or Site Pages — if the user names one, resolve it on the current site.
  3. Current library or current Site Pages context — if the user is already in one, use it.
  4. Whole current site — if no narrower scope is clear, scan accessible Site Pages plus hyperlink-bearing items in accessible user-created lists and libraries.
  5. If no scope can be resolved, ask the user which library, page set, or site scope to audit. Do not guess.

Only inspect content the current user can already read. Never invent pages, items, targets, or HTTP outcomes.

Audit the following when present:

  • Links embedded in SharePoint page and news post content
  • Hyperlink / URL columns on list items or library items
  • Obvious SharePoint links stored in plain text fields when the user explicitly asks for a broader scan

Ignore the following unless the user explicitly asks:

  • Mailto links
  • Telephone links
  • JavaScript pseudo-links
  • Anchors that only jump within the same page and do not reference another resource

Steps

Step 1 — Resolve the scan targets
  • Resolve the site, list/library, folder, page set, or selected items from the user's request and current SharePoint context.
  • For whole-site audits, enumerate accessible user-created lists/libraries plus the Site Pages library.
  • Record the resolved scope exactly as it exists. If resolution is partial, keep going with the resolvable part and note the limitation in the report.
Step 2 — Discover candidate fields and content
  • For each list or library in scope, inspect the schema first and identify:
    • hyperlink / URL columns,
    • page or rich-text fields that can contain embedded links,
    • label fields to identify each item in the report.
  • For Site Pages and news posts, include the page title, URL/path, last modified date, editor, and the rich page content fields needed to extract links.
  • Exclude system-only columns from the report unless they are needed to identify the source item.
  • Page through every item in scope. Do not stop at the first page.
  • For each source item, extract links and retain:
    • source item title/name,
    • source item URL/path,
    • source type (page, news post, file, list item),
    • field or content region where the link was found,
    • the raw target URL.
  • Normalize URLs before checking them:
    • trim whitespace,
    • decode obvious HTML-escaped forms,
    • resolve relative SharePoint URLs against the current site,
    • preserve the original value for reporting.
  • Deduplicate exact duplicate checks so the same target is not revalidated unnecessarily, but still report every source occurrence.

For links that point to the current tenant or to relative SharePoint URLs:

  • Try to resolve the target as a page, file, folder, list, or item using SharePoint discovery, path-based lookup, or item retrieval tools.
  • Classify the result:
    • Valid — target exists and is reachable in the available data.
    • Broken — target is clearly missing, deleted, malformed, or resolves to a not-found outcome.
    • Inconclusive — target may exist but cannot be confirmed because of permission limits or unavailable tooling.
  • Do not label a permission-denied target as broken. Mark it Inconclusive (permission-limited) instead.

For links outside SharePoint:

  • Use safe read-only URL checks where available, preferring a lightweight HEAD request and falling back to a minimal GET only when needed.
  • Follow normal redirects up to a small limit and record the final outcome.
  • Use a short timeout and never let one slow domain block the whole scan.
  • Classify the result:
    • Valid — reachable 2xx response
    • Redirected — target resolves after redirect
    • Broken — 4xx/5xx, DNS failure, malformed URL, or unreachable after retry
    • Inconclusive — timeout, bot protection, authentication wall, or network restriction
  • Treat transient failures carefully. Retry once before calling an external link broken.
Show full SKILL.md (538 more words)Show less
Step 6 — Score severity and prepare findings

Assign severity at the link-occurrence level:

  • High — missing internal SharePoint target, malformed internal URL, or clearly broken navigation link from a page/news post
  • Medium — broken external link, repeated redirect chain, or broken library/list hyperlink
  • Low — redirected but reachable link, suspicious formatting, or other cautionary finding
  • Info — valid result recorded only for rollups or when the user explicitly asks for a full inventory

Track:

  • total links scanned,
  • unique targets checked,
  • broken count,
  • valid count,
  • redirected count,
  • inconclusive count,
  • internal vs external split,
  • top affected source items,
  • most common broken domains or missing SharePoint paths.
Step 7 — Build a self-contained HTML report

Draft a single self-contained HTML file:

  • No scripts. No external CSS, fonts, images, or other resources. Inline CSS only.
  • Include a summary band with: scope audited, total links scanned, broken count, internal / external counts, inconclusive checks, and unique targets checked.
  • Include a severity summary showing High / Medium / Low findings.
  • Include a top affected items section showing the pages or items with the most broken links.
  • Include a findings table with one row per link occurrence:
    • source item,
    • source type,
    • field/region,
    • displayed or raw target URL,
    • normalized target URL,
    • internal/external,
    • status,
    • severity,
    • detail / HTTP result / limitation note
  • Highlight rows by severity and status:
    • red for broken high-risk findings,
    • amber for medium-risk or inconclusive findings,
    • blue/gray for redirects and informational rows.
  • Include a prioritized remediation list in plain English, for example:
    • "Update 6 links on the Benefits page that still point to the old HR site."
    • "Review 4 permission-limited links in the Executive library."
    • "Replace 3 malformed relative URLs in the Policies list."
  • Include a limitations section whenever data was partial, throttled, inaccessible, or not externally checkable.
Step 8 — Save the report
  • Save the HTML file in a Link Reports folder in an appropriate document library on the current site.
  • If the folder does not exist, create only that report folder and only when needed for saving the report.
  • Use a clear filename: Broken-Link-Report-<Scope>-YYYY-MM-DD-HHMM.html
Step 9 — Respond to the user

After saving, reply with a compact Markdown summary and the report link:

markdown
# Broken link audit complete

[Open the report](<link>)

- Scope: <site, library, pages set, or selected items>
- Links scanned: <n>
- Broken links: <n>  (High <n> · Medium <n> · Low <n>)
- Inconclusive: <n>
- Top issue: <1 concise sentence about the highest-impact finding>

Example

User: "Run a broken link audit on Site Pages."

Agent response after processing:

I audited Site Pages and checked 184 links across 27 pages.

MetricResult
Broken links19
High / Medium / Low7 / 9 / 3
Inconclusive4
Top affected pageBenefits Hub (5 broken links)

I saved the report to Link Reports/Broken-Link-Report-Site-Pages-2026-08-02-1615.html. Highest-impact issue: 7 page links still point to deleted legacy pages under /sites/hr-old/.

Constraints

  • Strictly read-only for content. Never edit pages, replace links, update list items, rename files, move content, or change site structure. The only write is the final HTML report file (and, if needed, the Link Reports folder that holds it).
  • Never invent HTTP results, target existence, or permissions. If a check cannot be completed, say so plainly.
  • Do not classify a target as broken when the only evidence is lack of permission. Mark it Inconclusive (permission-limited) instead.
  • Page through the full scope; if any read is partial or throttled, surface that in the report.
  • Keep the HTML fully self-contained: no scripts, no external assets, inline CSS only.
  • Prefer validating internal SharePoint links before external links so the most actionable site issues are always covered first.

© pnp, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Skills/broken-link-auditor/broken-link-auditor of pnp/sharepoint-skills.

Open the folder on GitHubat commit aa9eb14

Compare with similar skills

Broken Link Auditor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Broken Link Auditor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Broken Link Auditor this skillpnp/sharepoint-skills132—~2.5kAutomated safety check: PassMIT
aai-cli Microsoft 365aai-labs/agent-barn109—~1.2kAutomated safety check: PassApache-2.0
Add Excelmicrosoft/power-platform-skills979—~796Automated safety check: NotesMIT
Colleague DistillationZhixiangLuo/10xProductivity478—~2.1kAutomated safety check: NotesMIT
Msgraphcodemie-ai/codemie-code294—~4.1kAutomated safety check: PassApache-2.0
Workiqmicrosoft/work-iq1k—~15kAutomated safety check: PassCustom licence

Similar skills

  • aai-cli Microsoft 365

    aai-labs/agent-barn

    Guides work with Outlook, OneDrive, SharePoint, Teams, Excel, To Do and Planner through aai-cli's Microsoft Graph commands, starting from which service owns the data.

    109 GitHub stars~1.2k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Add Excel

    microsoft/power-platform-skills

    Official

    Adds Excel Online (Business) connector to a Power Apps code app.

    979 GitHub stars~796 tokensUpdated today
    Documents & OfficeAuto-check: notes
  • Colleague Distillation

    ZhixiangLuo/10xProductivity

    Distill a colleague into a reusable AI skill (work + persona) using tool connections — Slack, Slack AI, Jira, GHE, Bitbucket, Confluence, SharePoint, Teams, Outlook, Notion, Linear, Google Docs, and…

    478 GitHub stars~2.1k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check: notes
  • Msgraph

    codemie-ai/codemie-code

    Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…

    294 GitHub stars~4.1k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Workiq

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~15k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • Workiq Preview

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~3.3k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed

More from pnp/sharepoint-skills

All 51 skills in this repo
  • Scorecard Matrix

    pnp/sharepoint-skills

    Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a…

    132 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Analyze Document Library

    pnp/sharepoint-skills

    Analyze the current SharePoint document library in read-only mode and produce a structured summary of files, folders, file types, recent activity, naming issues, and organization recommendations.

    132 GitHub stars~899 tokensUpdated 3 days ago
    Auto-check passed
  • Custom Image Tagger

    pnp/sharepoint-skills

    Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update…

    132 GitHub stars~1.2k tokensUpdated 3 days ago
    Auto-check passed
  • Dossier

    pnp/sharepoint-skills

    Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description.

    132 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed
  • Exec Report

    pnp/sharepoint-skills

    Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description.

    132 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed
  • File Classifier

    pnp/sharepoint-skills

    Classifies files in a SharePoint document library by reading their content and matching them to known content types (Contracts, Invoices, Purchase Orders).

    132 GitHub stars~4.1k tokensUpdated 3 days ago
    Auto-check passed

Questions about Broken Link Auditor

What does Broken Link Auditor do?

Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site. Broken Link Auditor is an agent skill from pnp/sharepoint-skills. Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site.

When should I use Broken Link Auditor?

Broken Link Auditor fits situations like: tasks that involve Cloud office suites; tasks that involve SEO audit.

How do I install Broken Link Auditor in Claude Code?

Run `npx skills add pnp/sharepoint-skills --skill broken-link-auditor -a claude-code`. Or copy the skill folder (Skills/broken-link-auditor/broken-link-auditor in pnp/sharepoint-skills) into .claude/skills/broken-link-auditor in your project. Claude Code loads it when a task matches its description.

How do I install Broken Link Auditor in Codex?

Run `npx skills add pnp/sharepoint-skills --skill broken-link-auditor -a codex`. Or copy the skill folder (Skills/broken-link-auditor/broken-link-auditor in pnp/sharepoint-skills) into .agents/skills/broken-link-auditor in your project. Codex loads it when a task matches its description.

Can I use Broken Link Auditor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pnp/sharepoint-skills --skill broken-link-auditor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/broken-link-auditor, .gemini/skills/broken-link-auditor, .github/skills/broken-link-auditor and .opencode/skills/broken-link-auditor in your project.

What does Broken Link Auditor need to run?

SKILL.md names no scripts, command-line tools or credentials: Broken Link Auditor is instructions for the agent only.

Does Broken Link Auditor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Broken Link Auditor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Broken Link Auditor use?

Broken Link Auditor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Broken Link Auditor use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Broken Link Auditor?

Skills that share tags, products or a category with Broken Link Auditor: aai-cli Microsoft 365 (aai-labs/agent-barn, 109 stars), Add Excel (microsoft/power-platform-skills, 979 stars), Colleague Distillation (ZhixiangLuo/10xProductivity, 478 stars) and Msgraph (codemie-ai/codemie-code, 294 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Broken Link Auditor?

pnp (a GitHub organization) maintains it in pnp/sharepoint-skills, which has 132 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on October 6, 2026.

Source: pnp/sharepoint-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.