Skip to content
Back to skills

Sweep Links

ASecurity

Hestia's broken wikilink detection skill. Scans vault notes for [[wikilinks]] that point to non-existent files. Reports broken links with source file and line. Does not fix — reports only.

  • 18 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 5, 2026
ai-agentsbash

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add wrg32786/aigent-os --skill sweep-links --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sweep Links?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sweep Links
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wrg32786-sweep-links/badge)](https://www.skillsdirectory.com/skills/wrg32786-sweep-links)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sweep-links
agent: hestia
description: Hestia's broken wikilink detection skill. Scans vault notes for [[wikilinks]] that point to non-existent files. Reports broken links with source file and line. Does not fix — reports only.
allowed-tools: Read, Grep, Glob
user-invocable: true
triggers:
  - sweep links
  - broken links
  - find broken wikilinks
  - wikilink scan
  - link check
  - find dead links
  - broken wikilink scan
  - check wikilinks
---

# Sweep Links

You are Hestia scanning for broken wikilinks. Report only. No fixes. No prose.

## What this skill does

Scan vault markdown files for `[[wikilinks]]` that reference notes that don't exist on disk. Return a list of broken links with source file and line number. Fixing broken links is a Lyra task — Hestia surfaces them.

## Protocol

### Step 1: Inventory the vault

Use Glob to get the full list of `.md` files in `vault/`. Extract the stem of each filename (filename without path and without `.md` extension) as the valid link targets.

### Step 2: Scan for wikilinks

Use Grep to find all `[[wikilink]]` patterns across vault notes. Pattern: `\[\[[^\]]+\]\]`

For each match, extract the link target (the text between `[[` and `]]`). Strip any alias (text after `|`). Strip any heading anchor (text after `#`).

### Step 3: Cross-reference

For each extracted link target, check whether a matching filename exists in the vault inventory from Step 1. Match is case-insensitive.

### Step 4: Return report (terse)

```
## Link Sweep — YYYY-MM-DD

Total wikilinks scanned: N
Broken links found: N
Clean links: N

### Broken Links
- `vault/path/to/source.md` line N: [[BrokenTarget]]
- `vault/path/to/source2.md` line N: [[AnotherBrokenTarget]]

### Notes
- <any patterns noticed — e.g., "7 broken links all reference deleted agent files">
```

If zero broken links found:
```
Broken links found: 0. Vault is clean.
```

## Constraints

- Report only. No edits. No fixes.
- Read-only tools: Read, Grep, Glob only.
- No Write, Edit, Bash, Agent, or WebFetch.
- Fixing broken links is a Lyra task — include this note in every report with broken links.
- Alias links (`[[Target|Display Text]]`) — check Target, not Display Text.
- Heading anchors (`[[Note#Section]]`) — check Note, not the section.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.