$npx -y skills add gadievron/raptor --skill github-wayback-recoveryRecover deleted GitHub content using the Wayback Machine and Archive.org APIs. Use when repositories, files, issues, PRs, or wiki pages have been deleted from GitHub but may persist in web archives. Covers CDX API queries, URL patterns, and systematic recovery workflows.
| 1 | # GitHub Wayback Recovery |
| 2 | |
| 3 | **Purpose**: Recover deleted GitHub content (README files, issues, PRs, wiki pages, repository metadata) from the Internet Archive's Wayback Machine when content is no longer available on GitHub. |
| 4 | |
| 5 | ## When to Use This Skill |
| 6 | |
| 7 | - Repository has been deleted and you need README, wiki, or metadata |
| 8 | - Issues or PRs were deleted by author, maintainer, or moderation |
| 9 | - Need to recover file contents that may have been archived |
| 10 | - Investigating historical state of a repository |
| 11 | - Finding forks of deleted repositories via archived network pages |
| 12 | - Recovering release notes or documentation from deleted projects |
| 13 | |
| 14 | **Complementary Skills**: |
| 15 | - **github-archive**: For structured event data (who did what, when) - always check first |
| 16 | - **github-commit-recovery**: For accessing commits when you have SHAs |
| 17 | - **github-wayback-recovery** (this skill): For web page snapshots when content is fully deleted |
| 18 | |
| 19 | ## Core Principles |
| 20 | |
| 21 | **Wayback Machine Archives Web Pages, Not Git Repositories**: |
| 22 | - Cannot `git clone` from archived content |
| 23 | - Cannot reconstruct full commit history |
| 24 | - Recovery success depends on whether specific URLs were crawled |
| 25 | |
| 26 | **What CAN Be Recovered**: |
| 27 | - README files and repository descriptions |
| 28 | - Issue titles, bodies, and comments (Archive Team prioritizes these) |
| 29 | - PR conversations and descriptions (Files Changed tab often fails) |
| 30 | - Wiki pages (especially wiki home) |
| 31 | - Release notes and descriptions |
| 32 | - Repository metadata (stars, language, license visible on homepage) |
| 33 | - Commit SHAs from archived commit list pages (use with **github-commit-recovery** skill to access actual content) |
| 34 | |
| 35 | **What CANNOT Be Recovered**: |
| 36 | - Private repository content (never crawled) |
| 37 | - Complete git history or repository clone |
| 38 | - Content behind authentication |
| 39 | |
| 40 | ## Quick Start |
| 41 | |
| 42 | **Check if a repository page was archived**: |
| 43 | ```bash |
| 44 | curl -s "https://archive.org/wayback/available?url=github.com/owner/repo" | jq |
| 45 | ``` |
| 46 | |
| 47 | **Search for all archived URLs under a repository**: |
| 48 | ```bash |
| 49 | curl -s "https://web.archive.org/cdx/search/cdx?url=github.com/owner/repo/*&output=json&collapse=urlkey" | head -50 |
| 50 | ``` |
| 51 | |
| 52 | **Access an archived snapshot**: |
| 53 | ``` |
| 54 | https://web.archive.org/web/{TIMESTAMP}/https://github.com/owner/repo |
| 55 | ``` |
| 56 | |
| 57 | ## GitHub URL Patterns for Archive Searches |
| 58 | |
| 59 | Understanding GitHub's URL structure is essential for constructing archive queries. |
| 60 | |
| 61 | ### Repository-Level URLs |
| 62 | |
| 63 | | Content Type | URL Pattern | |
| 64 | |--------------|-------------| |
| 65 | | Homepage | `github.com/{owner}/{repo}` | |
| 66 | | Commits list | `github.com/{owner}/{repo}/commits/{branch}` | |
| 67 | | Individual commit | `github.com/{owner}/{repo}/commit/{full-sha}` | |
| 68 | | Fork network | `github.com/{owner}/{repo}/network/members` | |
| 69 | |
| 70 | ### File and Directory URLs |
| 71 | |
| 72 | | Content Type | URL Pattern | |
| 73 | |--------------|-------------| |
| 74 | | File view | `github.com/{owner}/{repo}/blob/{branch}/{path/to/file}` | |
| 75 | | Directory view | `github.com/{owner}/{repo}/tree/{branch}/{directory}` | |
| 76 | | File history | `github.com/{owner}/{repo}/commits/{branch}/{path/to/file}` | |
| 77 | | Raw file | `raw.githubusercontent.com/{owner}/{repo}/{branch}/{path}` | |
| 78 | |
| 79 | **Note**: `blob` = files, `tree` = directories. Raw URLs are rarely archived compared to rendered views. |
| 80 | |
| 81 | ### Collaboration Artifacts |
| 82 | |
| 83 | | Content Type | URL Pattern | |
| 84 | |--------------|-------------| |
| 85 | | Pull request | `github.com/{owner}/{repo}/pull/{number}` | |
| 86 | | PR files | `github.com/{owner}/{repo}/pull/{number}/files` | |
| 87 | | PR commits | `github.com/{owner}/{repo}/pull/{number}/commits` | |
| 88 | | Issue | `github.com/{owner}/{repo}/issues/{number}` | |
| 89 | | Wiki page | `github.com/{owner}/{repo}/wiki/{page-name}` | |
| 90 | | Release | `github.com/{owner}/{repo}/releases/tag/{tag-name}` | |
| 91 | | All PRs | `github.com/{owner}/{repo}/pulls?state=all` | |
| 92 | | All issues | `github.com/{owner}/{repo}/issues?state=all` | |
| 93 | |
| 94 | ## CDX API Reference |
| 95 | |
| 96 | The Capture Index (CDX) API provides structured search across all archived URLs. |
| 97 | |
| 98 | ### Basic Query Structure |
| 99 | |
| 100 | ``` |
| 101 | https://web.archive.org/cdx/search/cdx?url={URL}&output=json |
| 102 | ``` |
| 103 | |
| 104 | ### Essential Parameters |
| 105 | |
| 106 | | Parameter | Effect | Example | |
| 107 | |-----------|--------|---------| |
| 108 | | `matchType=exact` | Exact URL only (default) | Single page | |
| 109 | | `matchType=prefix` | All URLs starting with path | All repo content | |
| 110 | | `url=.../*` | Wildcard (same as prefix) | `github.com/owner/repo/*` | |
| 111 | | `from=YYYY` | Start date filter | `from=2023` | |
| 112 | | `to=YYYY` | End date filter | `to=2024` | |
| 113 | | `filter=statuscode:200` | Only successful captures | Skip redirects/errors | |
| 114 | | `collapse=timestamp:8` | One capture per day | Reduce duplicates | |
| 115 | | `collapse=urlkey` | Unique URLs only | List all archive |