{"owner":"Automattic","repo":"wp-calypso","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md","CLAUDE.md"],"skills":{"AGENTS.md":"# AGENTS.md\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 — purchase management\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- **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\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- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\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- Follow the branch naming conventions in docs/git-workflow.md.\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  - Do not link to wordpress.com URLs.\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","CLAUDE.md":"@AGENTS.md\n\n- CRITICAL: Preserve existing curly quotes and apostrophes (“” ‘’) exactly as they appear in the source. Do NOT replace them with unicode escape sequences (\\u2019, etc.) or straight ASCII equivalents (', \"). To do that, when editing strings that contain a mix of straight quote delimiters and curly quotes/apostrophes inside, avoid including the string delimiters in the old_string/new_string of the Edit tool. Instead, match on a unique inner substring that doesn't include the delimiters. This prevents the Edit tool from inadvertently converting straight quote delimiters to curly quotes or vice versa.\n"},"files":{"AGENTS.md":"# AGENTS.md\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 — purchase management\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- **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\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- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\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- Follow the branch naming conventions in docs/git-workflow.md.\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  - Do not link to wordpress.com URLs.\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","CLAUDE.md":"@AGENTS.md\n\n- CRITICAL: Preserve existing curly quotes and apostrophes (“” ‘’) exactly as they appear in the source. Do NOT replace them with unicode escape sequences (\\u2019, etc.) or straight ASCII equivalents (', \"). To do that, when editing strings that contain a mix of straight quote delimiters and curly quotes/apostrophes inside, avoid including the string delimiters in the old_string/new_string of the Edit tool. Instead, match on a unique inner substring that doesn't include the delimiters. This prevents the Edit tool from inadvertently converting straight quote delimiters to curly quotes or vice versa.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\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 — purchase management\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- **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\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- **Help Center** (`apps/help-center`) — build/deploy layer that bundles `packages/help-center` into webpack entry points served from `widgets.wp.com`.\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- Follow the branch naming conventions in docs/git-workflow.md.\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  - Do not link to wordpress.com URLs.\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","category":"root","tokens":1385},{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"@AGENTS.md\n\n- CRITICAL: Preserve existing curly quotes and apostrophes (“” ‘’) exactly as they appear in the source. Do NOT replace them with unicode escape sequences (\\u2019, etc.) or straight ASCII equivalents (', \"). To do that, when editing strings that contain a mix of straight quote delimiters and curly quotes/apostrophes inside, avoid including the string delimiters in the old_string/new_string of the Edit tool. Instead, match on a unique inner substring that doesn't include the delimiters. This prevents the Edit tool from inadvertently converting straight quote delimiters to curly quotes or vice versa.\n","category":"root","tokens":155}]}