[wp-trac] [WordPress Trac] #64098: Introduce Abilities API

WordPress Trac noreply at wordpress.org
Mon Oct 20 16:09:27 UTC 2025


#64098: Introduce Abilities API
--------------------------------------------------+---------------------
 Reporter:  gziolo                                |       Owner:  (none)
     Type:  feature request                       |      Status:  new
 Priority:  normal                                |   Milestone:  6.9
Component:  General                               |     Version:  trunk
 Severity:  normal                                |  Resolution:
 Keywords:  has-patch 2nd-opinion has-unit-tests  |     Focuses:
--------------------------------------------------+---------------------

Comment (by jorbin):

 Thank you @gziolo. The additional context is helpful and I'm glad we are
 having this discussion.

 The comparison to the REST API feels off though since that was developed
 over a considerably longer amount of time. It went through multiple
 iterations before the [https://make.wordpress.org/core/2015/09/21/wp-rest-
 api-merge-proposal/ proposal to merge in a multi step manor] was shared a
 month before beta 1 wheras this never had a merge proposal published just
 a ticket opened a week before beta. One week ago
 [https://github.com/WordPress/abilities-
 api/issues/105#issuecomment-3392491695 initial abilities were still be
 discussed and considered].

 > Having a formal API for defining and exposing those interactions ensures
 WordPress remains relevant as part of the AI-native web, while simplifying
 the developer experience through a unified, self-authenticating interface
 accessible via PHP, REST, or MCP.>

 Can you go a bit deeper on what you mean by "self-authenticating"? I'm not
 finding anything in [https://github.com/search?q=repo%3AWordPress
 %2Fabilities-api%20%22self-authenticating%22&type=code the github repo] or
 in slack that describes the API in such a way.

 > Merging the Abilities API in 6.9 gives plugin authors and extenders the
 opportunity to validate the approach during the release cycle,
 establishing a solid foundation for iterative improvements in future
 versions of core.

 The iterative improvements are much more constrained once backwards
 compatibility needs to be paramount.

 > There is also an open PR https://github.com/WordPress/abilities-
 api/pull/108 that is almost ready to land which proposes 3 basic read-only
 core abilities that we can ship together with API in WordPress 6.9. This
 is going to be the most challenging process to identify what WP core
 should offer as built-in abilities, and leaving that to the ecosystem
 might be the best idea. Our intuition tells us based on the prototypes
 floating around, is that WordPress core should offer CRUD operations for
 handling content and it's tracked in https://github.com/WordPress
 /abilities-api/issues/84. However, that's much larger effort than the API
 itself, so this is something we would like to experiment with in the AI
 featured plugin.

 Again, I very much agree that identifying what abilities to ship initially
 is a challenge, but those abilities also will help ensure that the API is
 flushed out for all of core's needs which also means that the API is much
 better for extenders needs.

 > I think it's important we do try to get this into 6.9 so that plugin
 developers can ship without worrying about trying to ship copies of the
 feature plugin in their own code, because the abilities API seems to be
 the foundation AI exposure, and quite frankly, waiting another x months
 puts us all at a disadvantage.

 There is no featured plugin. There is a composer package which is supposed
 to make it esier to embed than trying to ship a copy of a feature plugin
 in your code (which also is something you should never do, but I digress)


 > Strategically, the API also prepares WordPress for the growing
 importance of AI-driven and cross-system integrations. Transformer-based
 systems increasingly rely on structured, callable actions—“abilities”—to
 describe functionality in a machine-readable, executable form.

 I completely agree, and it's the biggest reason that I am in favor of
 merging despite the API not feeling as tested or mature as I think a new
 API of this importance should be. What I would like to find though is a
 way to ensure that what is shipped in 6.9 (and thus supported by Core for
 the long run) is something that is easily maintainable and isn't going to
 make future iterations harder.

 A couple ideas to help with that:

 - Come up with a big list of core abilities and do at least some psuedo-
 code to see if the API will work well for them.
 - Before the final beta, have five (or more) plugins that are already in
 the repo ship abilities that use the version that gets committed to core.
 - Implement abilities in WP-CLI and make sure that the API solves the
 needs there.
 - Identify if there are other places that should use the abilities API
 (the command palate is one that stands out off the top of my head) and ask
 maintainers of those to also come up with an initial implementation.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64098#comment:28>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list