[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-sred-work-summary":3,"mdc-pbvmkf-key":38,"related-org-sentry-sred-work-summary":918,"related-repo-sentry-sred-work-summary":1094},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":33,"sourceUrl":36,"mdContent":37},"sred-work-summary","summarize work for SRED documentation","Go back through the previous year of work and create a Notion doc that groups relevant links into projects that can then be documented as SRED projects.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"sentry","Sentry","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsentry.png","getsentry",[13,17,20,23],{"name":14,"slug":15,"type":16},"Reporting","reporting","tag",{"name":18,"slug":19,"type":16},"Documentation","documentation",{"name":21,"slug":22,"type":16},"Notion","notion",{"name":24,"slug":25,"type":16},"SRED","sred",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:40.686799",null,45,[32],"tag-production",{"repoUrl":27,"stars":26,"forks":30,"topics":34,"description":35},[32],"Agent Skills used by the Sentry team for development.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fsred-work-summary","---\nname: sred-work-summary\ndescription: Go back through the previous year of work and create a Notion doc that groups relevant links into projects that can then be documented as SRED projects.\n---\n\n# SRED Work Summary\n\nCollect all the Github PRs, Notion docs and Linear tickets a person completed in a given year. Group the links from all of those into projects. Put everything into a private Notion document and return a link to that document.\n\n## Prerequisites\n\nBefore starting make sure that Github, Notion and Linear can be accessed. Notion and Linear should be connected using an MCP. Github can be connected with an MCP, but if you have access to the `gh` CLI tool, you can use that instead.\n\nIf any of these can't be accessed, prompt the user to grant access before proceeding.\n\n## Process\n\n### Step 1\n\n```bash\n# Get the current year\ndate +%Y\n```\n\nThe output of this command is the current year.\nThe current year minus one is the previous year.\n\n### Step 2\n\nCollect all of the required information from the user:\n\n*Github Username*: What is the github username of the user?\n\n*Github Repositories*: Which Github repositories should be searched for PRs?\n\nThe user can either specify a comma separated list, or provide a directory that contains repositories. In the second case use this command in the specified directory:\n\n```bash\n# Find github repos\nfind . -maxdepth 2 -name \".git\" -type d | sed 's\u002F\\\u002F.git$\u002F\u002F' | sort\n```\n\nEnsure:\n- All the repositories listed are in the `getsentry` Github organization.\n\nThe output of this is hereafter referred to as the \"user repos\".\n\n*Incidents*: Ask if the user wants to include incident documents.\n\nThe answer is either yes or no. If the answer is no, that will exclude certain documents from the search later on.\n\n*Other Users*: Ask if there are any other users who might have created Notion documents.\n\nThis should be a comma separated list of names. Remember this as the \"other users\".\n\n### Step 3\n\nCreate a private Notion document entitled \"SRED Work Summary [current year]\". This document will be referred to as the Work Summary.\n\nIf a document with this name already exists, notify the user to rename the existing document and stop executing.\n\nEnsure:\n- If the Work Summary already exists, stop execution.\n\n### Step 4\n\nThe time window is Feb. 1 of the previous year until Jan. 31 of the current year\nFind all Github PRs created by the given github username in the time window for the user repos.\nIf the user does not want to include incident documents, ignore any Github PRs with `INC-X`, `inc-X` in the title or description.\nUse either the Github MCP or the `gh` command to do this.\n\nFind all the Notion documents the user created in the time window.\nIf the user does not want to include incident documents, ignore any Notion Documents with `INC-XXXX` in the title.\nUse the Notion MCP to do this.\n\nFind all the Linear tickets the user was assigned in the time window.\nIf the user does not want to include incident documents, ignore any Linear tickets with `INC-XXXX` in the title.\nUse the Linear MCP to do this.\n\nEnsure:\n- All the Github PRs were created or merged in the time window and was opened by the user.\n- All the Notion docs were created in the time window and were created by the user.\n- All the Linear tickets were opened or completed in the time window and were assigned to the user when they were completed.\n\n### Step 5\n\nFor each of the Github PRs, Notion documents and Linear tickets found in Step 4, put a link into the private document created in Step 3.\n\nEnsure:\n- There is a link for all the Github PRs in the Work Summary\n- There is a link for all the Notion docs in the Work Summary\n- There is a link for all the Linear tickets in the Work Summary\n- DO NOT truncate the lists of links. DO NOT use shorteners like \"...and 75 more\". Make sure that the full set of all Github PRs, Notion documents and Linear tickets is visible in the document.\n\n### Step 6\n\nUse your own intelligence to group all the Github, Notion and Linear ticket links in the Work Summary document into projects. The format of this document is shown below.\n\n```markdown\n# Projects\n\n## [Project Name]\n*Summary*: [X] PRs, [X] Notion docs, [X] Linear tickets\n\n### Pull Requests [X]\n*[repository name]\n[Links to all the PRs]\n- [link] - [Merge date]\n\n### Notion Docs [X]\n[Links to all the Notion docs]\n- [link] - [Creation date]\n\n### Linear Tickets [X]\n- [link] - [Creation date]\n```\n\nFor Github PRs, use both the title of the PR and the description of the PR for grouping.\nFor Notion documents, use the full document for grouping.\nFor Linear tickets use the title of the ticket and the description of the ticket.\n\nEnsure:\n- All the links in the file are assigned to a project.\n- The file follows the format specified above.\n- DO NOT truncate the lists of links. DO NOT use shorteners like \"...and 75 more\". Make sure that the full set of all Github PRs, Notion documents and Linear tickets is visible in the document.\n\n### Step 7\n\nSearch for notion documents created by the \"other users\". Take any that are relevant to the projects in the Work Summary and add links to those Notion documents into the Work Summary in the appropriate project.\n\n### Step 8\n\nReturn a link to the Work Summary Notion doc to the user.\n\nEnsure:\n- The actual Notion document link is in the final output.\n\n## Resources\n\nThis is an example Working Summary document for the year 2025: https:\u002F\u002Fwww.notion.so\u002Fsentry\u002FWork-Summary-Feb-2025-Jan-2026-3068b10e4b5d81d3a40cfa6ad3fe1078?source=copy_link\n\n",{"data":39,"body":40},{"name":4,"description":6},{"type":41,"children":42},"root",[43,51,57,64,78,83,89,96,135,140,146,151,162,172,177,281,286,303,308,318,323,333,338,344,356,361,365,373,379,407,420,432,436,454,460,465,469,492,498,503,833,838,842,859,865,870,876,881,885,893,899,912],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":50},"text","SRED Work Summary",{"type":44,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Collect all the Github PRs, Notion docs and Linear tickets a person completed in a given year. Group the links from all of those into projects. Put everything into a private Notion document and return a link to that document.",{"type":44,"tag":58,"props":59,"children":61},"h2",{"id":60},"prerequisites",[62],{"type":49,"value":63},"Prerequisites",{"type":44,"tag":52,"props":65,"children":66},{},[67,69,76],{"type":49,"value":68},"Before starting make sure that Github, Notion and Linear can be accessed. Notion and Linear should be connected using an MCP. Github can be connected with an MCP, but if you have access to the ",{"type":44,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":49,"value":75},"gh",{"type":49,"value":77}," CLI tool, you can use that instead.",{"type":44,"tag":52,"props":79,"children":80},{},[81],{"type":49,"value":82},"If any of these can't be accessed, prompt the user to grant access before proceeding.",{"type":44,"tag":58,"props":84,"children":86},{"id":85},"process",[87],{"type":49,"value":88},"Process",{"type":44,"tag":90,"props":91,"children":93},"h3",{"id":92},"step-1",[94],{"type":49,"value":95},"Step 1",{"type":44,"tag":97,"props":98,"children":103},"pre",{"className":99,"code":100,"language":101,"meta":102,"style":102},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Get the current year\ndate +%Y\n","bash","",[104],{"type":44,"tag":70,"props":105,"children":106},{"__ignoreMap":102},[107,119],{"type":44,"tag":108,"props":109,"children":112},"span",{"class":110,"line":111},"line",1,[113],{"type":44,"tag":108,"props":114,"children":116},{"style":115},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[117],{"type":49,"value":118},"# Get the current year\n",{"type":44,"tag":108,"props":120,"children":122},{"class":110,"line":121},2,[123,129],{"type":44,"tag":108,"props":124,"children":126},{"style":125},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[127],{"type":49,"value":128},"date",{"type":44,"tag":108,"props":130,"children":132},{"style":131},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[133],{"type":49,"value":134}," +%Y\n",{"type":44,"tag":52,"props":136,"children":137},{},[138],{"type":49,"value":139},"The output of this command is the current year.\nThe current year minus one is the previous year.",{"type":44,"tag":90,"props":141,"children":143},{"id":142},"step-2",[144],{"type":49,"value":145},"Step 2",{"type":44,"tag":52,"props":147,"children":148},{},[149],{"type":49,"value":150},"Collect all of the required information from the user:",{"type":44,"tag":52,"props":152,"children":153},{},[154,160],{"type":44,"tag":155,"props":156,"children":157},"em",{},[158],{"type":49,"value":159},"Github Username",{"type":49,"value":161},": What is the github username of the user?",{"type":44,"tag":52,"props":163,"children":164},{},[165,170],{"type":44,"tag":155,"props":166,"children":167},{},[168],{"type":49,"value":169},"Github Repositories",{"type":49,"value":171},": Which Github repositories should be searched for PRs?",{"type":44,"tag":52,"props":173,"children":174},{},[175],{"type":49,"value":176},"The user can either specify a comma separated list, or provide a directory that contains repositories. In the second case use this command in the specified directory:",{"type":44,"tag":97,"props":178,"children":180},{"className":99,"code":179,"language":101,"meta":102,"style":102},"# Find github repos\nfind . -maxdepth 2 -name \".git\" -type d | sed 's\u002F\\\u002F.git$\u002F\u002F' | sort\n",[181],{"type":44,"tag":70,"props":182,"children":183},{"__ignoreMap":102},[184,192],{"type":44,"tag":108,"props":185,"children":186},{"class":110,"line":111},[187],{"type":44,"tag":108,"props":188,"children":189},{"style":115},[190],{"type":49,"value":191},"# Find github repos\n",{"type":44,"tag":108,"props":193,"children":194},{"class":110,"line":121},[195,200,205,210,216,221,227,232,237,242,247,252,257,262,267,272,276],{"type":44,"tag":108,"props":196,"children":197},{"style":125},[198],{"type":49,"value":199},"find",{"type":44,"tag":108,"props":201,"children":202},{"style":131},[203],{"type":49,"value":204}," .",{"type":44,"tag":108,"props":206,"children":207},{"style":131},[208],{"type":49,"value":209}," -maxdepth",{"type":44,"tag":108,"props":211,"children":213},{"style":212},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[214],{"type":49,"value":215}," 2",{"type":44,"tag":108,"props":217,"children":218},{"style":131},[219],{"type":49,"value":220}," -name",{"type":44,"tag":108,"props":222,"children":224},{"style":223},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[225],{"type":49,"value":226}," \"",{"type":44,"tag":108,"props":228,"children":229},{"style":131},[230],{"type":49,"value":231},".git",{"type":44,"tag":108,"props":233,"children":234},{"style":223},[235],{"type":49,"value":236},"\"",{"type":44,"tag":108,"props":238,"children":239},{"style":131},[240],{"type":49,"value":241}," -type",{"type":44,"tag":108,"props":243,"children":244},{"style":131},[245],{"type":49,"value":246}," d",{"type":44,"tag":108,"props":248,"children":249},{"style":223},[250],{"type":49,"value":251}," |",{"type":44,"tag":108,"props":253,"children":254},{"style":125},[255],{"type":49,"value":256}," sed",{"type":44,"tag":108,"props":258,"children":259},{"style":223},[260],{"type":49,"value":261}," '",{"type":44,"tag":108,"props":263,"children":264},{"style":131},[265],{"type":49,"value":266},"s\u002F\\\u002F.git$\u002F\u002F",{"type":44,"tag":108,"props":268,"children":269},{"style":223},[270],{"type":49,"value":271},"'",{"type":44,"tag":108,"props":273,"children":274},{"style":223},[275],{"type":49,"value":251},{"type":44,"tag":108,"props":277,"children":278},{"style":125},[279],{"type":49,"value":280}," sort\n",{"type":44,"tag":52,"props":282,"children":283},{},[284],{"type":49,"value":285},"Ensure:",{"type":44,"tag":287,"props":288,"children":289},"ul",{},[290],{"type":44,"tag":291,"props":292,"children":293},"li",{},[294,296,301],{"type":49,"value":295},"All the repositories listed are in the ",{"type":44,"tag":70,"props":297,"children":299},{"className":298},[],[300],{"type":49,"value":11},{"type":49,"value":302}," Github organization.",{"type":44,"tag":52,"props":304,"children":305},{},[306],{"type":49,"value":307},"The output of this is hereafter referred to as the \"user repos\".",{"type":44,"tag":52,"props":309,"children":310},{},[311,316],{"type":44,"tag":155,"props":312,"children":313},{},[314],{"type":49,"value":315},"Incidents",{"type":49,"value":317},": Ask if the user wants to include incident documents.",{"type":44,"tag":52,"props":319,"children":320},{},[321],{"type":49,"value":322},"The answer is either yes or no. If the answer is no, that will exclude certain documents from the search later on.",{"type":44,"tag":52,"props":324,"children":325},{},[326,331],{"type":44,"tag":155,"props":327,"children":328},{},[329],{"type":49,"value":330},"Other Users",{"type":49,"value":332},": Ask if there are any other users who might have created Notion documents.",{"type":44,"tag":52,"props":334,"children":335},{},[336],{"type":49,"value":337},"This should be a comma separated list of names. Remember this as the \"other users\".",{"type":44,"tag":90,"props":339,"children":341},{"id":340},"step-3",[342],{"type":49,"value":343},"Step 3",{"type":44,"tag":52,"props":345,"children":346},{},[347,349,354],{"type":49,"value":348},"Create a private Notion document entitled \"SRED Work Summary ",{"type":44,"tag":108,"props":350,"children":351},{},[352],{"type":49,"value":353},"current year",{"type":49,"value":355},"\". This document will be referred to as the Work Summary.",{"type":44,"tag":52,"props":357,"children":358},{},[359],{"type":49,"value":360},"If a document with this name already exists, notify the user to rename the existing document and stop executing.",{"type":44,"tag":52,"props":362,"children":363},{},[364],{"type":49,"value":285},{"type":44,"tag":287,"props":366,"children":367},{},[368],{"type":44,"tag":291,"props":369,"children":370},{},[371],{"type":49,"value":372},"If the Work Summary already exists, stop execution.",{"type":44,"tag":90,"props":374,"children":376},{"id":375},"step-4",[377],{"type":49,"value":378},"Step 4",{"type":44,"tag":52,"props":380,"children":381},{},[382,384,390,392,398,400,405],{"type":49,"value":383},"The time window is Feb. 1 of the previous year until Jan. 31 of the current year\nFind all Github PRs created by the given github username in the time window for the user repos.\nIf the user does not want to include incident documents, ignore any Github PRs with ",{"type":44,"tag":70,"props":385,"children":387},{"className":386},[],[388],{"type":49,"value":389},"INC-X",{"type":49,"value":391},", ",{"type":44,"tag":70,"props":393,"children":395},{"className":394},[],[396],{"type":49,"value":397},"inc-X",{"type":49,"value":399}," in the title or description.\nUse either the Github MCP or the ",{"type":44,"tag":70,"props":401,"children":403},{"className":402},[],[404],{"type":49,"value":75},{"type":49,"value":406}," command to do this.",{"type":44,"tag":52,"props":408,"children":409},{},[410,412,418],{"type":49,"value":411},"Find all the Notion documents the user created in the time window.\nIf the user does not want to include incident documents, ignore any Notion Documents with ",{"type":44,"tag":70,"props":413,"children":415},{"className":414},[],[416],{"type":49,"value":417},"INC-XXXX",{"type":49,"value":419}," in the title.\nUse the Notion MCP to do this.",{"type":44,"tag":52,"props":421,"children":422},{},[423,425,430],{"type":49,"value":424},"Find all the Linear tickets the user was assigned in the time window.\nIf the user does not want to include incident documents, ignore any Linear tickets with ",{"type":44,"tag":70,"props":426,"children":428},{"className":427},[],[429],{"type":49,"value":417},{"type":49,"value":431}," in the title.\nUse the Linear MCP to do this.",{"type":44,"tag":52,"props":433,"children":434},{},[435],{"type":49,"value":285},{"type":44,"tag":287,"props":437,"children":438},{},[439,444,449],{"type":44,"tag":291,"props":440,"children":441},{},[442],{"type":49,"value":443},"All the Github PRs were created or merged in the time window and was opened by the user.",{"type":44,"tag":291,"props":445,"children":446},{},[447],{"type":49,"value":448},"All the Notion docs were created in the time window and were created by the user.",{"type":44,"tag":291,"props":450,"children":451},{},[452],{"type":49,"value":453},"All the Linear tickets were opened or completed in the time window and were assigned to the user when they were completed.",{"type":44,"tag":90,"props":455,"children":457},{"id":456},"step-5",[458],{"type":49,"value":459},"Step 5",{"type":44,"tag":52,"props":461,"children":462},{},[463],{"type":49,"value":464},"For each of the Github PRs, Notion documents and Linear tickets found in Step 4, put a link into the private document created in Step 3.",{"type":44,"tag":52,"props":466,"children":467},{},[468],{"type":49,"value":285},{"type":44,"tag":287,"props":470,"children":471},{},[472,477,482,487],{"type":44,"tag":291,"props":473,"children":474},{},[475],{"type":49,"value":476},"There is a link for all the Github PRs in the Work Summary",{"type":44,"tag":291,"props":478,"children":479},{},[480],{"type":49,"value":481},"There is a link for all the Notion docs in the Work Summary",{"type":44,"tag":291,"props":483,"children":484},{},[485],{"type":49,"value":486},"There is a link for all the Linear tickets in the Work Summary",{"type":44,"tag":291,"props":488,"children":489},{},[490],{"type":49,"value":491},"DO NOT truncate the lists of links. DO NOT use shorteners like \"...and 75 more\". Make sure that the full set of all Github PRs, Notion documents and Linear tickets is visible in the document.",{"type":44,"tag":90,"props":493,"children":495},{"id":494},"step-6",[496],{"type":49,"value":497},"Step 6",{"type":44,"tag":52,"props":499,"children":500},{},[501],{"type":49,"value":502},"Use your own intelligence to group all the Github, Notion and Linear ticket links in the Work Summary document into projects. The format of this document is shown below.",{"type":44,"tag":97,"props":504,"children":508},{"className":505,"code":506,"language":507,"meta":102,"style":102},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Projects\n\n## [Project Name]\n*Summary*: [X] PRs, [X] Notion docs, [X] Linear tickets\n\n### Pull Requests [X]\n*[repository name]\n[Links to all the PRs]\n- [link] - [Merge date]\n\n### Notion Docs [X]\n[Links to all the Notion docs]\n- [link] - [Creation date]\n\n### Linear Tickets [X]\n- [link] - [Creation date]\n","markdown",[509],{"type":44,"tag":70,"props":510,"children":511},{"__ignoreMap":102},[512,525,534,548,628,636,663,672,681,709,717,742,751,776,784,809],{"type":44,"tag":108,"props":513,"children":514},{"class":110,"line":111},[515,520],{"type":44,"tag":108,"props":516,"children":517},{"style":223},[518],{"type":49,"value":519},"# ",{"type":44,"tag":108,"props":521,"children":522},{"style":125},[523],{"type":49,"value":524},"Projects\n",{"type":44,"tag":108,"props":526,"children":527},{"class":110,"line":121},[528],{"type":44,"tag":108,"props":529,"children":531},{"emptyLinePlaceholder":530},true,[532],{"type":49,"value":533},"\n",{"type":44,"tag":108,"props":535,"children":537},{"class":110,"line":536},3,[538,543],{"type":44,"tag":108,"props":539,"children":540},{"style":223},[541],{"type":49,"value":542},"## ",{"type":44,"tag":108,"props":544,"children":545},{"style":125},[546],{"type":49,"value":547},"[Project Name]\n",{"type":44,"tag":108,"props":549,"children":551},{"class":110,"line":550},4,[552,558,564,568,574,579,584,589,594,598,602,606,611,615,619,623],{"type":44,"tag":108,"props":553,"children":555},{"style":554},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[556],{"type":49,"value":557},"*",{"type":44,"tag":108,"props":559,"children":561},{"style":560},"--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic",[562],{"type":49,"value":563},"Summary",{"type":44,"tag":108,"props":565,"children":566},{"style":554},[567],{"type":49,"value":557},{"type":44,"tag":108,"props":569,"children":571},{"style":570},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[572],{"type":49,"value":573},": ",{"type":44,"tag":108,"props":575,"children":576},{"style":223},[577],{"type":49,"value":578},"[",{"type":44,"tag":108,"props":580,"children":581},{"style":131},[582],{"type":49,"value":583},"X",{"type":44,"tag":108,"props":585,"children":586},{"style":223},[587],{"type":49,"value":588},"]",{"type":44,"tag":108,"props":590,"children":591},{"style":570},[592],{"type":49,"value":593}," PRs, ",{"type":44,"tag":108,"props":595,"children":596},{"style":223},[597],{"type":49,"value":578},{"type":44,"tag":108,"props":599,"children":600},{"style":131},[601],{"type":49,"value":583},{"type":44,"tag":108,"props":603,"children":604},{"style":223},[605],{"type":49,"value":588},{"type":44,"tag":108,"props":607,"children":608},{"style":570},[609],{"type":49,"value":610}," Notion docs, ",{"type":44,"tag":108,"props":612,"children":613},{"style":223},[614],{"type":49,"value":578},{"type":44,"tag":108,"props":616,"children":617},{"style":131},[618],{"type":49,"value":583},{"type":44,"tag":108,"props":620,"children":621},{"style":223},[622],{"type":49,"value":588},{"type":44,"tag":108,"props":624,"children":625},{"style":570},[626],{"type":49,"value":627}," Linear tickets\n",{"type":44,"tag":108,"props":629,"children":631},{"class":110,"line":630},5,[632],{"type":44,"tag":108,"props":633,"children":634},{"emptyLinePlaceholder":530},[635],{"type":49,"value":533},{"type":44,"tag":108,"props":637,"children":639},{"class":110,"line":638},6,[640,645,650,654,658],{"type":44,"tag":108,"props":641,"children":642},{"style":223},[643],{"type":49,"value":644},"### ",{"type":44,"tag":108,"props":646,"children":647},{"style":125},[648],{"type":49,"value":649},"Pull Requests ",{"type":44,"tag":108,"props":651,"children":652},{"style":223},[653],{"type":49,"value":578},{"type":44,"tag":108,"props":655,"children":656},{"style":131},[657],{"type":49,"value":583},{"type":44,"tag":108,"props":659,"children":660},{"style":223},[661],{"type":49,"value":662},"]\n",{"type":44,"tag":108,"props":664,"children":666},{"class":110,"line":665},7,[667],{"type":44,"tag":108,"props":668,"children":669},{"style":570},[670],{"type":49,"value":671},"*[repository name]\n",{"type":44,"tag":108,"props":673,"children":675},{"class":110,"line":674},8,[676],{"type":44,"tag":108,"props":677,"children":678},{"style":570},[679],{"type":49,"value":680},"[Links to all the PRs]\n",{"type":44,"tag":108,"props":682,"children":684},{"class":110,"line":683},9,[685,690,695,700,704],{"type":44,"tag":108,"props":686,"children":687},{"style":223},[688],{"type":49,"value":689},"-",{"type":44,"tag":108,"props":691,"children":692},{"style":223},[693],{"type":49,"value":694}," [",{"type":44,"tag":108,"props":696,"children":697},{"style":131},[698],{"type":49,"value":699},"link",{"type":44,"tag":108,"props":701,"children":702},{"style":223},[703],{"type":49,"value":588},{"type":44,"tag":108,"props":705,"children":706},{"style":570},[707],{"type":49,"value":708}," - [Merge date]\n",{"type":44,"tag":108,"props":710,"children":712},{"class":110,"line":711},10,[713],{"type":44,"tag":108,"props":714,"children":715},{"emptyLinePlaceholder":530},[716],{"type":49,"value":533},{"type":44,"tag":108,"props":718,"children":720},{"class":110,"line":719},11,[721,725,730,734,738],{"type":44,"tag":108,"props":722,"children":723},{"style":223},[724],{"type":49,"value":644},{"type":44,"tag":108,"props":726,"children":727},{"style":125},[728],{"type":49,"value":729},"Notion Docs ",{"type":44,"tag":108,"props":731,"children":732},{"style":223},[733],{"type":49,"value":578},{"type":44,"tag":108,"props":735,"children":736},{"style":131},[737],{"type":49,"value":583},{"type":44,"tag":108,"props":739,"children":740},{"style":223},[741],{"type":49,"value":662},{"type":44,"tag":108,"props":743,"children":745},{"class":110,"line":744},12,[746],{"type":44,"tag":108,"props":747,"children":748},{"style":570},[749],{"type":49,"value":750},"[Links to all the Notion docs]\n",{"type":44,"tag":108,"props":752,"children":754},{"class":110,"line":753},13,[755,759,763,767,771],{"type":44,"tag":108,"props":756,"children":757},{"style":223},[758],{"type":49,"value":689},{"type":44,"tag":108,"props":760,"children":761},{"style":223},[762],{"type":49,"value":694},{"type":44,"tag":108,"props":764,"children":765},{"style":131},[766],{"type":49,"value":699},{"type":44,"tag":108,"props":768,"children":769},{"style":223},[770],{"type":49,"value":588},{"type":44,"tag":108,"props":772,"children":773},{"style":570},[774],{"type":49,"value":775}," - [Creation date]\n",{"type":44,"tag":108,"props":777,"children":779},{"class":110,"line":778},14,[780],{"type":44,"tag":108,"props":781,"children":782},{"emptyLinePlaceholder":530},[783],{"type":49,"value":533},{"type":44,"tag":108,"props":785,"children":787},{"class":110,"line":786},15,[788,792,797,801,805],{"type":44,"tag":108,"props":789,"children":790},{"style":223},[791],{"type":49,"value":644},{"type":44,"tag":108,"props":793,"children":794},{"style":125},[795],{"type":49,"value":796},"Linear Tickets ",{"type":44,"tag":108,"props":798,"children":799},{"style":223},[800],{"type":49,"value":578},{"type":44,"tag":108,"props":802,"children":803},{"style":131},[804],{"type":49,"value":583},{"type":44,"tag":108,"props":806,"children":807},{"style":223},[808],{"type":49,"value":662},{"type":44,"tag":108,"props":810,"children":812},{"class":110,"line":811},16,[813,817,821,825,829],{"type":44,"tag":108,"props":814,"children":815},{"style":223},[816],{"type":49,"value":689},{"type":44,"tag":108,"props":818,"children":819},{"style":223},[820],{"type":49,"value":694},{"type":44,"tag":108,"props":822,"children":823},{"style":131},[824],{"type":49,"value":699},{"type":44,"tag":108,"props":826,"children":827},{"style":223},[828],{"type":49,"value":588},{"type":44,"tag":108,"props":830,"children":831},{"style":570},[832],{"type":49,"value":775},{"type":44,"tag":52,"props":834,"children":835},{},[836],{"type":49,"value":837},"For Github PRs, use both the title of the PR and the description of the PR for grouping.\nFor Notion documents, use the full document for grouping.\nFor Linear tickets use the title of the ticket and the description of the ticket.",{"type":44,"tag":52,"props":839,"children":840},{},[841],{"type":49,"value":285},{"type":44,"tag":287,"props":843,"children":844},{},[845,850,855],{"type":44,"tag":291,"props":846,"children":847},{},[848],{"type":49,"value":849},"All the links in the file are assigned to a project.",{"type":44,"tag":291,"props":851,"children":852},{},[853],{"type":49,"value":854},"The file follows the format specified above.",{"type":44,"tag":291,"props":856,"children":857},{},[858],{"type":49,"value":491},{"type":44,"tag":90,"props":860,"children":862},{"id":861},"step-7",[863],{"type":49,"value":864},"Step 7",{"type":44,"tag":52,"props":866,"children":867},{},[868],{"type":49,"value":869},"Search for notion documents created by the \"other users\". Take any that are relevant to the projects in the Work Summary and add links to those Notion documents into the Work Summary in the appropriate project.",{"type":44,"tag":90,"props":871,"children":873},{"id":872},"step-8",[874],{"type":49,"value":875},"Step 8",{"type":44,"tag":52,"props":877,"children":878},{},[879],{"type":49,"value":880},"Return a link to the Work Summary Notion doc to the user.",{"type":44,"tag":52,"props":882,"children":883},{},[884],{"type":49,"value":285},{"type":44,"tag":287,"props":886,"children":887},{},[888],{"type":44,"tag":291,"props":889,"children":890},{},[891],{"type":49,"value":892},"The actual Notion document link is in the final output.",{"type":44,"tag":58,"props":894,"children":896},{"id":895},"resources",[897],{"type":49,"value":898},"Resources",{"type":44,"tag":52,"props":900,"children":901},{},[902,904],{"type":49,"value":903},"This is an example Working Summary document for the year 2025: ",{"type":44,"tag":905,"props":906,"children":910},"a",{"href":907,"rel":908},"https:\u002F\u002Fwww.notion.so\u002Fsentry\u002FWork-Summary-Feb-2025-Jan-2026-3068b10e4b5d81d3a40cfa6ad3fe1078?source=copy_link",[909],"nofollow",[911],{"type":49,"value":907},{"type":44,"tag":913,"props":914,"children":915},"style",{},[916],{"type":49,"value":917},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":919,"total":1093},[920,945,959,970,984,1001,1017,1031,1041,1052,1062,1080],{"slug":921,"name":921,"fn":922,"description":923,"org":924,"tags":925,"stars":942,"repoUrl":943,"updatedAt":944},"xcodebuildmcp","build and test Apple apps with XcodeBuildMCP","Official skill for XcodeBuildMCP. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[926,929,932,935,936,939],{"name":927,"slug":928,"type":16},"Debugging","debugging",{"name":930,"slug":931,"type":16},"iOS","ios",{"name":933,"slug":934,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":937,"slug":938,"type":16},"Testing","testing",{"name":940,"slug":941,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":946,"name":946,"fn":947,"description":948,"org":949,"tags":950,"stars":942,"repoUrl":943,"updatedAt":958},"xcodebuildmcp-cli","build and test Apple apps via CLI","Official skill for the XcodeBuildMCP CLI. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[951,954,955,956,957],{"name":952,"slug":953,"type":16},"CLI","cli",{"name":930,"slug":931,"type":16},{"name":933,"slug":934,"type":16},{"name":937,"slug":938,"type":16},{"name":940,"slug":941,"type":16},"2026-04-06T18:13:36.13414",{"slug":960,"name":960,"fn":961,"description":962,"org":963,"tags":964,"stars":26,"repoUrl":27,"updatedAt":969},"agents-md","maintain project instruction files","Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update AGENTS.md, maintain agent docs, set up CLAUDE.md, document repository agent conventions, or keep coding-agent instructions minimal and reference-backed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[965,966],{"name":18,"slug":19,"type":16},{"name":967,"slug":968,"type":16},"Engineering","engineering","2026-05-15T06:16:29.695991",{"slug":971,"name":971,"fn":972,"description":973,"org":974,"tags":975,"stars":26,"repoUrl":27,"updatedAt":983},"blog-writing-guide","write and review engineering blog posts","Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a product announcement, create an engineering deep-dive, or produce any written content destined for the Sentry blog or developer audience. Also trigger when the user mentions \"blog post,\" \"blog draft,\" \"write-up,\" \"announcement post,\" \"engineering post,\" \"deep dive,\" \"postmortem,\" or asks for help with technical writing for Sentry. Even if the user just says \"help me write about [feature\u002Ftopic]\" — if it sounds like it could become a Sentry blog post, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[976,979,980],{"name":977,"slug":978,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":981,"slug":982,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":985,"name":985,"fn":986,"description":987,"org":988,"tags":989,"stars":26,"repoUrl":27,"updatedAt":1000},"brand-guidelines","write copy following Sentry brand guidelines","Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404 pages, documentation, marketing copy, or any user-facing content. Covers both Plain Speech (default) and Sentry Voice tones.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[990,993,996,997],{"name":991,"slug":992,"type":16},"Branding","branding",{"name":994,"slug":995,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":998,"slug":999,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":1002,"name":1002,"fn":1003,"description":1004,"org":1005,"tags":1006,"stars":26,"repoUrl":27,"updatedAt":1016},"claude-settings-audit","generate Claude Code settings permissions","Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1007,1010,1013],{"name":1008,"slug":1009,"type":16},"Claude Code","claude-code",{"name":1011,"slug":1012,"type":16},"Configuration","configuration",{"name":1014,"slug":1015,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":1018,"name":1018,"fn":1019,"description":1020,"org":1021,"tags":1022,"stars":26,"repoUrl":27,"updatedAt":1030},"code-review","perform code reviews for Sentry projects","Perform code reviews following Sentry engineering practices. Use when reviewing pull requests, examining code changes, or providing feedback on code quality. Covers security, performance, testing, and design review.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1023,1025,1026,1029],{"name":1024,"slug":1018,"type":16},"Code Review",{"name":967,"slug":968,"type":16},{"name":1027,"slug":1028,"type":16},"Performance","performance",{"name":1014,"slug":1015,"type":16},"2026-05-15T06:16:35.824864",{"slug":1032,"name":1032,"fn":1033,"description":1034,"org":1035,"tags":1036,"stars":26,"repoUrl":27,"updatedAt":1040},"code-simplifier","simplify and refine source code","Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to \"simplify code\", \"clean up code\", \"refactor for clarity\", \"improve readability\", or review recently modified code for elegance. Focuses on project-specific best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1037],{"name":1038,"slug":1039,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":1042,"name":1042,"fn":1043,"description":1044,"org":1045,"tags":1046,"stars":26,"repoUrl":27,"updatedAt":1051},"commit","create commits with Sentry conventions","Use for every request to commit changes or draft a commit message. Creates Sentry-style conventional commits with issue references.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1047,1050],{"name":1048,"slug":1049,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":1053,"name":1053,"fn":1054,"description":1055,"org":1056,"tags":1057,"stars":26,"repoUrl":27,"updatedAt":1061},"create-branch","create git branches for Sentry workflows","Create a git branch following Sentry naming conventions. Use when asked to \"create a branch\", \"new branch\", \"start a branch\", \"make a branch\", \"switch to a new branch\", or when starting new work on the default branch.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1058,1059,1060],{"name":967,"slug":968,"type":16},{"name":1048,"slug":1049,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":1063,"name":1063,"fn":1064,"description":1065,"org":1066,"tags":1067,"stars":26,"repoUrl":27,"updatedAt":1079},"django-access-review","review Django access control and IDOR","Django access control and IDOR security review. Use when reviewing Django views, DRF viewsets, ORM queries, or any Python\u002FDjango code handling user authorization. Trigger keywords: \"IDOR\", \"access control\", \"authorization\", \"Django permissions\", \"object permissions\", \"tenant isolation\", \"broken access\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1068,1071,1072,1075,1078],{"name":1069,"slug":1070,"type":16},"Access Control","access-control",{"name":1038,"slug":1039,"type":16},{"name":1073,"slug":1074,"type":16},"Django","django",{"name":1076,"slug":1077,"type":16},"Python","python",{"name":1014,"slug":1015,"type":16},"2026-05-15T06:16:43.098698",{"slug":1081,"name":1081,"fn":1082,"description":1083,"org":1084,"tags":1085,"stars":26,"repoUrl":27,"updatedAt":1092},"django-perf-review","review and optimize Django performance","Django performance code review. Use when asked to \"review Django performance\", \"find N+1 queries\", \"optimize Django\", \"check queryset performance\", \"database performance\", \"Django ORM issues\", or audit Django code for performance problems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1086,1087,1090,1091],{"name":1024,"slug":1018,"type":16},{"name":1088,"slug":1089,"type":16},"Database","database",{"name":1073,"slug":1074,"type":16},{"name":1027,"slug":1028,"type":16},"2026-05-15T06:16:24.832813",88,{"items":1095,"total":1136},[1096,1101,1107,1114,1120,1127,1131],{"slug":960,"name":960,"fn":961,"description":962,"org":1097,"tags":1098,"stars":26,"repoUrl":27,"updatedAt":969},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1099,1100],{"name":18,"slug":19,"type":16},{"name":967,"slug":968,"type":16},{"slug":971,"name":971,"fn":972,"description":973,"org":1102,"tags":1103,"stars":26,"repoUrl":27,"updatedAt":983},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1104,1105,1106],{"name":977,"slug":978,"type":16},{"name":9,"slug":8,"type":16},{"name":981,"slug":982,"type":16},{"slug":985,"name":985,"fn":986,"description":987,"org":1108,"tags":1109,"stars":26,"repoUrl":27,"updatedAt":1000},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1110,1111,1112,1113],{"name":991,"slug":992,"type":16},{"name":994,"slug":995,"type":16},{"name":9,"slug":8,"type":16},{"name":998,"slug":999,"type":16},{"slug":1002,"name":1002,"fn":1003,"description":1004,"org":1115,"tags":1116,"stars":26,"repoUrl":27,"updatedAt":1016},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1117,1118,1119],{"name":1008,"slug":1009,"type":16},{"name":1011,"slug":1012,"type":16},{"name":1014,"slug":1015,"type":16},{"slug":1018,"name":1018,"fn":1019,"description":1020,"org":1121,"tags":1122,"stars":26,"repoUrl":27,"updatedAt":1030},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1123,1124,1125,1126],{"name":1024,"slug":1018,"type":16},{"name":967,"slug":968,"type":16},{"name":1027,"slug":1028,"type":16},{"name":1014,"slug":1015,"type":16},{"slug":1032,"name":1032,"fn":1033,"description":1034,"org":1128,"tags":1129,"stars":26,"repoUrl":27,"updatedAt":1040},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1130],{"name":1038,"slug":1039,"type":16},{"slug":1042,"name":1042,"fn":1043,"description":1044,"org":1132,"tags":1133,"stars":26,"repoUrl":27,"updatedAt":1051},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1134,1135],{"name":1048,"slug":1049,"type":16},{"name":9,"slug":8,"type":16},28]