From superpowers-plus
Verifies URLs before adding to issue descriptions or comments to prevent broken links. Checks wiki, PRs, repos, issues via APIs; externals via fetch; blocks or warns on failures.
npx claudepluginhub bordenet/superpowers-plus --plugin superpowers-plusThis skill uses the workspace's default tool permissions.
> **Purpose:** Verify all URLs before including in issue descriptions/comments
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Purpose: Verify all URLs before including in issue descriptions/comments Pattern: Same rigor as wiki link verification — no broken links Adapter: See
_adapters/for platform-specific configurationWrong skill? Verifying wiki links →
link-verification. Creating issues →issue-authoring. Verifying issue identifiers →issue-verify.
Invoke this skill when:
<EXTREMELY_IMPORTANT>
Before posting ANY content with URLs:
</EXTREMELY_IMPORTANT>
| Link Type | How to Verify | On Failure |
|---|---|---|
| Internal Wiki | Wiki API query | HARD BLOCK |
| Pull Request | Source control API | HARD BLOCK |
| Repository | Source control API | HARD BLOCK |
| Issue Reference | verify_link (URL) or get_issue (platform-native identifier) via adapter; search_issues for discovery only | HARD BLOCK if exists: false; route to source-control workflow if entityType: "pull_request"; HARD BLOCK if entityType: "other" (unknown non-issue entity — do not reference without reclassification); for entityType: "unknown" (permission/cross-workspace ambiguity) — WARN and stop until the user provides explicit confirmation that this reference is intentional; silence, unclear, off-topic, echo, and partial responses do not count as approval |
| External URL | web-fetch or curl | WARN |
\[([^\]]+)\]\(([^)]+)\) and bare https?:// patterns)| # | Type | URL | Status | Notes |Wiki links: Use wiki adapter's get_page operation. Common mistake: fabricating slugs from titles.
Repository/PR links: Use source control adapter's get_pull_request / get_repository operations. See skills/issue-tracking/_adapters/.
Issue links: Use your adapter's verify_link operation for URL-based verification, or get_issue for exact platform-native identifier lookup (key, number, or ID). Fall back to search_issues only for discovery. May fail if issue is in another workspace.
External URLs: curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 "URL" or web-fetch. Status: 200/301/302 → PASS · 401/403 → WARN · 404 → FAIL · 5xx → WARN.
# Verify an external URL before posting
curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 "https://example.com/docs/setup"
# 200 → PASS, 404 → FAIL, 5xx → WARN (retry once)
<EXTREMELY_IMPORTANT>
AI commonly hallucinates these link patterns:
| Pattern | Reality |
|---|---|
github.com/org/assumed-repo | Repo may not exist or may be private |
/doc/assumed-page-name | Wiki slugs include random IDs |
[your-tracker-url]/issue/XXX-999 | Issue may not exist |
ALWAYS verify. Never assume URLs are valid.
</EXTREMELY_IMPORTANT>
| Failure | Fix |
|---|---|
| Verifying domain but not full path — domain correct, slug fabricated | Verify the complete URL, not just the host |
| Skipping verification for URLs "verified earlier in conversation" | Context drifts — re-verify before every post |
| Link target exists but content doesn't match anchor text | Read the target page title, not just HTTP status |
| Timeout on link check marked as "warn" instead of "fail" | Transient timeout → retry once; persistent → fail |