diff --git a/.gitignore b/.gitignore
index e43b0f9..2348c91 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
.DS_Store
+__pycache__/
+*.pyc
diff --git a/CLAUDE.md b/CLAUDE.md
index 45c2fb1..9b4b58f 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,23 +4,33 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Repository Overview
-This is a GitHub profile repository containing only a README.md file that displays on the @developtheweb GitHub profile page. There is no source code, build configuration, or tests in this repository.
+This is the GitHub profile repository for @developtheweb. Its README renders on the profile page and is a live system, not a static page: an animated entropy-reversal SVG whose state is lowered by visitors ("Maxwell's demon"), plus nightly-refreshed telemetry. Do not reintroduce third-party rendering services (capsule-render, readme-typing-svg, komarev, vercel stats/quotes apps) — everything renders from this repo, GitHub, or stevenmilanese.com assets.
-## Repository Structure
+## Architecture
```
-/home/aurelius/git/developtheweb/
-└── README.md
+README.md profile page; contains marker-fenced generated sections
+engine/generate_entropy_svg.py SMIL-animated assets/entropy.svg from state/demon.json (stdlib only)
+engine/nightly.py refreshes README marker sections + bumps entropy generation (stdlib only)
+state/demon.json bits_sorted / generation / demons / last_sorted_at
+assets/entropy.svg generated — never hand-edit; regenerate via the engine
+.github/workflows/demon.yml issues:opened, title "demon: sort 12 bits" → +12 bits, regen SVG, commit, comment, close
+.github/workflows/nightly.yml cron 17 6 * * * → engine/nightly.py, commit if changed
+.github/workflows/snake.yml cron every 12h → contribution snake SVGs on the `output` branch
```
-## Working with this Repository
+## README marker sections (machine-written — edit the generators, not the sections)
-Since this is a profile repository with only a README.md file:
+- `` — 4 newest Strange Quarks articles (RSS `/feed.xml` if populated, else parsed from https://stevenmilanese.com/blog HTML)
+- `` — telemetry row with live star/repo totals
+- `` — featured cards (anthropic-certs, slTrain, meowchi-releases, mpl) with live star counts
-- Any changes should maintain the professional formatting and structure of the profile README
-- The README uses GitHub-flavored markdown with centered content, badges, and images
-- External image assets are referenced from `https://github.com/developtheweb/stevenmilanese-com/blob/main/public/`
+`engine/nightly.py` is fail-safe per section: on fetch/parse failure it leaves that section untouched and exits 0.
-## Note
+## Conventions
-This is not a development project - it's a GitHub profile repository used for personal branding and showcasing work. There are no build commands, tests, or development workflows associated with this repository.
\ No newline at end of file
+- Conventional commit messages (`feat:`, `fix:`, `chore:`, `ci:`). No attribution footers of any kind.
+- Contact is `rev@moonfactory.dev` only — the old Telegram link and the old level-host email address are retired and must not reappear.
+- Entropy formula: `S = max(12.7, 100 − 0.0002·bits_sorted)`; 12 bits per demon click = 34.4 zJ (12 × kT ln 2 at 300 K).
+- SVG regeneration is deterministic for a given `generation` — diffs stay reviewable.
+- Test locally with `python3 engine/generate_entropy_svg.py` and `GITHUB_TOKEN=$(gh auth token) python3 engine/nightly.py` (both stdlib-only; no pip installs).
diff --git a/README.md b/README.md
index 47ffd49..b0ea0d3 100644
--- a/README.md
+++ b/README.md
@@ -1,191 +1,120 @@
-
-
+# Reversing the irreversible
-
-
+*Rev. Steven Milanese — the second law is statistical, not sacred. The demon pays its bills in bits.*
-
- [](https://git.io/typing-svg)
-
-
-
-
-
-
-
-
+
+
+ [⚡ Be the demon — sort 12 bits](https://github.com/developtheweb/developtheweb/issues/new?title=demon%3A+sort+12+bits&body=One+tap.+Submit+to+sort.)
+
+ Each click opens a one-tap issue; an Action sorts the field, recommits the SVG, closes the issue. This README's state is community-lowered entropy.
-
-
-
-
-
-
+## About the Reverend
-## 🎯 About Me
-
-```python
-class StevenMilanese:
- def __init__(self):
- self.title = "Autodidactic Polymath | Systems Alchemist"
- self.location = "🌍 Earth"
- self.os = "Arch Linux BTW 🐧"
- self.current_focus = ["AI Architecture", "Quantum Computing", "WebGL", "Spiritual Tech"]
- self.philosophy = "Bridge technical excellence with human experience"
-
- def transform_challenges(self, problem):
- return f"✨ Inspired solution for {problem}"
+```
+Reverend ≔ Physicist ⊗ Minister ⊗ Systems_Alchemist
+domain : ℝ³·¹ ⊗ CY₃(χ = ±6)
+axiom : complexity ⟼ elegance
+method : ∀ p ∈ Inconceivable — solve(p) ∨ pose(better_p)
+runtime : Arch Linux, btw
```
-I transform complex challenges into inspired technological solutions. By seamlessly integrating Artificial Intelligence with cutting-edge development practices, I create systems that push the boundaries of what's possible. My expertise spans multiple domains including theoretical physics, mathematics, AI systems architecture, and spiritual technology.
+*Written in MPL — the author's own language. Ordained minister, autodidactic polymath, natural philosopher. The ministry and the physics are the same inquiry conducted at different energy scales.*
-## 🚀 Tech Arsenal
+## The mission — goals inconceivable by design
+
+
+
+
+**Reverse the irreversible**
+
+Maxwell's demon on GitHub's own infrastructure, funded in Landauer's currency. *(running above)*
+
+
+
+
+**Derive the three generations**
+
+Calabi–Yau compactifications, χ = ±6. [ORCID](https://orcid.org/0009-0008-0442-208X) · [OSF](https://osf.io/3tsd4/) · [companion essays](https://stevenmilanese.com/blog/tag/calabi-yau-manifolds)
+
+
+
+
+
+
+**Cognitive universality**
+
+[MPL](https://github.com/developtheweb/mpl): if you can write the equation, you can run it.
+
+
+
+
+**Planetary intelligence**
+
+Earth as information processor, argued in full on [Strange Quarks](https://stevenmilanese.com/blog/planetary-intelligence-earth-as-information-processor).
+
+
+
+
+
+
-### Languages & Frameworks
-
-
-
-
-
-
-
-
-### Operating System & Environment
-
-
-
-
-
-### Tools & Technologies
-
-
-
-
-
-
-
+`10¹⁰⁶ yr until heat death — the deadline` · `2.9 zJ of order per bit sorted (kT ln 2, 300 K)` · `★ 27 stars across 14 public repos`
+
-## 📊 GitHub Analytics
+## Beneath the physics — the verified inventory
+
diff --git a/assets/entropy.svg b/assets/entropy.svg
index cf0c11c..ecb6ae4 100644
--- a/assets/entropy.svg
+++ b/assets/entropy.svg
@@ -1,126 +1,126 @@
diff --git a/engine/nightly.py b/engine/nightly.py
index d4358b2..9a2f04b 100644
--- a/engine/nightly.py
+++ b/engine/nightly.py
@@ -27,8 +27,14 @@ README = os.path.join(ROOT, "README.md")
STATE_PATH = os.path.join(ROOT, "state", "demon.json")
SITE = "https://stevenmilanese.com"
-FEED_URL = f"{SITE}/feed.xml"
+# The real feed. /feed.xml was a guess that 404'd for weeks while the HTML
+# fallback silently matched nothing, so the FEED table quietly froze; it now
+# also 301s here, but point at the canonical URL rather than lean on that.
+FEED_URL = f"{SITE}/rss.xml"
BLOG_URL = f"{SITE}/blog"
+# The site publishes read-time in its own namespace — valid for strict parsers,
+# unambiguous for this one.
+MANUSCRIPT_NS = "https://stevenmilanese.com/ns/manuscript"
FEATURED_REPOS = [
("anthropic-certs", "Verified Anthropic certifications — Claude, API, Claude Code CLI, MCP."),
@@ -63,6 +69,11 @@ def replace_section(text, marker, body):
def articles_from_rss():
+ """Primary source: the site's real feed.
+
+ The feed carries read-time in the site's own namespace, so the meta column
+ comes from the publisher rather than being scraped back out of a page.
+ """
root = ET.fromstring(fetch(FEED_URL))
items = []
for item in root.iter("item"):
@@ -74,47 +85,70 @@ def articles_from_rss():
date = datetime.datetime.strptime(pub[:16].strip(), "%a, %d %b %Y")
except ValueError:
pass
+ mins = (item.findtext(f"{{{MANUSCRIPT_NS}}}readingMinutes") or "").strip()
+ meta = f"{mins} min read" if mins.isdigit() else ""
if title and link:
- items.append({"title": title, "url": link, "date": date, "meta": ""})
+ items.append({"title": title, "url": link, "date": date, "meta": meta})
return items
def articles_from_html():
+ """Fallback: parse the blog index.
+
+ Written against the Manuscript's markup, which is regular enough not to
+ need heuristics — each entry is a `row` div holding one anchor and one
+ `meta` span:
+
+