<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" 
	>
<channel>
	<title>
	Comments on: LH AI Legibility	</title>
	<atom:link href="https://lhero.org/portfolio/lh-ai-legibility/feed/" rel="self" type="application/rss+xml" />
	<link>https://lhero.org/portfolio/lh-ai-legibility/</link>
	<description>Helping Organisations get organised!</description>
	<lastBuildDate>Mon, 12 Oct 2026 16:54:18 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-ai-legibility/#comment-1537249</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Mon, 12 Oct 2026 16:54:18 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=148870#comment-1537249</guid>

					<description><![CDATA[Adds two MCP abilities for drafting a site&#039;s llms.txt. lh-ai-legibility/get-llms-txt returns the document as structured data (summary, details and link sections), the exact /llms.txt it produces, and a check of every link: whether it is a published single post on the site that can be served as Markdown, and optionally whether every other link answers over HTTP. lh-ai-legibility/update-llms-txt replaces the document&#039;s content from plain-text sections and links, building the block markup itself, and returns the same preview and link check; with dry_run nothing is saved. It only writes while the document is not published, and never publishes: a published document is refused, so changes to a live llms.txt are proposed for review through LH Agora instead. Both need manage_options, the same capability as the Settings &gt; LLMs.txt screen. Archive pages (post type, taxonomy, date and author archives and the posts page) are now served as Markdown on request too: a paged list of the page&#039;s posts as links, each with its written excerpt (or a summary another plugin supplies through the new lh_ai_legibility_archive_item_summary filter), with links to the previous and next pages, so llms.txt can point to a whole collection instead of listing it. Archives can be opted out with lh_ai_legibility_archive_markdown_enabled, and their HTML pages now carry the Vary: Accept and Link alternate headers. Section titles and paragraphs in llms.txt no longer show HTML entities such as &#038; for an ampersand.]]></description>
			<content:encoded><![CDATA[<p>Adds two MCP abilities for drafting a site&#8217;s llms.txt. lh-ai-legibility/get-llms-txt returns the document as structured data (summary, details and link sections), the exact /llms.txt it produces, and a check of every link: whether it is a published single post on the site that can be served as Markdown, and optionally whether every other link answers over HTTP. lh-ai-legibility/update-llms-txt replaces the document&#8217;s content from plain-text sections and links, building the block markup itself, and returns the same preview and link check; with dry_run nothing is saved. It only writes while the document is not published, and never publishes: a published document is refused, so changes to a live llms.txt are proposed for review through LH Agora instead. Both need manage_options, the same capability as the Settings > LLMs.txt screen. Archive pages (post type, taxonomy, date and author archives and the posts page) are now served as Markdown on request too: a paged list of the page&#8217;s posts as links, each with its written excerpt (or a summary another plugin supplies through the new lh_ai_legibility_archive_item_summary filter), with links to the previous and next pages, so llms.txt can point to a whole collection instead of listing it. Archives can be opted out with lh_ai_legibility_archive_markdown_enabled, and their HTML pages now carry the Vary: Accept and Link alternate headers. Section titles and paragraphs in llms.txt no longer show HTML entities such as &amp; for an ampersand.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Peter Shaw		</title>
		<link>https://lhero.org/portfolio/lh-ai-legibility/#comment-1537246</link>

		<dc:creator><![CDATA[Peter Shaw]]></dc:creator>
		<pubDate>Mon, 12 Oct 2026 16:10:37 +0000</pubDate>
		<guid isPermaLink="false">https://lhero.org/?post_type=lh-portfolio&#038;p=148870#comment-1537246</guid>

					<description><![CDATA[Brought up to LocalHero plugin standards, with no change to what the plugin does for visitors. The main file now holds an LH_AI_Legibility class with the standard identity methods (namespace, text domain, name, and a version read from the header) and a plugins_loaded bootstrap that can be switched off with the lh_ai_legibility_init_plugin filter; the autoloader and the version, path and URL constants are gone. The post type, query variable and option names are now filterable methods instead of class constants, with the same values as before, so existing llms.txt drafts are kept. Hook names and text domains are derived from the plugin&#039;s namespace and text domain. The llms.txt section block is renamed from llms-txt/section to lh-ai-legibility/section, as block names must use the plugin&#039;s text domain; no published or draft document contained the old block, so no content needed migrating. The Accept header is now sanitised before it is parsed. Activation now loads the .htaccess class itself, so the LiteSpeed cache rule is checked on activation as intended. Code style now follows the WordPress coding standards (array() syntax, translator comment, escaped admin notice), and the phpcs:ignore annotations are removed. The on-disk README.md is removed: readmes are compiled from the plugin header and portfolio entry, and the reconstruction check passed (both formats compile cleanly, the changelog back to 0.1 is in the portfolio, and the filters and document structure are in the doc-sections; the sections on the old built-in converter and file layout were obsolete and dropped).]]></description>
			<content:encoded><![CDATA[<p>Brought up to LocalHero plugin standards, with no change to what the plugin does for visitors. The main file now holds an LH_AI_Legibility class with the standard identity methods (namespace, text domain, name, and a version read from the header) and a plugins_loaded bootstrap that can be switched off with the lh_ai_legibility_init_plugin filter; the autoloader and the version, path and URL constants are gone. The post type, query variable and option names are now filterable methods instead of class constants, with the same values as before, so existing llms.txt drafts are kept. Hook names and text domains are derived from the plugin&#8217;s namespace and text domain. The llms.txt section block is renamed from llms-txt/section to lh-ai-legibility/section, as block names must use the plugin&#8217;s text domain; no published or draft document contained the old block, so no content needed migrating. The Accept header is now sanitised before it is parsed. Activation now loads the .htaccess class itself, so the LiteSpeed cache rule is checked on activation as intended. Code style now follows the WordPress coding standards (array() syntax, translator comment, escaped admin notice), and the phpcs:ignore annotations are removed. The on-disk README.md is removed: readmes are compiled from the plugin header and portfolio entry, and the reconstruction check passed (both formats compile cleanly, the changelog back to 0.1 is in the portfolio, and the filters and document structure are in the doc-sections; the sections on the old built-in converter and file layout were obsolete and dropped).</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
