SKILL.md
Interesting Links Digest Proofreading
Recommended model: Run /model haiku before invoking this skill for cost efficiency.
Tasks
- Extract all links from the article using
grepor similar tools directly from the file. Do NOT manually transcribe URLs — transcription errors are easy to make (e.g., confusing3.6.0with3-6-0) and will cause false positives/negatives in curl checks. Extract programmatically, then verify extracted URLs match the source file before testing.
- 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.
- 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
- 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.
- 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
- 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
- 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.
- Images — check the frontmatter
image:(header) andthumbnail: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.
- 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).