Narrative docs for PRC plugins live under docs/plugins/<plugin-slug>/. DocsPress syncs the whole docs/ tree to the wiki, so this layout is also the WordPress Page tree.
Prefer this tree over legacy plugins/<plugin>/docs/ paths. Update old links when you touch them.
Use the prc-plugin-docs skill (.cursor/skills/prc-plugin-docs/) when creating, migrating, or maintaining these docs.
Standard layout
docs/plugins/<plugin-slug>/
index.md # required landing page (all audiences)
user-guide.md # optional β editors / publishers
architecture.md # optional β maintainers
rest-api.md # optional β stable custom REST contracts
abilities.md # optional β WordPress Abilities API contracts
troubleshooting.md # optional β recurring support failures
migration-guide.md # optional β upgrade steps that need a human
blocks/ # optional β block narratives (new multi-block plugins)
<block-slug>.md
images/ # optional β screenshots and diagrams
release-notes/ # optional β curated wiki release history
<version>.md
Use lowercase kebab-case for new filenames. Do not rename published paths only for cosmetics.
Required
When a plugin has a docs folder, it must have index.md.
index.md is the plugin landing page for every audience. It is not the full developer guide.
Include:
- Short description of what the plugin does
- Who should use it (editors, developers, both)
- Links to the optional docs that exist
- Package name (for example
@prc/chart-builder) and source path underplugins/
Optional files (earn them)
| File | Audience | Create when |
|---|---|---|
user-guide.md | Editors / publishers | There is a real editorial workflow |
architecture.md | Maintainers | Concepts, data flow, or tier boundaries need explanation |
rest-api.md | Consumers | Stable custom routes that other code or tools call |
abilities.md | Consumers / AI | The plugin registers WordPress Abilities |
troubleshooting.md | Editors + maintainers | The same failures keep showing up in support |
migration-guide.md | Maintainers / editors | An upgrade needs manual steps |
blocks/<block-slug>.md | Mixed | Several blocks need narratives beyond block.json |
images/ | All | Local media for the guides above |
release-notes/ | All | The wiki needs curated version history |
Do not create empty stubs. Skip a file until there is real content.
Do not
- Keep both
README.mdandindex.mdin the same folder (DocsPress maps both to the folder landing Page) - Require a Markdown page for every shipped block (
block.jsonowns attributes and supports) - Create
rest-api.mdonly because a CPT setsshow_in_restor the editor uses an internal endpoint - Put private runbooks, credentials, or incident notes under
docs/(this tree syncs to WordPress) - Invent commands, routes, caps, or UI that the source does not implement
Block Library exception
prc-block-library narratives live at docs/plugins/prc-block-library/blocks/<block-slug>.md. Maintain those pages with the prc-plugin-docs skill. The optional helper bin/docs/gen-block-lib-list.js can still rebuild the autogenerated index links (./blocks/<block-slug>.md) if you run it with node directly.
Keep the generator, block-doc sync rule, and stop hook aligned with this path.
DocsPress notes
- Directory names become Page parents under the wiki
docsroot index.md(orREADME.md) represents the containing directory- Renames can look like trash + recreate under DocsPress
delete-mode: trash - Prefer relative links inside
docs/so DocsPress can rewrite them - Page shape for new and touched pages: frontmatter
title, body sections at##. The DocsPress theme supplies the Pageh1. Convert#titles when you migrate a page. Do not rewrite untouched legacy pages only for cosmetics - Markdown and Gutenberg blocks: follow
.agents/skills/generate-docs-from-source/SKILL.mdsections 3 and 4. Do not duplicate that catalog here. Local block registrations inplugins/docspress-blocks/win if they disagree with skill examples - Keep Version Switcher, Version Notice, and was-this-helpful out of plugin Page Markdown (Site Editor owns those)
- Production Pages update after a production deploy Slack notification (
mode: reconcileon the release tag). A dailyproposerun, and the same workflow's Run workflow button, open a rollingdocspress/wordpress-syncPR for WordPress-only edits. See RELEASING.md.
Local sync helpers (token in ./.secrets, never commit it):
npm run docs:sync:local:dry-run
npm run docs:sync:local
Plugins
- PRC Agents: Trending News β GNews + AI workflow; Slack chat via PRC Nexus (
@prc/agents-trending-news) - PRC Analytics β Parse.ly, GA4, pixels, Civis exports (
@prc/analytics) - PRC Art Direction β multi-slot featured images (
@prc/art-direction) - PRC Attachments Inspector β attachments sidebar, report, mismatch fixes (
@prc/attachments-inspector) - PRC Block Area Modules β curated theme zones and block modules (
@prc/block-area-modules) - PRC Block Bits β inline RichText bits registry and toolbar (
@prc/block-bits) - PRC Block Forms β form blocks and responses (
@prc/block-forms) - PRC Block Library β custom and core-modified blocks (
@prc/block-library) - PRC Block Tables β data tables and remote pivot tables (
@prc/block-tables) - PRC Chart Builder β chart blocks, library admin, viewport docs (
@prc/chart-builder) - PRC Charting Library β shared charting runtime (
@prc/charting-library) - PRC Collections β hybrid collections CPT/taxonomy and kickers (
@prc/collections) - PRC Content Transformer β AI transforms to Apple News, email, plain text (
@prc/content-transformer) - PRC CRM β contact manager, segments, and Email Builder compose (
@prc/crm) - PRC Custom Charts β one-off chart components script (
@prc/custom-charts) - PRC Datasets β gated dataset downloads and ATP (
@prc/datasets) - PRC ElasticPress β ElasticPress integration and facet blocks (
@prc/elasticpress) - PRC ElasticPress External Content β index external file contents in ES (PHP plugin)
- PRC Email Builder β Mailchimp/Mandrill email authoring (
@prc/email-builder) - PRC Embeds β
/iframe/embeds and block embed controls (@prc/embeds) - PRC External Channels β legacy Apple News exporter hooks (
@prc/external-channels) - PRC Firebase β Firebase PHP SDK and client scripts (
@prc/firebase) - PRC Homepages β homepage CPT and latest-homepage block (
@prc/homepages) - PRC Icon Library β Font Awesome sprite constants (
@prc/icon-library) - PRC Markdown for Agents β
.mdendpoints and/llms.txt(@prc/markdown-for-agents) - PRC Page-Like Types β course, event, fact-sheet CPTs (
@prc/page-like-types) - PRC PDF Extraction β PDF extraction editor guide (
@prc/pdf-extraction) - PRC Post-Like Types β decoded, press-release, short-read CPTs (
@prc/post-like-types) - PRC Post Publish Pipeline β sync/async lifecycle hooks (
@prc/post-publish-pipeline) - PRC Print Engine β print preview and PDF export (
@prc/print-engine) - PRC Privacy Consent β consent banner and cookie list (
@prc/privacy-consent) - PRC Public Post Preview β anonymous draft preview links (
@prc/public-post-preview) - PRC Publication Listing β listing queries and post visibility (
@prc/publication-listing) - PRC Publish Workflows β pipeline stages, watchers, workspaces (
@prc/publish-workflows) - PRC Quiz Builder β interactive quiz CPT and blocks (
@prc/quiz-builder) - PRC Quiz Cast β live host/player quiz sessions (
@prc/quiz-cast) - PRC Quote Sorter Builder β interactive quote sorter blocks (
@prc/quote-sorter-builder) - PRC Related Posts β curated related posts and query block (
@prc/related-posts) - PRC Report Package β multi-chapter report packages (
@prc/report-package) - PRC Revisions β public versions and fork/merge (
@prc/revisions) - PRC Roper β Roper / iPoll search (
@prc/roper) - PRC Schema Academic Identity β DataCite DOI metadata and citation block (
@prc/schema-academic-identity) - PRC Schema SEO β schema.org / SEO integration (
@prc/schema-seo) - PRC Schema Sitemap β comprehensive XML sitemaps (PHP plugin)
- PRC Scripts β shared
@prc/*scripts and script modules (@prc/scripts) - PRC Slack β publish notices, PRC Nexus agent, Slack connection (
@prc/slack) - PRC Spoken Article β ElevenLabs narration and player blocks (
@prc/spoken-article) - PRC Staff Bylines β staff CPT, bylines taxonomy, and byline blocks (
@prc/staff-bylines) - PRC Taxonomies β research teams, formats, topics, and URL rewrites (
@prc/taxonomies) - PRC User Accounts β Firebase accounts, gates, and profile blocks (
@prc/user-accounts) - PRC WP Admin Tours β first-time wp-admin product tours (
@prc/wp-admin-tours)