[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GTBRJS12RGPJ5THDSE243F":3,"skill-same:01M6GTBRJS12RGPJ5THDSE243F":136},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":27,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":70,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":73,"ownerDescription":74,"updatedAt":75,"install":76,"resources":89},"01M6GTBRJS12RGPJ5THDSE243F","robinhood-for-agents",null,"Trade stocks, options, and crypto on Robinhood — MCP tools (standard mode relayed to Robinhood's hosted MCP, or web mode on the web API) or TypeScript client.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002FSKILL.md",[19,24],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000023","Skill与智能体开发",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"for","robinhood for agents","robinhood","time","new","at","login","mode","headless","number","brave","MCP","options","default","only","never","access","Bash","api","keychain","browser","auth","2026-11-10 10:12:30",false,"---\nname: robinhood-for-agents\ndescription: Trade stocks, options, and crypto on Robinhood — MCP tools (standard mode relayed to Robinhood's hosted MCP, or web mode on the web API) or TypeScript client.\nhomepage: https:\u002F\u002Fgithub.com\u002Fkevin1chun\u002Frobinhood-for-agents\nallowed-tools: Bash(bun:*), Bash(bunx robinhood-for-agents:*), mcp__robinhood-for-agents__*, mcp__robinhood-web__*\ninstall:\n  - kind: node\n    package: robinhood-for-agents\n    bins: [robinhood-for-agents]\nrequires:\n  bins: [bun]\nmetadata: {\"credentials\":\"OAuth tokens stored via TokenStore adapters: KeychainTokenStore (OS keychain, default) or EncryptedFileTokenStore (for Docker\u002Fheadless). restoreSession() loads tokens, injects Bearer auth directly, and registers both proactive renewal (a pre-request hook renews ~24h before expiry) and reactive refresh (on 401). Access-token lifetime varies (~6-8.5 days observed) — never assume a fixed number. Refresh tokens are single-use and rotate on every renewal, so only one client should drive a session at a time. Renewal happens only while the client is in use: a session left idle past the refresh-token lifetime lapses and needs a new browser login.\",\"chrome\":\"Google Chrome is required only for initial login (bunx robinhood-for-agents login) — playwright-core drives the system Chrome; there is no Brave\u002FChromium fallback or BROWSER_PATH override. Not needed for subsequent API calls.\"}\n---\n\n# robinhood-for-agents\n\nAI-native Robinhood trading interface. **No MCP server required** — this skill works standalone via the TypeScript client API and `bun`.\n\n## How to Use\n\nRun Robinhood operations by executing TypeScript code with `bun`. The `robinhood-for-agents` npm package provides a full client library — just import it and call methods:\n\n```bash\nbun -e '\nimport { getClient } from \"robinhood-for-agents\";\nconst rh = getClient();\nawait rh.restoreSession();\n\u002F\u002F call any method, print results as JSON\nconst holdings = await rh.buildHoldings();\nconsole.log(JSON.stringify(holdings, null, 2));\n'\n```\n\nSee [client-api.md](client-api.md) for all available methods and signatures.\n\n> **MCP users:** If you have the `robinhood-for-agents` (standard mode) or `robinhood-web` (web mode) MCP server configured, you may use MCP tools instead. See [reference.md](reference.md) for tool parameters. MCP is optional — the client API above does everything the web-mode tools do; only the standard-mode server (`robinhood-for-agents`) serves the standard-only tools. Pick **one** mode per session and stay in it: the web-mode MCP server and a `bun -e` script are two separate token-refreshing processes, and refresh tokens are single-use, so interleaving them can poison one of them. In MCP mode, `robinhood_check_session` is the session check — it probes the API rather than just reading the keychain.\n\n## CRITICAL SAFETY RULES\n1. **Always confirm before placing any order** — show order preview, get explicit \"yes\"\n2. **Show current price** before order confirmation so user knows the cost\n3. **Never place orders without user confirmation**\n4. **Fund transfers and bank operations are BLOCKED** — refuse these requests\n5. **Never place bulk cancel operations** — cancel orders one at a time\n6. **Never turn a \"sell\" into a short.** `sell` closes a long; `sell_short` opens a short with unlimited loss potential. Only short when the user asked to short, and label it **SHORT SELL** when confirming. A **negative** position quantity *is* a short — close it by **buying**, never by selling more. See [trade.md](trade.md#short-selling)\n7. **Name the trading session.** Outside regular hours, only limit orders execute; an order tagged to the wrong session silently queues for the next open instead of filling. Check with `robinhood_get_market_hours` \u002F `getMarketHours()` — never infer the session from the local clock\n\n### BLOCKED Operations (never use)\n- Bulk cancel operations\n- Fund transfers (withdraw\u002Fdeposit)\n- Bank unlinking\n\n## Routing\n\n| User Intent | Domain File | Example Triggers |\n|---|---|---|\n| Auth \u002F login \u002F connect | [setup.md](setup.md) | \"setup robinhood\", \"connect to robinhood\", \"robinhood login\" |\n| Portfolio \u002F holdings \u002F positions | [portfolio.md](portfolio.md) | \"show my portfolio\", \"my holdings\", \"account summary\" |\n| Stock research \u002F analysis | [research.md](research.md) | \"research AAPL\", \"analyze TSLA\", \"due diligence on NVDA\" |\n| Buy \u002F sell \u002F short \u002F orders \u002F cancel | [trade.md](trade.md) | \"buy 10 shares of AAPL\", \"sell my TSLA\", \"short 10 SPY\", \"cancel my order\" |\n| Options \u002F calls \u002F puts \u002F chains | [options.md](options.md) | \"show AAPL options\", \"SPX calls\", \"0DTE options\", \"covered calls\" |\n| Watchlists \u002F lists \u002F \"add to my list\" | [watchlists.md](watchlists.md) | \"my watchlists\", \"add NVDA to my tech list\", \"remove TSLA from watchlist\" |\n| Scanners \u002F screeners \u002F saved screens | [reference.md](reference.md) | \"my scanners\", \"my saved screens\", \"what filters can I scan on\" |\n| Realized P&L \u002F gains \u002F \"how did my trades do\" | [reference.md](reference.md) | \"my realized gains\", \"P&L this year\", \"how did my trades do\" |\n| Tax lots \u002F cost basis per holding | [reference.md](reference.md) | \"tax lots for AAPL\", \"cost basis of my NVDA lots\", \"which lots are long-term\" |\n\nRead the corresponding domain file for detailed workflow instructions.\n\n## Authentication Prerequisite\nBefore any data-fetching or trading operation, verify the session actually works. `restoreSession()` only loads tokens from the store — it does **not** prove they are still valid, so probe with a real call:\n```bash\nbun -e '\nimport { getClient, AuthenticationError } from \"robinhood-for-agents\";\nconst rh = getClient();\ntry {\n  await rh.restoreSession();\n  await rh.getAccountProfile();          \u002F\u002F the probe — this is what proves the token works\n  console.log(\"logged_in\");\n} catch (e) {\n  console.log(e instanceof AuthenticationError ? `expired: ${e.name}` : `unknown: ${e}`);\n}\n'\n```\n- `logged_in` → proceed.\n- `expired` (`TokenExpiredError` \u002F `AuthenticationError`) → the tokens are dead and could not be refreshed. Follow [setup.md](setup.md) to re-authenticate.\n- `unknown` → a transient\u002Fnetwork failure. The session may well be fine — **do not** send the user through a browser re-login on this; retry once first.\n\n> **MCP mode:** call `robinhood_check_session` instead — it probes the API and returns `logged_in` \u002F `expired` \u002F `unknown` \u002F `not_authenticated`. Only `expired` and `not_authenticated` warrant `robinhood_browser_login`.\n\n## Client Methods\n\nThe client exposes 70+ async methods across auth, portfolio, research, options, orders, watchlists, scanners, P&L, and tax lots.\n\n- [client-api.md](client-api.md) — full method reference (signatures, options, examples) and the MCP↔client mapping table\n- [reference.md](reference.md) — MCP tool parameters (if using MCP mode instead of the client)\n\n## Important Notes\n- **Do NOT use `phoenix.robinhood.com`** — use `api.robinhood.com` endpoints only\n- Multi-account is first-class: always ask which account when multiple exist\n- Session tokens renew themselves: the client refreshes proactively (~24h before expiry) and again on a 401, so a session in regular use stays alive without a re-login. Access-token TTL varies (~6-8.5 days observed) — never quote a fixed number\n- Refresh tokens are **single-use**: every renewal issues a new one and instantly kills the old (and revokes the previous access token). Run one client at a time — MCP server *or* a `bun -e` script, not both; a second process gets poisoned. It self-heals by re-reading the token store, but there is no cross-process lock\n- Renewal only happens while the client is being used. A session left idle past the refresh-token lifetime lapses and needs a **new browser login** — see [setup.md](setup.md)\n","# robinhood-for-agents\n\nAI-native Robinhood trading interface. **No MCP server required** — this skill works standalone via the TypeScript client API and `bun`.\n\n## How to Use\n\nRun Robinhood operations by executing TypeScript code with `bun`. The `robinhood-for-agents` npm package provides a full client library — just import it and call methods:\n\n```bash\nbun -e '\nimport { getClient } from \"robinhood-for-agents\";\nconst rh = getClient();\nawait rh.restoreSession();\n\u002F\u002F call any method, print results as JSON\nconst holdings = await rh.buildHoldings();\nconsole.log(JSON.stringify(holdings, null, 2));\n'\n```\n\nSee [client-api.md](client-api.md) for all available methods and signatures.\n\n> **MCP users:** If you have the `robinhood-for-agents` (standard mode) or `robinhood-web` (web mode) MCP server configured, you may use MCP tools instead. See [reference.md](reference.md) for tool parameters. MCP is optional — the client API above does everything the web-mode tools do; only the standard-mode server (`robinhood-for-agents`) serves the standard-only tools. Pick **one** mode per session and stay in it: the web-mode MCP server and a `bun -e` script are two separate token-refreshing processes, and refresh tokens are single-use, so interleaving them can poison one of them. In MCP mode, `robinhood_check_session` is the session check — it probes the API rather than just reading the keychain.\n\n## CRITICAL SAFETY RULES\n1. **Always confirm before placing any order** — show order preview, get explicit \"yes\"\n2. **Show current price** before order confirmation so user knows the cost\n3. **Never place orders without user confirmation**\n4. **Fund transfers and bank operations are BLOCKED** — refuse these requests\n5. **Never place bulk cancel operations** — cancel orders one at a time\n6. **Never turn a \"sell\" into a short.** `sell` closes a long; `sell_short` opens a short with unlimited loss potential. Only short when the user asked to short, and label it **SHORT SELL** when confirming. A **negative** position quantity *is* a short — close it by **buying**, never by selling more. See [trade.md](trade.md#short-selling)\n7. **Name the trading session.** Outside regular hours, only limit orders execute; an order tagged to the wrong session silently queues for the next open instead of filling. Check with `robinhood_get_market_hours` \u002F `getMarketHours()` — never infer the session from the local clock\n\n### BLOCKED Operations (never use)\n- Bulk cancel operations\n- Fund transfers (withdraw\u002Fdeposit)\n- Bank unlinking\n\n## Routing\n\n| User Intent | Domain File | Example Triggers |\n|---|---|---|\n| Auth \u002F login \u002F connect | [setup.md](setup.md) | \"setup robinhood\", \"connect to robinhood\", \"robinhood login\" |\n| Portfolio \u002F holdings \u002F positions | [portfolio.md](portfolio.md) | \"show my portfolio\", \"my holdings\", \"account summary\" |\n| Stock research \u002F analysis | [research.md](research.md) | \"research AAPL\", \"analyze TSLA\", \"due diligence on NVDA\" |\n| Buy \u002F sell \u002F short \u002F orders \u002F cancel | [trade.md](trade.md) | \"buy 10 shares of AAPL\", \"sell my TSLA\", \"short 10 SPY\", \"cancel my order\" |\n| Options \u002F calls \u002F puts \u002F chains | [options.md](options.md) | \"show AAPL options\", \"SPX calls\", \"0DTE options\", \"covered calls\" |\n| Watchlists \u002F lists \u002F \"add to my list\" | [watchlists.md](watchlists.md) | \"my watchlists\", \"add NVDA to my tech list\", \"remove TSLA from watchlist\" |\n| Scanners \u002F screeners \u002F saved screens | [reference.md](reference.md) | \"my scanners\", \"my saved screens\", \"what filters can I scan on\" |\n| Realized P&L \u002F gains \u002F \"how did my trades do\" | [reference.md](reference.md) | \"my realized gains\", \"P&L this year\", \"how did my trades do\" |\n| Tax lots \u002F cost basis per holding | [reference.md](reference.md) | \"tax lots for AAPL\", \"cost basis of my NVDA lots\", \"which lots are long-term\" |\n\nRead the corresponding domain file for detailed workflow instructions.\n\n## Authentication Prerequisite\nBefore any data-fetching or trading operation, verify the session actually works. `restoreSession()` only loads tokens from the store — it does **not** prove they are still valid, so probe with a real call:\n```bash\nbun -e '\nimport { getClient, AuthenticationError } from \"robinhood-for-agents\";\nconst rh = getClient();\ntry {\n  await rh.restoreSession();\n  await rh.getAccountProfile();          \u002F\u002F the probe — this is what proves the token works\n  console.log(\"logged_in\");\n} catch (e) {\n  console.log(e instanceof AuthenticationError ? `expired: ${e.name}` : `unknown: ${e}`);\n}\n'\n```\n- `logged_in` → proceed.\n- `expired` (`TokenExpiredError` \u002F `AuthenticationError`) → the tokens are dead and could not be refreshed. Follow [setup.md](setup.md) to re-authenticate.\n- `unknown` → a transient\u002Fnetwork failure. The session may well be fine — **do not** send the user through a browser re-login on this; retry once first.\n\n> **MCP mode:** call `robinhood_check_session` instead — it probes the API and returns `logged_in` \u002F `expired` \u002F `unknown` \u002F `not_authenticated`. Only `expired` and `not_authenticated` warrant `robinhood_browser_login`.\n\n## Client Methods\n\nThe client exposes 70+ async methods across auth, portfolio, research, options, orders, watchlists, scanners, P&L, and tax lots.\n\n- [client-api.md](client-api.md) — full method reference (signatures, options, examples) and the MCP↔client mapping table\n- [reference.md](reference.md) — MCP tool parameters (if using MCP mode instead of the client)\n\n## Important Notes\n- **Do NOT use `phoenix.robinhood.com`** — use `api.robinhood.com` endpoints only\n- Multi-account is first-class: always ask which account when multiple exist\n- Session tokens renew themselves: the client refreshes proactively (~24h before expiry) and again on a 401, so a session in regular use stays alive without a re-login. Access-token TTL varies (~6-8.5 days observed) — never quote a fixed number\n- Refresh tokens are **single-use**: every renewal issues a new one and instantly kills the old (and revokes the previous access token). Run one client at a time — MCP server *or* a `bun -e` script, not both; a second process gets poisoned. It self-heals by re-reading the token store, but there is no cross-process lock\n- Renewal only happens while the client is being used. A session left idle past the refresh-token lifetime lapses and needs a **new browser login** — see [setup.md](setup.md)\n",{"name":5,"install":55,"homepage":59,"metadata":60,"requires":63,"description":7,"allowed-tools":66},[56],{"bins":57,"kind":58,"package":5},[5],"node","https:\u002F\u002Fgithub.com\u002Fkevin1chun\u002Frobinhood-for-agents",{"chrome":61,"credentials":62},"Google Chrome is required only for initial login (bunx robinhood-for-agents login) — playwright-core drives the system Chrome; there is no Brave\u002FChromium fallback or BROWSER_PATH override. Not needed for subsequent API calls.","OAuth tokens stored via TokenStore adapters: KeychainTokenStore (OS keychain, default) or EncryptedFileTokenStore (for Docker\u002Fheadless). restoreSession() loads tokens, injects Bearer auth directly, and registers both proactive renewal (a pre-request hook renews ~24h before expiry) and reactive refresh (on 401). Access-token lifetime varies (~6-8.5 days observed) — never assume a fixed number. Refresh tokens are single-use and rotate on every renewal, so only one client should drive a session at a time. Renewal happens only while the client is in use: a session left idle past the refresh-token lifetime lapses and needs a new browser login.",{"bins":64},[65],"bun","Bash(bun:*), Bash(bunx robinhood-for-agents:*), mcp__robinhood-for-agents__*, mcp__robinhood-web__*","main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fexchanges\u002Frobinhood-for-agents",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-12 02:28:42",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":88},[78,81,84],{"tool":79,"command":80},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill robinhood-for-agents",{"tool":82,"command":83},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill robinhood-for-agents",{"tool":85,"command":86},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill robinhood-for-agents","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002FSKILL.md",true,[90,96,100,104,108,112,116,120,124,128,132],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"client-api.md","REFERENCE","参考文档",32676,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Fclient-api.md",{"path":97,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":16},"LICENSE","许可证",1072,{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"options.md",3130,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Foptions.md",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"portfolio.md",2960,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Fportfolio.md",{"path":109,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":110,"sourceHtmlUrl":111},"reference.md",40357,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Freference.md",{"path":113,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":114,"sourceHtmlUrl":115},"research.md",2488,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Fresearch.md",{"path":117,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":118,"sourceHtmlUrl":119},"setup.md",6334,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Fsetup.md",{"path":121,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":122,"sourceHtmlUrl":123},"SOURCE.md",454,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002FSOURCE.md",{"path":125,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":126,"sourceHtmlUrl":127},"trade.md",11153,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Ftrade.md",{"path":129,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":130,"sourceHtmlUrl":131},"TRUST.auto.yaml",2223,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002FTRUST.auto.yaml",{"path":133,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":134,"sourceHtmlUrl":135},"watchlists.md",7402,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Frobinhood-for-agents\u002Fwatchlists.md",[137,164,185,203,216,226],{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":141,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":50},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,48,160,161,162,163],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","layout","screen","network","metamask",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":169,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":50},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[173,174,175,46,176,177,178,179,180,181,28,182,183,184],"mexc spot websocket","spot","websocket","workflows","public","listen","streams","depth","keys","api keys","maintenance","protobuf",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":189,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":50},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[193,174,194,195,196,197,198,182,28,181,199,200,201,177,202,176,46],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":207,"sourceHtmlUrl":208,"categories":209,"keywords":210,"publishedAt":50},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[211,212,175,213,214,183,28,215,180,179,177,176],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":217,"name":218,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":219,"sourceHtmlUrl":220,"categories":221,"keywords":222,"publishedAt":50},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[223,224,225],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":230,"sourceHtmlUrl":231,"categories":232,"keywords":233,"publishedAt":50},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[234,235,236,237,238,239,240,241,242,243,244],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","use","patch","code","share"]