[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EXBDFPZYCW0YWZKRKPYAMH":3,"skill-same:01M6EXBDFPZYCW0YWZKRKPYAMH":75},{"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":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":49,"repositoryHtmlUrl":50,"repositoryHomepageUrl":51,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6EXBDFPZYCW0YWZKRKPYAMH","asana-automation",null,"Automate Asana tasks via Rube MCP (Composio): tasks, projects, sections, teams, workspaces. Always search tools first for current schemas.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fasana-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37],"automation","asana","asana automation","MCP","tasks","teams","search","Tools","first","projects","automate","workspaces","composio","via","2026-11-10 10:12:30",false,"---\nname: asana-automation\ndescription: \"Automate Asana tasks via Rube MCP (Composio): tasks, projects, sections, teams, workspaces. Always search tools first for current schemas.\"\nrequires:\n  mcp: [rube]\n---\n\n# Asana Automation via Rube MCP\n\nAutomate Asana operations through Composio's Asana toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Asana connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `asana`\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 `asana`\n3. If connection is not ACTIVE, follow the returned auth link to complete Asana OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Manage Tasks\n\n**When to use**: User wants to create, search, list, or organize tasks\n\n**Tool sequence**:\n1. `ASANA_GET_MULTIPLE_WORKSPACES` - Get workspace ID [Prerequisite]\n2. `ASANA_SEARCH_TASKS_IN_WORKSPACE` - Search tasks [Optional]\n3. `ASANA_GET_TASKS_FROM_A_PROJECT` - List project tasks [Optional]\n4. `ASANA_CREATE_A_TASK` - Create a new task [Optional]\n5. `ASANA_GET_A_TASK` - Get task details [Optional]\n6. `ASANA_CREATE_SUBTASK` - Create a subtask [Optional]\n7. `ASANA_GET_TASK_SUBTASKS` - List subtasks [Optional]\n\n**Key parameters**:\n- `workspace`: Workspace GID (required for search\u002Fcreation)\n- `projects`: Array of project GIDs to add task to\n- `name`: Task name\n- `notes`: Task description\n- `assignee`: Assignee (user GID or email)\n- `due_on`: Due date (YYYY-MM-DD)\n\n**Pitfalls**:\n- Workspace GID is required for most operations; get it first\n- Task GIDs are returned as strings, not integers\n- Search is workspace-scoped, not project-scoped\n\n### 2. Manage Projects and Sections\n\n**When to use**: User wants to create projects, manage sections, or organize tasks\n\n**Tool sequence**:\n1. `ASANA_GET_WORKSPACE_PROJECTS` - List workspace projects [Optional]\n2. `ASANA_GET_A_PROJECT` - Get project details [Optional]\n3. `ASANA_CREATE_A_PROJECT` - Create a new project [Optional]\n4. `ASANA_GET_SECTIONS_IN_PROJECT` - List sections [Optional]\n5. `ASANA_CREATE_SECTION_IN_PROJECT` - Create a new section [Optional]\n6. `ASANA_ADD_TASK_TO_SECTION` - Move task to section [Optional]\n7. `ASANA_GET_TASKS_FROM_A_SECTION` - List tasks in section [Optional]\n\n**Key parameters**:\n- `project_gid`: Project GID\n- `name`: Project or section name\n- `workspace`: Workspace GID for creation\n- `task`: Task GID for section assignment\n- `section`: Section GID\n\n**Pitfalls**:\n- Projects belong to workspaces; workspace GID is needed for creation\n- Sections are ordered within a project\n- DUPLICATE_PROJECT creates a copy with optional task inclusion\n\n### 3. Manage Teams and Users\n\n**When to use**: User wants to list teams, team members, or workspace users\n\n**Tool sequence**:\n1. `ASANA_GET_TEAMS_IN_WORKSPACE` - List workspace teams [Optional]\n2. `ASANA_GET_USERS_FOR_TEAM` - List team members [Optional]\n3. `ASANA_GET_USERS_FOR_WORKSPACE` - List all workspace users [Optional]\n4. `ASANA_GET_CURRENT_USER` - Get authenticated user [Optional]\n5. `ASANA_GET_MULTIPLE_USERS` - Get multiple user details [Optional]\n\n**Key parameters**:\n- `workspace_gid`: Workspace GID\n- `team_gid`: Team GID\n\n**Pitfalls**:\n- Users are workspace-scoped\n- Team membership requires the team GID\n\n### 4. Parallel Operations\n\n**When to use**: User needs to perform bulk operations efficiently\n\n**Tool sequence**:\n1. `ASANA_SUBMIT_PARALLEL_REQUESTS` - Execute multiple API calls in parallel [Required]\n\n**Key parameters**:\n- `actions`: Array of action objects with method, path, and data\n\n**Pitfalls**:\n- Each action must be a valid Asana API call\n- Failed individual requests do not roll back successful ones\n\n## Common Patterns\n\n### ID Resolution\n\n**Workspace name -> GID**:\n```\n1. Call ASANA_GET_MULTIPLE_WORKSPACES\n2. Find workspace by name\n3. Extract gid field\n```\n\n**Project name -> GID**:\n```\n1. Call ASANA_GET_WORKSPACE_PROJECTS with workspace GID\n2. Find project by name\n3. Extract gid field\n```\n\n### Pagination\n\n- Asana uses cursor-based pagination with `offset` parameter\n- Check for `next_page` in response\n- Pass `offset` from `next_page.offset` for next request\n\n## Known Pitfalls\n\n**GID Format**:\n- All Asana IDs are strings (GIDs), not integers\n- GIDs are globally unique identifiers\n\n**Workspace Scoping**:\n- Most operations require a workspace context\n- Tasks, projects, and users are workspace-scoped\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List workspaces | ASANA_GET_MULTIPLE_WORKSPACES | (none) |\n| Search tasks | ASANA_SEARCH_TASKS_IN_WORKSPACE | workspace, text |\n| Create task | ASANA_CREATE_A_TASK | workspace, name, projects |\n| Get task | ASANA_GET_A_TASK | task_gid |\n| Create subtask | ASANA_CREATE_SUBTASK | parent, name |\n| List subtasks | ASANA_GET_TASK_SUBTASKS | task_gid |\n| Project tasks | ASANA_GET_TASKS_FROM_A_PROJECT | project_gid |\n| List projects | ASANA_GET_WORKSPACE_PROJECTS | workspace |\n| Create project | ASANA_CREATE_A_PROJECT | workspace, name |\n| Get project | ASANA_GET_A_PROJECT | project_gid |\n| Duplicate project | ASANA_DUPLICATE_PROJECT | project_gid |\n| List sections | ASANA_GET_SECTIONS_IN_PROJECT | project_gid |\n| Create section | ASANA_CREATE_SECTION_IN_PROJECT | project_gid, name |\n| Add to section | ASANA_ADD_TASK_TO_SECTION | section, task |\n| Section tasks | ASANA_GET_TASKS_FROM_A_SECTION | section_gid |\n| List teams | ASANA_GET_TEAMS_IN_WORKSPACE | workspace_gid |\n| Team members | ASANA_GET_USERS_FOR_TEAM | team_gid |\n| Workspace users | ASANA_GET_USERS_FOR_WORKSPACE | workspace_gid |\n| Current user | ASANA_GET_CURRENT_USER | (none) |\n| Parallel requests | ASANA_SUBMIT_PARALLEL_REQUESTS | actions |\n","# Asana Automation via Rube MCP\n\nAutomate Asana operations through Composio's Asana toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Asana connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `asana`\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 `asana`\n3. If connection is not ACTIVE, follow the returned auth link to complete Asana OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Manage Tasks\n\n**When to use**: User wants to create, search, list, or organize tasks\n\n**Tool sequence**:\n1. `ASANA_GET_MULTIPLE_WORKSPACES` - Get workspace ID [Prerequisite]\n2. `ASANA_SEARCH_TASKS_IN_WORKSPACE` - Search tasks [Optional]\n3. `ASANA_GET_TASKS_FROM_A_PROJECT` - List project tasks [Optional]\n4. `ASANA_CREATE_A_TASK` - Create a new task [Optional]\n5. `ASANA_GET_A_TASK` - Get task details [Optional]\n6. `ASANA_CREATE_SUBTASK` - Create a subtask [Optional]\n7. `ASANA_GET_TASK_SUBTASKS` - List subtasks [Optional]\n\n**Key parameters**:\n- `workspace`: Workspace GID (required for search\u002Fcreation)\n- `projects`: Array of project GIDs to add task to\n- `name`: Task name\n- `notes`: Task description\n- `assignee`: Assignee (user GID or email)\n- `due_on`: Due date (YYYY-MM-DD)\n\n**Pitfalls**:\n- Workspace GID is required for most operations; get it first\n- Task GIDs are returned as strings, not integers\n- Search is workspace-scoped, not project-scoped\n\n### 2. Manage Projects and Sections\n\n**When to use**: User wants to create projects, manage sections, or organize tasks\n\n**Tool sequence**:\n1. `ASANA_GET_WORKSPACE_PROJECTS` - List workspace projects [Optional]\n2. `ASANA_GET_A_PROJECT` - Get project details [Optional]\n3. `ASANA_CREATE_A_PROJECT` - Create a new project [Optional]\n4. `ASANA_GET_SECTIONS_IN_PROJECT` - List sections [Optional]\n5. `ASANA_CREATE_SECTION_IN_PROJECT` - Create a new section [Optional]\n6. `ASANA_ADD_TASK_TO_SECTION` - Move task to section [Optional]\n7. `ASANA_GET_TASKS_FROM_A_SECTION` - List tasks in section [Optional]\n\n**Key parameters**:\n- `project_gid`: Project GID\n- `name`: Project or section name\n- `workspace`: Workspace GID for creation\n- `task`: Task GID for section assignment\n- `section`: Section GID\n\n**Pitfalls**:\n- Projects belong to workspaces; workspace GID is needed for creation\n- Sections are ordered within a project\n- DUPLICATE_PROJECT creates a copy with optional task inclusion\n\n### 3. Manage Teams and Users\n\n**When to use**: User wants to list teams, team members, or workspace users\n\n**Tool sequence**:\n1. `ASANA_GET_TEAMS_IN_WORKSPACE` - List workspace teams [Optional]\n2. `ASANA_GET_USERS_FOR_TEAM` - List team members [Optional]\n3. `ASANA_GET_USERS_FOR_WORKSPACE` - List all workspace users [Optional]\n4. `ASANA_GET_CURRENT_USER` - Get authenticated user [Optional]\n5. `ASANA_GET_MULTIPLE_USERS` - Get multiple user details [Optional]\n\n**Key parameters**:\n- `workspace_gid`: Workspace GID\n- `team_gid`: Team GID\n\n**Pitfalls**:\n- Users are workspace-scoped\n- Team membership requires the team GID\n\n### 4. Parallel Operations\n\n**When to use**: User needs to perform bulk operations efficiently\n\n**Tool sequence**:\n1. `ASANA_SUBMIT_PARALLEL_REQUESTS` - Execute multiple API calls in parallel [Required]\n\n**Key parameters**:\n- `actions`: Array of action objects with method, path, and data\n\n**Pitfalls**:\n- Each action must be a valid Asana API call\n- Failed individual requests do not roll back successful ones\n\n## Common Patterns\n\n### ID Resolution\n\n**Workspace name -> GID**:\n```\n1. Call ASANA_GET_MULTIPLE_WORKSPACES\n2. Find workspace by name\n3. Extract gid field\n```\n\n**Project name -> GID**:\n```\n1. Call ASANA_GET_WORKSPACE_PROJECTS with workspace GID\n2. Find project by name\n3. Extract gid field\n```\n\n### Pagination\n\n- Asana uses cursor-based pagination with `offset` parameter\n- Check for `next_page` in response\n- Pass `offset` from `next_page.offset` for next request\n\n## Known Pitfalls\n\n**GID Format**:\n- All Asana IDs are strings (GIDs), not integers\n- GIDs are globally unique identifiers\n\n**Workspace Scoping**:\n- Most operations require a workspace context\n- Tasks, projects, and users are workspace-scoped\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List workspaces | ASANA_GET_MULTIPLE_WORKSPACES | (none) |\n| Search tasks | ASANA_SEARCH_TASKS_IN_WORKSPACE | workspace, text |\n| Create task | ASANA_CREATE_A_TASK | workspace, name, projects |\n| Get task | ASANA_GET_A_TASK | task_gid |\n| Create subtask | ASANA_CREATE_SUBTASK | parent, name |\n| List subtasks | ASANA_GET_TASK_SUBTASKS | task_gid |\n| Project tasks | ASANA_GET_TASKS_FROM_A_PROJECT | project_gid |\n| List projects | ASANA_GET_WORKSPACE_PROJECTS | workspace |\n| Create project | ASANA_CREATE_A_PROJECT | workspace, name |\n| Get project | ASANA_GET_A_PROJECT | project_gid |\n| Duplicate project | ASANA_DUPLICATE_PROJECT | project_gid |\n| List sections | ASANA_GET_SECTIONS_IN_PROJECT | project_gid |\n| Create section | ASANA_CREATE_SECTION_IN_PROJECT | project_gid, name |\n| Add to section | ASANA_ADD_TASK_TO_SECTION | section, task |\n| Section tasks | ASANA_GET_TASKS_FROM_A_SECTION | section_gid |\n| List teams | ASANA_GET_TEAMS_IN_WORKSPACE | workspace_gid |\n| Team members | ASANA_GET_USERS_FOR_TEAM | team_gid |\n| Workspace users | ASANA_GET_USERS_FOR_WORKSPACE | workspace_gid |\n| Current user | ASANA_GET_CURRENT_USER | (none) |\n| Parallel requests | ASANA_SUBMIT_PARALLEL_REQUESTS | actions |\n",{"name":5,"requires":43,"description":7},{"mcp":44},[45],"rube","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fasana-automation",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill asana-automation",{"tool":61,"command":62},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill asana-automation",{"tool":64,"command":65},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill asana-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fasana-automation\u002FSKILL.md",true,[69],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"skill-report.json","REFERENCE","参考文档",9919,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Fasana-automation\u002Fskill-report.json",[76,86,95,104,110,117],{"skillNo":77,"name":78,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":82,"publishedAt":38},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[81],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[83,84,85],"model","model hierarchy","model hierarchy skill",{"skillNo":87,"name":88,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":92,"publishedAt":38},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[91],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[27,93,94],"zoom","zoom mcp",{"skillNo":96,"name":97,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":38},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[101,102,103,93],"sdk","zoom apps sdk","apps",{"skillNo":105,"name":106,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":38},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[106],{"skillNo":111,"name":112,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":38},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[115],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[112],{"skillNo":118,"name":119,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":38},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[119]]