web-source-fetching

A set of rules for downloading trustworthy online sources when writing textbook chapters. It covers how to find, save, and read source material.

In plain words
What is it for?
Use it to discover authoritative sources, download their original content, and use that content while preparing chapters.
Why use it?
It helps prevent unsupported technical claims and avoids relying on memory or incomplete web pages.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/ai-learning-gems/ai-learning-gems.github.io/web-source-fetching
Clone the repo
git clone --depth 1 https://github.com/AI-Learning-Gems/AI-Learning-Gems.github.io

Made for: Cursor.

Per session 11,056 This file is loaded in full into every session.
When invoked 11,056 The same file — it is already loaded in full.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.11056 $0.11056
Opus 5 $0.05528 $0.05528
Sonnet 5 $0.02211 $0.02211
Haiku 4.5 $0.01106 $0.01106

Measured 3d ago against content hash 944e054a8eac, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

web-source-fetching scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

| Use browser for static pages | Use `curl` or `read_url_content` |
.cursor/rules/web-source-fetching.mdc · 962 lines

How it starts

The opening of the file, as written. The whole thing — 962 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Web Source Fetching Strategies

This document contains rules and strategies for fetching authoritative content from various web sources. It is a living document — add new entries as you discover what works for each website.


Core Principles

  1. Never rely on internal world knowledge for technical content — every claim must trace to a downloaded source
  2. Source of truth hierarchy: LaTeX/source code > HTML > PDF > summaries
  3. Download first, read later — save content locally before processing
  4. Prefer raw sources — GitHub raw files, arXiv LaTeX, not rendered HTML
  5. search_web is for discovery only — use it to identify sources, not to extract content

Anti-Patterns to Avoid

❌ Don't Do This ✅ Do This Instead
Use search_web for content Use it only for source discovery
Fabricate URLs Only use URLs you've actually fetched
Regenerate content from memory Quote/cite downloaded sources
Use browser for static pages Use curl or read_url_content
Link to external URLs for images Download images locally
Conclude a source is incomplete because grep found no matches List section headings first (grep '^##'), then read relevant sections. A grep false negative is not evidence of missing content.

Extraction Completeness Verification (MANDATORY for Web Sources)

Readability is necessary but not sufficient. A web extraction can produce a readable, substantial .md file that is missing entire sections due to a soft paywall, JavaScript rendering failure, or extraction timeout. This is especially common with Substack (free preview + paywalled body) and Medium.

After extracting any web article, verify structural completeness:

  1. List section headings: grep '^##\|^###\|^####' content.md — the output should show a logical article structure (introduction, body sections, conclusion).
  2. Check for paywall markers: grep -i 'upgrade to paid\|subscribe to continue\|for paid subscribers\|unlock this post' content.md — if any of these strings appear, the extraction hit a paywall boundary. Re-extract with --profile for the relevant site (e.g., --profile substack).
  3. Check the ending: Read the last 20 lines of the file. Does the article end with a conclusion/summary, or does it cut off abruptly with a subscription prompt? An abrupt ending signals truncation.
  4. Compare against expected content: If you know the article discusses topics X, Y, and Z (from web search summaries or the TEXTBOOK-PLAN), verify that the section headings include all three topics. If topic Z is missing from the headings, the extraction may be incomplete.

Read the full file on GitHub · 962 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 962 lines · 11,056 tokens per session scan A 944e054a8eac

Subscribe to this mod's changes

web-source-fetching is a cursor rule published in the GitHub repository AI-Learning-Gems/AI-Learning-Gems.github.io (22 stars, last pushed 2mo ago), licensed MIT. It adds 11,056 tokens to every session, about $0.0553 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.