Content type: Handbook

  • AI Guidelines

    AI tools are now part of how many people write code, tests, and documentation. This guide explains how to use them responsibly when contributing to the WordPress project, so that your contributions are: Compatible with the GPL. Maintainable and understandable. Respectful of the time and attention of maintainers. Core principles 1.1 You are responsible for…

  • Writing Behat Tests for WP-CLI

    WP-CLI uses Behat for functional testing. This guide will help you understand how to write and run Behat tests for WP-CLI commands and packages. Introduction What are Behat Tests? Behat is a behavior-driven development (BDD) framework for PHP. In WP-CLI, Behat tests are used as functional tests that execute the entire command and verify it…

  • Licensing

    WP-CLI is licensed under the MIT license. This document outlines WP-CLI’s licensing expectations for third-party code. Accepting third-party code into the official repository/organization All code accepted into repositories under the official WP-CLI GitHub organization must be compatible with the MIT license. This ensures that WP-CLI can remain freely usable, modifiable, and distributable by anyone. Bundling…

  • Verifying WP-CLI Downloads

    This guide explains how to cryptographically verify the authenticity and integrity of WP-CLI releases after downloading them from the Internet and before installing them on your system. Why verify downloads? Verifying downloads ensures: Authenticity: The file was created and signed by the WP-CLI maintainers Integrity: The file has not been corrupted or tampered with during…

  • Figure out why WordPress is slow

    wp profile is a WP-CLI command to help you quickly identify what’s slow with WordPress. It’s designed to work alongside Xdebug and New Relic because it’s easy to deploy to any server that has WP-CLI. With wp profile, you gain quick visibility into key performance metrics (execution time, query count, cache hit/miss ratio, etc.) to…

  • Configure Dependabot for your repository

    Contributors can enable Dependabot for their repositories by making the following changes to the repository. Enabling Branch Protection Rules Before you configure Dependabot, you need to ensure that Branch Protection Rules are in place for at least the main branch of your repository.At the top of the Repository page, navigate to Settings, expand Rules, and…

  • Setting Up Dependabot for WP Training Team repositories

    This guide provides detailed instructions for setting up Dependabot version updates, along with automatic approval and merging of Dependabot pull requests in a GitHub repository belonging to the WP Training Team GitHub organization. This guide is only required for any GitHub repositories that don’t already have these files. Overview This setup includes three components: Dependabot…

  • Given /^a WP( [^s]+)? install(?:ation)? in [‘"]?([^’"]+)[‘"]?$/

    Installs WordPress in a given directory. Usage Scenario: My example scenario Given a WP installation in ‘foo’ … Scenario: My other scenario Given a WP install in ‘bar’ … Scenario: My version-specific scenario Given a WP 6.4.2 installation in ‘subdir’ … Behat steps documentation is generated from the WP-CLI codebase on every release. To suggest…

  • Approach

    Core Philosophy Make everything discoverable: Functions aren’t just accessible, they’re self-documenting and findable programmatically. Never lock in Don’t tie users to specific AI providers Don’t hard-code standards; use adapters Build platform-agnostic first, adapt to WordPress second Modular building blocks: Components work independently but are more powerful together. The more plugins adopt them, the stronger the…

  • Glossary

    dl.glossary-list dd { margin-top: -50px; padding-top: 50px; } Abilities API A core WordPress API (introduced in 6.9) that creates a central registry of capabilities, making WordPress functions discoverable and accessible to AI agents, automation tools, and developers. Transforms WordPress from isolated functions into a unified system. # Ability A registered, self-documenting unit of WordPress functionality…