[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RVX7M1VSYQAMS2Y778FPG2":3,"skill-same:01M6RVX7M1VSYQAMS2Y778FPG2":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":13,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6RVX7M1VSYQAMS2Y778FPG2","prisma-patterns",null,"Prisma ORM patterns for TypeScript backends — schema design, query optimization, transactions, pagination, and critical traps like updateMany returning count not records, $transaction timeouts, migrate dev resetting the DB, @updatedAt skipped on bulk writes, and serverless connection exhaustion.","sakamoto-family-smile\u002Fagent_monorepo","sakamoto-family-smile","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132812403?v=4","01M6RTAT3H8PMWX5SJ65KP3VYF","01M6RTAV321WB5RAHCWTZMX5CV",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fprisma-patterns\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"prisma patterns","patterns","prisma","query","count","for","prisma orm","bulk","records","critical","db","design","schema design","query optimization","orm","migrate","transactions","Optimization","dev","typescript","2026-11-10 10:12:30",false,"---\nname: miro-automation\ndescription: \"Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.\"\nrequires:\n  mcp: [rube]\n---\n\n# Miro Automation via Rube MCP\n\nAutomate Miro whiteboard operations through Composio's Miro toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Miro connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n3. If connection is not ACTIVE, follow the returned auth link to complete Miro OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Browse Boards\n\n**When to use**: User wants to find boards or get board details\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - List all accessible boards [Required]\n2. `MIRO_GET_BOARD` - Get detailed info for a specific board [Optional]\n\n**Key parameters**:\n- `query`: Search term to filter boards by name\n- `sort`: Sort by 'default', 'last_modified', 'last_opened', 'last_created', 'alphabetically'\n- `limit`: Number of results per page (max 50)\n- `offset`: Pagination offset\n- `board_id`: Specific board ID for detailed retrieval\n\n**Pitfalls**:\n- Pagination uses offset-based approach, not cursor-based\n- Maximum 50 boards per page; iterate with offset for full list\n- Board IDs are long alphanumeric strings; always resolve by search first\n\n### 2. Create Boards and Items\n\n**When to use**: User wants to create a new board or add items to an existing board\n\n**Tool sequence**:\n1. `MIRO_CREATE_BOARD` - Create a new empty board [Optional]\n2. `MIRO_CREATE_STICKY_NOTE_ITEM` - Add sticky notes to a board [Optional]\n3. `MIRO_CREATE_FRAME_ITEM2` - Add frames to organize content [Optional]\n4. `MIRO_CREATE_ITEMS_IN_BULK` - Add multiple items at once [Optional]\n\n**Key parameters**:\n- `name` \u002F `description`: Board name and description (for CREATE_BOARD)\n- `board_id`: Target board ID (required for all item creation)\n- `data`: Content object with `content` field for sticky note text\n- `style`: Styling object with `fillColor` for sticky note color\n- `position`: Object with `x` and `y` coordinates\n- `geometry`: Object with `width` and `height`\n\n**Pitfalls**:\n- `board_id` is required for ALL item operations; resolve via GET_BOARDS2 first\n- Sticky note colors use hex codes (e.g., '#FF0000') in the `fillColor` field\n- Position coordinates use the board's coordinate system (origin at center)\n- BULK create has a maximum items-per-request limit; check current schema\n- Frame items require `geometry` with both width and height\n\n### 3. Browse and Manage Board Items\n\n**When to use**: User wants to view, find, or organize items on a board\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - List all items on a board [Required]\n2. `MIRO_GET_CONNECTORS2` - List connections between items [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID (required)\n- `type`: Filter by item type ('sticky_note', 'shape', 'text', 'frame', 'image', 'card')\n- `limit`: Number of items per page\n- `cursor`: Pagination cursor from previous response\n\n**Pitfalls**:\n- Results are paginated; follow `cursor` until absent for complete item list\n- Item types must match Miro's predefined types exactly\n- Large boards may have thousands of items; use type filtering to narrow results\n- Connectors are separate from items; use GET_CONNECTORS2 for relationship data\n\n### 4. Share and Collaborate on Boards\n\n**When to use**: User wants to share a board with team members or manage access\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - Find the board to share [Prerequisite]\n2. `MIRO_SHARE_BOARD` - Share the board with users [Required]\n3. `MIRO_GET_BOARD_MEMBERS` - Verify current board members [Optional]\n\n**Key parameters**:\n- `board_id`: Board to share (required)\n- `emails`: Array of email addresses to invite\n- `role`: Access level ('viewer', 'commenter', 'editor')\n- `message`: Optional invitation message\n\n**Pitfalls**:\n- Email addresses must be valid; invalid emails cause the entire request to fail\n- Role must be one of the predefined values; case-sensitive\n- Sharing with users outside the organization may require admin approval\n- GET_BOARD_MEMBERS returns all members including the owner\n\n### 5. Create Visual Connections\n\n**When to use**: User wants to connect items on a board with lines or arrows\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - Find items to connect [Prerequisite]\n2. `MIRO_GET_CONNECTORS2` - View existing connections [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID\n- `startItem`: Object with `id` of the source item\n- `endItem`: Object with `id` of the target item\n- `style`: Connector style (line type, color, arrows)\n\n**Pitfalls**:\n- Both start and end items must exist on the same board\n- Item IDs are required for connections; resolve via GET_BOARD_ITEMS first\n- Connector styles vary; check available options in schema\n- Self-referencing connections (same start and end) are not allowed\n\n## Common Patterns\n\n### ID Resolution\n\n**Board name -> Board ID**:\n```\n1. Call MIRO_GET_BOARDS2 with query=board_name\n2. Find board by name in results\n3. Extract id field\n```\n\n**Item lookup on board**:\n```\n1. Call MIRO_GET_BOARD_ITEMS with board_id and optional type filter\n2. Find item by content or position\n3. Extract item id for further operations\n```\n\n### Pagination\n\n- Boards: Use `offset` and `limit` (offset-based)\n- Board items: Use `cursor` and `limit` (cursor-based)\n- Continue until no more results or cursor is absent\n- Default page sizes vary by endpoint\n\n### Coordinate System\n\n- Board origin (0,0) is at the center\n- Positive X is right, positive Y is down\n- Items positioned by their center point\n- Use `position: {x: 0, y: 0}` for center of board\n- Frames define bounded areas; items inside inherit frame position\n\n## Known Pitfalls\n\n**Board IDs**:\n- Board IDs are required for virtually all operations\n- Always resolve board names to IDs via GET_BOARDS2 first\n- Do not hardcode board IDs; they vary by account\n\n**Item Creation**:\n- Each item type has different required fields\n- Sticky notes need `data.content` for text\n- Frames need `geometry.width` and `geometry.height`\n- Position defaults to (0,0) if not specified; items may overlap\n\n**Rate Limits**:\n- Miro API has rate limits per token\n- Bulk operations preferred over individual item creation\n- Use MIRO_CREATE_ITEMS_IN_BULK for multiple items\n\n**Response Parsing**:\n- Response data may be nested under `data` key\n- Item types determine which fields are present in response\n- Parse defensively; optional fields may be absent\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List boards | MIRO_GET_BOARDS2 | query, sort, limit, offset |\n| Get board details | MIRO_GET_BOARD | board_id |\n| Create board | MIRO_CREATE_BOARD | name, description |\n| Add sticky note | MIRO_CREATE_STICKY_NOTE_ITEM | board_id, data, style, position |\n| Add frame | MIRO_CREATE_FRAME_ITEM2 | board_id, data, geometry, position |\n| Bulk add items | MIRO_CREATE_ITEMS_IN_BULK | board_id, items |\n| Get board items | MIRO_GET_BOARD_ITEMS | board_id, type, cursor |\n| Share board | MIRO_SHARE_BOARD | board_id, emails, role |\n| Get members | MIRO_GET_BOARD_MEMBERS | board_id |\n| Get connectors | MIRO_GET_CONNECTORS2 | board_id |\n","# Miro Automation via Rube MCP\n\nAutomate Miro whiteboard operations through Composio's Miro toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Miro connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `miro`\n3. If connection is not ACTIVE, follow the returned auth link to complete Miro OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. List and Browse Boards\n\n**When to use**: User wants to find boards or get board details\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - List all accessible boards [Required]\n2. `MIRO_GET_BOARD` - Get detailed info for a specific board [Optional]\n\n**Key parameters**:\n- `query`: Search term to filter boards by name\n- `sort`: Sort by 'default', 'last_modified', 'last_opened', 'last_created', 'alphabetically'\n- `limit`: Number of results per page (max 50)\n- `offset`: Pagination offset\n- `board_id`: Specific board ID for detailed retrieval\n\n**Pitfalls**:\n- Pagination uses offset-based approach, not cursor-based\n- Maximum 50 boards per page; iterate with offset for full list\n- Board IDs are long alphanumeric strings; always resolve by search first\n\n### 2. Create Boards and Items\n\n**When to use**: User wants to create a new board or add items to an existing board\n\n**Tool sequence**:\n1. `MIRO_CREATE_BOARD` - Create a new empty board [Optional]\n2. `MIRO_CREATE_STICKY_NOTE_ITEM` - Add sticky notes to a board [Optional]\n3. `MIRO_CREATE_FRAME_ITEM2` - Add frames to organize content [Optional]\n4. `MIRO_CREATE_ITEMS_IN_BULK` - Add multiple items at once [Optional]\n\n**Key parameters**:\n- `name` \u002F `description`: Board name and description (for CREATE_BOARD)\n- `board_id`: Target board ID (required for all item creation)\n- `data`: Content object with `content` field for sticky note text\n- `style`: Styling object with `fillColor` for sticky note color\n- `position`: Object with `x` and `y` coordinates\n- `geometry`: Object with `width` and `height`\n\n**Pitfalls**:\n- `board_id` is required for ALL item operations; resolve via GET_BOARDS2 first\n- Sticky note colors use hex codes (e.g., '#FF0000') in the `fillColor` field\n- Position coordinates use the board's coordinate system (origin at center)\n- BULK create has a maximum items-per-request limit; check current schema\n- Frame items require `geometry` with both width and height\n\n### 3. Browse and Manage Board Items\n\n**When to use**: User wants to view, find, or organize items on a board\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - List all items on a board [Required]\n2. `MIRO_GET_CONNECTORS2` - List connections between items [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID (required)\n- `type`: Filter by item type ('sticky_note', 'shape', 'text', 'frame', 'image', 'card')\n- `limit`: Number of items per page\n- `cursor`: Pagination cursor from previous response\n\n**Pitfalls**:\n- Results are paginated; follow `cursor` until absent for complete item list\n- Item types must match Miro's predefined types exactly\n- Large boards may have thousands of items; use type filtering to narrow results\n- Connectors are separate from items; use GET_CONNECTORS2 for relationship data\n\n### 4. Share and Collaborate on Boards\n\n**When to use**: User wants to share a board with team members or manage access\n\n**Tool sequence**:\n1. `MIRO_GET_BOARDS2` - Find the board to share [Prerequisite]\n2. `MIRO_SHARE_BOARD` - Share the board with users [Required]\n3. `MIRO_GET_BOARD_MEMBERS` - Verify current board members [Optional]\n\n**Key parameters**:\n- `board_id`: Board to share (required)\n- `emails`: Array of email addresses to invite\n- `role`: Access level ('viewer', 'commenter', 'editor')\n- `message`: Optional invitation message\n\n**Pitfalls**:\n- Email addresses must be valid; invalid emails cause the entire request to fail\n- Role must be one of the predefined values; case-sensitive\n- Sharing with users outside the organization may require admin approval\n- GET_BOARD_MEMBERS returns all members including the owner\n\n### 5. Create Visual Connections\n\n**When to use**: User wants to connect items on a board with lines or arrows\n\n**Tool sequence**:\n1. `MIRO_GET_BOARD_ITEMS` - Find items to connect [Prerequisite]\n2. `MIRO_GET_CONNECTORS2` - View existing connections [Optional]\n\n**Key parameters**:\n- `board_id`: Target board ID\n- `startItem`: Object with `id` of the source item\n- `endItem`: Object with `id` of the target item\n- `style`: Connector style (line type, color, arrows)\n\n**Pitfalls**:\n- Both start and end items must exist on the same board\n- Item IDs are required for connections; resolve via GET_BOARD_ITEMS first\n- Connector styles vary; check available options in schema\n- Self-referencing connections (same start and end) are not allowed\n\n## Common Patterns\n\n### ID Resolution\n\n**Board name -> Board ID**:\n```\n1. Call MIRO_GET_BOARDS2 with query=board_name\n2. Find board by name in results\n3. Extract id field\n```\n\n**Item lookup on board**:\n```\n1. Call MIRO_GET_BOARD_ITEMS with board_id and optional type filter\n2. Find item by content or position\n3. Extract item id for further operations\n```\n\n### Pagination\n\n- Boards: Use `offset` and `limit` (offset-based)\n- Board items: Use `cursor` and `limit` (cursor-based)\n- Continue until no more results or cursor is absent\n- Default page sizes vary by endpoint\n\n### Coordinate System\n\n- Board origin (0,0) is at the center\n- Positive X is right, positive Y is down\n- Items positioned by their center point\n- Use `position: {x: 0, y: 0}` for center of board\n- Frames define bounded areas; items inside inherit frame position\n\n## Known Pitfalls\n\n**Board IDs**:\n- Board IDs are required for virtually all operations\n- Always resolve board names to IDs via GET_BOARDS2 first\n- Do not hardcode board IDs; they vary by account\n\n**Item Creation**:\n- Each item type has different required fields\n- Sticky notes need `data.content` for text\n- Frames need `geometry.width` and `geometry.height`\n- Position defaults to (0,0) if not specified; items may overlap\n\n**Rate Limits**:\n- Miro API has rate limits per token\n- Bulk operations preferred over individual item creation\n- Use MIRO_CREATE_ITEMS_IN_BULK for multiple items\n\n**Response Parsing**:\n- Response data may be nested under `data` key\n- Item types determine which fields are present in response\n- Parse defensively; optional fields may be absent\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List boards | MIRO_GET_BOARDS2 | query, sort, limit, offset |\n| Get board details | MIRO_GET_BOARD | board_id |\n| Create board | MIRO_CREATE_BOARD | name, description |\n| Add sticky note | MIRO_CREATE_STICKY_NOTE_ITEM | board_id, data, style, position |\n| Add frame | MIRO_CREATE_FRAME_ITEM2 | board_id, data, geometry, position |\n| Bulk add items | MIRO_CREATE_ITEMS_IN_BULK | board_id, items |\n| Get board items | MIRO_GET_BOARD_ITEMS | board_id, type, cursor |\n| Share board | MIRO_SHARE_BOARD | board_id, emails, role |\n| Get members | MIRO_GET_BOARD_MEMBERS | board_id |\n| Get connectors | MIRO_GET_CONNECTORS2 | board_id |\n",{"name":43,"requires":44,"description":47},"miro-automation",{"mcp":45},[46],"rube","Automate Miro tasks via Rube MCP (Composio): boards, items, sticky notes, frames, sharing, connectors. Always search tools first for current schemas.","main","fbf4d3f6fb9300cbe74e1bea7d4e177911f3499b",".claude\u002Fskills\u002Fecc\u002Fprisma-patterns","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile","2026-11-08 20:29:14",{"source":8,"skillName":43,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add sakamoto-family-smile\u002Fagent_monorepo --skill miro-automation",{"tool":60,"command":61},"bunx","bunx skills add sakamoto-family-smile\u002Fagent_monorepo --skill miro-automation",{"tool":63,"command":64},"pnpm","pnpm dlx skills add sakamoto-family-smile\u002Fagent_monorepo --skill miro-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fprisma-patterns\u002FSKILL.md",true,[],[69,103,111,131,154,182],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":83,"publishedAt":38},"01M6RW50THEFSKK42YNR8XFZA1","remotion-video-creation","Best practices for Remotion - Video creation in React. 29 domain-specific rules covering 3D, animations, audio, captions, charts, transitions, and more.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fremotion-video-creation\u002FSKILL.md",[75,80],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":81,"categoryName":82,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000016","图像与多媒体",[84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,23],"Video","remotion video","remotion video creation","creation","Remotion","Charts","Captions","Audio","3D","Composition","Animation","best practices","more","animations","domain-specific","domain","three","Rules","Lottie",{"skillNo":104,"name":105,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":38},"01M6VCJ23NPECPSZJKGY691F75","hotcook-recipes","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fhotcook-agent\u002Fdata\u002Fskills\u002Fhotcook-recipes\u002FSKILL.md",[],[109,110],"hotcook recipes","recipes",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":125,"publishedAt":38},"01M6VCHHE00X5XHSDRD1KH1BW2","code-helper","Code review and assistance skill","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-2\u002Fskills\u002Fcode-helper\u002Fskill.md",[117,120],{"categoryNo":118,"categoryName":119,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[126,127,128,129,130],"code helper","helper","code","code review","review",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":143,"publishedAt":38},"01M6VCH3Q31A20H6SQ1H0J7JB2","research-assistant","Web research assistant skill using Brave Search MCP","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002Fagent-system-1\u002Fskills\u002Fresearch-assistant\u002Fskill.md",[137,140],{"categoryNo":138,"categoryName":139,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":141,"categoryName":142,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000023","Skill与智能体开发",[144,145,146,147,148,149,150,151,152,153],"research assistant","research","assistant","MCP","web","search","brave search","web research","brave","web research assistant",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":164,"publishedAt":38},"01M6VCGZZGPNVJSCZ1JTMNZAHY","x-api","X\u002FTwitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fx-api\u002FSKILL.md",[160,163],{"categoryNo":161,"categoryName":162,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":121,"categoryName":122,"taxonomyType":123,"taxonomyTypeDesc":124},[165,166,167,168,169,170,23,171,172,173,174,175,19,176,177,178,179,180,149,181],"x api","api","with","when","limits","rate","threads","reading","native","posting","platform","api integration","twitter","use","auth","analytics","OAuth",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":38},"01M6VCGVX6DGB1FKTA53QBBCQB","workspace-surface-audit","Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.","https:\u002F\u002Fgithub.com\u002Fsakamoto-family-smile\u002Fagent_monorepo\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fecc\u002Fworkspace-surface-audit\u002FSKILL.md",[188],{"categoryNo":141,"categoryName":142,"taxonomyType":78,"taxonomyTypeDesc":79},[190,191,192,193,147,194,195,128,196,197,198,199,178,200,201,202,203,173,204,168],"workspace surface audit","workspace","audit","hooks","workflows","connectors","capabilities","harness","repo","environment","up","harness setup","active","env","value"]