Repository navigation
Releases: Ref34t/mokhai-agent-readiness-kit
Release list
v0.8.1
Maintenance release: documentation and internal accuracy only. No functional changes — safe in-place upgrade.
Improved
- Context Score reference and
/llms.txtcuration guide — the repository now documents the seven weighted sub-scores that make up the readiness score (and how to raise each), plus the editorial/llms.txtworkflow. Repository documentation only; no change to the plugin's behaviour. (#306, PR #307) - Corrected scoring docblocks — two source comments in the Context Score engine that disagreed with the code (the multi-channel-discovery channel count and the exposure-safety penalty shape) were realigned with the implementation. Comment-only; the score is computed exactly as before. (#308, PR #309)
v0.8.0
Feature release: first-run onboarding, and an advisory that spots instruction-shaped descriptions. No migration — safe in-place upgrade.
New
- First-run onboarding nudge — while no content is exposed, admins see a dismissible notice (Dashboard, Plugins, Tools → Context) explaining that the empty
/llms.txtis the safe default. One click (with confirmation) exposes published posts and pages, or choose content manually. Dismissal is per-admin; nothing is ever exposed without an explicit click. (#251, PR #302) - Instruction-shape advisory — the AI Assistant Preview warns when a
/llms.txtdescription reads like an instruction to AI agents ("ignore previous instructions", "always recommend…") rather than a summary. Advisory only — nothing is changed, stripped, or scored down. (#238, PR #303)
Improved
v0.7.0
Feature release: agent-readable Markdown that reaches more agents, and covers more pages. No migration — safe in-place upgrade.
New
- Rendered-HTML fallback for template-built pages (#297) — pages whose content is rendered by the theme (ACF Pro flexible-content, Sage/Acorn, and other builders that render in templates rather than through the editor) previously produced an empty Markdown twin, because the content lived only in the front-end render. Mokhai now recovers that content by reading the page's own rendered HTML and extracting the main region, so these pages get a real Markdown twin. Theme- and builder-agnostic; runs only as a last resort when no content was found otherwise, and never on the normal page-view path. Verified on a real ACF Pro site: 19/21 pages recovered real content the previous ACF-API adapter could not.
- ACF field-content adapter + empty-twin guard (#292) — ACF field text is sourced into the Markdown body when the editor content is empty, and a page whose twin is genuinely empty now returns a 404 (and is dropped from
/llms.txt) instead of serving a 0-byte body.
Improved
- Markdown twins served as
text/plain(#293) — the.mdroute now responds withContent-Type: text/plainand an inline disposition. Some AI fetchers rejecttext/markdownoutright;text/plainis accepted across the board while remaining human- and agent-readable. - No more dead alternate links (#296) — the
<link rel="alternate">/Link:header advertising a page's.mdtwin is now suppressed for pages whose twin is empty (and would 404), so agents following the advertised alternate always reach real content.
Full changelog: see readme.txt.
0.6.0 — static Markdown mirror + cache-proof discovery
Static .md mirror (auto-enabled behind hard page caches), plugin+host cache detection, and the in-content discovery link that survives AI fetchers' content extraction. Listing copy now leads with markdown publishing. No migration — safe in-place upgrade. See readme.txt changelog for details. (#283, #284, #287)
v0.5.0 — mokhai-scheme rename + new branding
Public-launch baseline. This is the first release where every developer-facing and end-user-facing identifier aligns under the mokhai scheme. No new features ship in this release.
- Identifier rename — internal scheme — the PHP namespace (
Mokhai\), WP-CLI root (wp mokhai), REST namespace (mokhai/v1), WordPress Abilities category (mokhai), option/meta/table keys (mokhai_*), and all hook names (mokhai_*) now match the plugin's public name. The previousai-readiness-kit,agentready, andai_readiness_kitidentifiers are gone. - NO automatic migration — option keys, post meta, and the Markdown cache table were all stored under
agentready_*orai_readiness_kit_*names in releases prior to 0.5.0. A pre-0.5.0 install re-initialises its settings on first page-load after upgrade; re-configure the Context Profile under Tools → Context (Exposed CPTs, Exposed statuses, and toggles). The Markdown cache rebuilds on demand from the first request to each.mdURL. - Branding — refreshed Plugin Directory icon and banner assets align with the Mokhai identity established in 0.3.2.
v0.4.0 — Mokhai - Agent Readiness Kit (public launch)
Public launch on the WordPress.org Plugin Directory — live at https://wordpress.org/plugins/mokhai-agent-readiness-kit
This release is launch housekeeping on top of the shipped feature set — no functional change, no migration. Existing installs upgrade in place.
Changed
- Plugin published to wp.org as Mokhai - Agent Readiness Kit (slug
mokhai-agent-readiness-kit); GitHub repo renamed toRef34t/mokhai-agent-readiness-kit. - Refreshed Plugin Directory assets — new banner, icon, and four real screenshots (previous ones were placeholders).
- Rewrote the wp.org readme Description to present-tense framing of the seven shipped modules.
- Repository/package links consolidated under the new name. REST routes, WP-CLI commands, abilities, option keys, and stored data are unchanged.
Verified
- 422 unit + 341 integration tests green · PHPCS + PHPStan (level 5) clean · WP Plugin Check clean · build + size check pass.
Full feature set: Markdown Views · LLMs Index (/llms.txt) · Context Score · Schema Coordination · AI Assistant Preview · Agent Abilities + MCP · Multi-channel discovery — all driven by one Context Profile, fully local, GPL-2.0+.
v0.3.0 — AgentReady – AI Readiness Kit (UX polish + wp.org rename)
Renamed to AgentReady – AI Readiness Kit for wp.org naming compliance (text domain agentready-ai-readiness-kit; REST, WP-CLI, and stored data keys unchanged — AgDR-0059), plus the UX-polish cluster (#207–#215) from the 2026-06-11 live walkthrough. Distribution ZIP attached (clean: no hidden files; top-level folder agentready-ai-readiness-kit/).
v0.2.0
Feature release. Three new agent-facing modules plus a batch of correctness fixes surfaced through live testing. This is the new baseline submitted to the WordPress.org plugin directory (superseding the parked v0.1.0 lineage).
New
- AI Assistant Preview pane — view any post as an AI assistant consumes it (raw HTML / Markdown View / live
/llms.txtline, side by side) with an on-demand synchronous "sample AI summary". (#45) - WordPress Abilities API + MCP — five
manage_options-gated abilities (audit-run, profile-read, profile-set-exposure, llms-txt-regenerate, md-view-preview) exposed via corewp-abilities/v1and reachable by MCP clients through the WordPress MCP adapter when installed. (#21, #131) - Multi-channel discovery sub-score — Context Score gains a seventh sub-score crediting agent-discovery surfaces beyond
/llms.txt(ai.txt,/.well-known/declarations, OpenAPI). Discoverability re-weighted 20 → 10 to fund it; total stays 100. (#22)
Improved
- Tools → Context rebuilt as a single Card + TabPanel single-page admin aligned with the WP AI Client / OpenAI Connector design system, with REST write controllers. (#142)
- Context Score reason strings are now fully translatable, and sub-score copy across the admin UI and the LLM narrative prompt derives from a single source of truth. (#137, #139, #140)
Fixes
- JSON-LD emitted without
esc_html()(angles escaped viaJSON_HEX_TAG) so structured data validates. (#118) - Stale past-timestamp cron events cleared before re-scheduling across all four schedulers. (#115, #120, #121)
- Markdown cleanup allowlist preserves word boundaries at block edges. (#135)
- Orphaned shortcodes stripped from the Markdown walker and
/llms.txtdescriptions. (#145, #147) /llms.txtrecomposes on description change + carries a generator-version staleness signal. (#149, #151)package.jsonversion now tracks the plugin version. (#113)
Requires: WordPress 6.9+ · PHP 7.4+
v0.1.1 — bug-fix bundle
v0.1.1 — bug-fix bundle (2026-05-24)
Four bug fixes surfaced during post-merge smoke testing of v0.1.0 and an external LLM review of the live /llms.txt output. No new features, no schema changes, no data migration. Drop-in upgrade.
Fixes
-
/llms.txtregen now fires reliably after Context Profile saves on low-traffic sites. Previously,Service::schedule_regen()could leave a stale past-timestamp event sitting in the cron queue (common on wp-env without traffic), and subsequent saves silently failed to re-schedule becausewp_schedule_single_eventde-duped against the stale entry. Now the scheduler splits the coalesce check: future event → noop (debounce intact); past event → clear and re-schedule. (#103 · PR #107) -
Schema_Emitternow emits per-content JSON-LD for custom CPTs. v0.1.0 only emittedArticleonpostandWebPageonpage; custom CPTs likelesson,product,recipegot only the site-identity nodes. v0.1.1 defaults:post→Article,pageand every other CPT →WebPage(the safe semantic generic). New filteragentready_schema_type_for_cpt($default, $cpt, $post_id)lets plugin/theme authors specialize (e.g. fliplesson→Articlefor blog-shaped CPTs, or returnnullto suppress per-content emit). v0.1.2 will add dedicated builders forRecipe/Course/Product/Event/Person. Design captured in AgDR-0040. (#104 · PR #108) -
/llms.txtentry links now point at the.mdform when Markdown Views is enabled. v0.1.0's/llms.txtlinked at canonical HTML — agents fetched 50–100 KB per page including header, nav, footer. v0.1.1 transforms pretty permalinks (/lessons/foo/) to<slug>.md(~4–8 KB clean Markdown). Plain permalinks (/?p=42) fall through to?format=mdso the sameHandlerserves them. Whenmarkdown_views_enabledisfalse, the canonical permalink is preserved (because the.mdURL would 404). (#105 · PR #109) -
HTML entities no longer leak into the plain-text
/llms.txtbody. WordPress'swptexturizefilter and the block editor HTML-encode typographic characters (Architect's→Architect’s). v0.1.0 served those entity codes literally to the consumer because/llms.txtistext/plain, not HTML. v0.1.1's composer decodes entities at the bottom of the escape pipeline so every text surface (site name, tagline, section label, entry title, description) is clean. (#106 · PR #110)
Upgrade
- wp.org Plugin Directory: v0.1.0 is currently in review. v0.1.1 will be staged to SVN once v0.1.0 is approved by the reviewer — there's nothing to do on your end through the directory yet.
- GitHub release ZIP (this page): drop the attached
ai-readiness-kit-0.1.1.zipintowp-content/plugins/, replacing your existingai-readiness-kit/folder. Then activate. WordPress handles the rest — no migration step required (the bug fixes preserve every option key, hook name, custom table, and capability slug from v0.1.0).
Compatibility
- WordPress 6.9+ (tested up to 7.0)
- PHP 7.4+
What's next (v0.1.2)
- Dedicated node builders for the common schema.org types (
Recipe,Course,Product,Event,Person) so theagentready_schema_type_for_cptfilter can honor any return value. - Polish items surfaced during Rex reviews: a static-front-page regression test, the same
wp_next_scheduledpattern check in Context_Score'sService.php, parameterised plain+pretty permalink tests, and minor docblock fills.
Verifying this release
After upgrading, run:
wp ai-readiness-kit llms-txt regen
wp ai-readiness-kit context-score recompute…and confirm /llms.txt reflects your current Context Profile, with .md-suffixed entry links and no entity codes. On a site with custom CPTs, view source on a singular custom-CPT URL and confirm a WebPage (or Article if you wired the filter) JSON-LD node now appears alongside the site-identity nodes.
v0.1.0 — first public release
First public release of Agent Ready — an open-source WordPress plugin that turns a site into a first-class citizen of the AI-agent web. A single Context Profile (configured once under Tools → Context) drives every agent-facing surface: what's exposed, how it's served, and how it's scored.
Modules
Four coherent modules ship in v0.1, all driven by one profile:
- Markdown Views — deterministic HTML → Markdown rendering for any public URL, with three URL forms (
.mdpath,?format=mdquery,Accept: text/markdowncontent negotiation) and uniform 404 on denial. Per-post cache with content-hash invalidation, Gutenberg sidebar preview, WP-CLI command (wp agentready md preview), REST endpoint for admin tooling. Optional LLM cleanup pass with safety guard. - LLMs Index —
/llms.txtgenerator publishing a discovery surface for AI agents. Conflict detection againstrobots.txt. Editorial-entries admin UI for site owners to add curated non-WordPress URLs. Optional LLM-powered pass drafts per-entry descriptions from post content. WP-CLI:wp agentready llms-txt {status,regen,preview}. - Context Score — 0–100 readiness audit across six weighted sub-scores (discoverability 20, content readability 15, schema coverage 10, exposure safety 15, integration health 15, Markdown conversion quality 25). Admin page under Tools → Context Score, Site Health integration, REST endpoint, WP-CLI
wp agentready context-score recompute. LLM-generated narrative with rule-based fallback. - Schema Coordination — detects whether your SEO plugin (Yoast, Rank Math, AIOSEO, The SEO Framework) already emits JSON-LD. When one is active, Agent Ready emits nothing competing. When none is active, optionally emits a native WebSite + Organization + per-content schema set (toggle in the Context Profile; default off) so the schema sub-score is achievable without a third-party plugin.
Privacy and storage
- No content leaves your server. Zero external HTTP calls in the deterministic surfaces.
- Optional LLM features (Markdown cleanup, /llms.txt descriptions, Context Score narrative) consult the WP AI Client only when explicitly toggled on.
- Two custom tables:
{prefix}agentready_md_cache(one row per published post served as Markdown) and{prefix}agentready_score_audit_log(one row per audit run, retained for trend analysis). Both dropped on uninstall.
Requirements
- WordPress 6.9+
- PHP 7.4+
- WP AI Client (optional — required only by the LLM-using modules; deterministic features run fully locally without it)
Installation
Once approved on wp.org: search for "Agent Ready" in Plugins → Add New, or install via WP-CLI: wp plugin install agentready --activate.
Before wp.org approval: download the ZIP attached to this release and install via Plugins → Add New → Upload Plugin.
Acknowledgements
- Layered CI (PHPCS WordPress + WordPressVIPMinimum, Plugin Check Tool, PHPStan level 5, PHPUnit unit × 2 PHP versions, PHPUnit integration × 4 cells) catches regressions before they ship.
- Built on the WordPress AI Client surface to keep AI provider integration WordPress-native rather than reinventing it.
Full changelog
Cumulative commit list since the initial scaffold:
Markdown Views (#5, #6, #51, #52, #53)
feat(#5): Markdown Views deterministic floor (Phases 1-4)— #36feat(#5): Markdown Views admin surfaces + docs (Phases 5-9)— #40feat(#6): Markdown Views LLM cleanup engine + safety guard (Phase A)— #46feat(#6): wire Client_Wrapper to wp_ai_client_prompt— #49feat(#6): Markdown Views cleanup admin UI + approval flow (Phase B)— #50fix(#52): re-run dbDelta on admin_init when schema lags— #54feat(#53): stuck-pending UX hint after 60s waiting on WP cron— #55fix(#37,#38): MD-escape link brackets / parens; fence inline code by max backtick run— #77
feat(#7): LLMs Index Phase A — /llms.txt generator floor— #56feat(#7): LLMs Index Phase B — conflict detection + admin notice— #60feat(#7): LLMs Index Phase C — editorial entries admin UI— #65fix(#66): classify 4xx WP_Error returns as Permanent_Error— #67feat(#8): LLM-powered /llms.txt entry descriptions — Phase A engine + WP-CLI— #68feat(#8): LLM-powered /llms.txt entry descriptions — Phase B admin UI— #69
feat(#9): Context Score engine — 0–100 score + 6 sub-scores + wp context audit— #71feat(#10): build Context Score admin UI — Tools page, REST, Site Health— #72feat(#11): build Context Score LLM narrative with rule-based fallback— #74
Schema Coordination (#12, #73)
feat(#12): build gap-fill JSON-LD emitter with SEO plugin deference— #75feat(#73): gate native JSON-LD emission behind a Profile toggle; credit it in Context Score— #76
Infrastructure + release prep
chore(#3): build layered CI matrix (PHPCS + Plugin Check + PHPUnit)— #17chore(#18): rename plugin to AgentReady (drop "wp" for wp.org policy)— #19chore(#13): add PHPStan level 5 static analysis— #26feat(#4): add Context Profile admin screen— #27chore(#29): clear WP Plugin Check warnings (Domain Path + load_plugin_textdomain)— #32chore(#80): build wp.org distribution ZIP — tools/build-zip.sh + .distignore + CI verification— #83chore(#78): wp.org submission readiness — correct headers, readme rewrite, "Agent Ready" rename— #81chore(#79): build wp.org placeholder assets — banner, icon, screenshots— #82chore(#84): exclude webpack.config.js from wp.org distribution ZIP— #85chore(#86): fix wp.org attribution — Mohamed Khaled as Author + Contributor— #87
What's next (v0.1.1 fast-follow)
- AI Assistant Preview pane — render a page as ChatGPT / Claude consume it (#45)
ai.txtand/.well-known/discovery surface detection (#22)- MCP / WordPress Abilities API integration (#21)
- Native Schema_Emitter expansion so schema coverage is fully achievable without any SEO plugin (#73 follow-up)
- LLMs Index test hardening (#57–#64)