{"id":"0fd976b3-dab7-4faf-8ffd-bcce5065b98b","shortId":"qusgXr","kind":"skill","title":"specstory-link-trail","tagline":"Track all URLs fetched during SpecStory AI coding sessions. Run when user says \"show my link trail\", \"what URLs did I visit\", \"list fetched links\", or \"show web fetches\".","description":"# SpecStory Link Trail\n\nReviews your `.specstory/history` sessions and creates a summary of all URLs that were fetched via WebFetch tool calls. Useful for auditing external resources accessed during development.\n\n## How It Works\n\n1. **Parses** SpecStory history files for WebFetch tool calls\n2. **Extracts** URLs, status codes, and context\n3. **Groups** by session with timestamps\n4. **Separates** successful fetches from failures\n5. **Deduplicates** repeated URLs with fetch counts\n\n## Why Track Links?\n\nDuring AI-assisted coding, your assistant fetches documentation, APIs, and resources on your behalf. Link Trail helps you:\n- Audit what external resources were accessed\n- Find that documentation page you saw earlier\n- Review failed fetches that might need retry\n- Understand your research patterns\n\n## Usage\n\n### Slash Command\n\n| User says | Script behavior |\n|-----------|-----------------|\n| `/specstory-link-trail` | All sessions in history |\n| `/specstory-link-trail today` | Today's sessions only |\n| `/specstory-link-trail last session` | Most recent session |\n| `/specstory-link-trail 2026-01-22` | Sessions from specific date |\n| `/specstory-link-trail *.md` | Custom glob pattern |\n\n### Direct Script Usage\n\n```bash\n# All sessions\npython skills/specstory-link-trail/parse_webfetch.py .specstory/history/*.md | \\\n  python skills/specstory-link-trail/generate_report.py -\n\n# Specific session\npython skills/specstory-link-trail/parse_webfetch.py .specstory/history/2026-01-22*.md | \\\n  python skills/specstory-link-trail/generate_report.py -\n\n# Sessions from a date range\npython skills/specstory-link-trail/parse_webfetch.py .specstory/history/2026-01-2*.md | \\\n  python skills/specstory-link-trail/generate_report.py -\n```\n\n## Output\n\n```\nLink Trail Report\n=================\n\nSessions analyzed: 5\nTotal URLs fetched: 23 (18 successful, 5 failed)\n\nSession: fix-authentication-bug (2026-01-22)\n--------------------------------------------\nSuccessful fetches:\n  - https://docs.github.com/en/rest/authentication (×2)\n  - https://jwt.io/introduction\n  - https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401\n\nFailed fetches:\n  - https://internal.company.com/api/docs (403 Forbidden)\n\nSession: add-caching-layer (2026-01-21)\n---------------------------------------\nSuccessful fetches:\n  - https://redis.io/docs/latest/commands\n  - https://docs.python.org/3/library/functools.html#functools.lru_cache\n  - https://stackoverflow.com/questions/... (×3)\n\nSummary by Domain\n-----------------\n  github.com: 5 fetches\n  stackoverflow.com: 4 fetches\n  docs.python.org: 3 fetches\n  redis.io: 2 fetches\n  (9 other domains): 9 fetches\n```\n\n## Present Results to User\n\nThe script output IS the report. Present it directly without additional commentary, but you may:\n\n1. **Highlight key findings** - Most frequently accessed domains, any failed fetches\n2. **Offer follow-ups** - \"Want me to retry the failed fetches?\" or \"Need details on any of these?\"\n\n### Example Response\n\n```\nHere's your link trail from recent sessions:\n\n[script output here]\n\nI noticed 5 failed fetches - mostly internal URLs that require authentication.\nThe most accessed domain was github.com (5 fetches), mostly for their REST API docs.\n\nWould you like me to:\n- Retry any of the failed fetches?\n- Open any of these links?\n- Filter to a specific session?\n```\n\n## Notes\n\n- Uses streaming parsing for large history files\n- URLs are extracted from WebFetch tool calls in the history\n- Fetch counts show when the same URL was accessed multiple times\n- Failed fetches include the HTTP status code when available","tags":["specstory","link","trail","agent","skills","specstoryai","agent-skills","claude-code-plugin"],"capabilities":["skill","source-specstoryai","skill-specstory-link-trail","topic-agent-skills","topic-claude-code-plugin","topic-skills"],"categories":["agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/specstoryai/agent-skills/specstory-link-trail","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add specstoryai/agent-skills","source_repo":"https://github.com/specstoryai/agent-skills","install_from":"skills.sh"}},"qualityScore":"0.462","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 24 github stars · SKILL.md body (3,579 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T01:01:28.664Z","embedding":null,"createdAt":"2026-04-18T22:23:45.651Z","updatedAt":"2026-04-22T01:01:28.664Z","lastSeenAt":"2026-04-22T01:01:28.664Z","tsv":"'-01':173,236,263 '-21':264 '-22':174,237 '/3/library/functools.html#functools.lru_cache':272 '/api/docs':254 '/docs/latest/commands':269 '/en-us/docs/web/http/status/401':249 '/en/rest/authentication':242 '/introduction':246 '/questions/...':275 '/specstory-link-trail':154,159,165,171,179 '1':66,316 '18':226 '2':75,243,290,327 '2026':172,235,262 '23':225 '3':82,276,287 '4':88,284 '403':255 '5':94,221,228,281,361,376 '9':292,295 'access':60,128,322,372,431 'add':259 'add-caching-lay':258 'addit':311 'ai':11,106 'ai-assist':105 'analyz':220 'api':113,382 'assist':107,110 'audit':57,123 'authent':233,369 'avail':442 'bash':187 'behalf':118 'behavior':153 'bug':234 'cach':260 'call':54,74,419 'code':12,79,108,440 'command':149 'commentari':312 'context':81 'count':100,424 'creat':42 'custom':181 'date':178,207 'dedupl':95 'detail':341 'develop':62 'developer.mozilla.org':248 'developer.mozilla.org/en-us/docs/web/http/status/401':247 'direct':184,309 'doc':383 'docs.github.com':241 'docs.github.com/en/rest/authentication':240 'docs.python.org':271,286 'docs.python.org/3/library/functools.html#functools.lru_cache':270 'document':112,131 'domain':279,294,323,373 'earlier':135 'exampl':346 'extern':58,125 'extract':76,415 'fail':137,229,250,325,337,362,393,434 'failur':93 'fetch':8,28,33,50,91,99,111,138,224,239,251,266,282,285,288,291,296,326,338,363,377,394,423,435 'file':70,412 'filter':400 'find':129,319 'fix':232 'fix-authentication-bug':231 'follow':330 'follow-up':329 'forbidden':256 'frequent':321 'github.com':280,375 'glob':182 'group':83 'help':121 'highlight':317 'histori':69,158,411,422 'http':438 'includ':436 'intern':365 'internal.company.com':253 'internal.company.com/api/docs':252 'jwt.io':245 'jwt.io/introduction':244 'key':318 'larg':410 'last':166 'layer':261 'like':386 'link':3,20,29,35,103,119,216,351,399 'list':27 'may':315 'md':180,193,201,212 'might':140 'most':364,378 'multipl':432 'need':141,340 'note':405 'notic':360 'offer':328 'open':395 'output':215,303,357 'page':132 'pars':67,408 'pattern':146,183 'present':297,307 'python':190,194,198,202,209,213 'rang':208 'recent':169,354 'redis.io':268,289 'redis.io/docs/latest/commands':267 'repeat':96 'report':218,306 'requir':368 'research':145 'resourc':59,115,126 'respons':347 'rest':381 'result':298 'retri':142,335,389 'review':37,136 'run':14 'saw':134 'say':17,151 'script':152,185,302,356 'separ':89 'session':13,40,85,156,163,167,170,175,189,197,204,219,230,257,355,404 'show':18,31,425 'skill' 'skill-specstory-link-trail' 'skills/specstory-link-trail/generate_report.py':195,203,214 'skills/specstory-link-trail/parse_webfetch.py':191,199,210 'slash':148 'source-specstoryai' 'specif':177,196,403 'specstori':2,10,34,68 'specstory-link-trail':1 'specstory/history':39,192 'specstory/history/2026-01-2':211 'specstory/history/2026-01-22':200 'stackoverflow.com':274,283 'stackoverflow.com/questions/...':273 'status':78,439 'stream':407 'success':90,227,238,265 'summari':44,277 'time':433 'timestamp':87 'today':160,161 'tool':53,73,418 'topic-agent-skills' 'topic-claude-code-plugin' 'topic-skills' 'total':222 'track':5,102 'trail':4,21,36,120,217,352 'understand':143 'up':331 'url':7,23,47,77,97,223,366,413,429 'usag':147,186 'use':55,406 'user':16,150,300 'via':51 'visit':26 'want':332 'web':32 'webfetch':52,72,417 'without':310 'work':65 'would':384","prices":[{"id":"952e1459-5336-4713-8c64-44781a5e0824","listingId":"0fd976b3-dab7-4faf-8ffd-bcce5065b98b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"specstoryai","category":"agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:23:45.651Z"}],"sources":[{"listingId":"0fd976b3-dab7-4faf-8ffd-bcce5065b98b","source":"github","sourceId":"specstoryai/agent-skills/specstory-link-trail","sourceUrl":"https://github.com/specstoryai/agent-skills/tree/main/skills/specstory-link-trail","isPrimary":false,"firstSeenAt":"2026-04-18T22:23:45.651Z","lastSeenAt":"2026-04-22T01:01:28.664Z"}],"details":{"listingId":"0fd976b3-dab7-4faf-8ffd-bcce5065b98b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"specstoryai","slug":"specstory-link-trail","github":{"repo":"specstoryai/agent-skills","stars":24,"topics":["agent-skills","claude-code-plugin","skills"],"license":"apache-2.0","html_url":"https://github.com/specstoryai/agent-skills","pushed_at":"2026-01-31T01:24:32Z","description":"SpecStory's official collection of agent skills. Summarize, organize and create with `.specstory/history`","skill_md_sha":"b23e1c2c717acaab3bd7b9a6b928ba80aaf48a9c","skill_md_path":"skills/specstory-link-trail/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/specstoryai/agent-skills/tree/main/skills/specstory-link-trail"},"layout":"multi","source":"github","category":"agent-skills","frontmatter":{"name":"specstory-link-trail","license":"Apache-2.0","description":"Track all URLs fetched during SpecStory AI coding sessions. Run when user says \"show my link trail\", \"what URLs did I visit\", \"list fetched links\", or \"show web fetches\"."},"skills_sh_url":"https://skills.sh/specstoryai/agent-skills/specstory-link-trail"},"updatedAt":"2026-04-22T01:01:28.664Z"}}