with one click
update-chat-lexicons
Use when the user wants to update, sync, or copy chat lexicons from the chat repo into this monorepo, or when they mention "update chat lexicons"
Menu
Use when the user wants to update, sync, or copy chat lexicons from the chat repo into this monorepo, or when they mention "update chat lexicons"
| name | update-chat-lexicons |
| description | Use when the user wants to update, sync, or copy chat lexicons from the chat repo into this monorepo, or when they mention "update chat lexicons" |
Syncs chat lexicon definitions from the external chat repo into this monorepo and adds a changeset for the update.
rsync -a --delete ../chat/lexicons/chat/ ./atproto/lexicons/chat/
.changeset/ with a random three-word name (format: adjective-noun-verb.md):---
'@atproto/api': patch
---
update chat lexicons
../chatlexicons/chat/ in this repo root@atproto/api with a patch bumpUse this skill whenever code interacts with the `@atproto/lex` SDK family. This family covers `@atproto/lex` and its companion packages: `@atproto/lex-client`, `@atproto/lex-data`, `@atproto/lex-json`, and `@atproto/lex-schema` (all re-exported by `@atproto/lex`), plus `@atproto/lex-cbor` and `@atproto/xrpc-server` (related companion packages that must be imported directly — they are NOT re-exported by `@atproto/lex`). Trigger on ANY of the following (OR logic — match any one): (1) XRPC calls with `Client`, `xrpc`, or `xrpcSafe`; (2) defining XRPC server routes (`createServer`, `server.add`); (3) validating lexicon-derived data (`$build`, `$matches`, `$isTypeOf`, `$parse`, `$safeParse`, `$validate`); (4) processing AT Protocol data: JSON ↔ Lex with `lexParse` / `lexStringify` / `jsonToLex` / `lexToJson`, or CBOR via the separate `@atproto/lex-cbor` package; (5) installing or building lexicons (`lex install`, `lex build`); (6) working with branded strings (`DidString`, `HandleString`, `AtUriString`, `Cid`, `Da
Drive a real browser via the Playwright MCP to interact with the OAuth flows, and the Account Manager UI. Use this skill in TWO situations: (A) writing or extending an end-to-end UI test that uses Puppeteer + `PageHelper` (e.g. `packages/pds/tests/oauth.test.ts`, `packages/pds/tests/account-manager.test.ts`, or any test that boots a browser via `puppeteer` / `playwright`) — the skill enforces a discovery-first flow where flows are walked through the running app to capture exact strings before any code is written; AND (B) demoing, navigating, or debugging the OAuth flow or Account Manager interface (http://localhost:2583/account) against a local dev environment OR against production via the demo OAuth client at http://127.0.0.1:8080/?env=production. Trigger on: `puppeteer` / `playwright` imports in tests, requests to "demo / show / walk through / debug" OAuth or the account manager, mentions of `PageHelper`, `_puppeteer.ts`, `browser_navigate`/`browser_click`/`browser_snapshot`, or anything that needs to drive
Testing practices for this monorepo — choosing between unit and end-to-end tests, where test files live, how tsconfig.test.json fits in, how to drive Playwright, to to write/adapt UI/end-to-end tests, and which test runner (vitest vs jest) to use. MUST be invoked BEFORE any code search or file reads whenever the user asks to add, write, or extend a test, add coverage, create a test file, set up testing in a new package, mentions vitest/jest, or refers to an existing `*.test.ts` file. Applies equally to unit tests and to end-to-end / UI tests — the skill routes to a Playwright-MCP-first discovery flow for the latter, which differs from normal code-search workflow.