[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fZc2tarfm7P11gvezwyiyVIXUJSctZF_-u9ctgHih62A":3,"$fuT1Ct4mpezUC9RBgBQCeEMy5w_TYSNJQ9JcKTeFQmr4":267,"$faZGNOITpCSmNVoN-XoEcjf--YQqn0ZzBrKVSL-9EmKk":272},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":35,"analysis":127,"fingerprints":250},"botkibble","Botkibble","1.3.0","gregrandall","https:\u002F\u002Fprofiles.wordpress.org\u002Fgregrandall\u002F","\u003Cp>AI agents, LLMs, and crawlers have to wade through navigation bars, sidebars, ads, and comment forms to reach the content they want, and every element costs tokens. \u003Ca href=\"https:\u002F\u002Fblog.cloudflare.com\u002Fmarkdown-for-agents\u002F\" rel=\"nofollow ugc\">Cloudflare measured\u003C\u002Fa> an 80% reduction in token usage when converting a blog post from HTML to Markdown (16,180 tokens down to 3,150).\u003C\u002Fp>\n\u003Cp>Botkibble adds a Markdown endpoint to every published post and page.\u003C\u002Fp>\n\u003Cp>Cloudflare offers \u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Ffundamentals\u002Freference\u002Fmarkdown-for-agents\u002F\" rel=\"nofollow ugc\">Markdown for Agents\u003C\u002Fa> at the CDN edge on Pro, Business, and Enterprise plans. Botkibble does the same thing (for free) at the origin, so it works on any host.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgreg-randall\u002Fbotkibble\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Three ways to request Markdown:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>.md\u003C\u002Fcode> suffix\u003C\u002Fstrong>: append \u003Ccode>.md\u003C\u002Fcode> to any post or page URL (e.g. \u003Ccode>example.com\u002Fmy-post.md\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Query parameter\u003C\u002Fstrong>: add \u003Ccode>?format=markdown\u003C\u002Fcode> to any post or page URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content negotiation\u003C\u002Fstrong>: send \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> in the request header\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>What’s in every response:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Structured metadata header with title, date, categories, tags, word count, character count, and estimated token count (in YAML frontmatter format, readable by any AI agent)\u003C\u002Fli>\n\u003Cli>Clean Markdown converted from fully-rendered post HTML (shortcodes run, filters applied)\u003C\u002Fli>\n\u003Cli>\u003Ccode>Content-Type: text\u002Fmarkdown\u003C\u002Fcode> and \u003Ccode>Vary: Accept\u003C\u002Fcode> response headers\u003C\u002Fli>\n\u003Cli>\u003Ccode>Content-Signal\u003C\u002Fcode> header for AI signal declaration — defaults to \u003Ccode>ai-train=no, search=yes, ai-input=yes\u003C\u002Fcode> — see \u003Ca href=\"https:\u002F\u002Fcontentsignals.org\u002F\" rel=\"nofollow ugc\">contentsignals.org\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ccode>X-Markdown-Tokens\u003C\u002Fcode> header with estimated token count\u003C\u002Fli>\n\u003Cli>Discovery via \u003Ccode>\u003Clink rel=\"alternate\">\u003C\u002Fcode> in the HTML head and \u003Ccode>Link\u003C\u002Fcode> HTTP header\u003C\u002Fli>\n\u003Cli>Automatic cache invalidation when a post is updated or deleted\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Performance:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Botkibble writes Markdown to disk on the first request, then serves it as a static file. A built-in Fast-Path serves cached files during WordPress’s \u003Ccode>init\u003C\u002Fcode> hook, before the main database query runs. No extra configuration needed.\u003C\u002Fp>\n\u003Cp>Add a web server rewrite rule and Botkibble bypasses PHP entirely, serving \u003Ccode>.md\u003C\u002Fcode> files the same way a server would serve an image or CSS file:\u003C\u002Fp>\n\u003Cp>  Method\u003Cbr \u002F>\n  Avg. response time\u003C\u002Fp>\n\u003Cp>  Standard HTML\u003Cbr \u002F>\n  0.97s\u003C\u002Fp>\n\u003Cp>  Markdown (cold, first request)\u003Cbr \u002F>\n  0.95s\u003C\u002Fp>\n\u003Cp>  Markdown (cached, PHP Fast-Path)\u003Cbr \u002F>\n  0.87s\u003C\u002Fp>\n\u003Cp>  Markdown (Nginx\u002FApache direct)\u003Cbr \u002F>\n  0.11s\u003C\u002Fp>\n\u003Cp>Serving directly from disk is \u003Cstrong>88% faster\u003C\u002Fstrong> than a full WordPress page load. See the Performance section below for Nginx and Apache configuration.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Security:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Drafts, private posts, and password-protected content return \u003Ccode>403 Forbidden\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Rate limits cache-miss regenerations (20\u002Fmin by default) to mitigate DoS abuse\u003C\u002Fli>\n\u003Cli>\u003Ccode>X-Robots-Tag: noindex\u003C\u002Fcode> keeps Markdown versions out of search results\u003C\u002Fli>\n\u003Cli>\u003Ccode>Link: rel=\"canonical\"\u003C\u002Fcode> points search engines back to the HTML version\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Cache variants (optional):\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can persist alternate cached representations by adding \u003Ccode>?botkibble_variant=slim\u003C\u002Fcode> (or any other variant name).\u003Cbr \u002F>\nVariant caches are stored under:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F_v\u002F\u003Cvariant>\u002F\u003Cslug>.md\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>What it does NOT do:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Expose drafts, private posts, or password-protected content\u003C\u002Fli>\n\u003Cli>Serve non-post\u002Fpage content types by default\u003C\u002Fli>\n\u003Cli>Require any configuration. Activate and it works.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Why Markdown?\u003C\u002Fh3>\n\u003Cp>HTML is expensive for AI systems to process. \u003Ca href=\"https:\u002F\u002Fblog.cloudflare.com\u002Fmarkdown-for-agents\u002F\" rel=\"nofollow ugc\">Cloudflare measured\u003C\u002Fa> an 80% reduction in token usage when converting a blog post from HTML to Markdown (16,180 tokens down to 3,150).\u003C\u002Fp>\n\u003Cp>Cloudflare now offers \u003Ca href=\"https:\u002F\u002Fdevelopers.cloudflare.com\u002Ffundamentals\u002Freference\u002Fmarkdown-for-agents\u002F\" rel=\"nofollow ugc\">Markdown for Agents\u003C\u002Fa> at the CDN edge via the \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header, available on Pro, Business, and Enterprise plans.\u003C\u002Fp>\n\u003Cp>This plugin does the same thing at the origin, so it works on any host. It also adds \u003Ccode>.md\u003C\u002Fcode> suffix URLs, \u003Ccode>?format=markdown\u003C\u002Fcode> query parameters, YAML frontmatter, static file caching, and server-level offloading.\u003C\u002Fp>\n\u003Cp>If you use Cloudflare, both share the same \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header, \u003Ccode>Content-Signal\u003C\u002Fcode> headers, and \u003Ccode>X-Markdown-Tokens\u003C\u002Fcode> response headers.\u003C\u002Fp>\n\u003Cp>Cloudflare currently defaults to \u003Ccode>Content-Signal: ai-train=yes, search=yes, ai-input=yes\u003C\u002Fcode> with no way to change it. Botkibble defaults to \u003Ccode>ai-train=no\u003C\u002Fcode> and lets you override the full signal per site via the \u003Ccode>botkibble_content_signal\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Ch3>Performance & Static Offloading\u003C\u002Fh3>\n\u003Cp>This plugin supports static file offloading by writing Markdown content to \u003Ccode>\u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3>Nginx Configuration\u003C\u002Fh3>\n\u003Cp>To bypass PHP entirely and have Nginx serve the files (including variants) directly:\u003C\u002Fp>\n\u003Cpre>\u003Ccode># Variants\nlocation ~* ^\u002F(_v\u002F[^\u002F]+\u002F.+)\\.md$ {\n    default_type text\u002Fmarkdown;\n    try_files \u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F$1.md \u002Findex.php?$args;\n}\n\n# Default\nlocation ~* ^\u002F(.+)\\.md$ {\n    default_type text\u002Fmarkdown;\n    try_files \u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F$1.md \u002Findex.php?$args;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Apache (.htaccess)\u003C\u002Fh3>\n\u003Cp>Add this to your \u003Ccode>.htaccess\u003C\u002Fcode> before the WordPress rules:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>RewriteEngine On\n# Variants\nRewriteCond %{DOCUMENT_ROOT}\u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F_v\u002F$1\u002F$2.md -f\nRewriteRule ^_v\u002F([^\u002F]+)\u002F(.+)\\.md$ \u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F_v\u002F$1\u002F$2.md [L,T=text\u002Fmarkdown]\n\n# Default\nRewriteCond %{DOCUMENT_ROOT}\u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F$1.md -f\nRewriteRule ^(.*)\\.md$ \u002Fwp-content\u002Fuploads\u002Fbotkibble\u002F$1.md [L,T=text\u002Fmarkdown]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Even without these rules, the plugin uses a “Fast-Path” that serves cached files from PHP before the main database query is executed.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>We thank Cristi Constantin (https:\u002F\u002Fgithub.com\u002Fcristi-constantin) for contributing cache variants, URL and SEO improvements, and fixing important bugs.\u003C\u002Fp>\n","Serves every published post and page as Markdown for AI agents and crawlers. No configuration, no API keys. Activate and it works.",0,204,"2026-02-26T21:19:00.000Z","6.9.4","6.0","8.2",[18,19,20,21,22],"agents","ai","api","crawlers","markdown","https:\u002F\u002Fgithub.com\u002Fgreg-randall\u002Fbotkibble","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbotkibble.1.3.0.zip",100,null,"2026-04-06T09:54:40.288Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},1,30,94,"2026-05-19T23:28:55.035Z",[36,54,71,86,103],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":11,"num_ratings":11,"last_updated":46,"tested_up_to":14,"requires_at_least":15,"requires_php":47,"tags":48,"homepage":51,"download_link":52,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":53},"mescio-for-agents","Mescio for Agents","1.6.5","Mescio","https:\u002F\u002Fprofiles.wordpress.org\u002Fvinsmach\u002F","\u003Cp>\u003Cstrong>Mescio for Agents\u003C\u002Fstrong> makes your WordPress site AI-ready by silently serving posts, pages and WooCommerce products as clean, structured Markdown to any AI agent or LLM pipeline that requests it — using the standard HTTP \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> content negotiation header.\u003C\u002Fp>\n\u003Cp>Human visitors using a browser are \u003Cstrong>completely unaffected\u003C\u002Fstrong>. Mescio for Agents only activates when an AI agent or crawler explicitly asks for Markdown.\u003C\u002Fp>\n\u003Ch4>Why Markdown?\u003C\u002Fh4>\n\u003Cp>Feeding raw HTML to an AI is expensive and noisy. A heading like \u003Ccode>## About Us\u003C\u002Fcode> costs ~3 tokens in Markdown vs 12–15 tokens as HTML — before accounting for \u003Ccode>\u003Cdiv>\u003C\u002Fcode> wrappers, navigation bars and script tags that carry zero semantic value. This blog post you are reading takes 16,180 tokens in HTML and 3,150 tokens in Markdown. That is an 80% reduction.\u003C\u002Fp>\n\u003Cp>Markdown has become the \u003Cem>lingua franca\u003C\u002Fem> for AI systems. Mescio for Agents lets your site speak it natively, at zero cost to your human visitors.\u003C\u002Fp>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Cp>When an HTTP client sends a request with \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode>, Mescio for Agents intercepts the WordPress request lifecycle before any template is rendered, converts the post content to clean Markdown, and returns it with the correct \u003Ccode>Content-Type: text\u002Fmarkdown\u003C\u002Fcode> header.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>curl https:\u002F\u002Fyoursite.com\u002Fyour-post\u002F \\\n  -H \"Accept: text\u002Fmarkdown\"\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Zero configuration\u003C\u002Fstrong> — works out of the box on any singular post, page or custom post type\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>\u002Fllms.txt\u003C\u002Fcode> endpoint\u003C\u002Fstrong> — auto-generated index of all your content in the \u003Ca href=\"https:\u002F\u002Fllmstxt.org\" rel=\"nofollow ugc\">llmstxt.org\u003C\u002Fa> standard format, so AI agents can discover what’s on your site\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>\u002Fllms-full.txt\u003C\u002Fcode> endpoint\u003C\u002Fstrong> — full site content in a single Markdown file, ready for RAG pipelines\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce support\u003C\u002Fstrong> — product pages include price, SKU, stock status, rating, attributes and gallery; products are grouped by category in \u003Ccode>llms.txt\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>YAML front matter\u003C\u002Fstrong> — every document includes structured metadata (title, description, URL, date, categories, tags, featured image)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multilingual\u003C\u002Fstrong> — detects language via WPML, Polylang, TranslatePress or WordPress locale; emits \u003Ccode>Content-Language\u003C\u002Fcode> and \u003Ccode>Link: rel=alternate\u003C\u002Fcode> headers\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API endpoint\u003C\u002Fstrong> — \u003Ccode>\u002Fwp-json\u002Fmescio-for-agents\u002Fv1\u002Fmarkdown?id=\u003Cpost_id>\u003C\u002Fcode> or \u003Ccode>?url=\u003Cpermalink>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Page builder cleanup\u003C\u002Fstrong> — aggressively strips Elementor, Divi, WPBakery and Beaver Builder layout noise\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Token count header\u003C\u002Fstrong> — \u003Ccode>X-Markdown-Tokens\u003C\u002Fcode> tells AI pipelines how large the document is before processing\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content Signals\u003C\u002Fstrong> — emits \u003Ccode>Content-Signal: ai-train=yes, search=yes, ai-input=yes\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Correct HTTP caching\u003C\u002Fstrong> — \u003Ccode>Vary: Accept\u003C\u002Fcode> ensures CDNs cache HTML and Markdown versions separately\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Response headers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>Content-Type: text\u002Fmarkdown; charset=utf-8\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>Content-Language: it\u003C\u002Fcode> (or detected language)\u003C\u002Fli>\n\u003Cli>\u003Ccode>Vary: Accept\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>X-Markdown-Tokens: 725\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>Content-Signal: ai-train=yes, search=yes, ai-input=yes\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>Link: \u003Curl>; rel=\"alternate\"; hreflang=\"en\"\u003C\u002Fcode> (when translations available)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Multilingual plugin support\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>WPML\u003C\u002Fstrong> — reads language and available translations automatically\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Polylang\u003C\u002Fstrong> — reads language and links to translated post IDs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>TranslatePress\u003C\u002Fstrong> — reads \u003Ccode>trp_language\u003C\u002Fcode> post meta\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual\u003C\u002Fstrong> — configure primary language and additional languages in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Mescio for Agents\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>REST API\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>GET \u002Fwp-json\u002Fmescio-for-agents\u002Fv1\u002Fmarkdown?id=42\nGET \u002Fwp-json\u002Fmescio-for-agents\u002Fv1\u002Fmarkdown?url=https:\u002F\u002Fyoursite.com\u002Fmy-page\u002F\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Developer hooks\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Filter: \u003Ccode>mescio_enabled_post_types\u003C\u002Fcode>\u003C\u002Fstrong> — add or remove post types dynamically.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Filter: \u003Ccode>mescio_pre_convert_content\u003C\u002Fcode>\u003C\u002Fstrong> — modify the HTML before conversion to Markdown.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Filter: \u003Ccode>mescio_post_convert_content\u003C\u002Fcode>\u003C\u002Fstrong> — modify the Markdown after conversion.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>This plugin does not collect, store or transmit any personal data. It does not set cookies. It does not make external HTTP requests.\u003C\u002Fp>\n","Mescio for Agents serves your WordPress content as clean Markdown to AI agents and GPT crawlers. Human visitors never notice a thing.",20,516,"2026-03-16T13:35:00.000Z","8.0",[18,19,49,22,50],"llm","rest-api","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmescio-for-agents\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmescio-for-agents.1.6.5.zip","2026-04-16T10:56:18.058Z",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":11,"downloaded":62,"rating":11,"num_ratings":11,"last_updated":63,"tested_up_to":14,"requires_at_least":64,"requires_php":65,"tags":66,"homepage":69,"download_link":70,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":53},"agentmark","AgentMark","1.0.0","Selvakumar Duraipandian","https:\u002F\u002Fprofiles.wordpress.org\u002Fselvasudar\u002F","\u003Cp>\u003Cstrong>The Problem:\u003C\u002Fstrong>\u003Cbr \u002F>\nWordPress outputs HTML that’s difficult for AI systems to parse accurately. Important content gets lost in markup, scripts, and styling.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The Solution:\u003C\u002Fstrong>\u003Cbr \u002F>\nAgentMark provides clean Markdown versions of your posts and pages through simple \u003Ccode>.md\u003C\u002Fcode> endpoints, plus an industry-standard \u003Ccode>llms.txt\u003C\u002Fcode> file that helps AI agents discover your best content.\u003C\u002Fp>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>AI Search Engines\u003C\u002Fstrong>: Help tools like Perplexity, Claude, and ChatGPT cite your content accurately\u003C\u002Fli>\n\u003Cli>\u003Cstrong>RAG Systems\u003C\u002Fstrong>: Enable companies to build knowledge bases from your public content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Documentation\u003C\u002Fstrong>: Provide developers with clean, parseable API docs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content Syndication\u003C\u002Fstrong>: Share articles in a universal, lightweight format\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Knowledge Graphs\u003C\u002Fstrong>: Help semantic web tools understand your site structure\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Zero Configuration\u003C\u002Fstrong>: Works out of the box with sensible defaults\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Markdown Endpoints\u003C\u002Fstrong>: Access any post\u002Fpage as Markdown by adding \u003Ccode>.md\u003C\u002Fcode> to the URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>llms.txt Standard\u003C\u002Fstrong>: Auto-generates discovery file for AI agents\u003C\u002Fli>\n\u003Cli>\u003Cstrong>YAML Front Matter\u003C\u002Fstrong>: Rich metadata for better AI understanding\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flexible\u003C\u002Fstrong>: Control which post types are exposed\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance\u003C\u002Fstrong>: Built-in caching and rate limiting\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy-Focused\u003C\u002Fstrong>: Per-post control over AI access\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Standards-Compliant\u003C\u002Fstrong>: Follows emerging llms.txt specification\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Business Value\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Future-Proof\u003C\u002Fstrong>: Position your content for the AI-driven web\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Zero Cost\u003C\u002Fstrong>: No API fees or external dependencies\u003C\u002Fli>\n\u003Cli>\u003Cstrong>SEO Boost\u003C\u002Fstrong>: Alternate content formats can improve discoverability\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Competitive Edge\u003C\u002Fstrong>: Early adoption of AI-friendly formats\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Analytics\u003C\u002Fstrong>: Track which content AI agents prefer\u003C\u002Fli>\n\u003C\u002Ful>\n","AI-Ready Markdown Endpoints & llms.txt discovery for WordPress. Clean, machine-readable content for AI agents and RAG systems.",111,"2026-03-22T16:41:00.000Z","6.9","7.4",[19,20,67,22,68],"llms","rag","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fagentmark.1.0.0.zip",{"slug":72,"name":73,"version":57,"author":74,"author_profile":75,"description":76,"short_description":77,"active_installs":11,"downloaded":78,"rating":11,"num_ratings":11,"last_updated":79,"tested_up_to":14,"requires_at_least":80,"requires_php":81,"tags":82,"homepage":84,"download_link":85,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":53},"lunatec-article-to-markdown","Lunatec Article to Markdown","lunatecsystemsltd","https:\u002F\u002Fprofiles.wordpress.org\u002Flunatecsystemsltd\u002F","\u003Cp>This plugin makes your WordPress posts accessible to AI agents, LLMs, and other automated systems by providing a clean, structured Markdown version of the content. It’s designed to work out of the box with zero configuration.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n*   Append \u003Ccode>.md\u003C\u002Fcode> to any single post URL to get the Markdown version (e.g., \u003Ccode>\u002Fmy-post.md\u003C\u002Fcode>).\u003Cbr \u002F>\n*   Responds with Markdown for requests with an \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header.\u003Cbr \u002F>\n*   Adds a \u003Ccode>\u003Clink rel=\"alternate\">\u003C\u002Fcode> tag to your posts for automatic discovery by crawlers.\u003Cbr \u002F>\n*   Includes post metadata (title, author, date, tags, categories) as YAML front matter.\u003C\u002Fp>\n","Exposes a clean Markdown version of WordPress posts for AI agents, LLMs, and crawlers.",143,"2026-01-27T15:28:00.000Z","6.2","8.1",[19,83,49,22,50],"content","https:\u002F\u002Fgithub.com\u002Ffujahgabriel\u002FLunatec-Article-to-Markdown","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flunatec-article-to-markdown.1.0.0.zip",{"slug":87,"name":88,"version":89,"author":90,"author_profile":91,"description":92,"short_description":93,"active_installs":11,"downloaded":94,"rating":11,"num_ratings":11,"last_updated":95,"tested_up_to":14,"requires_at_least":96,"requires_php":81,"tags":97,"homepage":100,"download_link":101,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":102},"serve-md","Serve Markdown","1.0","Azey","https:\u002F\u002Fprofiles.wordpress.org\u002Fakumarjain\u002F","\u003Cp>AI agents from ChatGPT, Claude, Perplexity, and others read your content to generate answers — but they parse through HTML, JavaScript, and navigation just to reach it. Serve Markdown gives them a direct path: clean Markdown with structured metadata. When a crawler requests it — via an \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header or a \u003Ccode>.md\u003C\u002Fcode> URL — your site responds instantly. No noise, no guesswork.\u003C\u002Fp>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>Serve Markdown adds three capabilities to your WordPress site:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. Content Negotiation\u003C\u002Fstrong>\u003Cbr \u002F>\nWhen an AI crawler sends \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode>, your site returns Markdown instead of HTML — no URL changes needed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2. .md URL Suffix\u003C\u002Fstrong>\u003Cbr \u002F>\nAppend \u003Ccode>.md\u003C\u002Fcode> to any post or page URL (e.g. \u003Ccode>example.com\u002Fmy-article.md\u003C\u002Fcode>) to get the Markdown version directly.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3. Markdown Auto-Discovery\u003C\u002Fstrong>\u003Cbr \u002F>\nEvery page includes a \u003Ccode>\u003Clink rel=\"alternate\" type=\"text\u002Fmarkdown\">\u003C\u002Fcode> tag in the HTML head so crawlers can find your Markdown automatically.\u003C\u002Fp>\n\u003Ch4>What the Markdown Output Looks Like\u003C\u002Fh4>\n\u003Cp>Every Markdown response includes YAML frontmatter with structured metadata followed by your post content. Here is a real example:\u003C\u002Fp>\n\u003Cpre>\n---\nurl: 'https:\u002F\u002Fakumarjain.com\u002Ftextexpander-year-in-review-2025\u002F'\ntitle: TextExpander Year in Review 2025\nauthor:\n  name: Ajay\n  url: 'https:\u002F\u002Fakumarjain.com\u002Fauthor\u002Fakumarjain\u002F'\ndate: '2026-01-05T09:05:00+05:30'\nmodified: '2026-01-10T14:30:06+05:30'\ntype: post\ncategories:\n  - 2025\n  - Year in Review\ntags:\n  - '#ToolsIUse'\n  - Productivity\n  - Remote Work\nimage: 'https:\u002F\u002Fakumarjain.com\u002Fwp-content\u002Fuploads\u002Ftext-expander-year-in-review-2025.webp'\npublished: true\n---\n\n# TextExpander Year in Review 2025\n\nIn my daily work, I need to type the same words and phrases repeatedly...\n\u003C\u002Fpre>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Content Serving\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Content negotiation via \u003Ccode>Accept: text\u002Fmarkdown\u003C\u002Fcode> header\u003C\u002Fli>\n\u003Cli>\u003Ccode>.md\u003C\u002Fcode> URL suffix on any post or page\u003C\u002Fli>\n\u003Cli>Auto-discovery \u003Ccode>\u003Clink rel=\"alternate\">\u003C\u002Fcode> tag in page head\u003C\u002Fli>\n\u003Cli>Each feature can be toggled independently\u003C\u002Fli>\n\u003Cli>Choose which post types are exposed (posts, pages, custom post types)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Frontmatter and Metadata\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>YAML frontmatter with title, author, date, categories, tags, featured image, and more\u003C\u002Fli>\n\u003Cli>Toggle individual metadata fields on or off\u003C\u002Fli>\n\u003Cli>Add custom static key-value pairs (e.g., \u003Ccode>license\u003C\u002Fcode>, \u003Ccode>language\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Map WordPress custom fields (post meta) into the frontmatter\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Access Control\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Per-post opt-out via a sidebar checkbox in the editor\u003C\u002Fli>\n\u003Cli>Exclude entire categories from Markdown serving\u003C\u002Fli>\n\u003Cli>Exclude entire tags from Markdown serving\u003C\u002Fli>\n\u003Cli>Only published posts are served — drafts and private posts are never exposed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Crawler Insights\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Request log showing every Markdown request with timestamp, URL, bot name, and method\u003C\u002Fli>\n\u003Cli>Automatic bot detection: ClaudeBot, GPTBot, ChatGPT, OAI-SearchBot, PerplexityBot, Googlebot, Bingbot, Cohere, Meta AI, Bytespider, Applebot, and more\u003C\u002Fli>\n\u003Cli>Stats dashboard: total requests, requests today, unique bots\u003C\u002Fli>\n\u003Cli>Filter log by individual bot\u003C\u002Fli>\n\u003Cli>Configurable retention period with automatic pruning\u003C\u002Fli>\n\u003Cli>One-click log clearing\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Editor Integration\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“Preview Markdown” button in the post editor sidebar\u003C\u002Fli>\n\u003Cli>“View Markdown” link in the Posts and Pages list table\u003C\u002Fli>\n\u003Cli>Meta box shows on all enabled post types\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Performance\u003C\u002Fh4>\n\u003Cp>Markdown conversion only runs when specifically requested — regular visitors see the same HTML pages they always have. The crawler log uses a lightweight custom table with three safeguards against unbounded growth: time-based retention, a row count cap, and a table size cap.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>The crawler log stores IP addresses and user-agent strings from Markdown requests. This data stays in your WordPress database and is never sent to external services. You can disable logging entirely, configure a retention period, or clear the log at any time from the settings page.\u003C\u002Fp>\n","Serve Markdown versions of your posts and pages to AI agents and crawlers. Content negotiation, .md URLs, auto-discovery, and crawler logging.",56,"2026-03-15T12:22:00.000Z","6.5",[19,98,21,22,99],"content-negotiation","seo","https:\u002F\u002Fgithub.com\u002Fajaykj\u002Fserve-markdown","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fserve-md.1.0.zip","2026-03-15T15:16:48.613Z",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":113,"num_ratings":114,"last_updated":115,"tested_up_to":14,"requires_at_least":116,"requires_php":65,"tags":117,"homepage":123,"download_link":124,"security_score":125,"vuln_count":31,"unpatched_count":11,"last_vuln_date":126,"fetched_at":53},"site-mailer","Site Mailer – SMTP Replacement, Email API Deliverability & Email Log","1.4.3","Elementor","https:\u002F\u002Fprofiles.wordpress.org\u002Felemntor\u002F","\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F1hOxkEO-22I?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>Has your WordPress site stopped sending emails? Are emails from your WordPress site landing in spam or not getting delivered? Are customers complaining about missing messages?\u003C\u002Fp>\n\u003Cp>With \u003Cstrong>Site Mailer\u003C\u002Fstrong>, you can say goodbye to email issues. Our easy-to-use tool ensures all emails reach their destination while providing you with a detailed email log to track and resend messages if needed.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Enhance your email management effortlessly\u003C\u002Fstrong>. Site Mailer eliminates the need for complex SMTP plugins, providing a streamlined solution for reliable email deliverability. Troubleshoot and monitor with ease using our intuitive interface, so you never miss another email.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Ch4>High Deliverability\u003C\u002Fh4>\n\u003Cp>Ensure your emails consistently reach your audience’s inbox with optimized sending methods designed to maximize deliverability and minimize spam risk.\u003C\u002Fp>\n\u003Ch4>Use Your Custom Domain\u003C\u002Fh4>\n\u003Cp>Send emails with your custom domain — or get started quickly with our default email so no email will be lost once you start working with Site Mailer.\u003C\u002Fp>\n\u003Ch4>No Integration or SMTP Plugin Needed\u003C\u002Fh4>\n\u003Cp>Site Mailer works seamlessly without the need for additional API integration or SMTP plugins. This means less hassle and more efficient email management.\u003C\u002Fp>\n\u003Ch4>Easy Setup\u003C\u002Fh4>\n\u003Cp>Get started with Site Mailer in no time. Our intuitive setup process ensures you can configure and start using the plugin quickly and effortlessly.\u003C\u002Fp>\n\u003Ch4>30-Day Log Retention\u003C\u002Fh4>\n\u003Cp>The plugin includes 30 days of email log retention, allowing you to easily track and review your email activity.\u003C\u002Fp>\n\u003Ch4>Compatibility with Popular Plugins\u003C\u002Fh4>\n\u003Cp>Site Mailer has been tested to be fully compatible with most popular WordPress plugins, including Elementor Pro, WooCommerce, Contact Form 7, WPForms and more.\u003C\u002Fp>\n\u003Ch4>Reputation Management\u003C\u002Fh4>\n\u003Cp>Safeguard your email sending reputation with intelligent features that enhance your sender score, ensuring consistent inbox placement and reducing the risk of emails being marked as spam.\u003C\u002Fp>\n\u003Ch4>Email Testing\u003C\u002Fh4>\n\u003Cp>Send a test email to confirm your site is properly configured for seamless transactional email delivery.\u003C\u002Fp>\n\u003Ch4>Resend Failed Emails\u003C\u002Fh4>\n\u003Cp>Did an email fail to deliver? Easily resend it with a single click to ensure your message reaches its intended recipient.\u003C\u002Fp>\n\u003Ch4>Suppression List\u003C\u002Fh4>\n\u003Cp>Enable easy unsubscribe options for your emails. Track and manage all unsubscribed recipients directly in the Suppressions tab.\u003C\u002Fp>\n\u003Ch3>Benefits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>No Integration Needed\u003C\u002Fstrong>: Use Site Mailer without the need for additional plugins or integrations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Troubleshooting\u003C\u002Fstrong>: Efficiently troubleshoot and resend emails when necessary.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Spam Reduction\u003C\u002Fstrong>: Our plugin will keep your emails out of the spam folder, ensuring that your important messages reach their intended recipients.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Built by the Elementor team\u003C\u002Fstrong>: Leverage the trust and reliability of a solution developed by Elementor.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Get Started Today\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Transform your website’s email management with Site Mailer!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>For more information about Site Mailer, visit our \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-wp-dash-sm-product-page\u002F\" rel=\"nofollow ugc\">official website\u003C\u002Fa>.\u003Cbr \u002F>\nIf you have any questions or need support, feel free to \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-wp-dash-sm-contact-us\u002F\" rel=\"nofollow ugc\">contact us\u003C\u002Fa> or visit our \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-wp-dash-sm-help-center\u002F\" rel=\"nofollow ugc\">help center\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin requires a connection to an active Elementor account in order to identify the user and provide the user with the purchased service. This connection is triggered manually by the user via the plugin’s settings panel. Learn more our \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-wp-dash-sm-term-and-conditions\u002F\" rel=\"nofollow ugc\">terms and conditions\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin uses a 3rd party service operated by Elementor, which accepts Email information including but not limited to (from, to, cc,bcc addresses, email body, subject line and attachments). This flow is triggered automatically on every email sending process utilizing the native WordPress \u003Ccode>wp_mail\u003C\u002Fcode> function.\u003C\u002Fp>\n\u003Ch3>Related Plugins\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-optimization\u002F\" rel=\"ugc\">Image Optimizer\u003C\u002Fa>: Superior image compression for faster, high-quality website performance.\u003C\u002Fp>\n","Effortlessly manage transactional emails with Site Mailer. High deliverability, logs and statistics, and no SMTP plugins needed.",200000,1852822,44,14,"2026-02-17T13:35:00.000Z","6.6",[118,119,120,121,122],"email","email-api","email-log","sender","smtp","https:\u002F\u002Felementor.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsite-mailer.1.4.3.zip",98,"2025-02-27 23:34:36",{"attackSurface":128,"codeSignals":189,"taintFlows":204,"riskAssessment":237,"analyzedAt":249},{"hooks":129,"ajaxHandlers":185,"restRoutes":186,"shortcodes":187,"cronEvents":188,"entryPointCount":11,"unprotectedCount":11},[130,136,139,143,146,149,153,156,160,163,166,169,172,175,179,182],{"type":131,"name":132,"callback":133,"file":134,"line":135},"action","admin_notices","closure","botkibble.php",26,{"type":131,"name":137,"callback":133,"file":134,"line":138},"init",55,{"type":131,"name":140,"callback":141,"file":134,"line":142},"activated_plugin","botkibble_flush_entire_cache",83,{"type":131,"name":144,"callback":141,"file":134,"line":145},"deactivated_plugin",84,{"type":131,"name":147,"callback":141,"file":134,"line":148},"switch_theme",85,{"type":131,"name":137,"callback":133,"priority":150,"file":151,"line":152},5,"includes\\routing.php",19,{"type":131,"name":137,"callback":154,"file":151,"line":155},"botkibble_register_rewrite_rule",163,{"type":157,"name":158,"callback":133,"file":151,"line":159},"filter","redirect_canonical",166,{"type":157,"name":161,"callback":133,"file":151,"line":162},"query_vars",179,{"type":157,"name":164,"callback":133,"file":151,"line":165},"request",188,{"type":131,"name":167,"callback":133,"file":151,"line":168},"template_redirect",250,{"type":131,"name":170,"callback":133,"file":151,"line":171},"wp_head",316,{"type":131,"name":173,"callback":133,"file":151,"line":174},"send_headers",353,{"type":131,"name":176,"callback":177,"file":151,"line":178},"save_post","botkibble_invalidate_cache",392,{"type":131,"name":180,"callback":177,"file":151,"line":181},"before_delete_post",393,{"type":131,"name":183,"callback":133,"file":151,"line":184},"update_option_page_on_front",396,[],[],[],[],{"dangerousFunctions":190,"sqlUsage":191,"outputEscaping":193,"fileOperations":202,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":203},[],{"prepared":11,"raw":11,"locations":192},[],{"escaped":194,"rawEcho":195,"locations":196},12,2,[197,200],{"file":151,"line":198,"context":199},147,"raw output",{"file":151,"line":201,"context":199},308,9,[],[205],{"entryPoint":206,"graph":207,"unsanitizedCount":195,"severity":236},"\u003Crouting> (includes\\routing.php:0)",{"nodes":208,"edges":231},[209,214,220,223,227],{"id":210,"type":211,"label":212,"file":151,"line":213},"n0","source","$_SERVER",29,{"id":215,"type":216,"label":217,"file":151,"line":218,"wp_function":219},"n1","sink","file_get_contents() [SSRF\u002FLFI]",124,"file_get_contents",{"id":221,"type":211,"label":212,"file":151,"line":222},"n2",87,{"id":224,"type":225,"label":226,"file":151,"line":222},"n3","transform","→ botkibble_read_meta()",{"id":228,"type":216,"label":217,"file":229,"line":230,"wp_function":219},"n4","includes\\converter.php",139,[232,234,235],{"from":210,"to":215,"sanitized":233},false,{"from":221,"to":224,"sanitized":233},{"from":224,"to":228,"sanitized":233},"medium",{"summary":238,"deductions":239},"The botkibble plugin v1.3.0 exhibits a generally good security posture, with no known vulnerabilities in its history. Static analysis reveals no direct attack surface through common entry points like AJAX, REST API, shortcodes, or cron events, which is a significant strength. The code also demonstrates a commitment to secure database interactions, with 100% of SQL queries using prepared statements. Furthermore, a high percentage of output is properly escaped, mitigating the risk of cross-site scripting (XSS) vulnerabilities.  However, there are some areas of concern. The taint analysis identified one flow with unsanitized paths, which, while not classified as critical or high in this instance, indicates a potential for mishandling user-supplied data that could lead to security issues if exploited.  The lack of nonce checks and capability checks on any potential, though currently unexposed, entry points is a notable weakness.  While the plugin currently has no recorded vulnerabilities, the presence of a taint flow suggests that future, more complex attacks might be possible. Overall, botkibble benefits from a clean history and a limited attack surface but should address the identified taint flow and implement more robust security checks on its internal operations.",[240,242,244,246],{"reason":241,"points":150},"Flows with unsanitized paths",{"reason":243,"points":150},"No nonce checks",{"reason":245,"points":150},"No capability checks",{"reason":247,"points":248},"Low percentage of properly escaped output (14\u002F16)",3,"2026-03-17T07:32:11.432Z",{"wat":251,"direct":260},{"assetPaths":252,"generatorPatterns":253,"scriptPaths":254,"versionParams":255},[],[],[],[256,257,258,259,256,257,258,259,256,257,258,259],"botkibble\u002Fvendor\u002Fcomposer\u002Finstallers\u002Fsrc\u002FComposer\u002FInstallers\u002FBaseInstaller.php?ver=","botkibble\u002Fvendor\u002Fcomposer\u002Finstallers\u002Fsrc\u002FComposer\u002FInstallers\u002FThemeInstaller.php?ver=","botkibble\u002Fvendor\u002Fcomposer\u002Finstallers\u002Fsrc\u002FComposer\u002FInstallers\u002FPluginInstaller.php?ver=","botkibble\u002Fvendor\u002Fcomposer\u002Finstallers\u002Fsrc\u002FComposer\u002FInstallers\u002FWordPressInstaller.php?ver=",{"cssClasses":261,"htmlComments":262,"htmlAttributes":263,"restEndpoints":264,"jsGlobals":265,"shortcodeOutput":266},[],[],[],[],[],[],{"error":268,"url":269,"statusCode":270,"statusMessage":271,"message":271},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fbotkibble\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":195,"versions":273},[274,279],{"version":6,"download_url":24,"svn_tag_url":275,"released_at":26,"has_diff":233,"diff_files_changed":276,"diff_lines":26,"trac_diff_url":277,"vulnerabilities":278,"is_current":268},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbotkibble\u002Ftags\u002F1.3.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbotkibble%2Ftags%2F1.2.1&new_path=%2Fbotkibble%2Ftags%2F1.3.0",[],{"version":280,"download_url":281,"svn_tag_url":282,"released_at":26,"has_diff":233,"diff_files_changed":283,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":284,"is_current":233},"1.2.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbotkibble.1.2.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbotkibble\u002Ftags\u002F1.2.1\u002F",[],[]]