[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GDV5Q4CVMVCJA0RAPGACTP":3,"skill-same:01M6GDV5Q4CVMVCJA0RAPGACTP":70},{"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":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":69},"01M6GDV5Q4CVMVCJA0RAPGACTP","setup",null,"Set up the Rootly plugin. Verifies MCP server connection via OAuth2 or API token and guides through configuration. Run this after installing the plugin.","Rootly-AI-Labs\u002Frootly-claude-plugin","Rootly-AI-Labs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F199156715?v=4","01M6GDSNB03JH301SNQ63Q4VNG","Rootly AI Labs","01M6GDSNF81P4GSZ0FN3SR8787",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"api","true","connection","guides","via","token","configuration","up","Bash","MCP","oauth2","SET","server","run","plugin","mcp server","2026-11-10 10:12:30",false,"---\nname: setup\ndescription: Set up the Rootly plugin. Verifies MCP server connection via OAuth2 or API token and guides through configuration. Run this after installing the plugin.\ndisable-model-invocation: true\nallowed-tools:\n  - Bash\n  - mcp__rootly__*\n---\n\n# Rootly Plugin Setup\n\nYou are running the first-time setup for the Rootly Claude plugin. Follow these steps in order:\n\n## Step 1: Verify MCP Connection\n\nFirst, test the MCP server connection by calling `mcp__rootly__get_server_version`.\n\n- **Succeeds**: The MCP server is reachable. Continue to Step 2.\n- **Fails with 401 \u002F OAuth prompt**: Claude should automatically start the OAuth2 flow -- a browser window will open for you to log in to Rootly and grant access. Once authorized, retry `mcp__rootly__get_server_version`.\n- **Fails with other error**: MCP server connection issue. Check network connectivity to `https:\u002F\u002Fmcp.rootly.com`.\n\n## Step 2: Verify Authentication\n\nCall `mcp__rootly__getCurrentUser` to confirm your identity.\n\n- **Succeeds**: Authentication is working. Report the authenticated user and team, then continue to Step 3.\n- **Fails**: Authentication issue. Provide troubleshooting:\n\n> **Authentication Troubleshooting**\n>\n> This plugin uses **OAuth2** by default -- Claude handles the login flow automatically when it connects to the MCP server. No API token is needed for MCP commands.\n>\n> If OAuth2 is not working:\n> 1. Ensure your Rootly organization has OAuth2 enabled\n> 2. Try disconnecting and reconnecting the MCP server: `\u002Fmcp` > find Rootly > disconnect > reconnect\n> 3. Check that your browser can reach `https:\u002F\u002Frootly.com\u002Foauth\u002Fauthorize`\n>\n> **Fallback: API Token (for hook scripts or environments without browser access)**\n>\n> Hook scripts (active-incident warnings on commit\u002Fpush) still need an API token:\n> 1. Go to your Rootly dashboard: **Settings > API Keys**\n> 2. Create a new API key\n> 3. Provide the token through the plugin's userConfig prompt, or `export ROOTLY_API_TOKEN=\"...\"`\n>\n> API tokens are optional for MCP commands -- OAuth2 is the recommended auth method.\n\nThen stop here -- no further steps possible without working authentication.\n\n## Step 3: Service Mapping Configuration\n\nCheck if `.claude\u002Frootly-config.json` exists in the current project directory.\n\n**If the file does NOT exist**, offer to create it:\n\n1. Ask the user which Rootly service(s) correspond to this repository\n2. Ask which team owns this service (optional)\n3. Create `.claude\u002Frootly-config.json` with the format:\n   ```json\n   {\n     \"services\": [\"service-name-1\", \"service-name-2\"],\n     \"team\": \"team-name\"\n   }\n   ```\n\n**If the file exists**, read and display its current configuration.\n\n## Step 4: Show Quick-Start Guide\n\nOnce setup is complete, display:\n\n> **Rootly plugin is ready!**\n>\n> **Authentication**: OAuth2 (logged in as {user name})\n>\n> | Command | Description |\n> |---------|-------------|\n> | `\u002Frootly:deploy-check` | Check deployment safety before pushing |\n> | `\u002Frootly:respond [incident-id]` | Investigate and respond to an incident |\n> | `\u002Frootly:oncall` | View on-call dashboard |\n> | `\u002Frootly:retro [incident-id]` | Generate post-incident retrospective |\n> | `\u002Frootly:status` | Service health overview |\n> | `\u002Frootly:ask [question]` | Ask questions about your incident data |\n> | `\u002Frootly:brief [incident-id]` | Generate stakeholder brief for executives |\n> | `\u002Frootly:handoff [incident-id]` | Prepare incident or on-call handoff docs |\n>\n> Hooks are active:\n> - **Session start**: Connection validation (already ran)\n> - **Pre-commit\u002Fpush**: Active critical incident warnings (requires API token in plugin config)\n","# Rootly Plugin Setup\n\nYou are running the first-time setup for the Rootly Claude plugin. Follow these steps in order:\n\n## Step 1: Verify MCP Connection\n\nFirst, test the MCP server connection by calling `mcp__rootly__get_server_version`.\n\n- **Succeeds**: The MCP server is reachable. Continue to Step 2.\n- **Fails with 401 \u002F OAuth prompt**: Claude should automatically start the OAuth2 flow -- a browser window will open for you to log in to Rootly and grant access. Once authorized, retry `mcp__rootly__get_server_version`.\n- **Fails with other error**: MCP server connection issue. Check network connectivity to `https:\u002F\u002Fmcp.rootly.com`.\n\n## Step 2: Verify Authentication\n\nCall `mcp__rootly__getCurrentUser` to confirm your identity.\n\n- **Succeeds**: Authentication is working. Report the authenticated user and team, then continue to Step 3.\n- **Fails**: Authentication issue. Provide troubleshooting:\n\n> **Authentication Troubleshooting**\n>\n> This plugin uses **OAuth2** by default -- Claude handles the login flow automatically when it connects to the MCP server. No API token is needed for MCP commands.\n>\n> If OAuth2 is not working:\n> 1. Ensure your Rootly organization has OAuth2 enabled\n> 2. Try disconnecting and reconnecting the MCP server: `\u002Fmcp` > find Rootly > disconnect > reconnect\n> 3. Check that your browser can reach `https:\u002F\u002Frootly.com\u002Foauth\u002Fauthorize`\n>\n> **Fallback: API Token (for hook scripts or environments without browser access)**\n>\n> Hook scripts (active-incident warnings on commit\u002Fpush) still need an API token:\n> 1. Go to your Rootly dashboard: **Settings > API Keys**\n> 2. Create a new API key\n> 3. Provide the token through the plugin's userConfig prompt, or `export ROOTLY_API_TOKEN=\"...\"`\n>\n> API tokens are optional for MCP commands -- OAuth2 is the recommended auth method.\n\nThen stop here -- no further steps possible without working authentication.\n\n## Step 3: Service Mapping Configuration\n\nCheck if `.claude\u002Frootly-config.json` exists in the current project directory.\n\n**If the file does NOT exist**, offer to create it:\n\n1. Ask the user which Rootly service(s) correspond to this repository\n2. Ask which team owns this service (optional)\n3. Create `.claude\u002Frootly-config.json` with the format:\n   ```json\n   {\n     \"services\": [\"service-name-1\", \"service-name-2\"],\n     \"team\": \"team-name\"\n   }\n   ```\n\n**If the file exists**, read and display its current configuration.\n\n## Step 4: Show Quick-Start Guide\n\nOnce setup is complete, display:\n\n> **Rootly plugin is ready!**\n>\n> **Authentication**: OAuth2 (logged in as {user name})\n>\n> | Command | Description |\n> |---------|-------------|\n> | `\u002Frootly:deploy-check` | Check deployment safety before pushing |\n> | `\u002Frootly:respond [incident-id]` | Investigate and respond to an incident |\n> | `\u002Frootly:oncall` | View on-call dashboard |\n> | `\u002Frootly:retro [incident-id]` | Generate post-incident retrospective |\n> | `\u002Frootly:status` | Service health overview |\n> | `\u002Frootly:ask [question]` | Ask questions about your incident data |\n> | `\u002Frootly:brief [incident-id]` | Generate stakeholder brief for executives |\n> | `\u002Frootly:handoff [incident-id]` | Prepare incident or on-call handoff docs |\n>\n> Hooks are active:\n> - **Session start**: Connection validation (already ran)\n> - **Pre-commit\u002Fpush**: Active critical incident warnings (requires API token in plugin config)\n",{"name":5,"description":7,"allowed-tools":45,"disable-model-invocation":47},[32,46],"mcp__rootly__*",true,"main","65832aa6ff7a7b39c6bd64899a7a64646e3948ed","skills\u002Fsetup",0,"https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs","https:\u002F\u002Frootly.com\u002Fai-labs","Pushing the boundaries of AI in incident management & system reliability","2026-05-21 03:08:26",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":47},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill setup",{"tool":63,"command":64},"bunx","bunx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill setup",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[],[71,95,107,124,142,163],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":78,"publishedAt":40},"01M6GDVHA9QGJJ699HBV9YATM1","trend","Reliability trend summary for a service, team, or the whole org. Reports incident volume, severity mix, and MTTR direction over a window (default 30 days). Use for standups, 1-on-1s, or quarterly reviews.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Ftrend\u002FSKILL.md",[77],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[73,79,25,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,33],"default","mix","reviews","direction","org","name","service","volume","incident","summary","reports","reliability","use","team","mttr","severity",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":104,"publishedAt":40},"01M6GDVFZK06MTYEM8J86PTFG9","test","Simple test skill","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Ftest\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[97,105,106],"simple","Test Skill",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":40},"01M6GDVCYMM9A8HJ32Z2XDZMV2","swap","Request someone to cover one of your upcoming on-call shifts. Lists your shifts, helps identify a candidate based on availability, and creates an override after explicit confirmation. Write action - never executes without confirming.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fswap\u002FSKILL.md",[113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,115,116,25,117,118,119,120,121,122,33,123],"confirmation","action","selector","availability","next","call","never","write","cover",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":40},"01M6GDV8M9ZHYNAM4M61WC8XHW","status","Show a compact service health overview including active incidents by severity. Use for a quick health check of your services.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fstatus\u002FSKILL.md",[130],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[126,132,25,133,134,84,85,135,136,91,137,138,139,94,140,33,141],"show","incidents","quick","active","compact","overview","check","health","services","health check",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"publishedAt":40},"01M6GDV22J607XB81DDXXRQXPS","retro","[experimental] Generate a structured post-incident retrospective from incident data. Forked-subagent flow may not have MCP access in all Claude Code contexts.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fretro\u002FSKILL.md",[148],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[144,150,33,151,152,25,153,154,155,87,156,157,158,159,160,161,162],"retrospective","generate","structured","post","id","analyst","mcp access","subagent","access","post-incident","data","flow","code",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":40},"01M6GDTX4HDD6FXNQ052BZFC2T","respond","[experimental] Investigate and respond to a production incident. Pulls context, finds similar past incidents, suggests solutions, and enables coordination. Forked-subagent flow may not have MCP access in all Claude Code contexts -- prefer \u002Frootly:status + \u002Frootly:brief for now.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Frespond\u002FSKILL.md",[169],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[165,156,25,171,133,172,173,174,154,87,175,157,158,176,177,161,178,162,126,33],"past","production incident","now","investigator","coordination","investigate","Production","brief"]