{"owner":"Automattic","repo":"wp-calypso","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":2804,"categories":["root-instruction","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"wp-calypso":{"command":"npx","args":["-y","@modelcontextprotocol/server-wp-calypso"]}}},"found":["AGENTS.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# AGENTS.md\n\n## Confidentiality\n\nCRITICAL: This is a **public repository**. Never put an internal link or hostname in a PR description, review comment, commit message, code comment, or any other public-facing text: no wordpress.com URLs (internal sites and P2s), no Slack, Linear, HackerOne, private GitHub repository, or GitHub Enterprise URLs, and no other internal tool URLs. Use shortlinks instead: `PCYsg-hS-p2` for a P2 post, `p<message>-slack-<channel>` for a Slack message (`p<message>/<thread>-slack-<channel>` for a reply in a thread), and the bare issue key (`LIN-123`) for Linear.\n\n## Repository layout\n\n- client/ — main application clients, deployed as single-page React apps.\n- packages/ — shared libraries across clients.\n- apps/ — standalone mini-apps, deployed separately.\n\n## Clients\n\n- **Calypso** — the classic WordPress.com hosting dashboard, sharing data using Redux and split via Webpack section chunks.\n  - client/my-sites — per-site management; deprecated in favor of the Dashboard client\n  - client/my-sites/checkout — checkout flow\n  - client/me/purchases — redirects to the Dashboard billing screens, plus purchase helpers shared by other sections\n  - client/landing/stepper — onboarding/signup flows (site creation, domain purchase, migration wizards)\n  - client/reader — WordPress.com Reader: feed streams, discover, conversations, likes, lists, following management\n  - Shared infra: client/components, client/state, client/lib, client/layout\n- **Jetpack Cloud** (client/jetpack-cloud) — reuses Calypso shared infra (client/state, client/components).\n- **A8C for Agencies** (client/a8c-for-agencies) — reuses Calypso shared infra.\n- **Dashboard** (client/dashboard) — the new multi-site dashboard. Self-contained: does not reuse Calypso client code. Has its own components, data fetching (TanStack Query), and routing (TanStack Router).\n  - client/dashboard/me/billing-purchases — billing & purchase management\n\n## Packages\n\n- **Agents Manager** (`packages/agents-manager`) — shared component library for WordPress.com's unified AI agent experience, running in Calypso, the Dashboard, Simple and Atomic sites, the WooCommerce AI admin and Reader Chat. Also deployed via `apps/agents-manager/` to `widgets.wp.com`. See its `AGENTS.md` for architecture and conventions.\n- **AI UI Renderer** (`packages/ai-ui-renderer`) — reusable A2UI v1.0 catalog and rendering primitives built with WordPress components. Agents Manager consumes it; conversation handling and MCP transport stay in consumers.\n- **Agenttic** (`packages/agenttic-client`, `packages/agenttic-ui`) — AI agent chat client library and UI components. Also published to npm for consumers outside this repo. ⚠️ Still on its pre-migration package layout (vite-built, ESM-only, flat `dist/`, no `calypso:src`); normalizing it is a future goal, but the published artifact shape is a contract with external consumers — read the Development and Releasing sections in `packages/agenttic-client/README.md` before restructuring or publishing.\n- **Help Center** (`packages/help-center`) — shared component library for WordPress.com support. Also deployed via `apps/help-center/` to `widgets.wp.com`.\n- **Image Studio** (`packages/image-studio`) — AI-powered image editing and generation. When adding Image Studio entry points, read [packages/image-studio/AGENTS.md](packages/image-studio/AGENTS.md).\n- **Calypso Products** (`packages/calypso-products`) — ⚠️ **Avoid.** Deprecated/frozen: a bloated client-side duplicate of product data the backend already owns. Don't add to it; prefer backend-driven data (e.g. `@automattic/api-queries`). See `packages/calypso-products/AGENTS.md`.\n\n## Apps\n\n- **Agents Manager** (`apps/agents-manager`) — build/deploy layer that bundles `packages/agents-manager` into webpack entry points served from `widgets.wp.com`.\n- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\n- **Survicate** (`apps/survicate`) — build/deploy layer that bundles `packages/survicate` into the single script wp-admin loads from `widgets.wp.com`. No logic of its own.\n\n## Development\n\n> **Note**: The Calypso dev server uses the `PORT` environment variable (check repo-root `.env`) and falls back to port `3000`. Do not create or modify `.env` unless explicitly asked.\n\n```bash\n# Setup\nyarn install\n\n# Build and start the dev server\nyarn start\n\n# Build and start the dev server for the Dashboard client only.\nyarn start-dashboard\n```\n\nIf `yarn start` fails with `Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory`, increase the Node heap size by running `NODE_OPTIONS=--max-old-space-size=8192 yarn start`. For other errors, run `yarn calypso-doctor` to diagnose and fix common environment issues.\n\n## Testing instructions\n\n> **Note**: E2E tests require a local Calypso development instance to be running.\n\n```bash\n# JavaScript tests\nyarn test                                       # Run unit tests for client, packages, server, and build-tools\nyarn test-build-tools                           # Run unit tests for build-tools\nyarn test-client                                # Run unit tests for client\nyarn test-integration                           # Run integration tests\nyarn test-apps                                  # Run apps unit tests\nyarn test-packages                              # Run packages unit tests\nyarn test-server                                # Run server unit tests\nyarn test-server:coverage                       # Run server unit tests with coverage info\n\nyarn test-client:watch                          # Run unit tests for client in watch mode\nyarn test-client <path_to_test_directory>       # Run client unit tests from a specific directory\nyarn test-client --testNamePattern=\"<TestName>\" # Run a specific client unit test\n\n# E2E tests - refer to: test/e2e/AGENTS.md\n\n# Code Quality\nyarn lint             # Lint everything\nyarn lint:css         # Lint CSS\nyarn lint:js          # Lint JavaScript\nyarn reformat-files   # Fix formatting with Prettier\nyarn typecheck-client # Type-check client\n```\n\n## Conventions\n\n- Do NOT add any verbose code comments that narrate what the change does or why it was made (e.g. `// Added this to fix X`, `// Changed from Y to Z`, restating the code in prose). Such explanation belongs in the PR description, not the source. Only keep comments that a future reader genuinely needs — non-obvious rationale, gotchas, links to context — and match the comment density and style of the surrounding code.\n\n## Pre-PR checks\n\nBefore pushing a branch or running `gh pr create`, run the type-check that CI will run. PRs touching `client/` may fail the `type_check_client` CI check after opening, so verify locally first:\n\n```bash\nyarn               # Install dependencies first if you haven't already\nyarn typecheck-client\n```\n\nIf it fails, fix the type errors at the source — do not silence them with `// @ts-expect-error`, `// @ts-ignore`, or `as any` unless you can justify it in the PR description. Other CI type-checks worth running when relevant: `yarn typecheck-packages`, `yarn typecheck-apps`.\n\n## Creating Pull Requests\n\n- Create PRs as draft. Follow the template in .github/PULL_REQUEST_TEMPLATE.md.\n- Branch naming (see `docs/git-workflow.md`): branch off `trunk` and prefix with `add/` (new feature), `update/` (iterating on existing), `fix/` (fixing something broken), or `try/` (experiment). Use a **single slash only** — multiple slashes break Calypso Live testing. Do NOT use Linear's autogenerated `gitBranchName` (e.g. `dotcom-17900-…`); it has no prefix and violates this convention. For the Signup accepts-props initiative, follow the established pattern `add/stepper-<step>-accepts-props` (e.g. `add/stepper-user-step-accepts-props`, `add/stepper-unified-plans-accepts-props`).\n- In the PR description:\n  - Use Linear issue IDs (e.g., `LIN-123`) instead of full Linear URLs.\n  - Avoid mentioning people's names.\n  - Include all checklist items from .github/PULL_REQUEST_TEMPLATE.md. Only mark items as completed (`[x]`) if they actually apply; leave inapplicable items unchecked (`[ ]`).\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# AGENTS.md\n\n## Confidentiality\n\nCRITICAL: This is a **public repository**. Never put an internal link or hostname in a PR description, review comment, commit message, code comment, or any other public-facing text: no wordpress.com URLs (internal sites and P2s), no Slack, Linear, HackerOne, private GitHub repository, or GitHub Enterprise URLs, and no other internal tool URLs. Use shortlinks instead: `PCYsg-hS-p2` for a P2 post, `p<message>-slack-<channel>` for a Slack message (`p<message>/<thread>-slack-<channel>` for a reply in a thread), and the bare issue key (`LIN-123`) for Linear.\n\n## Repository layout\n\n- client/ — main application clients, deployed as single-page React apps.\n- packages/ — shared libraries across clients.\n- apps/ — standalone mini-apps, deployed separately.\n\n## Clients\n\n- **Calypso** — the classic WordPress.com hosting dashboard, sharing data using Redux and split via Webpack section chunks.\n  - client/my-sites — per-site management; deprecated in favor of the Dashboard client\n  - client/my-sites/checkout — checkout flow\n  - client/me/purchases — redirects to the Dashboard billing screens, plus purchase helpers shared by other sections\n  - client/landing/stepper — onboarding/signup flows (site creation, domain purchase, migration wizards)\n  - client/reader — WordPress.com Reader: feed streams, discover, conversations, likes, lists, following management\n  - Shared infra: client/components, client/state, client/lib, client/layout\n- **Jetpack Cloud** (client/jetpack-cloud) — reuses Calypso shared infra (client/state, client/components).\n- **A8C for Agencies** (client/a8c-for-agencies) — reuses Calypso shared infra.\n- **Dashboard** (client/dashboard) — the new multi-site dashboard. Self-contained: does not reuse Calypso client code. Has its own components, data fetching (TanStack Query), and routing (TanStack Router).\n  - client/dashboard/me/billing-purchases — billing & purchase management\n\n## Packages\n\n- **Agents Manager** (`packages/agents-manager`) — shared component library for WordPress.com's unified AI agent experience, running in Calypso, the Dashboard, Simple and Atomic sites, the WooCommerce AI admin and Reader Chat. Also deployed via `apps/agents-manager/` to `widgets.wp.com`. See its `AGENTS.md` for architecture and conventions.\n- **AI UI Renderer** (`packages/ai-ui-renderer`) — reusable A2UI v1.0 catalog and rendering primitives built with WordPress components. Agents Manager consumes it; conversation handling and MCP transport stay in consumers.\n- **Agenttic** (`packages/agenttic-client`, `packages/agenttic-ui`) — AI agent chat client library and UI components. Also published to npm for consumers outside this repo. ⚠️ Still on its pre-migration package layout (vite-built, ESM-only, flat `dist/`, no `calypso:src`); normalizing it is a future goal, but the published artifact shape is a contract with external consumers — read the Development and Releasing sections in `packages/agenttic-client/README.md` before restructuring or publishing.\n- **Help Center** (`packages/help-center`) — shared component library for WordPress.com support. Also deployed via `apps/help-center/` to `widgets.wp.com`.\n- **Image Studio** (`packages/image-studio`) — AI-powered image editing and generation. When adding Image Studio entry points, read [packages/image-studio/AGENTS.md](packages/image-studio/AGENTS.md).\n- **Calypso Products** (`packages/calypso-products`) — ⚠️ **Avoid.** Deprecated/frozen: a bloated client-side duplicate of product data the backend already owns. Don't add to it; prefer backend-driven data (e.g. `@automattic/api-queries`). See `packages/calypso-products/AGENTS.md`.\n\n## Apps\n\n- **Agents Manager** (`apps/agents-manager`) — build/deploy layer that bundles `packages/agents-manager` into webpack entry points served from `widgets.wp.com`.\n- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\n- **Survicate** (`apps/survicate`) — build/deploy layer that bundles `packages/survicate` into the single script wp-admin loads from `widgets.wp.com`. No logic of its own.\n\n## Development\n\n> **Note**: The Calypso dev server uses the `PORT` environment variable (check repo-root `.env`) and falls back to port `3000`. Do not create or modify `.env` unless explicitly asked.\n\n```bash\n# Setup\nyarn install\n\n# Build and start the dev server\nyarn start\n\n# Build and start the dev server for the Dashboard client only.\nyarn start-dashboard\n```\n\nIf `yarn start` fails with `Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory`, increase the Node heap size by running `NODE_OPTIONS=--max-old-space-size=8192 yarn start`. For other errors, run `yarn calypso-doctor` to diagnose and fix common environment issues.\n\n## Testing instructions\n\n> **Note**: E2E tests require a local Calypso development instance to be running.\n\n```bash\n# JavaScript tests\nyarn test                                       # Run unit tests for client, packages, server, and build-tools\nyarn test-build-tools                           # Run unit tests for build-tools\nyarn test-client                                # Run unit tests for client\nyarn test-integration                           # Run integration tests\nyarn test-apps                                  # Run apps unit tests\nyarn test-packages                              # Run packages unit tests\nyarn test-server                                # Run server unit tests\nyarn test-server:coverage                       # Run server unit tests with coverage info\n\nyarn test-client:watch                          # Run unit tests for client in watch mode\nyarn test-client <path_to_test_directory>       # Run client unit tests from a specific directory\nyarn test-client --testNamePattern=\"<TestName>\" # Run a specific client unit test\n\n# E2E tests - refer to: test/e2e/AGENTS.md\n\n# Code Quality\nyarn lint             # Lint everything\nyarn lint:css         # Lint CSS\nyarn lint:js          # Lint JavaScript\nyarn reformat-files   # Fix formatting with Prettier\nyarn typecheck-client # Type-check client\n```\n\n## Conventions\n\n- Do NOT add any verbose code comments that narrate what the change does or why it was made (e.g. `// Added this to fix X`, `// Changed from Y to Z`, restating the code in prose). Such explanation belongs in the PR description, not the source. Only keep comments that a future reader genuinely needs — non-obvious rationale, gotchas, links to context — and match the comment density and style of the surrounding code.\n\n## Pre-PR checks\n\nBefore pushing a branch or running `gh pr create`, run the type-check that CI will run. PRs touching `client/` may fail the `type_check_client` CI check after opening, so verify locally first:\n\n```bash\nyarn               # Install dependencies first if you haven't already\nyarn typecheck-client\n```\n\nIf it fails, fix the type errors at the source — do not silence them with `// @ts-expect-error`, `// @ts-ignore`, or `as any` unless you can justify it in the PR description. Other CI type-checks worth running when relevant: `yarn typecheck-packages`, `yarn typecheck-apps`.\n\n## Creating Pull Requests\n\n- Create PRs as draft. Follow the template in .github/PULL_REQUEST_TEMPLATE.md.\n- Branch naming (see `docs/git-workflow.md`): branch off `trunk` and prefix with `add/` (new feature), `update/` (iterating on existing), `fix/` (fixing something broken), or `try/` (experiment). Use a **single slash only** — multiple slashes break Calypso Live testing. Do NOT use Linear's autogenerated `gitBranchName` (e.g. `dotcom-17900-…`); it has no prefix and violates this convention. For the Signup accepts-props initiative, follow the established pattern `add/stepper-<step>-accepts-props` (e.g. `add/stepper-user-step-accepts-props`, `add/stepper-unified-plans-accepts-props`).\n- In the PR description:\n  - Use Linear issue IDs (e.g., `LIN-123`) instead of full Linear URLs.\n  - Avoid mentioning people's names.\n  - Include all checklist items from .github/PULL_REQUEST_TEMPLATE.md. Only mark items as completed (`[x]`) if they actually apply; leave inapplicable items unchecked (`[ ]`).\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md\n\n## Confidentiality\n\nCRITICAL: This is a **public repository**. Never put an internal link or hostname in a PR description, review comment, commit message, code comment, or any other public-facing text: no wordpress.com URLs (internal sites and P2s), no Slack, Linear, HackerOne, private GitHub repository, or GitHub Enterprise URLs, and no other internal tool URLs. Use shortlinks instead: `PCYsg-hS-p2` for a P2 post, `p<message>-slack-<channel>` for a Slack message (`p<message>/<thread>-slack-<channel>` for a reply in a thread), and the bare issue key (`LIN-123`) for Linear.\n\n## Repository layout\n\n- client/ — main application clients, deployed as single-page React apps.\n- packages/ — shared libraries across clients.\n- apps/ — standalone mini-apps, deployed separately.\n\n## Clients\n\n- **Calypso** — the classic WordPress.com hosting dashboard, sharing data using Redux and split via Webpack section chunks.\n  - client/my-sites — per-site management; deprecated in favor of the Dashboard client\n  - client/my-sites/checkout — checkout flow\n  - client/me/purchases — redirects to the Dashboard billing screens, plus purchase helpers shared by other sections\n  - client/landing/stepper — onboarding/signup flows (site creation, domain purchase, migration wizards)\n  - client/reader — WordPress.com Reader: feed streams, discover, conversations, likes, lists, following management\n  - Shared infra: client/components, client/state, client/lib, client/layout\n- **Jetpack Cloud** (client/jetpack-cloud) — reuses Calypso shared infra (client/state, client/components).\n- **A8C for Agencies** (client/a8c-for-agencies) — reuses Calypso shared infra.\n- **Dashboard** (client/dashboard) — the new multi-site dashboard. Self-contained: does not reuse Calypso client code. Has its own components, data fetching (TanStack Query), and routing (TanStack Router).\n  - client/dashboard/me/billing-purchases — billing & purchase management\n\n## Packages\n\n- **Agents Manager** (`packages/agents-manager`) — shared component library for WordPress.com's unified AI agent experience, running in Calypso, the Dashboard, Simple and Atomic sites, the WooCommerce AI admin and Reader Chat. Also deployed via `apps/agents-manager/` to `widgets.wp.com`. See its `AGENTS.md` for architecture and conventions.\n- **AI UI Renderer** (`packages/ai-ui-renderer`) — reusable A2UI v1.0 catalog and rendering primitives built with WordPress components. Agents Manager consumes it; conversation handling and MCP transport stay in consumers.\n- **Agenttic** (`packages/agenttic-client`, `packages/agenttic-ui`) — AI agent chat client library and UI components. Also published to npm for consumers outside this repo. ⚠️ Still on its pre-migration package layout (vite-built, ESM-only, flat `dist/`, no `calypso:src`); normalizing it is a future goal, but the published artifact shape is a contract with external consumers — read the Development and Releasing sections in `packages/agenttic-client/README.md` before restructuring or publishing.\n- **Help Center** (`packages/help-center`) — shared component library for WordPress.com support. Also deployed via `apps/help-center/` to `widgets.wp.com`.\n- **Image Studio** (`packages/image-studio`) — AI-powered image editing and generation. When adding Image Studio entry points, read [packages/image-studio/AGENTS.md](packages/image-studio/AGENTS.md).\n- **Calypso Products** (`packages/calypso-products`) — ⚠️ **Avoid.** Deprecated/frozen: a bloated client-side duplicate of product data the backend already owns. Don't add to it; prefer backend-driven data (e.g. `@automattic/api-queries`). See `packages/calypso-products/AGENTS.md`.\n\n## Apps\n\n- **Agents Manager** (`apps/agents-manager`) — build/deploy layer that bundles `packages/agents-manager` into webpack entry points served from `widgets.wp.com`.\n- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\n- **Survicate** (`apps/survicate`) — build/deploy layer that bundles `packages/survicate` into the single script wp-admin loads from `widgets.wp.com`. No logic of its own.\n\n## Development\n\n> **Note**: The Calypso dev server uses the `PORT` environment variable (check repo-root `.env`) and falls back to port `3000`. Do not create or modify `.env` unless explicitly asked.\n\n```bash\n# Setup\nyarn install\n\n# Build and start the dev server\nyarn start\n\n# Build and start the dev server for the Dashboard client only.\nyarn start-dashboard\n```\n\nIf `yarn start` fails with `Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory`, increase the Node heap size by running `NODE_OPTIONS=--max-old-space-size=8192 yarn start`. For other errors, run `yarn calypso-doctor` to diagnose and fix common environment issues.\n\n## Testing instructions\n\n> **Note**: E2E tests require a local Calypso development instance to be running.\n\n```bash\n# JavaScript tests\nyarn test                                       # Run unit tests for client, packages, server, and build-tools\nyarn test-build-tools                           # Run unit tests for build-tools\nyarn test-client                                # Run unit tests for client\nyarn test-integration                           # Run integration tests\nyarn test-apps                                  # Run apps unit tests\nyarn test-packages                              # Run packages unit tests\nyarn test-server                                # Run server unit tests\nyarn test-server:coverage                       # Run server unit tests with coverage info\n\nyarn test-client:watch                          # Run unit tests for client in watch mode\nyarn test-client <path_to_test_directory>       # Run client unit tests from a specific directory\nyarn test-client --testNamePattern=\"<TestName>\" # Run a specific client unit test\n\n# E2E tests - refer to: test/e2e/AGENTS.md\n\n# Code Quality\nyarn lint             # Lint everything\nyarn lint:css         # Lint CSS\nyarn lint:js          # Lint JavaScript\nyarn reformat-files   # Fix formatting with Prettier\nyarn typecheck-client # Type-check client\n```\n\n## Conventions\n\n- Do NOT add any verbose code comments that narrate what the change does or why it was made (e.g. `// Added this to fix X`, `// Changed from Y to Z`, restating the code in prose). Such explanation belongs in the PR description, not the source. Only keep comments that a future reader genuinely needs — non-obvious rationale, gotchas, links to context — and match the comment density and style of the surrounding code.\n\n## Pre-PR checks\n\nBefore pushing a branch or running `gh pr create`, run the type-check that CI will run. PRs touching `client/` may fail the `type_check_client` CI check after opening, so verify locally first:\n\n```bash\nyarn               # Install dependencies first if you haven't already\nyarn typecheck-client\n```\n\nIf it fails, fix the type errors at the source — do not silence them with `// @ts-expect-error`, `// @ts-ignore`, or `as any` unless you can justify it in the PR description. Other CI type-checks worth running when relevant: `yarn typecheck-packages`, `yarn typecheck-apps`.\n\n## Creating Pull Requests\n\n- Create PRs as draft. Follow the template in .github/PULL_REQUEST_TEMPLATE.md.\n- Branch naming (see `docs/git-workflow.md`): branch off `trunk` and prefix with `add/` (new feature), `update/` (iterating on existing), `fix/` (fixing something broken), or `try/` (experiment). Use a **single slash only** — multiple slashes break Calypso Live testing. Do NOT use Linear's autogenerated `gitBranchName` (e.g. `dotcom-17900-…`); it has no prefix and violates this convention. For the Signup accepts-props initiative, follow the established pattern `add/stepper-<step>-accepts-props` (e.g. `add/stepper-user-step-accepts-props`, `add/stepper-unified-plans-accepts-props`).\n- In the PR description:\n  - Use Linear issue IDs (e.g., `LIN-123`) instead of full Linear URLs.\n  - Avoid mentioning people's names.\n  - Include all checklist items from .github/PULL_REQUEST_TEMPLATE.md. Only mark items as completed (`[x]`) if they actually apply; leave inapplicable items unchecked (`[ ]`).\n","isInternal":false,"tokens":1904,"sizeBytes":8254},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":200},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":186},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":179}],"systemPromptSnippet":"<yakaai_skills repo=\"Automattic/wp-calypso\">\n<!-- File: AGENTS.md (Tokens: ~1904 | Category: root-instruction) -->\n# AGENTS.md\n\n## Confidentiality\n\nCRITICAL: This is a **public repository**. Never put an internal link or hostname in a PR description, review comment, commit message, code comment, or any other public-facing text: no wordpress.com URLs (internal sites and P2s), no Slack, Linear, HackerOne, private GitHub repository, or GitHub Enterprise URLs, and no other internal tool URLs. Use shortlinks instead: `PCYsg-hS-p2` for a P2 post, `p<message>-slack-<channel>` for a Slack message (`p<message>/<thread>-slack-<channel>` for a reply in a thread), and the bare issue key (`LIN-123`) for Linear.\n\n## Repository layout\n\n- client/ — main application clients, deployed as single-page React apps.\n- packages/ — shared libraries across clients.\n- apps/ — standalone mini-apps, deployed separately.\n\n## Clients\n\n- **Calypso** — the classic WordPress.com hosting dashboard, sharing data using Redux and split via Webpack section chunks.\n  - client/my-sites — per-site management; deprecated in favor of the Dashboard client\n  - client/my-sites/checkout — checkout flow\n  - client/me/purchases — redirects to the Dashboard billing screens, plus purchase helpers shared by other sections\n  - client/landing/stepper — onboarding/signup flows (site creation, domain purchase, migration wizards)\n  - client/reader — WordPress.com Reader: feed streams, discover, conversations, likes, lists, following management\n  - Shared infra: client/components, client/state, client/lib, client/layout\n- **Jetpack Cloud** (client/jetpack-cloud) — reuses Calypso shared infra (client/state, client/components).\n- **A8C for Agencies** (client/a8c-for-agencies) — reuses Calypso shared infra.\n- **Dashboard** (client/dashboard) — the new multi-site dashboard. Self-contained: does not reuse Calypso client code. Has its own components, data fetching (TanStack Query), and routing (TanStack Router).\n  - client/dashboard/me/billing-purchases — billing & purchase management\n\n## Packages\n\n- **Agents Manager** (`packages/agents-manager`) — shared component library for WordPress.com's unified AI agent experience, running in Calypso, the Dashboard, Simple and Atomic sites, the WooCommerce AI admin and Reader Chat. Also deployed via `apps/agents-manager/` to `widgets.wp.com`. See its `AGENTS.md` for architecture and conventions.\n- **AI UI Renderer** (`packages/ai-ui-renderer`) — reusable A2UI v1.0 catalog and rendering primitives built with WordPress components. Agents Manager consumes it; conversation handling and MCP transport stay in consumers.\n- **Agenttic** (`packages/agenttic-client`, `packages/agenttic-ui`) — AI agent chat client library and UI components. Also published to npm for consumers outside this repo. ⚠️ Still on its pre-migration package layout (vite-built, ESM-only, flat `dist/`, no `calypso:src`); normalizing it is a future goal, but the published artifact shape is a contract with external consumers — read the Development and Releasing sections in `packages/agenttic-client/README.md` before restructuring or publishing.\n- **Help Center** (`packages/help-center`) — shared component library for WordPress.com support. Also deployed via `apps/help-center/` to `widgets.wp.com`.\n- **Image Studio** (`packages/image-studio`) — AI-powered image editing and generation. When adding Image Studio entry points, read [packages/image-studio/AGENTS.md](packages/image-studio/AGENTS.md).\n- **Calypso Products** (`packages/calypso-products`) — ⚠️ **Avoid.** Deprecated/frozen: a bloated client-side duplicate of product data the backend already owns. Don't add to it; prefer backend-driven data (e.g. `@automattic/api-queries`). See `packages/calypso-products/AGENTS.md`.\n\n## Apps\n\n- **Agents Manager** (`apps/agents-manager`) — build/deploy layer that bundles `packages/agents-manager` into webpack entry points served from `widgets.wp.com`.\n- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\n- **Survicate** (`apps/survicate`) — build/deploy layer that bundles `packages/survicate` into the single script wp-admin loads from `widgets.wp.com`. No logic of its own.\n\n## Development\n\n> **Note**: The Calypso dev server uses the `PORT` environment variable (check repo-root `.env`) and falls back to port `3000`. Do not create or modify `.env` unless explicitly asked.\n\n```bash\n# Setup\nyarn install\n\n# Build and start the dev server\nyarn start\n\n# Build and start the dev server for the Dashboard client only.\nyarn start-dashboard\n```\n\nIf `yarn start` fails with `Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory`, increase the Node heap size by running `NODE_OPTIONS=--max-old-space-size=8192 yarn start`. For other errors, run `yarn calypso-doctor` to diagnose and fix common environment issues.\n\n## Testing instructions\n\n> **Note**: E2E tests require a local Calypso development instance to be running.\n\n```bash\n# JavaScript tests\nyarn test                                       # Run unit tests for client, packages, server, and build-tools\nyarn test-build-tools                           # Run unit tests for build-tools\nyarn test-client                                # Run unit tests for client\nyarn test-integration                           # Run integration tests\nyarn test-apps                                  # Run apps unit tests\nyarn test-packages                              # Run packages unit tests\nyarn test-server                                # Run server unit tests\nyarn test-server:coverage                       # Run server unit tests with coverage info\n\nyarn test-client:watch                          # Run unit tests for client in watch mode\nyarn test-client <path_to_test_directory>       # Run client unit tests from a specific directory\nyarn test-client --testNamePattern=\"<TestName>\" # Run a specific client unit test\n\n# E2E tests - refer to: test/e2e/AGENTS.md\n\n# Code Quality\nyarn lint             # Lint everything\nyarn lint:css         # Lint CSS\nyarn lint:js          # Lint JavaScript\nyarn reformat-files   # Fix formatting with Prettier\nyarn typecheck-client # Type-check client\n```\n\n## Conventions\n\n- Do NOT add any verbose code comments that narrate what the change does or why it was made (e.g. `// Added this to fix X`, `// Changed from Y to Z`, restating the code in prose). Such explanation belongs in the PR description, not the source. Only keep comments that a future reader genuinely needs — non-obvious rationale, gotchas, links to context — and match the comment density and style of the surrounding code.\n\n## Pre-PR checks\n\nBefore pushing a branch or running `gh pr create`, run the type-check that CI will run. PRs touching `client/` may fail the `type_check_client` CI check after opening, so verify locally first:\n\n```bash\nyarn               # Install dependencies first if you haven't already\nyarn typecheck-client\n```\n\nIf it fails, fix the type errors at the source — do not silence them with `// @ts-expect-error`, `// @ts-ignore`, or `as any` unless you can justify it in the PR description. Other CI type-checks worth running when relevant: `yarn typecheck-packages`, `yarn typecheck-apps`.\n\n## Creating Pull Requests\n\n- Create PRs as draft. Follow the template in .github/PULL_REQUEST_TEMPLATE.md.\n- Branch naming (see `docs/git-workflow.md`): branch off `trunk` and prefix with `add/` (new feature), `update/` (iterating on existing), `fix/` (fixing something broken), or `try/` (experiment). Use a **single slash only** — multiple slashes break Calypso Live testing. Do NOT use Linear's autogenerated `gitBranchName` (e.g. `dotcom-17900-…`); it has no prefix and violates this convention. For the Signup accepts-props initiative, follow the established pattern `add/stepper-<step>-accepts-props` (e.g. `add/stepper-user-step-accepts-props`, `add/stepper-unified-plans-accepts-props`).\n- In the PR description:\n  - Use Linear issue IDs (e.g., `LIN-123`) instead of full Linear URLs.\n  - Avoid mentioning people's names.\n  - Include all checklist items from .github/PULL_REQUEST_TEMPLATE.md. Only mark items as completed (`[x]`) if they actually apply; leave inapplicable items unchecked (`[ ]`).\n\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/Automattic/wp-calypso/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}