myfeeds.sgit.ai v0.1.8

myfeeds.sgit.ai / Back office

ai-generated, unreviewed what this means

Runnable

Tools

Everything needed to build, check, publish and recover, in this repository, with nothing to install beyond Python 3.11 and Node 22. Each one is a single file and each one is documented in its own header rather than here, so the documentation cannot drift from the thing it documents.

admin/tools/wayback_archive.py

wayback_archive.py

Recovers a site from the Internet Archive into files you own: originals in id_ mode, a markdown rendering, and a manifest that states what the sitemap listed and no crawler ever captured.

python3 admin/tools/wayback_archive.py mvp.myfeeds.ai --out back-office/archive

admin/build/build_pages.py

build_pages.py

The site generator. Every page, every markdown twin, llms.txt, the team pages from their ROLE.md files, and this back office.

python3 admin/build/build_pages.py

admin/build/validate.js

validate.js

The release gate. Link resolution, twin presence, the authoring contract, status vocabulary, roster agreement, the deploy pipeline.

node admin/build/validate.js

admin/build/verify-live.sh

verify-live.sh

Asks the live site what version it is serving. Green CI means GitHub accepted an artifact, not that anyone can read it.

./admin/build/verify-live.sh

Why the archiver has a long header

Because three separate things lose content while appearing to work, and each cost a run before it was understood: the Internet Archive's collapse=urlkey hides good captures behind redirects; fetching without the id_ modifier archives the Wayback Machine's rewritten copy rather than the site; and a blog's feed frequently holds writing whose own pages were never captured, so it is a primary source and not a fallback. Those are written into the tool where somebody modifying it will read them.