[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GDSTR7A6EJRQDXWCJB0BE5":3,"skill-same:01M6GDSTR7A6EJRQDXWCJB0BE5":71},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":70},"01M6GDSTR7A6EJRQDXWCJB0BE5","alert",null,"Triage a Rootly alert by short ID. Pulls the alert record, its event timeline, related alerts in the same group, and any incident the alert is attached to. Use when a page comes in and you want context before opening Rootly.","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\u002Falert\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],"MCP","triage","timeline","page","short","context","use","record","incident","alerts","id","event","you","event timeline","true","2026-11-10 10:12:30",false,"---\nname: alert\ndescription: Triage a Rootly alert by short ID. Pulls the alert record, its event timeline, related alerts in the same group, and any incident the alert is attached to. Use when a page comes in and you want context before opening Rootly.\nargument-hint: [short-id]\ndisable-model-invocation: true\nallowed-tools:\n  - mcp__rootly__*\n---\n\n# Alert Triage\n\nYou are helping the user triage a Rootly alert. Alerts are the upstream signal that may or may not become incidents. The goal is to give the user enough context in one place that they can decide: ignore, acknowledge, escalate, or open an incident.\n\n## Workflow\n\n### 1. Resolve the alert\n\n`$ARGUMENTS` should contain a short alert ID (e.g. `A-1234` or `1234`).\n\n- If `$ARGUMENTS` is empty: report \"No alert ID provided. Pass a short ID like `A-1234` or `1234`.\" and stop.\n- Otherwise call `mcp__rootly__get_alert_by_short_id` with the value as given.\n- If that fails, fall back to `mcp__rootly__getAlert` with the same value (the MCP layer often accepts both forms).\n- If both fail, surface the error and stop.\n\n### 2. Gather context\n\nOnce you have the alert UUID:\n\n1. Call `mcp__rootly__listAlertEvents` (or filter by alert) to get the event timeline.\n2. If the alert response includes an `alert_group_id` or `group` reference, call `mcp__rootly__getAlertGroup` for sibling alerts.\n3. If the alert is attached to an incident, the response usually carries an `incident_id`. Call `mcp__rootly__getIncident` for incident context.\n4. Optional: call `mcp__rootly__listAlerts` filtered to the same source\u002Fservice in the last 24h to surface \"is this alert flapping?\"\n\nStop fetching once you have enough to render the brief — do not keep walking endpoints.\n\n### 3. Present the alert brief\n\n```\n## Alert Brief: [alert title]\n\n**Short ID**: [short-id] | **Source**: [source] | **Urgency**: [urgency]\n**Started**: [time] ([duration] ago) | **State**: [state]\n**Service**: [service or \"unmapped\"]\n\n### Summary\n[Alert summary or first event message]\n\n### Event Timeline\n- [time] [event-type]: [message]\n- [time] [event-type]: [message]\n[at most 8 events, oldest first]\n\n### Group Context\n[If part of a group:]\nThis alert is one of [N] in group [group-name]. Other open alerts in the group:\n- [short-id] [title] ([state])\n\n[If flapping detected:]\n**Flapping**: this source has fired [N] alerts in the last 24h on the same service.\n\n### Incident Linkage\n[If attached to an incident:]\nAlready attached to **[INC-XXXX]** [title] ([severity], [status]).\n\n[If not attached:]\nNot attached to an incident.\n\n### Suggested Next Step\n[Pick one based on the data:]\n- \"Acknowledge — looks like a known transient pattern\"\n- \"Open an incident — first occurrence, customer-facing surface\"\n- \"Escalate — already linked to a critical incident with no responder yet\"\n- \"Ignore — historical noise from this source on this service\"\n```\n\n### 4. Read-only\n\nThis skill never mutates Rootly state. If the user wants to acknowledge, escalate, or convert the alert into an incident, point them to the Rootly UI or to `\u002Frootly:respond` for the linked incident.\n\n### 5. Error handling\n\n- **Alert not found**: report the short ID and suggest checking the format (e.g. `A-1234`).\n- **MCP tool errors**: report the specific error and continue with whatever data you have.\n- **No event timeline available**: note it and skip that section rather than failing entirely.\n","# Alert Triage\n\nYou are helping the user triage a Rootly alert. Alerts are the upstream signal that may or may not become incidents. The goal is to give the user enough context in one place that they can decide: ignore, acknowledge, escalate, or open an incident.\n\n## Workflow\n\n### 1. Resolve the alert\n\n`$ARGUMENTS` should contain a short alert ID (e.g. `A-1234` or `1234`).\n\n- If `$ARGUMENTS` is empty: report \"No alert ID provided. Pass a short ID like `A-1234` or `1234`.\" and stop.\n- Otherwise call `mcp__rootly__get_alert_by_short_id` with the value as given.\n- If that fails, fall back to `mcp__rootly__getAlert` with the same value (the MCP layer often accepts both forms).\n- If both fail, surface the error and stop.\n\n### 2. Gather context\n\nOnce you have the alert UUID:\n\n1. Call `mcp__rootly__listAlertEvents` (or filter by alert) to get the event timeline.\n2. If the alert response includes an `alert_group_id` or `group` reference, call `mcp__rootly__getAlertGroup` for sibling alerts.\n3. If the alert is attached to an incident, the response usually carries an `incident_id`. Call `mcp__rootly__getIncident` for incident context.\n4. Optional: call `mcp__rootly__listAlerts` filtered to the same source\u002Fservice in the last 24h to surface \"is this alert flapping?\"\n\nStop fetching once you have enough to render the brief — do not keep walking endpoints.\n\n### 3. Present the alert brief\n\n```\n## Alert Brief: [alert title]\n\n**Short ID**: [short-id] | **Source**: [source] | **Urgency**: [urgency]\n**Started**: [time] ([duration] ago) | **State**: [state]\n**Service**: [service or \"unmapped\"]\n\n### Summary\n[Alert summary or first event message]\n\n### Event Timeline\n- [time] [event-type]: [message]\n- [time] [event-type]: [message]\n[at most 8 events, oldest first]\n\n### Group Context\n[If part of a group:]\nThis alert is one of [N] in group [group-name]. Other open alerts in the group:\n- [short-id] [title] ([state])\n\n[If flapping detected:]\n**Flapping**: this source has fired [N] alerts in the last 24h on the same service.\n\n### Incident Linkage\n[If attached to an incident:]\nAlready attached to **[INC-XXXX]** [title] ([severity], [status]).\n\n[If not attached:]\nNot attached to an incident.\n\n### Suggested Next Step\n[Pick one based on the data:]\n- \"Acknowledge — looks like a known transient pattern\"\n- \"Open an incident — first occurrence, customer-facing surface\"\n- \"Escalate — already linked to a critical incident with no responder yet\"\n- \"Ignore — historical noise from this source on this service\"\n```\n\n### 4. Read-only\n\nThis skill never mutates Rootly state. If the user wants to acknowledge, escalate, or convert the alert into an incident, point them to the Rootly UI or to `\u002Frootly:respond` for the linked incident.\n\n### 5. Error handling\n\n- **Alert not found**: report the short ID and suggest checking the format (e.g. `A-1234`).\n- **MCP tool errors**: report the specific error and continue with whatever data you have.\n- **No event timeline available**: note it and skip that section rather than failing entirely.\n",{"name":5,"description":7,"allowed-tools":44,"argument-hint":46,"disable-model-invocation":48},[45],"mcp__rootly__*",[47],"short-id",true,"main","65832aa6ff7a7b39c6bd64899a7a64646e3948ed","skills\u002Falert",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-11-11 15:42:35",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":48},[60,63,66],{"tool":61,"command":62},"npx","npx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill alert",{"tool":64,"command":65},"bunx","bunx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill alert",{"tool":67,"command":68},"pnpm","pnpm dlx skills add Rootly-AI-Labs\u002Frootly-claude-plugin --skill alert","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Falert\u002FSKILL.md",[],[72,94,106,123,141,163],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":79,"publishedAt":39},"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",[78],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[74,80,38,81,82,83,84,85,86,87,32,88,89,90,30,91,92,93,24],"summary","mix","reviews","direction","org","name","service","volume","default","reports","reliability","team","mttr","severity",{"skillNo":95,"name":96,"nameZh":6,"description":97,"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":103,"publishedAt":39},"01M6GDVFZK06MTYEM8J86PTFG9","test","Simple test skill","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Ftest\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[96,104,105],"simple","Test Skill",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":39},"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",[112],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[108,114,115,116,38,117,118,119,120,121,122,24],"write","cover","action","selector","availability","next","call","never","confirmation",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":39},"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",[129],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[125,38,131,132,85,86,133,134,135,30,136,137,138,93,139,24,140],"incidents","quick","active","health check","show","overview","check","health","services","compact",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":148,"publishedAt":39},"01M6GDV5Q4CVMVCJA0RAPGACTP","setup","Set up the Rootly plugin. Verifies MCP server connection via OAuth2 or API token and guides through configuration. Run this after installing the plugin.","https:\u002F\u002Fgithub.com\u002FRootly-AI-Labs\u002Frootly-claude-plugin\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[147],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[143,149,150,151,152,24,153,38,154,155,156,157,158,159,160,161,162],"server","run","plugin","mcp server","SET","connection","guides","via","token","configuration","up","Bash","api","oauth2",{"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":39},"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",[169],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[165,32,38,171,34,172,173,174,175,176,177,178,179,180,181,182,24],"post","structured","analyst","mcp access","subagent","access","post-incident","data","flow","code","generate","retrospective"]