ingest — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ingest (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
User provides new posts, writer content, URLs, or newsletter URLs to add to the system.
data/brain/pmm_brain.json voice profile if needednewsletter_insights section of the BrainWhen user provides a newsletter URL for scraping (e.g., "scrape this newsletter", "ingest posts from https://..."):
python3 -m src.ingestion.newsletter_scraper \
--url "https://newsletter-url.com" \
--days 90 --full-contentThis auto-detects the platform (Substack or Beehiiv), scrapes posts, stores them in SQLite + ChromaDB, and saves raw JSON to data/scraped/.
python3 -m src.ingestion.newsletter_scraper \
--url "https://newsletter-url.com" \
--days 90 --full-content --output brain-briefdata/brain/pmm_brain.json:newsletter_insights: Add/update entry with focus, key_frameworks, key_data_points, contrarian_insights, useful_forevidence_bank: Extract concrete stats, benchmarks, data pointspmm_value_landscape: Note contested or emerging beliefssynthesized_mental_models: Extract new mental models or frameworkstopic_depth_layers: Add practitioner wisdom, common mistakes, key debates#### CLI flags
| Flag | Description |
|---|---|
--url | Newsletter URL (required) |
--name | Source name (auto-detected from author if omitted) |
--days N | Only scrape last N days |
--max-posts N | Limit total posts |
--keywords "a,b" | Filter by keywords |
--full-content | Fetch full post bodies (slower, richer for synthesis) |
--no-store | Skip SQLite/ChromaDB storage, just preview |
--output | summary (default), json, or brain-brief |
#### Supported platforms
/api/v1/archive JSON endpoint/posts JSON endpointNewsletter 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.)Confirm what was ingested and what changed in the Brain.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.