Changelog
Updates
Every commit to the archive's code and catalog, newest first, generated straight from git history at build time. See how the agents, gates, and audit records fit together.
August 12, 2026
- Document the div-as-paragraph extraction fix and NON_WORK_CHAPTERS
- Fix flattened paragraphs in i-pencil, drop FEE back-matter chapter
- Fix drifted numbers, model naming and strip layout on /how-its-built/
- shorten TTS disclosure: "Machine-generated narration (TTS)"
- Add extract_voice_ref.py script for extracting voice reference clips
- Regenerate i-pencil.m4b with Milton Friedman voice clone for Afterword
- Build recruiter-facing engineering record page
- Add .m4b MIME mapping for TTS audiobooks
- Update i-pencil TTS to use Milton Friedman voice clone for Afterword
- Add Milton Friedman voice reference for i-pencil Afterword narration
- Fix book-tts.json sidecar shape to match the site loader
- Generate i-pencil TTS narration with Leonard Read voice clone
- Extract LeFevre's Journal per-issue tables of contents from the Mises DB
- Document the local Mises SQL Server database as a governing spec
- Amend audio-tts.md to permit real-voice cloning for Leonard Read
- Wire up TTS audio narration: generator script, data model, templates, JSON-LD
- Update "How It's Build" spec
- Use multiple voice for multiple writers
- Spec the /how-its-built/ recruiter page: five models, four pipelines, evidence rules
- Record the i-pencil TTS pilot's decisions: Chatterbox, M4B chapters, front-matter exclusion
- Add automatic /updates/ changelog page from raw git history
- Draft text-to-speech audio narration spec, pilot candidate I, Pencil
- Fix stray doc reference in _fingerprint_assets docstring
- Fix LCP lazy-loading bug and minify site.css for client-side performance
- Recover 1 more book cover via fetch_covers.py
August 11, 2026
- Add held-but-not-published byte totals to /stats/
- Diversify homepage hero medallions: more Austrian greats, add women
- Redesign journal marks as full-width nameplate bands
- Fix unreachable download links on book pages with read-online enabled
- Refresh chapter OCR audit findings
- Enable Human Action's full-text reading pages; add enable-book-fulltext skill
- Correct 15 more books' legacy-OCR chapter headings from the audit backlog
- Add Legal Foundations of a Free Society (Kinsella, 2023)
- refine instructions
- Add The Machinery of Freedom by David D. Friedman
- Update god-of-the-machine.png
- Install the commissioned God of the Machine cover
- Fix legacy-OCR chapter headings on god-of-the-machine, add the correction mechanism
- Recreate the God of the Machine first-edition jacket, not just its argument
- Add a God of the Machine cover brief drawing on the first-edition jacket's own metaphor
- Add a triage script confirming legacy OCR heading errors are catalog-wide
- Add a third dist preview port
- Set the site tagline to the bare domain
- Fix the sticky courses toolbar flicker at rest
- Build the hero "Lineage" author medallions
- Enrich the God of the Machine book page
- Compact the courses page head so a card row clears the fold
- Install commissioned covers for Acton, Hoppe, McCarran, and Mises' Socialism
- Trim hero-animation spec: drop rights and alternatives sections
- Compact the books filter bar: one control row plus a Filters disclosure
- Add manual topic overrides for canonical books with thin metadata
- Link homepage stat numbers to their index pages
- Spec the hero "Lineage" floating author-medallion animation
- Link study guides to the books they cover
- Add cover briefs for Acton, Hoppe, McCarran, and Mises' Socialism
- Import Cuhel's On the Theory of Needs and Reed's When Money Goes Bad
- Import 2 new Kirzner FEE titles, enrich 2 records with EPUBs
- Fix author page duplicate lead sentence and raw ISO life-span dates
- Update license-audit-report.md
- Fix FreemanFEE original-source link: freeman.fee.org, not mises.org
- Link journal series and issue pages to their original mises.org periodical page
- Sync 2 stale formats.pdf.bytes fields in catalog.json
- Delete mises-at-facts-dump.json
- Import 79 mises.at Denker biographies into author-bios.json
- Embed OCR text layer into the Mises Geldwertstabilisierung PDF
- Embed OCR text layer into the Strigl PDF; fix its garbled metadata
- Fill more /authors/ portrait gaps: full bio pass + mises.at merge
- Link authors index to mises.at's Austrian School family tree
- Add facts-only extractor for mises.at's 79-thinker Denker library
- Log the Strigl OCR run in data/ocr-runs.json
- Add scripts/ocr_pdf.py: manual OCR for scanned, no-text-layer catalog PDFs
- Stop triage rejecting permissions-only encrypted PDFs as unreadable
- Add per-issue table of contents for Rampart Journal
August 10, 2026
- Publish the FEE-era Freeman's per-issue tables of contents
- Add per-issue table of contents for the independent-era Freeman
- Surface journal article/table-of-contents detail on /stats/
- Add scripts/extract_faf_contents.py, the faf table-of-contents extractor
- Recover real interview titles/authors for the Austrian Economics Newsletter
- Add per-issue table of contents for American Affairs, and commit its shared rendering infrastructure
- Implement archive publication RSS feeds
- Add per-issue contents for The Free Market from dbo.FreeMarket
- Recover qjae article titles/authors from the Mises DB citation table
- Add rae article extraction script (data already merged upstream)
- Recover real per-article titles/authors for jls from the Mises DB
- Spec RSS feeds for the three indexes and each author page
- Fix circular PD-basis flattening in build_book_rights.py
- Source scholar working-paper metadata from the Mises DB, not just PDF layout
- Extract real titles/authors for scholar and lar journal PDFs
- Add author outreach row to AGENTS.md doc-routing table
- Merge FreemanFEE's 685 issues into catalog-media.json, add its provenance sidecar
- Import the real Libertarian Papers journal, replacing the lp_test.pdf placeholder
- Add the 2 missing book-rights records (recovered books, rebuild lag)
- Add the author outreach builder, email renderer and drafting skill
- Spec the author outreach campaign (permission, complete works, amplification)
- Add FreemanFEE journal: FEE's own Freeman run, 1955-2015
- Document the payload_requests reweight in courses-page.md and the proxy builder
- Weight file-host downloads above Wikipedia fame in demand proxy
- Add a description line and typographic mark to each /journals/ card
- Restamp 2 stale epub bytes fields in catalog.json
- Order /courses/ by demand instead of A to Z
- Commission an original cover for I, Pencil
- Add cover brief for I, Pencil
- Fix 184 stale formats.*.bytes fields in catalog.json
- Strip the outdated title-page banner image from 60 EPUBs
- Point the docs and generated install text at the new payload root
- Move the library payload root D: -> F: behind one resolver
- Add /stats/: every measured total the build can state
- Fix nested-anchor chapter-boundary bug; sweep catalog for the class
August 9, 2026
- Document the chapter-boundary ordering bug and its unswept scope
- Reconvert remaining 98 pypdf-html books; fix chapter-boundary ordering bug
- EPUB conversions progress checkin
- Commission a cover for The Myth of National Defense
- Brief a commissioned cover for The Myth of National Defense
- Document the pypdf-html converter bug fix and the zero-outline triage
- Fix EPUB converter's pypdf-html fallback: no page anchors, no rights metadata
- Split Economy, Society, and History into its real 15 chapters
- Fold pills and controls when the books/courses filter bar pins to top
- Commission an original cover for Man, Economy, and State with Power and Market
- Commission an original cover for Principles of Economics
- Stage top-10-by-demand books for this week's featured shelf
- Add a cover brief for Menger's Principles of Economics
- Add a cover brief for Man, Economy, and State with Power and Market
- Make the next commission run better: step 0, and the extraction boundary
- Refine the commission-cover skill from the Hazlitt session
- Commission an original cover for Economics in One Lesson
- Add a cover brief for Economics in One Lesson
- Turn the cover commissioning process into a reusable skill
- Replace the History of Money and Banking cover with the second-round pick
- Install For a New Liberty (variant 3) and let named briefs re-run
- Install four generated covers
- Record the fabrication failure in the cover-brief README
- Add Codex backend for cover generation
- Link book pages straight to their chapters
- Redraw 29 covers whose catalog titles were de-inverted
- Put both cover generators on generator/coverart.py
- Add the off-site content strategy: where rejected ideas go
- Draw cover art for the 37 lecture series with no cover
- Fit the author line and split dash subtitles (cover recipe v5)
- Add a harness to answer cover briefs with gpt-image-1
- Merge master: commissioned cover tier and per-slug grain seed
- Install four more commissioned covers
- Write cover briefs for the other nine top books
- Draw cover art for the 400 books with no usable cover
August 8, 2026
- Add a commissioned cover tier and install the Bureaucracy cover
- Add reversible provenance for machine-made artifacts
- Add a content-first cover brief for Bureaucracy
- Make top-N lookup and cover drawing repeatable in two commands
- Draw original cover art for the 10 most-requested books
- Fix two raw-filename titles left over from this session's metadata fixes
- Migrate the 4 audio-only hidden books into the media/courses catalog
- Recover our-enemy-the-state from a verified copy David supplied
- Un-hide tengreateconomists-schumpeter, point it at the archive.org record
- Recover 5 books, hide 19, resolve the last of the 36 degraded books
- Refresh metadata QA report after the no-google enrichment rerun
- Rerun enrich_metadata.py --no-google (Google Books IP quota exhausted)
- Rerun extract_book_extents.py against the current D: drive catalog
- Rerun build_book_topics.py; exclude catalog-hidden.json ids
- Fix book-text.json indent width from the prior prune
- Hide 6 books, prune stale sidecar entries after the dedupe pass
- Dedupe 6 orphan catalog records, add the book-hide sidecar mechanism
- Add a one-time proxy demand tier for unranked /books/ sorting
- Add the content strategy, written against measured state
- Sort /books/ by measured demand instead of A to Z
- Build the measured keyword-target bucket: 81 books, ranked on real demand
- Record what the fee.org and mises.org GSC exports change
- Import the fee.org and live mises.org GSC exports as catalog demand data
- Convert 74 more mechanical-ready PDFs to EPUB
August 7, 2026
- Convert 26 recovered PDFs and extract the newly public-domain books
- Point the extraction override at the consolidated rights record
- Fix the text-first EPUB fallback: rebuild paragraphs, don't emit one
- Update the doc routing and the six affected specs for the rights consolidation
- Deprecate the five rights sidecars without deleting them
- Switch the derivative and full-text gates to the shared rights record
- Switch the export gate and the book pages to the shared rights record
- Add the consolidated rights record and the one gate function
- Admit the audit's public-domain books to full-text extraction
- Add EPUB/AZW3 for Wieser; log 5 new conversions
- Record three EPUB QA failures
- Add the book-rights consolidation design note
- Export the public-domain books in the bulk dataset
- Let a public-domain determination clear the EPUB licence gate
- Treat unrenewed, not-published-abroad books as public domain
- Search the CCE renewal record for every renewal-era catalog book
- Extend license-audit.json's public-domain-by-age determination to pre-1932
- Update docs/deploy.md for the rsync transfer swap
- Fix deploy verification asserting <urlset on the sitemap index
- Fix deploy.ps1 rsync passing a bare "/" as a second source
- Replace deploy.ps1's tar+scp+extract transfer with a direct rsync
- Update about.html
- Link the published HuggingFace dataset from llms.txt and /about/
- Extend the public-domain gate from pre-1930 to pre-1932, per David's decision
- Update licensing docs and age thresholds
- Publish full text of Pictures of the Socialistic Future; document the process
- Publish full text of Against Intellectual Property; add Read online filter
- Condense licensing.md to cut token cost of parsing it
- Empty the descriptions that were only PDF document properties
- Retire pre-2014 books torrents and the Shanghai conference torrent
- Stop claiming the whole library is Creative Commons
- Merge llms.txt prose, file-host sitemap, and lecture rights JSON-LD
- Withhold the full text of books whose rights cannot be established
- Carry the text, not the links: rebuild llms-full.txt
- A payload sitemap the file host can legally serve
- Say what the lecture rights actually are, without inventing a licence
- Merge the pre-2000 rights review: 155 of 177 cannot be established
- Fix the next-lecture links, and gate the class of bug that hid them
- Propose retiring the pre-2000 basis, and flag the routing error behind it
- Correct the deploy payload size, and measure what a cutover now costs
- Re-determine the rights basis for the 177 books published on age alone
- Merge the lecture transcript release into the dataset export
- Publish the book text: 8,899 static chapter pages
- Open the lecture transcripts, on an operator authorisation and not a licence
- Recover the section headings the EPUBs encode as styled paragraphs
- Runbook for the dataset export, and route to it from AGENTS.md
- Publish per-work rights as data, and export the CC-licensed corpus
- Record why the corpus was invisible, and the two steps left
- Guard the crawler access the archive depends on
- Diagnose the 100-word failures: Calibre rasterizes a good text layer
- Quarantine has never actually quarantined anything
- Rebuild all 116 books at converter v5
- Record what v5 actually shipped, including the gate that had to be redesigned
- Converter v5: reflow the paragraphs, catch the decoding failures
- Correct the small-caps measurement, survey Calibre's options, scope the v5 run
- Measure what the converted EPUBs actually look like, and plan v5
August 6, 2026
- Reconvert all 116 books at converter v4
- Stop Calibre inflating small books with a cover nobody asked for
- FEE spec: the licence was in the ebook, not on the website
- Stamp every generated book with the converter version that made it
- Let the site state the FEE licences, and stop trusting the catalog about disk
- Update catalog.json
- Update pdf-epub-conversions.json
- Record FEE EPUB licenses in audit sidecar
- Record the FEE rights tiers from the strongest evidence in the file
- Import the six FEE ebooks whose licence is printed in the file
- Give the generated EPUBs structure, rights, and a Kindle edition
- FEE: fix the dedupe matcher, add the merit verdict, defer rights
- Add FEE import criteria: five gates, plus triage of the 162 fee.org ebooks
- Harden the PDF->EPUB pipeline: live licence gate, real QA, spec doc
- Strip HTML markup before it reaches Calibre's --title/--authors
- Fix wrong EPUB metadata: force --title/--authors, don't trust the PDF's own
- Finish PDF->EPUB conversion: all 116 mechanical-ready books done
- Record the Wayback snapshots as a rejected licence source (licensing.md 2.1)
- Drop duplicate Garrison "Lachmann Legacy" catalog record
- Record the 85 conversions from this session's batch run in the sidecar
- Fix catalog-write durability bug; backfill 80 converted books
- Add PDF->EPUB conversion pipeline; convert first 5 mechanical-ready books
- Rerun license verifier; refresh EPUB-candidate license gates
- Add PDF-only EPUB-candidate triage script
- Convert 8 mobi-only Review of Austrian Economics volumes to epub
- Update lecture-transcripts.json
- There is no transcription bug: the 15 are video duplicates
- Update lecture-transcripts.json
- Correct the wmav2 scope to 15 lectures and record the near-miss
- Re-transcribe five singleton lectures; no material change
- Fix Ctrl+C not stopping transcribe_lectures.py on Windows
- Clean up docs/: remove completed reports, dead WP-migration docs
- Transcribe WMV-only lectures from their converted MP4
- Record the completed transcript corpus and the WMV failure mode
- Update lecture-transcripts.json
- Stop the-quotable-mises's topic index from rendering as chapters
- Demote two book-structure.json entries that aren't chapter lists
August 5, 2026
- Update lecture-transcripts.json
- Record the chapter-table review and promotion in both specs
- Fix apparatus-filter gap; promote 493 high-confidence chapter tables
- Record the chapter-table extraction; correct the two projections it disproved
- Extract chapter tables from PDF outlines, proposed for review
- Record items 3.1, 3.4 and 3.8 as done; re-measure the coverage table
- Adjudicate the six companion-course candidates; add the alias sidecar
- Journal issue computed answers, and fix hours_phrase singular
- Order course lectures by mises.org document ID, not title
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Add book: Getting Libertarianism Right (Hans-Hermann Hoppe)
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- optimize images
August 4, 2026
- Prepare the books+journals move to R2
- Cost the cheaper file-host alternatives to R2
- Spec the in-browser EPUB viewer
- Add a 404 sweep for the published book/course download links
- Update lecture-transcripts.json
- Document the IIS MIME-map requirement on the file host
- Point I, Pencil at the canonical Leonard E Read directory
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Enrich the top-100 SEO-target books and courses
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Enrich the featured books and courses
- Update lecture-transcripts.json
- Document the incremental build and --full
- Update lecture-transcripts.json
- Make rebuilds incremental with a content-digest manifest
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Dedupe catalog records sharing a mises.org document id
- Update lecture-transcripts.json
- Update lecture-transcripts.json
- Make course pages rank on what a mirror cannot copy
- Publish the mises.org summaries for The Failure of the "New Economics"
- Order course lectures numerically; enrich The Failure of the "New Economics"
- Publish the lecture transcripts as a player-synced reader
- Update mechanical-seo.md
- Spec the remaining mechanical SEO work, measured and ranked
- Update lecture-transcripts.json
- Log page-type parity results and what was cut
- Extend computed FAQs and answer leads to courses, authors and lectures
- Harden rebuilds against Windows file locks
- Update Hazlitt PDF source
- Record measured coverage and the plan for scaling book guides
- Compute book-page FAQs from the model, for the whole catalog
- Link Economics in One Lesson to legal free copies elsewhere
- Document the book-guides enrichment layer and its baseline
- Enrich book pages with verified editions, chapter guides and FAQs
- Add companion book to course JSON-LD `about`
- Update lecture-transcripts.json
- Add book guides with chapters and FAQ schema
- Update lecture-transcripts.json
- Add tmp/ to .gitignore
- Add SEO targeting and ranking analysis
- Refactor generator pipeline for metadata integration
- Add lecture transcripts and journal article metadata
- Update site logo and styles
- Update author portraits and journal template
- Curate foundational authors shelf
- docs: record local IIS test URL
- Render faceted author pages and lecture catalog
- Build author index metadata and media relationships
- Update lecture-transcripts.json
- Temporarily disable SEO gate in deploy and pre-push
- Update lecture-transcripts.json
- Re-pull mises.org GSC at full depth; journals join, books do not
- Spec the authors index rebuild
- Add 20 new lecture transcript records
- Replace dead TOC scrape with the real files on the Mises trade-cycle essay
- Plan the 100-item SEO target search
- Strip stray HTML markup from publication_info
- Pick up further transcription progress
- Pick up further transcription progress
- Pick up further transcription progress
- Pick up further transcription progress
- Ignore local scratchpad dir; pick up latest transcription progress
- Merge journal issue-level pages (SEO backlog item 18)
- Group journal articles under real issue pages (seo-backlog #18)
- Merge AI answer-engine surfaces (SEO backlog item 10)
- Add AI answer-engine answerability blocks and visibility probe (backlog #10)
- Merge topic-hub cross-linking to courses and the wiki (SEO backlog item 7)
- Cross-link topic hub pages to courses and the companion wiki
- Merge book-page page-count surfacing (SEO backlog item 2)
- Surface book page counts on book detail pages; retire completed backlog items
- Merge reverse wiki-links dry-run tooling (SEO backlog item 11)
- Add wiki reverse-links dry-run planner (SEO backlog item 11)
- Remove SEO backlog item 19 (surname() fix already shipped)
- Further lecture-transcription progress
August 3, 2026
- Guard deploy verification against the apex pointing at the wrong origin
- Further lecture-transcription progress
- Further lecture-transcription progress
- Further lecture-transcription progress
- Drop the /tag/bittorrent/ live-verification check from both deploy twins
- Further lecture-transcription progress
- Further lecture-transcription progress
- Further lecture-transcription progress
- Note in assets/site.css that .license-note is currently unused
- Hide the per-book license-note block pending more licence-data refinement
- Remove the legacy /document/<id>/ book URL redirect
- Add scripts/audit_author_links.py: re-verify Wikipedia/Wikidata same_as links
- Merge pull request #1 from DavidVeksler/codex/dependabot-fleet
- Add chapter TOC, author card, and related-books to book detail pages
- Estimate the run from the model it will actually use
- Retry dist/ rmtree with backoff to survive transient Windows file locks
- Add indexable /topics/<slug>/ hub pages for the book topic taxonomy
- Fix util.surname() to actually implement its organisation-name promise
- Write up the pending SEO queue as docs/seo-backlog.md
- Stop the VAD from discarding the archival lecture recordings
- Automate Dependabot updates
August 2, 2026
- Replace the site-wide CC BY 4.0 claim with a per-book licence property
- Verify book licences per book instead of one blanket CC BY 4.0 claim
- Complete the manual per-book licence audit of all 990 books
- Licence audit: cross-check against the automated pass
- Licence audit: full file evidence in, report drafted
- Publish 2,728 lecture pages and 2,461 journal issue pages
- Licence audit: all 990 book files scanned
- Licence audit checkpoint: 717 of 990 books scanned
- Fix 13 wrong identity claims in the author biographies, and the matcher that made them
- Licence audit checkpoint: 398 of 990 books scanned
- Attribute the generated-description decision to David directly
- Start the manual per-book licence audit (checkpoint, scan in progress)
- Recover 68 real covers and 22 sourced descriptions from mises.org
- Publish the 54 owner-authorised books as an override, not a looser gate
- Extract full-text reading HTML from the archive's 312 EPUB books
- Finish the off-page outreach plan and wire it into the doc routing
- Extend the cover and metadata recovery sources (work in progress)
- Add the off-page outreach targets and backlink checker (work in progress)
- Add the lecture transcription pipeline (work in progress, pilot not yet run)
- Add the EPUB full-text extractor (work in progress, not yet wired in)
- Fix the title truncation bug and rebuild the SEO head
- Add project note: move the file payloads off the home IP
July 29, 2026
- Pin deploy.ps1's tar to Windows bsdtar instead of PATH
July 28, 2026
- Add the shield logo: favicon, apple-touch icon, masthead mark
July 23, 2026
- Add Start Here reading-order CTA and Kindle/Apple Books help modal
- Import 12 mises.org books, with a reusable add-book pipeline
- Fix deploy canary that false-failed on a hidden course
- Refresh the metadata enrichment QA report
- Finish the WMV conversion: all 133 lectures now stream
- Fix two encoder bugs that failed 26 of the WMV conversions
- Enroll 20 more courses in the mises.org metadata sidecar
- Update course-metadata sidecar with latest scraper progress
- Update course-metadata and wmv-conversion sidecars with latest progress
- Create wmv-conversions.json
- Add course year sorting and bulk metadata fetch
- Hide low-value conference/media series from the courses index
- Add a per-course podcast RSS feed
- Publish the mises.org lecture summaries on the Mises Archives course
- Convert the WMV-only lecture videos to streamable MP4
- Recover course recording years, dates and topics from mises.org
- Trim homepage featured books to 4 and reuse the /courses/ featured shelf
- Feature four courses on /courses/, and fingerprint asset URLs
- Redesign the courses filter into a faceted, shareable toolbar
- Strip dangling site-name separator when truncating <title> tags
- Merge four entity-mangled duplicate lecture series into canonical courses
- Require pwsh 7 in deploy.ps1: PS 5.1 falsely trips the target guard
- Add featured course and filter menu to the courses index
- Record the real crawler-403 cause: content_bots_protection, not Bot Fight Mode
- Redirect legacy WordPress paths to blogs.freecapitalists.org
- Enrich sitemap with lastmod, changefreq and priority
- Record the apex cutover: archive is live on the DO box, not local IIS
- Read the Cloudflare zone id from site.config.json so the purge stops skipping
- Promote the apex to the Liberty Archive; fix deploy verification UA
- Strip embedded YouTube videos from book/media descriptions
- Add wiki to primary nav before Torrents
- Point llms.txt at the companion wiki
- Link the archive to its companion wiki
July 22, 2026
- Fix the netplan trap with metadata-derived anchor policy routing
- Document the DO restore procedure and why the netplan trap stays
- Record the 2026-07-23 wipe, the WP-mu path rename, and the restore traps
- Refuse to rsync --delete over a foreign docroot in deploy scripts
- Remove biography source credits from author pages
- Improve author bio text and HTML across archive
- Standard Format For Author Biographies
- Add one-off catalog description cleanup script
- Resume author-bio resolution pass and fix 8 wrong-person matches
- Remove dead mises.org links from book and course descriptions
- Add author biographies, portraits and life dates to author pages
- Add light/dark theme toggle and link course speakers to author pages
- On-page SEO: rebalance meta descriptions toward content, away from licensing
- Merge duplicate author pages and dedupe records from scraped spelling variants
- Add agent-discovery Link headers and Content Signals to robots.txt
- Rewrite homepage hero: sharper H1, benefit-led subhead, add Download everything CTA
- Remove redundant tagline from About section
- Enrich book metadata: descriptions to 100%, original publication years to 94%
- Implement weekly featured section (books + courses) with hand-made selection
- Plan weekly-rotating homepage featured section (books + courses)
- Add real front covers for 82 books from Open Library (Phase 2)
- Add per-section OG cards and stop tracking scratchpad previews
- Derive book covers from PDF page 1 / EPUB when no real cover exists
- Cache cover thumbnails across builds
- Add generated OG card and Twitter metadata
- Refine redirects and homepage SEO output
- Add landing About/FAQ with FAQ schema
- Document generator architecture, build/serve/deploy commands, and current IIS hosting in AGENTS.md
- Add IIS redirect maps and rebuild wrappers
- Add Legacy Mises Community Forums link under torrent section on homepage
- Emit dist/web.config for local IIS hosting (webp/torrent MIME, 404, default doc)
- Phase C EXECUTED: WP-mu main site moved to blogs.freecapitalists.org; apex parked as 302
- Record DO daily snapshots as the worst-case rollback net (Phase B/E)
- Re-plan Phase C from Phase A findings; align goal/verification to live WP sites
- Phase A results: WP-mu relocation discovery (read-only) + STOP-and-re-plan verdict
- Add read-only WP-mu discovery script for Phase A relocation runbook
- Phase 6 prep: WP multisite relocation runbook
- Add guarded deploy scripts for the Liberty Archive
- Phase 5: draft deploy runbook and serving architecture
- Wire real torrent files into /torrents/, point file host at library subdomain
- Reindex media catalog: torrent complete, 0 incomplete
- Phase 4: build the Liberty Archive static site generator
- Drop CC license notice from book detail mockup
- Refine landing mockup for three-type architecture
- Drop License provenance section from spec
July 21, 2026
- Add verified journal code -> title lookup table
- Refine design spec for three document types (books/journals/courses)
- Remove homepage provenance section
- Add Liberty Archive design mockups
- Build media and journals catalog
- Spec: lock /tag/misesdotorg/ -> /torrents/ redirect into cutover plan
- Add master prompt wrapping all specs for one-shot execution
- Add Phase 3 SERP supply-side snapshot and analysis
- Add Phase 4 specs: static site generator + page design (landing/book/media)
- Phase 3 report: exact document-ID matching pass against catalog.json
- Spec: record hosting decision (NZXT serves books+media) and CC provenance evidence
- Phase 3: pull GSC keyword data for mises.org + baseline properties, add residual-demand report
- Phase 2: parse book Info.txt metadata into structured catalog.json
- Phase 1: index Mises Torrents 2014 collection (books/journals/media)
- Record Liberty Archive decision: governing spec, supersede A/B/C positioning
- Scaffold freecapitalists.org redesign: doc spine + positioning proposal