{"owner":"RSSNext","repo":"Folo","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\nThis file provides concise, agent-focused guidance for working in this monorepo. It consolidates the repository's CLAUDE.md guides, .cursor rules, Cursor rules improvements, and modern agent best practices.\n\n## Project overview\n\n- Monorepo managed by pnpm workspaces + Turbo.\n- Apps:\n  - `apps/desktop` – Electron app (Vite + React renderer is the primary web app)\n  - `apps/mobile` – React Native app via Expo\n  - `apps/ssr` – Minimal SSR site for external sharing\n- Shared packages: `packages/internal` (components, atoms, hooks, store, utils, database, etc.).\n\n## Setup commands\n\n```bash\n# Install deps\npnpm install\n\n# Desktop – recommended (browser renderer)\ncd apps/desktop && pnpm run dev:web\n\n# Desktop – full Electron\ncd apps/desktop && pnpm run dev:electron\n\n# Mobile – Expo\ncd apps/mobile && pnpm run dev\n# or target platforms\ncd apps/mobile && pnpm run ios\ncd apps/mobile && pnpm run android\n\n# SSR\ncd apps/ssr && pnpm run dev\n\n# Build web version (desktop renderer)\npnpm run build:web\n```\n\n## Quality gates (must-pass before commit/PR)\n\n```bash\n# 1) Typecheck first (required)\npnpm run typecheck\n\n# 2) Lint and auto-fix\npnpm run lint:fix\n\n# 3) Tests\npnpm run test\n```\n\n- Run the above at the root, or use per-package variants as needed.\n- Follow this order strictly: typecheck → lint → test.\n- After every modification, run the following checks to catch errors early:\n\n```bash\nnpm exec turbo run format:check typecheck lint\nnpm exec turbo run test\n```\n\n## Code style and conventions\n\n- TypeScript strict; avoid `any` (use precise types). Comments in English. Keep solutions simple and maintainable.\n- Prefer CSS transitions/animations for simple UI interactions. Use JS-driven motion only when necessary to avoid frame drops.\n- Imports: use `pathe` instead of `node:path` for cross‑platform paths.\n- Organize shared, reusable UI in `packages/internal/components`; app-specific UI stays in its app.\n- **Style extraction**: Avoid inline styles in JSX. Extract complex styles (especially those using CSS variables, gradients, or multiple properties) to external style objects similar to React Native's `StyleSheet.create`. Place style objects in a `styles.ts` file alongside the component, using `CSSProperties` type for type safety.\n\n## Team preferences\n\n- Prefer CSS transitions/animations over JS-based motion for simple interactions to avoid frame drops.\n- Prefer simple, easy-to-maintain solutions.\n- Avoid using the `any` type in TypeScript.\n- Write code comments in English.\n\n## Architecture quick reference\n\n- State: Jotai for atoms, Zustand for complex stores, TanStack Query for server state.\n- Database: Drizzle + SQLite (see `packages/internal/database`).\n- Error handling: custom utils in `packages/internal/utils`; Sentry integrated.\n- i18n: i18next with flat keys only; no `defaultValue`. Provide `en`, `zh-CN`, `ja` for each feature. Avoid conflicting dotted keys.\n\n## UI system and design tokens\n\n### Tailwind + Apple UIKit colors (Desktop/Web)\n\n- Use Tailwind classes bound to Apple UIKit color tokens (light/dark adaptive). Prefix by CSS property:\n  - System colors: `text-red`, `bg-blue`, `border-gray`, etc. for `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown|gray`.\n  - Fill: `bg-fill[-secondary|-tertiary|-quaternary|-quinary]` and `bg-fill-vibrant[-secondary|-tertiary|-quaternary|-quinary]` (and `border-*` as needed).\n  - Text: `text-text`, `text-text-secondary|tertiary|quaternary|quinary`, `text-text-vibrant(-secondary|-tertiary|-quaternary|-quinary)`.\n  - Material: `bg-material-ultra-thick|thick|medium|thin|ultra-thin|opaque`.\n  - Control: `bg-control-enabled|disabled`.\n  - Interface: `bg-menu|popover|titlebar|sidebar|selection-focused|selection-focused-fill|selection-unfocused|selection-unfocused-fill|header-view|tooltip|under-window-background`.\n\nThese classes map to the UIKit color variables (see `.cursor rules/color` and `apps/desktop/AGENTS.md`).\n\n### Icons (Desktop/Web)\n\n- Prefer MingCute with `i-mgc-` prefix (e.g., `i-mgc-copy-cute-re`). Use `i-mingcute-` only if no `i-mgc-` exists.\n\n### Motion (Desktop/Web)\n\n- Use Framer Motion with LazyMotion via `m` from `motion/react` (e.g., `m.div`).\n- Prefer spring presets from `@follow/components/constants/spring.js` (`Spring.presets.smooth|snappy|bouncy`).\n- For simple micro-interactions, prefer CSS transitions first.\n\n### React Native (Mobile)\n\n- Styling: NativewindCSS; do not use external `StyleSheet.create` for new UI.\n- Icons: use `@/apps/mobile/icons` only.\n- Colors: use React Native UIKit color system (via `react-native-uikit-colors`) with Tailwind utilities:\n  - Backgrounds: `system-background`, `secondary-system-background`, `tertiary-system-background`.\n  - Grouped backgrounds: `system-grouped-background`, `secondary-system-grouped-background`, `tertiary-system-grouped-background`.\n  - Labels: `label`, `secondary-label`, `tertiary-label`, `quaternary-label`.\n  - Fills: `system-fill`, `secondary-system-fill`, `tertiary-system-fill`, `quaternary-system-fill`.\n  - Separators: `separator`, `opaque-separator`, `non-opaque-separator`.\n  - Semantic colors: `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown`, grays `gray..gray6`, and interactive `link`, `placeholder-text`.\n\n## Component placement\n\n1. Check existing components in `apps/desktop/layer/renderer/src/modules/renderer/components` for app-specific UI.\n2. If generic and reusable, implement in `packages/internal/components` and export from the package index.\n\n## Testing & CI tips\n\n- Use Vitest for unit tests; co-locate tests near source files.\n- After moving files or changing imports, run `pnpm lint` and `pnpm typecheck` for the affected package.\n- CI expects `pnpm typecheck`, `pnpm lint`, and `pnpm test` to pass before merge.\n\n## Agent workflow (Cursor-oriented improvements)\n\n- Status updates: provide brief progress notes when running tool batches.\n- Prefer semantic code search to explore unfamiliar areas; use exact grep only for symbols.\n- Default to parallelizing independent searches/reads to reduce latency.\n- Avoid multi-line speculative edits; keep edits minimal and targeted; preserve existing indentation.\n- When editing TypeScript, do not introduce `any`; keep types precise.\n- For UI, prefer CSS transitions for simple effects; use Framer Motion `m.*` only when needed.\n\n## Context7 (up-to-date docs)\n\n- Use Context7 to fetch current library docs before using APIs prone to change.\n- Workflow:\n  1. Resolve a library ID: resolve the library (e.g., React Native, Vite, TanStack Query).\n  2. Fetch docs scoped to the topic (e.g., hooks, routing).\n  3. Integrate code examples following our style rules.\n\n## Sequential Thinking (step-by-step problem solving)\n\n- Break work into small thought steps:\n  1. Define immediate goal/assumption.\n  2. Use suitable tool (search, code edit, error explainer, docs).\n  3. Record the output/results.\n  4. Decide next step or branch alternatives; compare trade-offs.\n- Encourage rollback/iteration if new information contradicts prior steps.\n\n## Subproject guides\n\n- This root AGENTS.md sets global rules. Each app/package should include its own `AGENTS.md` (e.g., `apps/desktop/AGENTS.md`, `apps/mobile/AGENTS.md`). The closest guide to the edited file takes precedence when rules conflict.\n\n## Quick checklists\n\n- Implementation\n  - [ ] Is code placed in the right package/app?\n  - [ ] Type-safe (no `any`), readable names, English comments where needed.\n  - [ ] Uses correct UIKit Tailwind tokens and icon sources.\n  - [ ] For motion: CSS first; `m.*` only if necessary.\n\n- Validation\n  - [ ] `pnpm typecheck` passes\n  - [ ] `pnpm lint:fix` passes cleanly\n  - [ ] Tests updated and pass\n"},"files":{"AGENTS.md":"# AGENTS.md\n\nThis file provides concise, agent-focused guidance for working in this monorepo. It consolidates the repository's CLAUDE.md guides, .cursor rules, Cursor rules improvements, and modern agent best practices.\n\n## Project overview\n\n- Monorepo managed by pnpm workspaces + Turbo.\n- Apps:\n  - `apps/desktop` – Electron app (Vite + React renderer is the primary web app)\n  - `apps/mobile` – React Native app via Expo\n  - `apps/ssr` – Minimal SSR site for external sharing\n- Shared packages: `packages/internal` (components, atoms, hooks, store, utils, database, etc.).\n\n## Setup commands\n\n```bash\n# Install deps\npnpm install\n\n# Desktop – recommended (browser renderer)\ncd apps/desktop && pnpm run dev:web\n\n# Desktop – full Electron\ncd apps/desktop && pnpm run dev:electron\n\n# Mobile – Expo\ncd apps/mobile && pnpm run dev\n# or target platforms\ncd apps/mobile && pnpm run ios\ncd apps/mobile && pnpm run android\n\n# SSR\ncd apps/ssr && pnpm run dev\n\n# Build web version (desktop renderer)\npnpm run build:web\n```\n\n## Quality gates (must-pass before commit/PR)\n\n```bash\n# 1) Typecheck first (required)\npnpm run typecheck\n\n# 2) Lint and auto-fix\npnpm run lint:fix\n\n# 3) Tests\npnpm run test\n```\n\n- Run the above at the root, or use per-package variants as needed.\n- Follow this order strictly: typecheck → lint → test.\n- After every modification, run the following checks to catch errors early:\n\n```bash\nnpm exec turbo run format:check typecheck lint\nnpm exec turbo run test\n```\n\n## Code style and conventions\n\n- TypeScript strict; avoid `any` (use precise types). Comments in English. Keep solutions simple and maintainable.\n- Prefer CSS transitions/animations for simple UI interactions. Use JS-driven motion only when necessary to avoid frame drops.\n- Imports: use `pathe` instead of `node:path` for cross‑platform paths.\n- Organize shared, reusable UI in `packages/internal/components`; app-specific UI stays in its app.\n- **Style extraction**: Avoid inline styles in JSX. Extract complex styles (especially those using CSS variables, gradients, or multiple properties) to external style objects similar to React Native's `StyleSheet.create`. Place style objects in a `styles.ts` file alongside the component, using `CSSProperties` type for type safety.\n\n## Team preferences\n\n- Prefer CSS transitions/animations over JS-based motion for simple interactions to avoid frame drops.\n- Prefer simple, easy-to-maintain solutions.\n- Avoid using the `any` type in TypeScript.\n- Write code comments in English.\n\n## Architecture quick reference\n\n- State: Jotai for atoms, Zustand for complex stores, TanStack Query for server state.\n- Database: Drizzle + SQLite (see `packages/internal/database`).\n- Error handling: custom utils in `packages/internal/utils`; Sentry integrated.\n- i18n: i18next with flat keys only; no `defaultValue`. Provide `en`, `zh-CN`, `ja` for each feature. Avoid conflicting dotted keys.\n\n## UI system and design tokens\n\n### Tailwind + Apple UIKit colors (Desktop/Web)\n\n- Use Tailwind classes bound to Apple UIKit color tokens (light/dark adaptive). Prefix by CSS property:\n  - System colors: `text-red`, `bg-blue`, `border-gray`, etc. for `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown|gray`.\n  - Fill: `bg-fill[-secondary|-tertiary|-quaternary|-quinary]` and `bg-fill-vibrant[-secondary|-tertiary|-quaternary|-quinary]` (and `border-*` as needed).\n  - Text: `text-text`, `text-text-secondary|tertiary|quaternary|quinary`, `text-text-vibrant(-secondary|-tertiary|-quaternary|-quinary)`.\n  - Material: `bg-material-ultra-thick|thick|medium|thin|ultra-thin|opaque`.\n  - Control: `bg-control-enabled|disabled`.\n  - Interface: `bg-menu|popover|titlebar|sidebar|selection-focused|selection-focused-fill|selection-unfocused|selection-unfocused-fill|header-view|tooltip|under-window-background`.\n\nThese classes map to the UIKit color variables (see `.cursor rules/color` and `apps/desktop/AGENTS.md`).\n\n### Icons (Desktop/Web)\n\n- Prefer MingCute with `i-mgc-` prefix (e.g., `i-mgc-copy-cute-re`). Use `i-mingcute-` only if no `i-mgc-` exists.\n\n### Motion (Desktop/Web)\n\n- Use Framer Motion with LazyMotion via `m` from `motion/react` (e.g., `m.div`).\n- Prefer spring presets from `@follow/components/constants/spring.js` (`Spring.presets.smooth|snappy|bouncy`).\n- For simple micro-interactions, prefer CSS transitions first.\n\n### React Native (Mobile)\n\n- Styling: NativewindCSS; do not use external `StyleSheet.create` for new UI.\n- Icons: use `@/apps/mobile/icons` only.\n- Colors: use React Native UIKit color system (via `react-native-uikit-colors`) with Tailwind utilities:\n  - Backgrounds: `system-background`, `secondary-system-background`, `tertiary-system-background`.\n  - Grouped backgrounds: `system-grouped-background`, `secondary-system-grouped-background`, `tertiary-system-grouped-background`.\n  - Labels: `label`, `secondary-label`, `tertiary-label`, `quaternary-label`.\n  - Fills: `system-fill`, `secondary-system-fill`, `tertiary-system-fill`, `quaternary-system-fill`.\n  - Separators: `separator`, `opaque-separator`, `non-opaque-separator`.\n  - Semantic colors: `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown`, grays `gray..gray6`, and interactive `link`, `placeholder-text`.\n\n## Component placement\n\n1. Check existing components in `apps/desktop/layer/renderer/src/modules/renderer/components` for app-specific UI.\n2. If generic and reusable, implement in `packages/internal/components` and export from the package index.\n\n## Testing & CI tips\n\n- Use Vitest for unit tests; co-locate tests near source files.\n- After moving files or changing imports, run `pnpm lint` and `pnpm typecheck` for the affected package.\n- CI expects `pnpm typecheck`, `pnpm lint`, and `pnpm test` to pass before merge.\n\n## Agent workflow (Cursor-oriented improvements)\n\n- Status updates: provide brief progress notes when running tool batches.\n- Prefer semantic code search to explore unfamiliar areas; use exact grep only for symbols.\n- Default to parallelizing independent searches/reads to reduce latency.\n- Avoid multi-line speculative edits; keep edits minimal and targeted; preserve existing indentation.\n- When editing TypeScript, do not introduce `any`; keep types precise.\n- For UI, prefer CSS transitions for simple effects; use Framer Motion `m.*` only when needed.\n\n## Context7 (up-to-date docs)\n\n- Use Context7 to fetch current library docs before using APIs prone to change.\n- Workflow:\n  1. Resolve a library ID: resolve the library (e.g., React Native, Vite, TanStack Query).\n  2. Fetch docs scoped to the topic (e.g., hooks, routing).\n  3. Integrate code examples following our style rules.\n\n## Sequential Thinking (step-by-step problem solving)\n\n- Break work into small thought steps:\n  1. Define immediate goal/assumption.\n  2. Use suitable tool (search, code edit, error explainer, docs).\n  3. Record the output/results.\n  4. Decide next step or branch alternatives; compare trade-offs.\n- Encourage rollback/iteration if new information contradicts prior steps.\n\n## Subproject guides\n\n- This root AGENTS.md sets global rules. Each app/package should include its own `AGENTS.md` (e.g., `apps/desktop/AGENTS.md`, `apps/mobile/AGENTS.md`). The closest guide to the edited file takes precedence when rules conflict.\n\n## Quick checklists\n\n- Implementation\n  - [ ] Is code placed in the right package/app?\n  - [ ] Type-safe (no `any`), readable names, English comments where needed.\n  - [ ] Uses correct UIKit Tailwind tokens and icon sources.\n  - [ ] For motion: CSS first; `m.*` only if necessary.\n\n- Validation\n  - [ ] `pnpm typecheck` passes\n  - [ ] `pnpm lint:fix` passes cleanly\n  - [ ] Tests updated and pass\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS.md\n\nThis file provides concise, agent-focused guidance for working in this monorepo. It consolidates the repository's CLAUDE.md guides, .cursor rules, Cursor rules improvements, and modern agent best practices.\n\n## Project overview\n\n- Monorepo managed by pnpm workspaces + Turbo.\n- Apps:\n  - `apps/desktop` – Electron app (Vite + React renderer is the primary web app)\n  - `apps/mobile` – React Native app via Expo\n  - `apps/ssr` – Minimal SSR site for external sharing\n- Shared packages: `packages/internal` (components, atoms, hooks, store, utils, database, etc.).\n\n## Setup commands\n\n```bash\n# Install deps\npnpm install\n\n# Desktop – recommended (browser renderer)\ncd apps/desktop && pnpm run dev:web\n\n# Desktop – full Electron\ncd apps/desktop && pnpm run dev:electron\n\n# Mobile – Expo\ncd apps/mobile && pnpm run dev\n# or target platforms\ncd apps/mobile && pnpm run ios\ncd apps/mobile && pnpm run android\n\n# SSR\ncd apps/ssr && pnpm run dev\n\n# Build web version (desktop renderer)\npnpm run build:web\n```\n\n## Quality gates (must-pass before commit/PR)\n\n```bash\n# 1) Typecheck first (required)\npnpm run typecheck\n\n# 2) Lint and auto-fix\npnpm run lint:fix\n\n# 3) Tests\npnpm run test\n```\n\n- Run the above at the root, or use per-package variants as needed.\n- Follow this order strictly: typecheck → lint → test.\n- After every modification, run the following checks to catch errors early:\n\n```bash\nnpm exec turbo run format:check typecheck lint\nnpm exec turbo run test\n```\n\n## Code style and conventions\n\n- TypeScript strict; avoid `any` (use precise types). Comments in English. Keep solutions simple and maintainable.\n- Prefer CSS transitions/animations for simple UI interactions. Use JS-driven motion only when necessary to avoid frame drops.\n- Imports: use `pathe` instead of `node:path` for cross‑platform paths.\n- Organize shared, reusable UI in `packages/internal/components`; app-specific UI stays in its app.\n- **Style extraction**: Avoid inline styles in JSX. Extract complex styles (especially those using CSS variables, gradients, or multiple properties) to external style objects similar to React Native's `StyleSheet.create`. Place style objects in a `styles.ts` file alongside the component, using `CSSProperties` type for type safety.\n\n## Team preferences\n\n- Prefer CSS transitions/animations over JS-based motion for simple interactions to avoid frame drops.\n- Prefer simple, easy-to-maintain solutions.\n- Avoid using the `any` type in TypeScript.\n- Write code comments in English.\n\n## Architecture quick reference\n\n- State: Jotai for atoms, Zustand for complex stores, TanStack Query for server state.\n- Database: Drizzle + SQLite (see `packages/internal/database`).\n- Error handling: custom utils in `packages/internal/utils`; Sentry integrated.\n- i18n: i18next with flat keys only; no `defaultValue`. Provide `en`, `zh-CN`, `ja` for each feature. Avoid conflicting dotted keys.\n\n## UI system and design tokens\n\n### Tailwind + Apple UIKit colors (Desktop/Web)\n\n- Use Tailwind classes bound to Apple UIKit color tokens (light/dark adaptive). Prefix by CSS property:\n  - System colors: `text-red`, `bg-blue`, `border-gray`, etc. for `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown|gray`.\n  - Fill: `bg-fill[-secondary|-tertiary|-quaternary|-quinary]` and `bg-fill-vibrant[-secondary|-tertiary|-quaternary|-quinary]` (and `border-*` as needed).\n  - Text: `text-text`, `text-text-secondary|tertiary|quaternary|quinary`, `text-text-vibrant(-secondary|-tertiary|-quaternary|-quinary)`.\n  - Material: `bg-material-ultra-thick|thick|medium|thin|ultra-thin|opaque`.\n  - Control: `bg-control-enabled|disabled`.\n  - Interface: `bg-menu|popover|titlebar|sidebar|selection-focused|selection-focused-fill|selection-unfocused|selection-unfocused-fill|header-view|tooltip|under-window-background`.\n\nThese classes map to the UIKit color variables (see `.cursor rules/color` and `apps/desktop/AGENTS.md`).\n\n### Icons (Desktop/Web)\n\n- Prefer MingCute with `i-mgc-` prefix (e.g., `i-mgc-copy-cute-re`). Use `i-mingcute-` only if no `i-mgc-` exists.\n\n### Motion (Desktop/Web)\n\n- Use Framer Motion with LazyMotion via `m` from `motion/react` (e.g., `m.div`).\n- Prefer spring presets from `@follow/components/constants/spring.js` (`Spring.presets.smooth|snappy|bouncy`).\n- For simple micro-interactions, prefer CSS transitions first.\n\n### React Native (Mobile)\n\n- Styling: NativewindCSS; do not use external `StyleSheet.create` for new UI.\n- Icons: use `@/apps/mobile/icons` only.\n- Colors: use React Native UIKit color system (via `react-native-uikit-colors`) with Tailwind utilities:\n  - Backgrounds: `system-background`, `secondary-system-background`, `tertiary-system-background`.\n  - Grouped backgrounds: `system-grouped-background`, `secondary-system-grouped-background`, `tertiary-system-grouped-background`.\n  - Labels: `label`, `secondary-label`, `tertiary-label`, `quaternary-label`.\n  - Fills: `system-fill`, `secondary-system-fill`, `tertiary-system-fill`, `quaternary-system-fill`.\n  - Separators: `separator`, `opaque-separator`, `non-opaque-separator`.\n  - Semantic colors: `red|orange|yellow|green|mint|teal|cyan|blue|indigo|purple|pink|brown`, grays `gray..gray6`, and interactive `link`, `placeholder-text`.\n\n## Component placement\n\n1. Check existing components in `apps/desktop/layer/renderer/src/modules/renderer/components` for app-specific UI.\n2. If generic and reusable, implement in `packages/internal/components` and export from the package index.\n\n## Testing & CI tips\n\n- Use Vitest for unit tests; co-locate tests near source files.\n- After moving files or changing imports, run `pnpm lint` and `pnpm typecheck` for the affected package.\n- CI expects `pnpm typecheck`, `pnpm lint`, and `pnpm test` to pass before merge.\n\n## Agent workflow (Cursor-oriented improvements)\n\n- Status updates: provide brief progress notes when running tool batches.\n- Prefer semantic code search to explore unfamiliar areas; use exact grep only for symbols.\n- Default to parallelizing independent searches/reads to reduce latency.\n- Avoid multi-line speculative edits; keep edits minimal and targeted; preserve existing indentation.\n- When editing TypeScript, do not introduce `any`; keep types precise.\n- For UI, prefer CSS transitions for simple effects; use Framer Motion `m.*` only when needed.\n\n## Context7 (up-to-date docs)\n\n- Use Context7 to fetch current library docs before using APIs prone to change.\n- Workflow:\n  1. Resolve a library ID: resolve the library (e.g., React Native, Vite, TanStack Query).\n  2. Fetch docs scoped to the topic (e.g., hooks, routing).\n  3. Integrate code examples following our style rules.\n\n## Sequential Thinking (step-by-step problem solving)\n\n- Break work into small thought steps:\n  1. Define immediate goal/assumption.\n  2. Use suitable tool (search, code edit, error explainer, docs).\n  3. Record the output/results.\n  4. Decide next step or branch alternatives; compare trade-offs.\n- Encourage rollback/iteration if new information contradicts prior steps.\n\n## Subproject guides\n\n- This root AGENTS.md sets global rules. Each app/package should include its own `AGENTS.md` (e.g., `apps/desktop/AGENTS.md`, `apps/mobile/AGENTS.md`). The closest guide to the edited file takes precedence when rules conflict.\n\n## Quick checklists\n\n- Implementation\n  - [ ] Is code placed in the right package/app?\n  - [ ] Type-safe (no `any`), readable names, English comments where needed.\n  - [ ] Uses correct UIKit Tailwind tokens and icon sources.\n  - [ ] For motion: CSS first; `m.*` only if necessary.\n\n- Validation\n  - [ ] `pnpm typecheck` passes\n  - [ ] `pnpm lint:fix` passes cleanly\n  - [ ] Tests updated and pass\n","category":"root","tokens":1921}]}