=== VideoWhisper Agentic Optimization ===
Contributors: videowhisper
Tags: ai, mcp, llms.txt, search, markdown
Requires at least: 6.4
Tested up to: 6.9
Stable tag: 1.0.2
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Adds agent-friendly discovery, markdown, search, and read-only MCP access for public WordPress content, like SEO for AI agents and assistants.

== Description ==

Agentic Optimization helps WordPress sites expose public content to AI agents in a safer, WordPress-native way.

If SEO helped search engines discover, index, and understand websites, Agentic Optimization does something similar for AI agents, assistants, and LLM-powered tools. It gives public WordPress content clearer discovery files, cleaner read-only endpoints, and structured access paths that are easier for agentic systems to use responsibly.

Instead of trying to make AI tools scrape full themes, shortcodes, and plugin output blindly, this plugin helps site owners publish a more intentional agent-facing layer for public content.

Features in the free plugin:

* Root-level `llms.txt`
* Optional root-level `llms-full.txt`
* Root-level `agent-sitemap.xml`
* Optional WordPress `robots.txt` enhancement with discovery hints
* Public REST search, content, markdown, comments, categories, tags, and site info endpoints
* Read-only MCP endpoint with search, content, comments, taxonomy, and site info tools
* Hard request caps and transient-based rate limiting
* Privacy-friendly analytics with aggregate counts and hashed IP logs only
* Admin-managed site description and site details for llms.txt context
* SEO-aware content exclusion hooks for common noindex patterns
* Extension points for future add-ons and custom integrations

The plugin is intentionally conservative:

* Read-only only
* Public content only
* No drafts, private content, or pending comments
* Comments exposure disabled by default
* MCP disabled by default
* Analytics disabled by default

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`.
2. Activate **VideoWhisper Agentic Optimization** in the WordPress admin.
3. Go to `Settings > Agentic Optimization`.
4. Enable the discovery outputs and APIs you want to expose.
5. Save settings to publish your selected endpoints.

== Frequently Asked Questions ==

= What URLs does the plugin create? =

When enabled, the plugin publishes:

* `/llms.txt`
* `/llms-full.txt`
* `/agent-sitemap.xml`
* `/robots.txt` (enhanced virtual output when enabled)
* `/wp-json/videowhisper-agentic-optimization/v1/search`
* `/wp-json/videowhisper-agentic-optimization/v1/content`
* `/wp-json/videowhisper-agentic-optimization/v1/markdown/<id>`
* `/wp-json/videowhisper-agentic-optimization/v1/comments/<post_id>`
* `/wp-json/videowhisper-agentic-optimization/v1/site-info`
* `/wp-json/videowhisper-agentic-optimization/v1/mcp`

= Does the free plugin allow writes? =

No. The free plugin only exposes read-only access to public content.

= Does it work with a future pro plugin? =

Yes. The free plugin includes filters, actions, and service accessors so a separate add-on can register extra settings, REST routes, or MCP tools without the free plugin referencing premium code.

= Does it track visitors? =

Analytics are disabled by default. When enabled, the plugin stores aggregate counters and recent event logs with hashed IP values only.

== Screenshots ==

1. Overview tab showing public endpoints and feature status.
2. Discovery and MCP settings tabs.
3. Analytics tab with aggregate request counts and recent events.

== External Services ==

This plugin generates agent-optimized discovery files and sitemaps using standard XML formats.

= Sitemaps.org XML Schema =

The `agent-sitemap.xml` output uses the standard sitemap XML namespace (`http://www.sitemaps.org/schemas/sitemap/0.9`) and a custom extension URN namespace (`urn:videowhisper:agentic:1.0`). These are identifier strings embedded in locally generated XML documents only. No data is transmitted to external services when the sitemap file is generated or served.

* sitemaps.org protocol reference: https://www.sitemaps.org/protocol.html

== Changelog ==

= 1.0.2 =

* Changed: REST namespace is now plugin-prefixed as `/wp-json/videowhisper-agentic-optimization/v1/...` for WordPress.org compliance.
* Bumped stable tag to 1.0.2.

= 1.0.1 =

* Fixed: Active settings tab now passed through the Settings API `$input` array, removing direct POST reads inside the sanitize callback.
* Added: `== External Services ==` section in readme.txt documenting XML namespace usage for `agent-sitemap.xml`.
* Changed: Custom `agent-sitemap.xml` extension namespace from URL form to URN (`urn:videowhisper:agentic:1.0`) to avoid implying any external service call.
* Bumped stable tag to 1.0.1.

= 1.0.0 =

* Initial release.
* Added root-level `llms.txt`, `llms-full.txt`, and `agent-sitemap.xml`.
* Added admin-managed llms.txt context fields and optional robots.txt enhancement.
* Added public REST endpoints for search, content, markdown, comments, terms, and site info.
* Added a read-only HTTP JSON-RPC MCP endpoint.
* Added rate limiting, analytics, settings UI, and extension hooks for future add-ons.

== Upgrade Notice ==

= 1.0.2 =

Compatibility update for WordPress.org review: the public REST namespace is now plugin-prefixed.

= 1.0.1 =

Security hardening: settings sanitize callback no longer reads directly from POST; active tab is now passed via the Settings API input array.

= 1.0.0 =

Initial public release.
