[alexanderwhitestone.com] RSS feed — the sovereign API for the principal's voice #218

Closed
opened 2026-03-15 17:22:58 +00:00 by hermes · 2 comments
Collaborator

What

The RSS feed at AlexanderWhitestone.com is how Hermes reads his principal's public voice. It replaces the X/Twitter API entirely.

Spec

  • URL: https://alexanderwhitestone.com/blog/feed.xml
  • Format: RSS 2.0 or Atom 1.0
  • Content: full post text (not truncated), dates, titles
  • Auto-generated from markdown files in blog/posts/

How Hermes Reads It

curl -s https://alexanderwhitestone.com/blog/feed.xml | python3 -c "
import xml.etree.ElementTree as ET, sys
tree = ET.parse(sys.stdin)
for item in tree.findall('.//item')[:10]:
    print(item.find('title').text)
    print(item.find('description').text[:200])
    print('---')
"

No API keys. No CAPTCHA. No platform dependency. Just a GET request to a feed you own.

Philosophy Loop Integration

The Rockachopa influence cycle reads this feed instead of scraping X. When the feed is empty or the site is down, falls back to local artifacts (SOUL.md, Trip T Canon).

Scope

Built into whatever static site generator we choose. Hugo and most generators produce RSS by default.

## What The RSS feed at AlexanderWhitestone.com is how Hermes reads his principal's public voice. It replaces the X/Twitter API entirely. ## Spec - URL: `https://alexanderwhitestone.com/blog/feed.xml` - Format: RSS 2.0 or Atom 1.0 - Content: full post text (not truncated), dates, titles - Auto-generated from markdown files in `blog/posts/` ## How Hermes Reads It ```bash curl -s https://alexanderwhitestone.com/blog/feed.xml | python3 -c " import xml.etree.ElementTree as ET, sys tree = ET.parse(sys.stdin) for item in tree.findall('.//item')[:10]: print(item.find('title').text) print(item.find('description').text[:200]) print('---') " ``` No API keys. No CAPTCHA. No platform dependency. Just a GET request to a feed you own. ## Philosophy Loop Integration The Rockachopa influence cycle reads this feed instead of scraping X. When the feed is empty or the site is down, falls back to local artifacts (SOUL.md, Trip T Canon). ## Scope Built into whatever static site generator we choose. Hugo and most generators produce RSS by default.
hermes changed title from [alexanderwhitestone.com] RSS/Atom feed as machine-readable voice to [alexanderwhitestone.com] RSS feed — the sovereign API for the principal's voice 2026-03-15 17:26:02 +00:00
Author
Collaborator

Partially addressed by the Tower scaffold (hermes/alexanderwhitestone.com#1). Atom feed (blog/feed.xml) and build script (scripts/build.py) generate feed from markdown posts. Remaining: decide if this stays hand-rolled or moves to Hugo, add post-level HTML pages, configure sovereign hosting/domain.

Partially addressed by the Tower scaffold (hermes/alexanderwhitestone.com#1). Atom feed (blog/feed.xml) and build script (scripts/build.py) generate feed from markdown posts. Remaining: decide if this stays hand-rolled or moves to Hugo, add post-level HTML pages, configure sovereign hosting/domain.
Author
Collaborator

Done. The Atom feed at /blog/feed.xml is fully functional:

  • Atom 1.0 format
  • Full post text (not truncated) in CDATA
  • Dates, titles, permalinks
  • Auto-generated from markdown by build.py

Hermes reads it with:

curl -s https://alexanderwhitestone.com/blog/feed.xml

Shipped in hermes/alexanderwhitestone.com PR #2. Closing.

Done. The Atom feed at `/blog/feed.xml` is fully functional: - Atom 1.0 format - Full post text (not truncated) in CDATA - Dates, titles, permalinks - Auto-generated from markdown by `build.py` Hermes reads it with: ```bash curl -s https://alexanderwhitestone.com/blog/feed.xml ``` Shipped in hermes/alexanderwhitestone.com PR #2. Closing.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#218