{"id":321086,"date":"2026-06-05T06:13:49","date_gmt":"2026-06-05T06:13:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/magick-ai-abilities\/"},"modified":"2026-06-22T03:15:36","modified_gmt":"2026-06-22T03:15:36","slug":"npcink-abilities-toolkit","status":"publish","type":"plugin","link":"https:\/\/mri.wordpress.org\/plugins\/npcink-abilities-toolkit\/","author":16786901,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.2","stable_tag":"0.5.2","tested":"7.0","requires":"7.0","requires_php":"8.0","requires_plugins":null,"header_name":"Npcink Abilities Toolkit","header_author":"Npcink","header_description":"Standalone WordPress Abilities API package toolkit for safely exposing agent-callable abilities.","assets_banners_color":"f3f7fd","last_updated":"2026-06-22 03:15:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":145,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"0.4.0":{"tag":"0.4.0","author":"muze233","date":"2026-06-05 06:13:31"},"0.5.0":{"tag":"0.5.0","author":"muze233","date":"2026-06-06 09:54:45"},"0.5.2":{"tag":"0.5.2","author":"muze233","date":"2026-06-22 03:15:36"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3581135,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3581135,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3563029,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3563029,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.0","0.5.0","0.5.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3581125,"resolution":"1","location":"assets","locale":"","width":1366,"height":920},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3581125,"resolution":"2","location":"assets","locale":"","width":1366,"height":920},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3581125,"resolution":"3","location":"assets","locale":"","width":1366,"height":920},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3581125,"resolution":"4","location":"assets","locale":"","width":1366,"height":920}},"screenshots":{"1":"Site ability status overview with available ability count, write safeguards, host detection, and next actions.","2":"Available Abilities catalog with filters, risk grouping, availability, and technical details for support.","3":"Safe Checks tab explaining what each check proves before showing summary results and raw response support details.","4":"Developer Access tab with copyable REST endpoint values, raw discovery fetches, and ability ID export."}},"plugin_section":[],"plugin_tags":[256265,15643,2353,569],"plugin_category":[],"plugin_contributors":[265919],"plugin_business_model":[],"class_list":["post-321086","plugin","type-plugin","status-publish","hentry","plugin_tags-abilities-api","plugin_tags-agents","plugin_tags-ai","plugin_tags-automation","plugin_contributors-muze233","plugin_committers-muze233"],"banners":{"banner":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/banner-772x250.png?rev=3563029","banner_2x":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/banner-1544x500.png?rev=3563029","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/icon-128x128.png?rev=3581135","icon_2x":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/icon-256x256.png?rev=3581135","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/screenshot-1.png?rev=3581125","caption":"Site ability status overview with available ability count, write safeguards, host detection, and next actions."},{"src":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/screenshot-2.png?rev=3581125","caption":"Available Abilities catalog with filters, risk grouping, availability, and technical details for support."},{"src":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/screenshot-3.png?rev=3581125","caption":"Safe Checks tab explaining what each check proves before showing summary results and raw response support details."},{"src":"https:\/\/ps.w.org\/npcink-abilities-toolkit\/assets\/screenshot-4.png?rev=3581125","caption":"Developer Access tab with copyable REST endpoint values, raw discovery fetches, and ability ID export."}],"raw_content":"<!--section=description-->\n<p>Npcink Abilities Toolkit helps a WordPress site expose, review, and safely inspect Abilities API capabilities for AI hosts and clients.<\/p>\n\n<p>The admin page is built for site operators first. It shows whether the site's ability package is working, which abilities are available, which abilities are read-only, and which write-like abilities require host approval.<\/p>\n\n<p>For developers and host runtimes, the plugin also provides ability registration helpers, category helpers, schema normalization, annotation normalization, REST discovery values, and optional canonical projection for Npcink AI when Npcink AI is installed.<\/p>\n\n<p>It can be used by any WordPress plugin or client that consumes the WordPress Abilities API. Npcink AI is one optional consumer, not the owner of this plugin.<\/p>\n\n<p>It does not run AI models, execute workflows, route prompts, contact model providers, manage billing or quotas, own MCP governance, or approve final WordPress writes.<\/p>\n\n<p>Read-only host composition recipe metadata may document how hosts can compose abilities, but those records do not run queues, schedule jobs, execute workflows, or create a second registry.<\/p>\n\n<p>Host composition recipe metadata is available through read-only helpers and Abilities API discovery abilities for hosts that need catalog discovery without execution ownership.<\/p>\n\n<h3>External Services and Remote Requests<\/h3>\n\n<p>This plugin does not automatically contact Npcink AI, model providers, analytics services, tracking services, or cloud services.<\/p>\n\n<p>Some abilities can prepare request payloads for a separate host or cloud add-on, but this plugin does not send those payloads to an external service by itself.<\/p>\n\n<p>The <code>npcink-abilities-toolkit\/upload-media-from-url<\/code> ability can download a media file from a URL provided by an authenticated caller when an approved host runtime commits that ability. In that case WordPress sends an HTTP request to the caller-provided URL in order to fetch the media file for the local media library. The remote endpoint is chosen by the caller, not by this plugin.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>WordPress 7.0 or later. This release intentionally targets the WordPress Abilities API baseline available in WordPress 7.0+.<\/li>\n<li>PHP 8.0 or later.<\/li>\n<li>The WordPress Abilities API REST routes must be available before third-party\nprovider plugins or external clients can discover and run abilities.<\/li>\n<\/ul>\n\n<h3>Public API<\/h3>\n\n<ul>\n<li><code>npcink_abilities_toolkit_register_category( $category_id, $args )<\/code><\/li>\n<li><code>npcink_abilities_toolkit_register_readonly( $ability_id, $definition )<\/code><\/li>\n<li><code>npcink_abilities_toolkit_register_write_proposal( $ability_id, $definition )<\/code><\/li>\n<li><code>npcink_abilities_toolkit_normalize_schema( $schema, $default_type )<\/code><\/li>\n<li><code>npcink_abilities_toolkit_normalize_annotations( $annotations, $risk_level )<\/code><\/li>\n<li><code>npcink_abilities_toolkit_get_registered()<\/code><\/li>\n<li><code>npcink_abilities_toolkit_get_workflow_definitions()<\/code><\/li>\n<li><code>npcink_abilities_toolkit_get_workflow_definition( $recipe_id )<\/code><\/li>\n<\/ul>\n\n<h3>Third-Party Integration Quickstart<\/h3>\n\n<p>Provider plugins should wait until <code>plugins_loaded<\/code>, check that the public\nhelper exists, and then register their abilities through the helper functions:<\/p>\n\n<pre><code>if ( function_exists( 'npcink_abilities_toolkit_register_readonly' ) ) { npcink_abilities_toolkit_register_readonly( 'acme\/site-summary', $definition ); }\n<\/code><\/pre>\n\n<p>Do not include files from this plugin's <code>includes\/<\/code> directory or instantiate\nclasses in the <code>Npcink_Abilities_Toolkit<\/code> namespace. Those are implementation\ndetails.<\/p>\n\n<p>Use <code>npcink_abilities_toolkit_register_readonly()<\/code> for read-only context and\ndiagnostic abilities. Use <code>npcink_abilities_toolkit_register_write_proposal()<\/code>\nonly when the callback returns a proposal, preview, diff, or handoff payload.\nThird-party provider callbacks should not perform final host-governed commits.\nApproval, audit, quota, and final write authorization belong to the consuming\nhost runtime.<\/p>\n\n<p>REST clients should first discover the catalog through:<\/p>\n\n<ul>\n<li><code>\/wp-json\/wp-abilities\/v1\/categories<\/code><\/li>\n<li><code>\/wp-json\/wp-abilities\/v1\/abilities<\/code><\/li>\n<li><code>\/wp-json\/wp-abilities\/v1\/abilities\/{namespace}\/{name}\/run<\/code><\/li>\n<li><code>\/wp-json\/npcink-abilities-toolkit\/v1\/contract<\/code><\/li>\n<\/ul>\n\n<p>The contract endpoint is a compatibility and boundary discovery endpoint for\nauthenticated host runtimes. It does not replace the WordPress Abilities API\ncatalog and does not run abilities.<\/p>\n\n<p>Full provider examples and REST client notes are maintained in the public\nrepository:<\/p>\n\n<pre><code>https:\/\/github.com\/muze-page\/npcink-abilities-toolkit\n<\/code><\/pre>\n\n<p>If the <code>wp-abilities\/v1<\/code> REST routes are missing, enable the WordPress\nAbilities API baseline or compatibility plugin before connecting third-party\nproviders or clients.<\/p>\n\n<h3>Admin Page<\/h3>\n\n<p>After activation with a Npcink AI host plugin, open Npcink AI -&gt; AI Abilities in wp-admin. When this standalone package is installed without a Npcink AI host menu, open Tools -&gt; Site AI Abilities instead.<\/p>\n\n<p>The page is designed for site operators first: it shows site ability status, groups available abilities with plain labels and risk posture, and can run two official read-only checks: site info and bounded redacted diagnostics summary. The Checks tab explains what each check proves and what it does not prove before it runs. Check results are shown as a plain summary table, with raw JSON kept behind a support disclosure. Developer Access keeps copyable REST endpoint values, raw discovery fetches, and ability ID export available for host\/client setup. It does not run showcase workflows, model calls, write abilities, approval flows, or demo abilities.<\/p>\n\n<h3>Built-In Abilities<\/h3>\n\n<p>The plugin includes migrated low-risk WordPress read abilities, deterministic comment helpers, and host-governed WordPress write\/destructive abilities using canonical <code>npcink-abilities-toolkit\/*<\/code> ids.<\/p>\n\n<p>It also includes <code>npcink-abilities-toolkit\/wp-diagnostics-summary<\/code>, a redacted WordPress-only diagnostics summary for Abilities API clients. This summary intentionally omits Npcink AI settings, MCP settings, API keys, database names, table prefixes, filesystem paths, error logs, and external HTTP probes.<\/p>\n\n<p>It also includes <code>npcink-abilities-toolkit\/search-posts<\/code> and <code>npcink-abilities-toolkit\/search-post-meta<\/code>, bounded local WordPress search helpers for keyword and explicit post-meta discovery. These are read-only helpers and do not call external search indexes or mutate content.<\/p>\n\n<p>It also includes <code>npcink-abilities-toolkit\/list-workflow-recipes<\/code> and <code>npcink-abilities-toolkit\/get-workflow-recipe<\/code>, read-only host composition recipe metadata discovery abilities. These expose metadata only and do not execute workflow runtime behavior.<\/p>\n\n<p>Core governance handoff docs include a catalog snapshot, permission matrix, and schema boundary audit for hosts that consume this plugin through <code>npcink-ai-core<\/code>.<\/p>\n\n<h3>Developer Verification<\/h3>\n\n<p>For the default local source gate, run:<\/p>\n\n<pre><code>composer test:all\n<\/code><\/pre>\n\n<p>When the plugin is installed in a local WordPress site, run:<\/p>\n\n<pre><code>WP_PATH=\/path\/to\/wordpress composer smoke:wp\n<\/code><\/pre>\n\n<p>For isolated bounded-chain performance validation, run:<\/p>\n\n<pre><code>composer perf:smoke\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20run%20ai%20models%3F\"><h3>Does this plugin run AI models?<\/h3><\/dt>\n<dd><p>No. Npcink Abilities Toolkit exposes WordPress abilities and support information through the WordPress Abilities API. Model routing, prompt selection, hosted runtime execution, and workflow execution belong to a separate host product or client.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20change%20my%20posts%2C%20media%2C%20terms%2C%20comments%2C%20or%20settings%20by%20itself%3F\"><h3>Will this plugin change my posts, media, terms, comments, or settings by itself?<\/h3><\/dt>\n<dd><p>No. The admin page checks are read-only. Some built-in abilities describe write-like or destructive operations, but final commits require a host runtime with its own approval, authorization, and audit layer.<\/p><\/dd>\n<dt id=\"do%20i%20need%20npcink%20ai%20to%20use%20this%20plugin%3F\"><h3>Do I need Npcink AI to use this plugin?<\/h3><\/dt>\n<dd><p>No. Npcink AI is an optional consumer. The plugin can also be used by other plugins or clients that consume the WordPress Abilities API.<\/p><\/dd>\n<dt id=\"what%20do%20the%20safe%20checks%20prove%3F\"><h3>What do the Safe Checks prove?<\/h3><\/dt>\n<dd><p>Site Info proves that an authorized ability client can read basic WordPress site information. Redacted Diagnostics proves that the site can return a support-friendly environment summary with sensitive fields omitted. These checks do not call models, generate content, contact external services, or fix configuration automatically.<\/p><\/dd>\n<dt id=\"does%20redacted%20diagnostics%20expose%20secrets%3F\"><h3>Does Redacted Diagnostics expose secrets?<\/h3><\/dt>\n<dd><p>No. The diagnostics summary intentionally omits Npcink AI settings, MCP settings, API keys, database names, table prefixes, filesystem paths, error logs, and external HTTP probes.<\/p><\/dd>\n<dt id=\"what%20should%20i%20do%20if%20abilities%20are%20not%20visible%20to%20a%20host%20product%20or%20ai%20client%3F\"><h3>What should I do if abilities are not visible to a host product or AI client?<\/h3><\/dt>\n<dd><p>Open Tools -&gt; Site AI Abilities, or Npcink AI -&gt; AI Abilities when a Npcink AI host menu is present. Use the Checks tab to confirm safe read-only responses, then use Available Abilities to review what the site exposes. Developers and host products can use Developer Access for REST endpoint values and raw discovery responses.<\/p><\/dd>\n<dt id=\"what%20if%20the%20wp-abilities%2Fv1%20rest%20routes%20are%20missing%3F\"><h3>What if the wp-abilities\/v1 REST routes are missing?<\/h3><\/dt>\n<dd><p>The WordPress Abilities API routes must be available before clients can discover and run abilities. Enable the WordPress Abilities API baseline or compatibility plugin for the target site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>Added read-only review artifacts for image candidates, internal link candidates, taxonomy suggestions, and comment reply suggestions.<\/li>\n<li>Kept candidate review helpers suggestion-only and host-governed; they do not create proposals, approve work, execute writes, or contact external providers.<\/li>\n<li>Expanded acceptance contracts and first-party pack documentation for the new handoff artifacts.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Added Composer dependency advisory audit to the default local and CI source gate.<\/li>\n<li>Aligned CI and PHPStan with the package PHP 8.0 runtime floor.<\/li>\n<li>Published the canonical public GitHub repository and documented the post-publication gate baseline.<\/li>\n<li>Upgraded GitHub Actions checkout to the Node 24-compatible <code>actions\/checkout@v5<\/code>.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Improved the admin page as a connection and discovery surface with clearer package status, catalog navigation, copyable REST endpoints, and two bounded read-only checks.<\/li>\n<li>Added bundled translation templates and eight starter locale packs for the admin connection\/discovery surface, API ability labels\/descriptions, and common runtime error messages.<\/li>\n<li>Removed development demo ability controls from the admin page and kept showcase, model-call, write, and workflow execution outside this package surface.<\/li>\n<li>Renamed nonproduction cleanup abilities and media cleanup inputs to avoid public <code>test<\/code> terminology in released ability ids and schema fields.<\/li>\n<li>Added taxonomy assignment proposal support and strengthened Core consumer handoff checks for harvested workflow surfaces.<\/li>\n<li>Hardened media replacement and Cloud derivative adoption previews so approved replacements can repair exact post-content media URLs, including old intermediate-size URLs.<\/li>\n<li>Documented the foundation-layer testing strategy and default local source gate.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Added read-only host composition recipe metadata discovery abilities and public PHP helpers.<\/li>\n<li>Added Core governance handoff documentation, a catalog snapshot fixture, a permission matrix, and a schema boundary audit.<\/li>\n<li>Hardened write-like contracts with <code>requires_approval<\/code>, explicit dry-run and commit defaults, and bounded idempotency keys.<\/li>\n<li>Expanded REST verification coverage for governance metadata and schemas.<\/li>\n<li>Added a consumer example for preparing Core proposal payloads from discovered ability contracts.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Added package and sub-pack filters so hosts can keep a full catalog by default or opt into a light <code>core_wordpress_read<\/code> profile.<\/li>\n<li>Kept public third-party helpers read-only\/write-proposal oriented and documented that final commit authorization belongs to the host runtime.<\/li>\n<li>Made Npcink AI catalog projection thin by default and added a projection-row filter for host-owned policy expansion.<\/li>\n<li>Established <code>npcink-abilities-toolkit\/*<\/code> as the canonical id namespace for abilities owned by this plugin.<\/li>\n<li>Added explicit read\/comment sub-pack maps as the split point for future source-file extraction.<\/li>\n<li>Verified Npcink AI catalog compatibility against a WordPress site.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Stabilized the public helper contract and ability metadata rules.<\/li>\n<li>Documented host-governed write\/destructive semantics and the Npcink AI integration boundary.<\/li>\n<li>Added first-party ability pack grouping and 0.2 candidate verification evidence.<\/li>\n<li>Strengthened lightweight tests for schema controls, Npcink catalog projection, provider defaults, and invalid ability ids.<\/li>\n<li>Verified WordPress REST coverage and Npcink AI consumer split-boundary checks.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial standalone release.<\/li>\n<li>Added migrated WordPress read abilities, deterministic comment helpers, host-governed write\/destructive abilities, and standalone redacted WordPress diagnostics.<\/li>\n<\/ul>","raw_excerpt":"Expose and inspect WordPress Abilities API capabilities for AI hosts and clients, without running models or writing content.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=321086"}],"author":[{"embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/muze233"}],"wp:attachment":[{"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321086"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321086"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321086"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321086"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321086"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mri.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}