{"owner":"rainbow-me","repo":"rainbow","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1746,"categories":["root-instruction","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"rainbow":{"command":"npx","args":["-y","@modelcontextprotocol/server-rainbow"]}}},"found":["AGENTS.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Rainbow\n\nReact Native crypto wallet app (iOS & Android). Uses React Navigation, `@storesjs/stores` store creators for state/data, and ethers/viem for blockchain interactions.\n\n## Verification\n\n- **Type check (TS):** `yarn lint:ts`\n- **Type check (JS):** `yarn lint:js-types` (checks JS files against an error baseline)\n- **Lint (ESLint):** `yarn lint:js`\n- **Lint all:** `yarn lint` (format + TS + JS)\n- **Tests:** `yarn test` (Vitest)\n- **Single test:** `yarn test path/to/test`\n- **Dependency rules + cycles:** `yarn lint:deps` (dependency-cruiser via `tools/deps-check/`: architectural boundaries, plus circular deps checked against a grandfathered per-platform baseline). Net-new cycles fail; removing cycles also fails until you run `yarn lint:deps:baseline:update` and commit the baselines, which keeps them exact. Per-rule policies (grandfathered vs strict) live in `tools/deps-check/policies.ts`.\n\n## Architecture\n\n### State management\n\nState/data stores use `@storesjs/stores`:\n\n- **`createBaseStore`** -- general-purpose store with optional synchronous MMKV persistence. Use for client state.\n- **`createQueryStore`** -- combines data fetching + state in one store. Reactive `$` params auto-refetch when dependencies change. Replaces the React Query + Zustand dual-store pattern. Use for server/async data.\n- **`createDerivedStore`** -- read-only store that composes other stores. Use for computed/aggregated state.\n\nStores live in `src/state/` (one per domain) and in `src/features/*/data/stores/`.\n\nLegacy systems still in use:\n\n- **React Query** (`src/react-query/`) -- server state caching, being replaced by `createQueryStore`\n- **Redux** (`src/redux/`) -- only for: charts, contacts, ENS registration, gas, settings\n\n### Source layout\n\nThe codebase is mid-migration toward domain-organized architecture. New code goes in `src/features/` with `ui/data/core` layer separation. Legacy code lives in flat top-level directories (`components/`, `screens/`, `hooks/`, `helpers/`, `utils/`).\n\nKey non-obvious directories:\n\n- `src/framework/` -- app-agnostic infrastructure (http, safe math, UI primitives)\n- `src/__swaps__/` -- swap feature, aliased as `@/swaps` in tsconfig\n- `src/graphql/` -- separate yarn workspace for GraphQL codegen\n- `scripts/` -- flat, single-file scripts that orchestrate/wrap existing things\n- `tools/` -- standalone tooling with its own logic, modules, and tests\n\n## Code conventions\n\n- **No barrel exports** -- import directly from source files, not `index.ts`. Barrels defeat tree-shaking, hide circular deps, and trigger cascading module loading. ESLint-enforced with a limited allowlist.\n- **Type-only imports** -- use the `type` annotation for type-only imports (ESLint-enforced).\n- **TypeScript over JavaScript** -- write all new files in `.ts`/`.tsx`. Remaining JS files are checked against an error baseline (`yarn lint:js-types`) -- don't regress it.\n\n## PR scope\n\nPRs are deliberately narrow. Refactor and migration PRs are behavior-preserving: moves, extractions, and rewires only. Pre-existing flaws in code a PR touches or moves are fixed in separate PRs, never bundled, and behavior changes never ride in a migration PR.\n\n## Reviewing\n\nHold PRs to the scope contract above, not to the state of the code they touch: flag only what a PR introduces, makes worse, or newly exposes. A severe pre-existing issue may be surfaced, clearly marked as pre-existing and out of scope, without counting against the PR. Don't ask a PR to widen its scope.\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/rainbow-me/rainbow/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/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Rainbow\n\nReact Native crypto wallet app (iOS & Android). Uses React Navigation, `@storesjs/stores` store creators for state/data, and ethers/viem for blockchain interactions.\n\n## Verification\n\n- **Type check (TS):** `yarn lint:ts`\n- **Type check (JS):** `yarn lint:js-types` (checks JS files against an error baseline)\n- **Lint (ESLint):** `yarn lint:js`\n- **Lint all:** `yarn lint` (format + TS + JS)\n- **Tests:** `yarn test` (Vitest)\n- **Single test:** `yarn test path/to/test`\n- **Dependency rules + cycles:** `yarn lint:deps` (dependency-cruiser via `tools/deps-check/`: architectural boundaries, plus circular deps checked against a grandfathered per-platform baseline). Net-new cycles fail; removing cycles also fails until you run `yarn lint:deps:baseline:update` and commit the baselines, which keeps them exact. Per-rule policies (grandfathered vs strict) live in `tools/deps-check/policies.ts`.\n\n## Architecture\n\n### State management\n\nState/data stores use `@storesjs/stores`:\n\n- **`createBaseStore`** -- general-purpose store with optional synchronous MMKV persistence. Use for client state.\n- **`createQueryStore`** -- combines data fetching + state in one store. Reactive `$` params auto-refetch when dependencies change. Replaces the React Query + Zustand dual-store pattern. Use for server/async data.\n- **`createDerivedStore`** -- read-only store that composes other stores. Use for computed/aggregated state.\n\nStores live in `src/state/` (one per domain) and in `src/features/*/data/stores/`.\n\nLegacy systems still in use:\n\n- **React Query** (`src/react-query/`) -- server state caching, being replaced by `createQueryStore`\n- **Redux** (`src/redux/`) -- only for: charts, contacts, ENS registration, gas, settings\n\n### Source layout\n\nThe codebase is mid-migration toward domain-organized architecture. New code goes in `src/features/` with `ui/data/core` layer separation. Legacy code lives in flat top-level directories (`components/`, `screens/`, `hooks/`, `helpers/`, `utils/`).\n\nKey non-obvious directories:\n\n- `src/framework/` -- app-agnostic infrastructure (http, safe math, UI primitives)\n- `src/__swaps__/` -- swap feature, aliased as `@/swaps` in tsconfig\n- `src/graphql/` -- separate yarn workspace for GraphQL codegen\n- `scripts/` -- flat, single-file scripts that orchestrate/wrap existing things\n- `tools/` -- standalone tooling with its own logic, modules, and tests\n\n## Code conventions\n\n- **No barrel exports** -- import directly from source files, not `index.ts`. Barrels defeat tree-shaking, hide circular deps, and trigger cascading module loading. ESLint-enforced with a limited allowlist.\n- **Type-only imports** -- use the `type` annotation for type-only imports (ESLint-enforced).\n- **TypeScript over JavaScript** -- write all new files in `.ts`/`.tsx`. Remaining JS files are checked against an error baseline (`yarn lint:js-types`) -- don't regress it.\n\n## PR scope\n\nPRs are deliberately narrow. Refactor and migration PRs are behavior-preserving: moves, extractions, and rewires only. Pre-existing flaws in code a PR touches or moves are fixed in separate PRs, never bundled, and behavior changes never ride in a migration PR.\n\n## Reviewing\n\nHold PRs to the scope contract above, not to the state of the code they touch: flag only what a PR introduces, makes worse, or newly exposes. A severe pre-existing issue may be surfaced, clearly marked as pre-existing and out of scope, without counting against the PR. Don't ask a PR to widen its scope.\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/rainbow-me/rainbow/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/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/rainbow-me/rainbow/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Rainbow\n\nReact Native crypto wallet app (iOS & Android). Uses React Navigation, `@storesjs/stores` store creators for state/data, and ethers/viem for blockchain interactions.\n\n## Verification\n\n- **Type check (TS):** `yarn lint:ts`\n- **Type check (JS):** `yarn lint:js-types` (checks JS files against an error baseline)\n- **Lint (ESLint):** `yarn lint:js`\n- **Lint all:** `yarn lint` (format + TS + JS)\n- **Tests:** `yarn test` (Vitest)\n- **Single test:** `yarn test path/to/test`\n- **Dependency rules + cycles:** `yarn lint:deps` (dependency-cruiser via `tools/deps-check/`: architectural boundaries, plus circular deps checked against a grandfathered per-platform baseline). Net-new cycles fail; removing cycles also fails until you run `yarn lint:deps:baseline:update` and commit the baselines, which keeps them exact. Per-rule policies (grandfathered vs strict) live in `tools/deps-check/policies.ts`.\n\n## Architecture\n\n### State management\n\nState/data stores use `@storesjs/stores`:\n\n- **`createBaseStore`** -- general-purpose store with optional synchronous MMKV persistence. Use for client state.\n- **`createQueryStore`** -- combines data fetching + state in one store. Reactive `$` params auto-refetch when dependencies change. Replaces the React Query + Zustand dual-store pattern. Use for server/async data.\n- **`createDerivedStore`** -- read-only store that composes other stores. Use for computed/aggregated state.\n\nStores live in `src/state/` (one per domain) and in `src/features/*/data/stores/`.\n\nLegacy systems still in use:\n\n- **React Query** (`src/react-query/`) -- server state caching, being replaced by `createQueryStore`\n- **Redux** (`src/redux/`) -- only for: charts, contacts, ENS registration, gas, settings\n\n### Source layout\n\nThe codebase is mid-migration toward domain-organized architecture. New code goes in `src/features/` with `ui/data/core` layer separation. Legacy code lives in flat top-level directories (`components/`, `screens/`, `hooks/`, `helpers/`, `utils/`).\n\nKey non-obvious directories:\n\n- `src/framework/` -- app-agnostic infrastructure (http, safe math, UI primitives)\n- `src/__swaps__/` -- swap feature, aliased as `@/swaps` in tsconfig\n- `src/graphql/` -- separate yarn workspace for GraphQL codegen\n- `scripts/` -- flat, single-file scripts that orchestrate/wrap existing things\n- `tools/` -- standalone tooling with its own logic, modules, and tests\n\n## Code conventions\n\n- **No barrel exports** -- import directly from source files, not `index.ts`. Barrels defeat tree-shaking, hide circular deps, and trigger cascading module loading. ESLint-enforced with a limited allowlist.\n- **Type-only imports** -- use the `type` annotation for type-only imports (ESLint-enforced).\n- **TypeScript over JavaScript** -- write all new files in `.ts`/`.tsx`. Remaining JS files are checked against an error baseline (`yarn lint:js-types`) -- don't regress it.\n\n## PR scope\n\nPRs are deliberately narrow. Refactor and migration PRs are behavior-preserving: moves, extractions, and rewires only. Pre-existing flaws in code a PR touches or moves are fixed in separate PRs, never bundled, and behavior changes never ride in a migration PR.\n\n## Reviewing\n\nHold PRs to the scope contract above, not to the state of the code they touch: flag only what a PR introduces, makes worse, or newly exposes. A severe pre-existing issue may be surfaced, clearly marked as pre-existing and out of scope, without counting against the PR. Don't ask a PR to widen its scope.\n","isInternal":false,"tokens":846,"sizeBytes":3492},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":197},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":183},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":176}],"systemPromptSnippet":"<yakaai_skills repo=\"rainbow-me/rainbow\">\n<!-- File: AGENTS.md (Tokens: ~846 | Category: root-instruction) -->\n# Rainbow\n\nReact Native crypto wallet app (iOS & Android). Uses React Navigation, `@storesjs/stores` store creators for state/data, and ethers/viem for blockchain interactions.\n\n## Verification\n\n- **Type check (TS):** `yarn lint:ts`\n- **Type check (JS):** `yarn lint:js-types` (checks JS files against an error baseline)\n- **Lint (ESLint):** `yarn lint:js`\n- **Lint all:** `yarn lint` (format + TS + JS)\n- **Tests:** `yarn test` (Vitest)\n- **Single test:** `yarn test path/to/test`\n- **Dependency rules + cycles:** `yarn lint:deps` (dependency-cruiser via `tools/deps-check/`: architectural boundaries, plus circular deps checked against a grandfathered per-platform baseline). Net-new cycles fail; removing cycles also fails until you run `yarn lint:deps:baseline:update` and commit the baselines, which keeps them exact. Per-rule policies (grandfathered vs strict) live in `tools/deps-check/policies.ts`.\n\n## Architecture\n\n### State management\n\nState/data stores use `@storesjs/stores`:\n\n- **`createBaseStore`** -- general-purpose store with optional synchronous MMKV persistence. Use for client state.\n- **`createQueryStore`** -- combines data fetching + state in one store. Reactive `$` params auto-refetch when dependencies change. Replaces the React Query + Zustand dual-store pattern. Use for server/async data.\n- **`createDerivedStore`** -- read-only store that composes other stores. Use for computed/aggregated state.\n\nStores live in `src/state/` (one per domain) and in `src/features/*/data/stores/`.\n\nLegacy systems still in use:\n\n- **React Query** (`src/react-query/`) -- server state caching, being replaced by `createQueryStore`\n- **Redux** (`src/redux/`) -- only for: charts, contacts, ENS registration, gas, settings\n\n### Source layout\n\nThe codebase is mid-migration toward domain-organized architecture. New code goes in `src/features/` with `ui/data/core` layer separation. Legacy code lives in flat top-level directories (`components/`, `screens/`, `hooks/`, `helpers/`, `utils/`).\n\nKey non-obvious directories:\n\n- `src/framework/` -- app-agnostic infrastructure (http, safe math, UI primitives)\n- `src/__swaps__/` -- swap feature, aliased as `@/swaps` in tsconfig\n- `src/graphql/` -- separate yarn workspace for GraphQL codegen\n- `scripts/` -- flat, single-file scripts that orchestrate/wrap existing things\n- `tools/` -- standalone tooling with its own logic, modules, and tests\n\n## Code conventions\n\n- **No barrel exports** -- import directly from source files, not `index.ts`. Barrels defeat tree-shaking, hide circular deps, and trigger cascading module loading. ESLint-enforced with a limited allowlist.\n- **Type-only imports** -- use the `type` annotation for type-only imports (ESLint-enforced).\n- **TypeScript over JavaScript** -- write all new files in `.ts`/`.tsx`. Remaining JS files are checked against an error baseline (`yarn lint:js-types`) -- don't regress it.\n\n## PR scope\n\nPRs are deliberately narrow. Refactor and migration PRs are behavior-preserving: moves, extractions, and rewires only. Pre-existing flaws in code a PR touches or moves are fixed in separate PRs, never bundled, and behavior changes never ride in a migration PR.\n\n## Reviewing\n\nHold PRs to the scope contract above, not to the state of the code they touch: flag only what a PR introduces, makes worse, or newly exposes. A severe pre-existing issue may be surfaced, clearly marked as pre-existing and out of scope, without counting against the PR. Don't ask a PR to widen its scope.\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/rainbow-me/rainbow/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/rainbow-me/rainbow/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/rainbow-me/rainbow/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}