blog-ingest

Ingest entire blogs, newsletters, and RSS feeds into deduplicated brain source pages.

Updated Aug 17, 2026
One-click install
npx skills add https://github.com/AMC-JTC/gbrain-1 --skill blog-ingest-amc-jtc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: blog-ingest
Source: https://github.com/AMC-JTC/gbrain-1/tree/main/plugin/skills/blog-ingest
Command: npx skills add https://github.com/AMC-JTC/gbrain-1 --skill blog-ingest-amc-jtc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Turning an entire blog or newsletter archive into structured knowledge-base pages is tedious and error-prone: feeds only show recent posts, URLs carry tracking junk, re-runs create duplicates, and paywalled or rate-limited fetches leave empty pages that pollute search results. ## Core Features & Use Cases - Feed discovery and archive walking: Finds RSS/Atom feeds via link tags, conventional paths, or sitemaps, then paginates to enumerate the full archive before fetching. - Canonical-URL dedup and idempotent re-runs: Strips tracking parameters and checks the brain before every write, so re-running an ingestion never duplicates pages. - Pacing, husk repair, and gated-post handling: Paces requests with 429 backoff, skips paywalled posts, and detects and repairs near-empty "husk" pages. - Use Case: Point it at a Substack publication to backfill every public post as a clean, normalized source page, then hand off to enrichment for entity linking. ## Quick Start Ingest this whole blog into my brain, walking its feed and writing one deduplicated source page per public post.

Frequently Asked Questions about blog-ingest

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I ingest an entire blog or newsletter archive?

Provide the publication URL and the skill discovers its RSS/Atom feed or sitemap, enumerates the full archive, and writes one normalized source page per public post. It deduplicates by canonical URL so re-runs never create duplicates.

How do I backfill a Substack publication into a knowledge base?

Substack publications are treated as ordinary feed sources: the feed lives at /feed and full-archive enumeration uses /sitemap.xml. Only public posts are ingested; gated posts are detected and skipped with a logged reason.

Does blog ingestion handle paywalled or gated posts?

Gated posts are detected via paywall markers or truncated preview bodies and skipped with a logged reason. The skill never uses alternate endpoints, session cookies, or credentials to reach gated content.

When should I use single-article ingestion instead of whole-publication ingestion?

Use single-article ingestion (idea-ingest) when the job is one URL in, one page out. Publication-scope ingestion is only for jobs that require enumerating an archive or walking a feed across many posts.

Why do re-runs of blog ingestion not create duplicate pages?

Every post is keyed by its canonical URL with tracking parameters stripped, and the brain is searched before each write. Existing pages are skipped, making re-runs idempotent and cheap.

What happens when a fetch returns a rate limit or empty page?

On HTTP 429 the skill backs off exponentially up to 30 seconds and honors Retry-After headers. Near-empty husk pages are detected after the run and either re-fetched slowly or deleted if the post turns out to be gated.