Skip to content

Yoast SEO 27.6 — docs(ai): Document new AI Content Planner feature#393

Closed
claude[bot] wants to merge 1 commit into
mainfrom
rc-sync/wordpress-seo/27.6-RC1/ai
Closed

Yoast SEO 27.6 — docs(ai): Document new AI Content Planner feature#393
claude[bot] wants to merge 1 commit into
mainfrom
rc-sync/wordpress-seo/27.6-RC1/ai

Conversation

@claude
Copy link
Copy Markdown

@claude claude Bot commented Apr 28, 2026

RC docs sync — 27.6-RC1

Product: wordpress-seo
Area: ai
Source evidence:

  • src/ai/content-planner/user-interface/get-suggestions-route.php: New REST endpoint GET yoast/v1/ai_content_planner/get_suggestions
  • src/ai/content-planner/user-interface/get-outline-route.php: New REST endpoint POST yoast/v1/ai_content_planner/get_outline
  • src/integrations/blocks/content-planner-block.php: Registers yoast/content-planner-banner block under yoast-ai-blocks category
  • packages/js/src/ai-content-planner/**: JavaScript UI for the Content Planner feature

Changes in this PR

  • docs/features/ai/content-planner.md — New page documenting the AI Content Planner feature and its REST API endpoints
  • sidebars.js — Added features/ai/content-planner to the Yoast AI sidebar category

Verification

  • yarn build passes locally in this workflow.
  • yarn lint clean for files touched by this PR.

Reviewer notes

  • The response body examples in the doc are constructed from the domain to_array() methods in the PHP source — they match the actual wire format exactly.
  • No apply_filters() or do_action() hooks were added in this RC for the Content Planner feature; the doc therefore contains no filter documentation.
  • The category.id = -1 / category.name = "" convention for "no category" is taken directly from the PHPDoc in content-suggestion.php.

Authored by the RC docs-sync agent. Not auto-merged — requires human review. Run: https://github.com/Yoast/developer/actions/runs/25059082464

Adds docs for the Content Planner introduced in wordpress-seo 27.6-RC1.
@claude claude Bot added rc-doc-sync RC documentation sync PR product/wordpress-seo Related to Yoast SEO for WordPress area/ai Related to AI features rc/27.6-RC1 Release candidate 27.6-RC1 labels Apr 28, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying yoast-developer with  Cloudflare Pages  Cloudflare Pages

Latest commit: e926502
Status: ✅  Deploy successful!
Preview URL: https://dc640ace.yoast-developer.pages.dev
Branch Preview URL: https://rc-sync-wordpress-seo-27-6-r.yoast-developer.pages.dev

View logs

enricobattocchi added a commit that referenced this pull request Apr 29, 2026
Triggered by feedback on PR #393, where the agent documented two REST
endpoints (yoast/v1/ai_content_planner/get_suggestions and get_outline)
that may have been intended as internal admin-UI plumbing. The agent had
no signal distinguishing public from internal surface — anything that
looked like a public registration was fair game.

This commit teaches the agent to discriminate, and documents the
convention authors can use to override the heuristics.

agent prompt (.github/claude-agent/run.md): adds Step 1.6 — Public vs.
internal surface — between coverage-gap detection and authoring. The
agent now applies, in order:

  1. Authoritative override: `@internal` PHPDoc annotation on the
     registering method or class. If present, skip and log.
  2. Permission-callback heuristic: `register_rest_route` whose
     permission_callback is `current_user_can('manage_options')` (or
     similar admin capability check) without an unauthenticated
     branch is likely internal.
  3. Path/class-name heuristic: registrations under `**/admin/**`,
     `**/user-interface/**`, or named `*_Admin_*` / `*_Internal_*`
     default to internal.
  4. When in doubt, don't document — false positives in the public
     direction are higher cost than false negatives.

Items skipped under this rule appear in a new "Internal surface
skipped" section of the run-summary comment, so the decision is
visible per-RC and a maintainer can override in a follow-up.

AGENT_MAP.md: adds a "Public vs. internal surface" section
documenting both the heuristics (automatic) and the @internal override
(authoritative), so source-repo authors know how to mark a route as
internal without reading the agent prompt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@enricobattocchi
Copy link
Copy Markdown
Member

Closing this as the API was not intended to be public.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ai Related to AI features product/wordpress-seo Related to Yoast SEO for WordPress rc/27.6-RC1 Release candidate 27.6-RC1 rc-doc-sync RC documentation sync PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant