smithery.ai

proofread-links

Proofread Interesting Links digest posts. Verifies all links and checks characterizations. Use Haiku model for cost efficiency.

First seen Mar 26, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,560 B
  • docs SUMMARY.md 150 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Interesting Links Digest Proofreading

Recommended model: Run /model haiku before invoking this skill for cost efficiency.

Tasks

  1. Extract all links from the article using grep or similar tools directly from the file. Do NOT manually transcribe URLs — transcription errors are easy to make (e.g., confusing 3.6.0 with 3-6-0) and will cause false positives/negatives in curl checks. Extract programmatically, then verify extracted URLs match the source file before testing.
  1. Check all links are live using a single Bash call with curl -sI -o /dev/null -w "%{url} %{http_code}\n" for every URL. This is cheap and fast. Report any that return 4xx/5xx or fail to connect.

Medium links (medium.com, *.medium.com) always return 403 to curl — even bogus URLs do, so a raw curl can't validate them. Instead, validate them through Freedium: curl -sI -o /dev/null -w "%{http_code}\n" "https://freedium-mirror.cfd/<medium-url>";. Freedium returns 200 for real articles and 404 for non-existent ones. If Freedium returns 200, treat the Medium link as clean.

  1. Fetch fetchable links to verify characterizations — use WebFetch and verify:

- Does my summary/characterization accurately reflect the linked content? - Have I misrepresented the author's point?

Domain handling: - Medium posts (medium.com, *.medium.com): Rewrite the URL through https://freedium-mirror.cfd/ (e.g. https://freedium-mirror.cfd/https://medium.com/...) to bypass the paywall/403 - Skip these domains — they block WebFetch and can only be checked via curl for HTTP status: - linkedin.com, www.linkedin.com - x.com, twitter.com - old.reddit.com, www.reddit.com - youtube.com, www.youtube.com - notion.so - All other domains: fetch normally with WebFetch

  1. Parallelisation — use 2-3 Task agents (Haiku model) to verify links in parallel, splitting the article into roughly equal chunks. Don't use more than 3 agents — the overhead outweighs the benefit.
  1. Typos - Check the article for typos. I write in en-gb.

- automagically is intentional - For text typos: Offer to fix them using the Edit tool - For typos in URLs: DO NOT fix automatically. URLs might contain literal typos (e.g., "whisleblower" in a URL that actually exists as misspelled). Instead: - Report the suspected typo in the URL - Note whether the URL works as-is - Only offer to fix if the URL is broken AND you've verified the corrected version works

  1. Category placement - Check each link is in the right section using this heuristic:

- Data Platforms, Architectures, and Modelling: architecture/design/thinking — posts about why or how to structure a system, data modelling - Data Engineering, Pipelines, and CDC: building/tooling/operating — posts about building or operating a specific pipeline/tool, CDC-specific content - Kafka and Event Streaming: Kafka ecosystem, messaging, event streaming platforms - Stream Processing: Flink, Kafka Streams, Spark Streaming, stream processing frameworks - Analytics: OLAP engines, dashboards, query engines (StarRocks, ClickHouse, BigQuery, etc.) - OTF: Iceberg, Delta Lake, Hudi, Paimon, Fluss, catalogs, lakehouse patterns, file formats (Parquet, Lance, etc.) - RDBMS: Postgres, MySQL, DuckDB, database internals, SQL - General Data Stuff: anything data-related that doesn't fit above - AI: all AI/ML content - And finally: non-data content - Flag any links that seem miscategorised, with a suggested alternative section

  1. Punctuation consistency — every bullet should end with a full stop (or other appropriate terminal punctuation, e.g. ?, !, …). This applies even to bare "Author - [title]" entries. Flag any bullet missing terminal punctuation and offer to fix.
  1. Images — check the frontmatter image: (header) and thumbnail: paths:

- Format: must be .webp. If the post points at a .jpeg/.jpg/.png source, regenerate the webp via cwebp -q 80 -resize <width> 0 <src> -o <dest> and update the frontmatter. - Dimensions: match the existing IL pattern in static/images/<year>/<month>/: - Header (h prefix): 1800px wide, height free (typical full crops are 1800×1350, banner crops 1800×~600) - Thumbnail (t prefix): 800px wide, height free (typical 800×1067 portrait) - File size: header should be roughly 200KB–800KB, thumbnail 100KB–300KB. Anything ≫1MB means the source wasn't resized — regenerate. - Verify by sampling the previous month's h.webp / t.webp with identify or ls -l to confirm the current convention before resizing.

  1. Report format:

- List any broken links (from curl check) - List any mischaracterized links with: what I said vs what it actually says - List any potentially miscategorised links with suggested section - List typos in text (offer to fix these) - List suspected typos in URLs (with validation status) - List any bullets missing terminal punctuation (offer to fix) - Keep it concise - don't repeat back correct characterizations or correctly-placed links

Ignore

Header and footer boilerplate (author bio, navigation, copyright).