agentsclimarketplace

Ingest

Skill raven-sourav/pmm-content-engine/skills/ingest

PMM Content Distribution Engine — Newsletter scraper, Obsidian knowledge brain, multi-format content generation powered by Claude Code

Install
npx -y skills add raven-sourav/pmm-content-engine --skill ingest

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.3 KB, as published. Nobody here has run it

Skill: Ingest New Content

Trigger

User provides new posts, writer content, URLs, or newsletter URLs to add to the system.

Process

For new user posts

  1. Read the .docx or text content
  2. Analyze for voice patterns, new mental models, topic evolution
  3. Update data/brain/pmm_brain.json voice profile if needed
  4. Store in ChromaDB for gap map retrieval

For new reference writer content

  1. Read the .docx, URL, or text content
  2. Analyze for mental models, argumentation patterns, thinking process
  3. Update the PMM Brain's synthesized models if new patterns found
  4. Store in ChromaDB for gap map retrieval

For newsletter/blog URLs

  1. Fetch and read the content via WebFetch
  2. Extract writer identity, key themes, mental models, unique perspectives
  3. Add to newsletter_insights section of the Brain
  4. Note any new emerging beliefs for the value landscape

For newsletter scraping (Substack / Beehiiv)

When user provides a newsletter URL for scraping (e.g., "scrape this newsletter", "ingest posts from https://..."):

  1. Scrape — Run the newsletter scraper to pull posts:

    python3 -m src.ingestion.newsletter_scraper \
      --url "https://newsletter-url.com" \
      --days 90 --full-content
    

    This auto-detects the platform (Substack or Beehiiv), scrapes posts, stores them in SQLite + ChromaDB, and saves raw JSON to data/scraped/.

  2. Generate brain brief — Get the synthesis brief:

    python3 -m src.ingestion.newsletter_scraper \
      --url "https://newsletter-url.com" \
      --days 90 --full-content --output brain-brief
    
  3. Synthesize into Brain — Read the brain brief and update data/brain/pmm_brain.json:

    • newsletter_insights: Add/update entry with focus, key_frameworks, key_data_points, contrarian_insights, useful_for
    • evidence_bank: Extract concrete stats, benchmarks, data points
    • pmm_value_landscape: Note contested or emerging beliefs
    • synthesized_mental_models: Extract new mental models or frameworks
    • topic_depth_layers: Add practitioner wisdom, common mistakes, key debates
  4. Verify — Confirm what was added to each Brain section.

CLI flags

FlagDescription
--urlNewsletter URL (required)
--nameSource name (auto-detected from author if omitted)
--days NOnly scrape last N days
--max-posts NLimit total posts
--keywords "a,b"Filter by keywords
--full-contentFetch full post bodies (slower, richer for synthesis)
--no-storeSkip SQLite/ChromaDB storage, just preview
--outputsummary (default), json, or brain-brief

Supported platforms

  • Substack — uses public /api/v1/archive JSON endpoint
  • Beehiiv — uses hidden /posts JSON endpoint
  • Both work with custom domains (auto-detected)

For visual illustrations

  1. Read images to understand visual style
  2. Update visual signature in voice profile if patterns have evolved

Data Flow

Newsletter URL
  → newsletter_scraper.py (detect platform → scrape → filter)
  → data/scraped/{source}_{timestamp}.json (audit trail)
  → SQLite posts table + ChromaDB embeddings (retrieval)
  → Brain synthesis brief (for Claude analysis)
  → pmm_brain.json updates (newsletter_insights, evidence_bank, etc.)

Output

Confirm what was ingested and what changed in the Brain.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.