[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-inbox-setup":3,"mdc-pumozo-key":30,"related-repo-microsoft-inbox-setup":919,"related-org-microsoft-inbox-setup":1008},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":23,"topics":24,"repo":25,"sourceUrl":28,"mdContent":29},"inbox-setup","configure VS Code for Inbox agent","Set up the Inbox agent with recommended VS Code settings and gh CLI configuration",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16],{"name":13,"slug":14,"type":15},"Productivity","productivity","tag",{"name":17,"slug":18,"type":15},"CLI","cli",25,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-team-kit","2026-05-13T06:13:59.406924",null,5,[],{"repoUrl":20,"stars":19,"forks":23,"topics":26,"description":27},[],"Plugins the VS Code team uses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-team-kit\u002Ftree\u002FHEAD\u002Fgithub-inbox\u002Fskills\u002Finbox-setup","---\nname: inbox-setup\ndescription: Set up the Inbox agent with recommended VS Code settings and gh CLI configuration\ntools:\n  - execute\n  - bash\n  - vscode\n  - agent\n  - memory\n  - askQuestions\n  - ask_user\n---\n\n# Inbox Agent Setup\n\nBefore running any setup steps, use `#askQuestions` to ask: \"Some required settings are missing for the Inbox agent. Would you like me to configure them automatically?\" with choices \"Yes, set up now\" and \"Skip for now\".\n\nIf the user skips, stop and let them proceed without setup.\n\n## Step 0: Detect existing memory\n\nBefore touching VS Code settings, check whether the user already has inbox memory from a previous setup (e.g. Copilot CLI):\n\n1. Run `ls -la ~\u002F.copilot\u002Fgithub-inbox-*.md 2>\u002Fdev\u002Fnull` to detect existing CLI memory\u002Frules files.\n2. Try `#memory view \u002Fmemories\u002Fgithub-inbox-memory.md` and `\u002Fmemories\u002Fgithub-inbox-rules.md` to detect existing VS Code memory.\n3. Report what you found in plain language, e.g.:\n   - \"Found existing memory in `~\u002F.copilot\u002F`: `github-inbox-memory.md` (84 lines), `github-inbox-rules.md` (16 rules).\"\n   - \"No existing VS Code `#memory` files.\"\n4. If existing memory was found in EITHER location, use `#askQuestions` to ask which the inbox agent should use:\n   - \"Use existing `~\u002F.copilot\u002F` files (recommended — keep your rules and history)\"\n   - \"Use VS Code `#memory` (start fresh)\"\n   - \"Use VS Code `#memory` and import from `~\u002F.copilot\u002F` (copy once, then use `#memory`)\"\n5. Record the choice in memory under a `## Backend` section so future sessions don't re-prompt.\n\nIf no existing memory is found anywhere, default to `#memory` silently and continue.\n\n## Step 1: Check gh CLI\n\n```\ngh --version\n```\n\nIf not installed, see the `inbox-install-gh-cli` skill.\n\n## Step 2: Configure VS Code settings\n\n1. Ask the user for their VS Code settings.json path if needed, or check common locations (`~\u002FLibrary\u002FApplication Support\u002FCode\u002FUser\u002Fsettings.json` on macOS, `~\u002F.config\u002FCode\u002FUser\u002Fsettings.json` on Linux, `%APPDATA%\\Code\\User\\settings.json` on Windows)\n2. Read settings using the `read` tool\n3. Check which of the required settings below are missing\n4. If ALL required settings are already present with correct values, skip this step\n5. If any are missing, use VS Code's `editFile` tool to insert ONLY the missing keys into the user's settings.json. This is safer than terminal writes for JSON files.\n\n**CRITICAL:** `settings.json` contains the user's entire VS Code configuration. You MUST NOT remove any existing content. Only ADD the specific missing keys. If `chat.tools.terminal.autoApprove` already exists with some rules, merge the new rules into the existing object — don't replace it.\n\nRequired settings to add if missing:\n\n```json\n{\n  \"chat.customAgentInSubagent.enabled\": true,\n  \"github.copilot.chat.githubMcpServer.enabled\": true,\n  \"chat.tools.terminal.enableAutoApprove\": true,\n  \"chat.tools.terminal.autoApprove\": {\n    \"\u002F^gh api (?!.*--method (PATCH|PUT|POST|DELETE))\u002F\": true,\n    \"\u002F^gh search \u002F\": true,\n    \"gh issue view\": true,\n    \"gh pr view\": true,\n    \"gh --version\": true,\n    \"gh config set\": true\n  }\n}\n```\n\nTell the user what was added and why:\n- **`chat.customAgentInSubagent.enabled`** — Required. Enables sub-agent delegation (reviewer, triager, memory, investigator).\n- **`github.copilot.chat.githubMcpServer.enabled`** — Enables richer features: PR reviews, comments, labels, assignees.\n- **`chat.tools.terminal.enableAutoApprove`** + **`chat.tools.terminal.autoApprove`** — Auto-approves read-only `gh` commands.\n\n## Step 3: Enable auto-approve\n\nAfter updating settings, tell the user:\n\n\"✅ Settings updated! One last step — I need to enable auto-approve so read-only commands don't prompt you every time.\n\n👉 When you see the **'Run command?'** prompt below, click the **Allow ▾** dropdown and select **'Enable Auto Approve'**.\n\nThis is a one-time opt-in. After this, read-only `gh` commands will run automatically.\"\n\nThen run:\n\n```\ngh api \u002Fnotifications --jq 'length'\n```\n\nThis command matches the auto-approve rules. Wait for the user to click \"Enable Auto Approve\" before proceeding.\n\n## Step 4: Verify GitHub MCP server\n\nCheck if the GitHub MCP server is running. If `github.copilot.chat.githubMcpServer.enabled` was just added, tell the user:\n\n\"Make sure the GitHub MCP server is started and running. This gives you access to richer features like PR reviews, comments, and labels.\"\n\n## Step 5: Save setup status\n\nAfter setup is complete, save to memory that setup has been completed:\n\nUse the `inbox-memory` skill to save setup status:\n\nWrite to memory: `\"# Inbox Memory\\n\\n## Setup State\\n- Setup completed on \u003Cdate>\\n- All required VS Code settings are present and verified\\n\"`\n\nIf the memory file already exists, use `delete` first, then `create` with the merged content.\n",{"data":31,"body":40},{"name":4,"description":6,"tools":32},[33,34,35,36,37,38,39],"execute","bash","vscode","agent","memory","askQuestions","ask_user",{"type":41,"children":42},"root",[43,52,67,72,79,84,251,263,269,281,294,300,368,395,400,696,701,761,767,772,777,803,815,820,829,834,840,852,857,863,868,881,892,913],{"type":44,"tag":45,"props":46,"children":48},"element","h1",{"id":47},"inbox-agent-setup",[49],{"type":50,"value":51},"text","Inbox Agent Setup",{"type":44,"tag":53,"props":54,"children":55},"p",{},[56,58,65],{"type":50,"value":57},"Before running any setup steps, use ",{"type":44,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":50,"value":64},"#askQuestions",{"type":50,"value":66}," to ask: \"Some required settings are missing for the Inbox agent. Would you like me to configure them automatically?\" with choices \"Yes, set up now\" and \"Skip for now\".",{"type":44,"tag":53,"props":68,"children":69},{},[70],{"type":50,"value":71},"If the user skips, stop and let them proceed without setup.",{"type":44,"tag":73,"props":74,"children":76},"h2",{"id":75},"step-0-detect-existing-memory",[77],{"type":50,"value":78},"Step 0: Detect existing memory",{"type":44,"tag":53,"props":80,"children":81},{},[82],{"type":50,"value":83},"Before touching VS Code settings, check whether the user already has inbox memory from a previous setup (e.g. Copilot CLI):",{"type":44,"tag":85,"props":86,"children":87},"ol",{},[88,102,123,174,238],{"type":44,"tag":89,"props":90,"children":91},"li",{},[92,94,100],{"type":50,"value":93},"Run ",{"type":44,"tag":59,"props":95,"children":97},{"className":96},[],[98],{"type":50,"value":99},"ls -la ~\u002F.copilot\u002Fgithub-inbox-*.md 2>\u002Fdev\u002Fnull",{"type":50,"value":101}," to detect existing CLI memory\u002Frules files.",{"type":44,"tag":89,"props":103,"children":104},{},[105,107,113,115,121],{"type":50,"value":106},"Try ",{"type":44,"tag":59,"props":108,"children":110},{"className":109},[],[111],{"type":50,"value":112},"#memory view \u002Fmemories\u002Fgithub-inbox-memory.md",{"type":50,"value":114}," and ",{"type":44,"tag":59,"props":116,"children":118},{"className":117},[],[119],{"type":50,"value":120},"\u002Fmemories\u002Fgithub-inbox-rules.md",{"type":50,"value":122}," to detect existing VS Code memory.",{"type":44,"tag":89,"props":124,"children":125},{},[126,128],{"type":50,"value":127},"Report what you found in plain language, e.g.:\n",{"type":44,"tag":129,"props":130,"children":131},"ul",{},[132,161],{"type":44,"tag":89,"props":133,"children":134},{},[135,137,143,145,151,153,159],{"type":50,"value":136},"\"Found existing memory in ",{"type":44,"tag":59,"props":138,"children":140},{"className":139},[],[141],{"type":50,"value":142},"~\u002F.copilot\u002F",{"type":50,"value":144},": ",{"type":44,"tag":59,"props":146,"children":148},{"className":147},[],[149],{"type":50,"value":150},"github-inbox-memory.md",{"type":50,"value":152}," (84 lines), ",{"type":44,"tag":59,"props":154,"children":156},{"className":155},[],[157],{"type":50,"value":158},"github-inbox-rules.md",{"type":50,"value":160}," (16 rules).\"",{"type":44,"tag":89,"props":162,"children":163},{},[164,166,172],{"type":50,"value":165},"\"No existing VS Code ",{"type":44,"tag":59,"props":167,"children":169},{"className":168},[],[170],{"type":50,"value":171},"#memory",{"type":50,"value":173}," files.\"",{"type":44,"tag":89,"props":175,"children":176},{},[177,179,184,186],{"type":50,"value":178},"If existing memory was found in EITHER location, use ",{"type":44,"tag":59,"props":180,"children":182},{"className":181},[],[183],{"type":50,"value":64},{"type":50,"value":185}," to ask which the inbox agent should use:\n",{"type":44,"tag":129,"props":187,"children":188},{},[189,201,213],{"type":44,"tag":89,"props":190,"children":191},{},[192,194,199],{"type":50,"value":193},"\"Use existing ",{"type":44,"tag":59,"props":195,"children":197},{"className":196},[],[198],{"type":50,"value":142},{"type":50,"value":200}," files (recommended — keep your rules and history)\"",{"type":44,"tag":89,"props":202,"children":203},{},[204,206,211],{"type":50,"value":205},"\"Use VS Code ",{"type":44,"tag":59,"props":207,"children":209},{"className":208},[],[210],{"type":50,"value":171},{"type":50,"value":212}," (start fresh)\"",{"type":44,"tag":89,"props":214,"children":215},{},[216,217,222,224,229,231,236],{"type":50,"value":205},{"type":44,"tag":59,"props":218,"children":220},{"className":219},[],[221],{"type":50,"value":171},{"type":50,"value":223}," and import from ",{"type":44,"tag":59,"props":225,"children":227},{"className":226},[],[228],{"type":50,"value":142},{"type":50,"value":230}," (copy once, then use ",{"type":44,"tag":59,"props":232,"children":234},{"className":233},[],[235],{"type":50,"value":171},{"type":50,"value":237},")\"",{"type":44,"tag":89,"props":239,"children":240},{},[241,243,249],{"type":50,"value":242},"Record the choice in memory under a ",{"type":44,"tag":59,"props":244,"children":246},{"className":245},[],[247],{"type":50,"value":248},"## Backend",{"type":50,"value":250}," section so future sessions don't re-prompt.",{"type":44,"tag":53,"props":252,"children":253},{},[254,256,261],{"type":50,"value":255},"If no existing memory is found anywhere, default to ",{"type":44,"tag":59,"props":257,"children":259},{"className":258},[],[260],{"type":50,"value":171},{"type":50,"value":262}," silently and continue.",{"type":44,"tag":73,"props":264,"children":266},{"id":265},"step-1-check-gh-cli",[267],{"type":50,"value":268},"Step 1: Check gh CLI",{"type":44,"tag":270,"props":271,"children":275},"pre",{"className":272,"code":274,"language":50},[273],"language-text","gh --version\n",[276],{"type":44,"tag":59,"props":277,"children":279},{"__ignoreMap":278},"",[280],{"type":50,"value":274},{"type":44,"tag":53,"props":282,"children":283},{},[284,286,292],{"type":50,"value":285},"If not installed, see the ",{"type":44,"tag":59,"props":287,"children":289},{"className":288},[],[290],{"type":50,"value":291},"inbox-install-gh-cli",{"type":50,"value":293}," skill.",{"type":44,"tag":73,"props":295,"children":297},{"id":296},"step-2-configure-vs-code-settings",[298],{"type":50,"value":299},"Step 2: Configure VS Code settings",{"type":44,"tag":85,"props":301,"children":302},{},[303,332,345,350,355],{"type":44,"tag":89,"props":304,"children":305},{},[306,308,314,316,322,324,330],{"type":50,"value":307},"Ask the user for their VS Code settings.json path if needed, or check common locations (",{"type":44,"tag":59,"props":309,"children":311},{"className":310},[],[312],{"type":50,"value":313},"~\u002FLibrary\u002FApplication Support\u002FCode\u002FUser\u002Fsettings.json",{"type":50,"value":315}," on macOS, ",{"type":44,"tag":59,"props":317,"children":319},{"className":318},[],[320],{"type":50,"value":321},"~\u002F.config\u002FCode\u002FUser\u002Fsettings.json",{"type":50,"value":323}," on Linux, ",{"type":44,"tag":59,"props":325,"children":327},{"className":326},[],[328],{"type":50,"value":329},"%APPDATA%\\Code\\User\\settings.json",{"type":50,"value":331}," on Windows)",{"type":44,"tag":89,"props":333,"children":334},{},[335,337,343],{"type":50,"value":336},"Read settings using the ",{"type":44,"tag":59,"props":338,"children":340},{"className":339},[],[341],{"type":50,"value":342},"read",{"type":50,"value":344}," tool",{"type":44,"tag":89,"props":346,"children":347},{},[348],{"type":50,"value":349},"Check which of the required settings below are missing",{"type":44,"tag":89,"props":351,"children":352},{},[353],{"type":50,"value":354},"If ALL required settings are already present with correct values, skip this step",{"type":44,"tag":89,"props":356,"children":357},{},[358,360,366],{"type":50,"value":359},"If any are missing, use VS Code's ",{"type":44,"tag":59,"props":361,"children":363},{"className":362},[],[364],{"type":50,"value":365},"editFile",{"type":50,"value":367}," tool to insert ONLY the missing keys into the user's settings.json. This is safer than terminal writes for JSON files.",{"type":44,"tag":53,"props":369,"children":370},{},[371,377,379,385,387,393],{"type":44,"tag":372,"props":373,"children":374},"strong",{},[375],{"type":50,"value":376},"CRITICAL:",{"type":50,"value":378}," ",{"type":44,"tag":59,"props":380,"children":382},{"className":381},[],[383],{"type":50,"value":384},"settings.json",{"type":50,"value":386}," contains the user's entire VS Code configuration. You MUST NOT remove any existing content. Only ADD the specific missing keys. If ",{"type":44,"tag":59,"props":388,"children":390},{"className":389},[],[391],{"type":50,"value":392},"chat.tools.terminal.autoApprove",{"type":50,"value":394}," already exists with some rules, merge the new rules into the existing object — don't replace it.",{"type":44,"tag":53,"props":396,"children":397},{},[398],{"type":50,"value":399},"Required settings to add if missing:",{"type":44,"tag":270,"props":401,"children":405},{"className":402,"code":403,"language":404,"meta":278,"style":278},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"chat.customAgentInSubagent.enabled\": true,\n  \"github.copilot.chat.githubMcpServer.enabled\": true,\n  \"chat.tools.terminal.enableAutoApprove\": true,\n  \"chat.tools.terminal.autoApprove\": {\n    \"\u002F^gh api (?!.*--method (PATCH|PUT|POST|DELETE))\u002F\": true,\n    \"\u002F^gh search \u002F\": true,\n    \"gh issue view\": true,\n    \"gh pr view\": true,\n    \"gh --version\": true,\n    \"gh config set\": true\n  }\n}\n","json",[406],{"type":44,"tag":59,"props":407,"children":408},{"__ignoreMap":278},[409,421,451,476,501,525,552,577,602,627,652,678,687],{"type":44,"tag":410,"props":411,"children":414},"span",{"class":412,"line":413},"line",1,[415],{"type":44,"tag":410,"props":416,"children":418},{"style":417},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[419],{"type":50,"value":420},"{\n",{"type":44,"tag":410,"props":422,"children":424},{"class":412,"line":423},2,[425,430,436,441,446],{"type":44,"tag":410,"props":426,"children":427},{"style":417},[428],{"type":50,"value":429},"  \"",{"type":44,"tag":410,"props":431,"children":433},{"style":432},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[434],{"type":50,"value":435},"chat.customAgentInSubagent.enabled",{"type":44,"tag":410,"props":437,"children":438},{"style":417},[439],{"type":50,"value":440},"\"",{"type":44,"tag":410,"props":442,"children":443},{"style":417},[444],{"type":50,"value":445},":",{"type":44,"tag":410,"props":447,"children":448},{"style":417},[449],{"type":50,"value":450}," true,\n",{"type":44,"tag":410,"props":452,"children":454},{"class":412,"line":453},3,[455,459,464,468,472],{"type":44,"tag":410,"props":456,"children":457},{"style":417},[458],{"type":50,"value":429},{"type":44,"tag":410,"props":460,"children":461},{"style":432},[462],{"type":50,"value":463},"github.copilot.chat.githubMcpServer.enabled",{"type":44,"tag":410,"props":465,"children":466},{"style":417},[467],{"type":50,"value":440},{"type":44,"tag":410,"props":469,"children":470},{"style":417},[471],{"type":50,"value":445},{"type":44,"tag":410,"props":473,"children":474},{"style":417},[475],{"type":50,"value":450},{"type":44,"tag":410,"props":477,"children":479},{"class":412,"line":478},4,[480,484,489,493,497],{"type":44,"tag":410,"props":481,"children":482},{"style":417},[483],{"type":50,"value":429},{"type":44,"tag":410,"props":485,"children":486},{"style":432},[487],{"type":50,"value":488},"chat.tools.terminal.enableAutoApprove",{"type":44,"tag":410,"props":490,"children":491},{"style":417},[492],{"type":50,"value":440},{"type":44,"tag":410,"props":494,"children":495},{"style":417},[496],{"type":50,"value":445},{"type":44,"tag":410,"props":498,"children":499},{"style":417},[500],{"type":50,"value":450},{"type":44,"tag":410,"props":502,"children":503},{"class":412,"line":23},[504,508,512,516,520],{"type":44,"tag":410,"props":505,"children":506},{"style":417},[507],{"type":50,"value":429},{"type":44,"tag":410,"props":509,"children":510},{"style":432},[511],{"type":50,"value":392},{"type":44,"tag":410,"props":513,"children":514},{"style":417},[515],{"type":50,"value":440},{"type":44,"tag":410,"props":517,"children":518},{"style":417},[519],{"type":50,"value":445},{"type":44,"tag":410,"props":521,"children":522},{"style":417},[523],{"type":50,"value":524}," {\n",{"type":44,"tag":410,"props":526,"children":528},{"class":412,"line":527},6,[529,534,540,544,548],{"type":44,"tag":410,"props":530,"children":531},{"style":417},[532],{"type":50,"value":533},"    \"",{"type":44,"tag":410,"props":535,"children":537},{"style":536},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[538],{"type":50,"value":539},"\u002F^gh api (?!.*--method (PATCH|PUT|POST|DELETE))\u002F",{"type":44,"tag":410,"props":541,"children":542},{"style":417},[543],{"type":50,"value":440},{"type":44,"tag":410,"props":545,"children":546},{"style":417},[547],{"type":50,"value":445},{"type":44,"tag":410,"props":549,"children":550},{"style":417},[551],{"type":50,"value":450},{"type":44,"tag":410,"props":553,"children":555},{"class":412,"line":554},7,[556,560,565,569,573],{"type":44,"tag":410,"props":557,"children":558},{"style":417},[559],{"type":50,"value":533},{"type":44,"tag":410,"props":561,"children":562},{"style":536},[563],{"type":50,"value":564},"\u002F^gh search \u002F",{"type":44,"tag":410,"props":566,"children":567},{"style":417},[568],{"type":50,"value":440},{"type":44,"tag":410,"props":570,"children":571},{"style":417},[572],{"type":50,"value":445},{"type":44,"tag":410,"props":574,"children":575},{"style":417},[576],{"type":50,"value":450},{"type":44,"tag":410,"props":578,"children":580},{"class":412,"line":579},8,[581,585,590,594,598],{"type":44,"tag":410,"props":582,"children":583},{"style":417},[584],{"type":50,"value":533},{"type":44,"tag":410,"props":586,"children":587},{"style":536},[588],{"type":50,"value":589},"gh issue view",{"type":44,"tag":410,"props":591,"children":592},{"style":417},[593],{"type":50,"value":440},{"type":44,"tag":410,"props":595,"children":596},{"style":417},[597],{"type":50,"value":445},{"type":44,"tag":410,"props":599,"children":600},{"style":417},[601],{"type":50,"value":450},{"type":44,"tag":410,"props":603,"children":605},{"class":412,"line":604},9,[606,610,615,619,623],{"type":44,"tag":410,"props":607,"children":608},{"style":417},[609],{"type":50,"value":533},{"type":44,"tag":410,"props":611,"children":612},{"style":536},[613],{"type":50,"value":614},"gh pr view",{"type":44,"tag":410,"props":616,"children":617},{"style":417},[618],{"type":50,"value":440},{"type":44,"tag":410,"props":620,"children":621},{"style":417},[622],{"type":50,"value":445},{"type":44,"tag":410,"props":624,"children":625},{"style":417},[626],{"type":50,"value":450},{"type":44,"tag":410,"props":628,"children":630},{"class":412,"line":629},10,[631,635,640,644,648],{"type":44,"tag":410,"props":632,"children":633},{"style":417},[634],{"type":50,"value":533},{"type":44,"tag":410,"props":636,"children":637},{"style":536},[638],{"type":50,"value":639},"gh --version",{"type":44,"tag":410,"props":641,"children":642},{"style":417},[643],{"type":50,"value":440},{"type":44,"tag":410,"props":645,"children":646},{"style":417},[647],{"type":50,"value":445},{"type":44,"tag":410,"props":649,"children":650},{"style":417},[651],{"type":50,"value":450},{"type":44,"tag":410,"props":653,"children":655},{"class":412,"line":654},11,[656,660,665,669,673],{"type":44,"tag":410,"props":657,"children":658},{"style":417},[659],{"type":50,"value":533},{"type":44,"tag":410,"props":661,"children":662},{"style":536},[663],{"type":50,"value":664},"gh config set",{"type":44,"tag":410,"props":666,"children":667},{"style":417},[668],{"type":50,"value":440},{"type":44,"tag":410,"props":670,"children":671},{"style":417},[672],{"type":50,"value":445},{"type":44,"tag":410,"props":674,"children":675},{"style":417},[676],{"type":50,"value":677}," true\n",{"type":44,"tag":410,"props":679,"children":681},{"class":412,"line":680},12,[682],{"type":44,"tag":410,"props":683,"children":684},{"style":417},[685],{"type":50,"value":686},"  }\n",{"type":44,"tag":410,"props":688,"children":690},{"class":412,"line":689},13,[691],{"type":44,"tag":410,"props":692,"children":693},{"style":417},[694],{"type":50,"value":695},"}\n",{"type":44,"tag":53,"props":697,"children":698},{},[699],{"type":50,"value":700},"Tell the user what was added and why:",{"type":44,"tag":129,"props":702,"children":703},{},[704,717,730],{"type":44,"tag":89,"props":705,"children":706},{},[707,715],{"type":44,"tag":372,"props":708,"children":709},{},[710],{"type":44,"tag":59,"props":711,"children":713},{"className":712},[],[714],{"type":50,"value":435},{"type":50,"value":716}," — Required. Enables sub-agent delegation (reviewer, triager, memory, investigator).",{"type":44,"tag":89,"props":718,"children":719},{},[720,728],{"type":44,"tag":372,"props":721,"children":722},{},[723],{"type":44,"tag":59,"props":724,"children":726},{"className":725},[],[727],{"type":50,"value":463},{"type":50,"value":729}," — Enables richer features: PR reviews, comments, labels, assignees.",{"type":44,"tag":89,"props":731,"children":732},{},[733,741,743,751,753,759],{"type":44,"tag":372,"props":734,"children":735},{},[736],{"type":44,"tag":59,"props":737,"children":739},{"className":738},[],[740],{"type":50,"value":488},{"type":50,"value":742}," + ",{"type":44,"tag":372,"props":744,"children":745},{},[746],{"type":44,"tag":59,"props":747,"children":749},{"className":748},[],[750],{"type":50,"value":392},{"type":50,"value":752}," — Auto-approves read-only ",{"type":44,"tag":59,"props":754,"children":756},{"className":755},[],[757],{"type":50,"value":758},"gh",{"type":50,"value":760}," commands.",{"type":44,"tag":73,"props":762,"children":764},{"id":763},"step-3-enable-auto-approve",[765],{"type":50,"value":766},"Step 3: Enable auto-approve",{"type":44,"tag":53,"props":768,"children":769},{},[770],{"type":50,"value":771},"After updating settings, tell the user:",{"type":44,"tag":53,"props":773,"children":774},{},[775],{"type":50,"value":776},"\"✅ Settings updated! One last step — I need to enable auto-approve so read-only commands don't prompt you every time.",{"type":44,"tag":53,"props":778,"children":779},{},[780,782,787,789,794,796,801],{"type":50,"value":781},"👉 When you see the ",{"type":44,"tag":372,"props":783,"children":784},{},[785],{"type":50,"value":786},"'Run command?'",{"type":50,"value":788}," prompt below, click the ",{"type":44,"tag":372,"props":790,"children":791},{},[792],{"type":50,"value":793},"Allow ▾",{"type":50,"value":795}," dropdown and select ",{"type":44,"tag":372,"props":797,"children":798},{},[799],{"type":50,"value":800},"'Enable Auto Approve'",{"type":50,"value":802},".",{"type":44,"tag":53,"props":804,"children":805},{},[806,808,813],{"type":50,"value":807},"This is a one-time opt-in. After this, read-only ",{"type":44,"tag":59,"props":809,"children":811},{"className":810},[],[812],{"type":50,"value":758},{"type":50,"value":814}," commands will run automatically.\"",{"type":44,"tag":53,"props":816,"children":817},{},[818],{"type":50,"value":819},"Then run:",{"type":44,"tag":270,"props":821,"children":824},{"className":822,"code":823,"language":50},[273],"gh api \u002Fnotifications --jq 'length'\n",[825],{"type":44,"tag":59,"props":826,"children":827},{"__ignoreMap":278},[828],{"type":50,"value":823},{"type":44,"tag":53,"props":830,"children":831},{},[832],{"type":50,"value":833},"This command matches the auto-approve rules. Wait for the user to click \"Enable Auto Approve\" before proceeding.",{"type":44,"tag":73,"props":835,"children":837},{"id":836},"step-4-verify-github-mcp-server",[838],{"type":50,"value":839},"Step 4: Verify GitHub MCP server",{"type":44,"tag":53,"props":841,"children":842},{},[843,845,850],{"type":50,"value":844},"Check if the GitHub MCP server is running. If ",{"type":44,"tag":59,"props":846,"children":848},{"className":847},[],[849],{"type":50,"value":463},{"type":50,"value":851}," was just added, tell the user:",{"type":44,"tag":53,"props":853,"children":854},{},[855],{"type":50,"value":856},"\"Make sure the GitHub MCP server is started and running. This gives you access to richer features like PR reviews, comments, and labels.\"",{"type":44,"tag":73,"props":858,"children":860},{"id":859},"step-5-save-setup-status",[861],{"type":50,"value":862},"Step 5: Save setup status",{"type":44,"tag":53,"props":864,"children":865},{},[866],{"type":50,"value":867},"After setup is complete, save to memory that setup has been completed:",{"type":44,"tag":53,"props":869,"children":870},{},[871,873,879],{"type":50,"value":872},"Use the ",{"type":44,"tag":59,"props":874,"children":876},{"className":875},[],[877],{"type":50,"value":878},"inbox-memory",{"type":50,"value":880}," skill to save setup status:",{"type":44,"tag":53,"props":882,"children":883},{},[884,886],{"type":50,"value":885},"Write to memory: ",{"type":44,"tag":59,"props":887,"children":889},{"className":888},[],[890],{"type":50,"value":891},"\"# Inbox Memory\\n\\n## Setup State\\n- Setup completed on \u003Cdate>\\n- All required VS Code settings are present and verified\\n\"",{"type":44,"tag":53,"props":893,"children":894},{},[895,897,903,905,911],{"type":50,"value":896},"If the memory file already exists, use ",{"type":44,"tag":59,"props":898,"children":900},{"className":899},[],[901],{"type":50,"value":902},"delete",{"type":50,"value":904}," first, then ",{"type":44,"tag":59,"props":906,"children":908},{"className":907},[],[909],{"type":50,"value":910},"create",{"type":50,"value":912}," with the merged content.",{"type":44,"tag":914,"props":915,"children":916},"style",{},[917],{"type":50,"value":918},"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":920,"total":1007},[921,940,955,967,978,986,995],{"slug":922,"name":922,"fn":923,"description":924,"org":925,"tags":926,"stars":19,"repoUrl":20,"updatedAt":939},"council-plan","perform multi-model council planning","Multi-model council planning for implementation and architecture decisions. Use when the user asks to 'plan with council', 'multi-model plan', 'get different perspectives on approach', 'council plan', or wants multiple models to independently propose plans for the same task. Also use when the user asks to 'debate approaches', 'compare strategies', or 'cross-plan'.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[927,930,933,936],{"name":928,"slug":929,"type":15},"Architecture","architecture",{"name":931,"slug":932,"type":15},"Engineering","engineering",{"name":934,"slug":935,"type":15},"Multi-Agent","multi-agent",{"name":937,"slug":938,"type":15},"System Design","system-design","2026-05-13T06:14:08.529779",{"slug":941,"name":941,"fn":942,"description":943,"org":944,"tags":945,"stars":19,"repoUrl":20,"updatedAt":954},"council-review","perform multi-model council code reviews","Multi-model council review for diffs, pull requests, and risky changes. It is CRITICAL to use this skill after ANY non-trivial development phase — changes are usually not 100% correct. Development CANNOT be called done until the code has been reviewed. Use whenever the user asks for a review, PR feedback, a bug hunt in recent edits, or wants multiple models to inspect the same change independently. Also use when the user asks to 'discuss findings', 'cross-review', or 'debate' review results between models.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[946,949,950,951],{"name":947,"slug":948,"type":15},"Code Review","code-review",{"name":931,"slug":932,"type":15},{"name":934,"slug":935,"type":15},{"name":952,"slug":953,"type":15},"Pull Requests","pull-requests","2026-05-13T06:14:07.202801",{"slug":956,"name":956,"fn":957,"description":958,"org":959,"tags":960,"stars":19,"repoUrl":20,"updatedAt":966},"follow-goal","manage agent goals and stopping conditions","Give the agent a durable objective with a verifiable stopping condition, then keep iterating across turns until that condition is met. Use when the user says 'set a goal', 'follow a goal', '\u002Fgoal …', 'keep working until …', or asks for a long-running task with a clear end state (migrations, large refactors, retry-until-green loops, experiments).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[961,964,965],{"name":962,"slug":963,"type":15},"Agents","agents",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-07T06:54:04.263607",{"slug":968,"name":968,"fn":969,"description":970,"org":971,"tags":972,"stars":19,"repoUrl":20,"updatedAt":977},"inbox-add-reaction","add reactions to GitHub issues and PRs","Add a reaction to a GitHub issue or pull request",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[973,976],{"name":974,"slug":975,"type":15},"GitHub","github",{"name":952,"slug":953,"type":15},"2026-07-07T06:53:33.958298",{"slug":291,"name":291,"fn":979,"description":980,"org":981,"tags":982,"stars":19,"repoUrl":20,"updatedAt":985},"install GitHub CLI","Install the GitHub CLI (gh) if not already installed",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[983,984],{"name":17,"slug":18,"type":15},{"name":974,"slug":975,"type":15},"2026-05-13T06:14:05.911879",{"slug":987,"name":987,"fn":988,"description":989,"org":990,"tags":991,"stars":19,"repoUrl":20,"updatedAt":994},"inbox-mark-all-read","mark GitHub notifications as read","Mark all GitHub notifications as read",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[992,993],{"name":974,"slug":975,"type":15},{"name":13,"slug":14,"type":15},"2026-05-13T06:14:02.019522",{"slug":878,"name":878,"fn":996,"description":997,"org":998,"tags":999,"stars":19,"repoUrl":20,"updatedAt":1006},"manage agent memory and rules","Read and write agent storage — memory and rules with environment-aware fallback",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1000,1001,1004],{"name":962,"slug":963,"type":15},{"name":1002,"slug":1003,"type":15},"Configuration","configuration",{"name":1005,"slug":37,"type":15},"Memory","2026-05-13T06:14:00.740431",14,{"items":1009,"total":1198},[1010,1030,1049,1070,1085,1102,1113,1126,1141,1154,1173,1186],{"slug":1011,"name":1011,"fn":1012,"description":1013,"org":1014,"tags":1015,"stars":1027,"repoUrl":1028,"updatedAt":1029},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1016,1017,1020,1021,1024],{"name":931,"slug":932,"type":15},{"name":1018,"slug":1019,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1022,"slug":1023,"type":15},"Project Management","project-management",{"name":1025,"slug":1026,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1031,"name":1031,"fn":1032,"description":1033,"org":1034,"tags":1035,"stars":1046,"repoUrl":1047,"updatedAt":1048},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1036,1039,1040,1043],{"name":1037,"slug":1038,"type":15},".NET","net",{"name":962,"slug":963,"type":15},{"name":1041,"slug":1042,"type":15},"Azure","azure",{"name":1044,"slug":1045,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1050,"name":1050,"fn":1051,"description":1052,"org":1053,"tags":1054,"stars":1046,"repoUrl":1047,"updatedAt":1069},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1055,1058,1059,1062,1065,1066],{"name":1056,"slug":1057,"type":15},"Analytics","analytics",{"name":1041,"slug":1042,"type":15},{"name":1060,"slug":1061,"type":15},"Data Analysis","data-analysis",{"name":1063,"slug":1064,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1067,"slug":1068,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1071,"name":1071,"fn":1072,"description":1073,"org":1074,"tags":1075,"stars":1046,"repoUrl":1047,"updatedAt":1084},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1076,1079,1080,1081],{"name":1077,"slug":1078,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1041,"slug":1042,"type":15},{"name":1063,"slug":1064,"type":15},{"name":1082,"slug":1083,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1086,"name":1086,"fn":1087,"description":1088,"org":1089,"tags":1090,"stars":1046,"repoUrl":1047,"updatedAt":1101},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1091,1092,1095,1096,1097,1100],{"name":1041,"slug":1042,"type":15},{"name":1093,"slug":1094,"type":15},"Compliance","compliance",{"name":1044,"slug":1045,"type":15},{"name":9,"slug":8,"type":15},{"name":1098,"slug":1099,"type":15},"Python","python",{"name":1082,"slug":1083,"type":15},"2026-07-18T05:14:23.017504",{"slug":1103,"name":1103,"fn":1104,"description":1105,"org":1106,"tags":1107,"stars":1046,"repoUrl":1047,"updatedAt":1112},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1108,1109,1110,1111],{"name":1056,"slug":1057,"type":15},{"name":1041,"slug":1042,"type":15},{"name":1044,"slug":1045,"type":15},{"name":1098,"slug":1099,"type":15},"2026-07-31T05:54:29.068751",{"slug":1114,"name":1114,"fn":1115,"description":1116,"org":1117,"tags":1118,"stars":1046,"repoUrl":1047,"updatedAt":1125},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1119,1122,1123,1124],{"name":1120,"slug":1121,"type":15},"API Development","api-development",{"name":1041,"slug":1042,"type":15},{"name":9,"slug":8,"type":15},{"name":1098,"slug":1099,"type":15},"2026-07-18T05:14:16.988376",{"slug":1127,"name":1127,"fn":1128,"description":1129,"org":1130,"tags":1131,"stars":1046,"repoUrl":1047,"updatedAt":1140},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1132,1133,1136,1139],{"name":1041,"slug":1042,"type":15},{"name":1134,"slug":1135,"type":15},"Computer Vision","computer-vision",{"name":1137,"slug":1138,"type":15},"Images","images",{"name":1098,"slug":1099,"type":15},"2026-07-18T05:14:18.007737",{"slug":1142,"name":1142,"fn":1143,"description":1144,"org":1145,"tags":1146,"stars":1046,"repoUrl":1047,"updatedAt":1153},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1147,1148,1149,1152],{"name":1041,"slug":1042,"type":15},{"name":1002,"slug":1003,"type":15},{"name":1150,"slug":1151,"type":15},"Feature Flags","feature-flags",{"name":1063,"slug":1064,"type":15},"2026-07-03T16:32:01.278468",{"slug":1155,"name":1155,"fn":1156,"description":1157,"org":1158,"tags":1159,"stars":1046,"repoUrl":1047,"updatedAt":1172},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1160,1163,1166,1169],{"name":1161,"slug":1162,"type":15},"Cosmos DB","cosmos-db",{"name":1164,"slug":1165,"type":15},"Database","database",{"name":1167,"slug":1168,"type":15},"NoSQL","nosql",{"name":1170,"slug":1171,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1174,"name":1174,"fn":1156,"description":1175,"org":1176,"tags":1177,"stars":1046,"repoUrl":1047,"updatedAt":1185},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1178,1179,1180,1181,1182],{"name":1161,"slug":1162,"type":15},{"name":1164,"slug":1165,"type":15},{"name":9,"slug":8,"type":15},{"name":1167,"slug":1168,"type":15},{"name":1183,"slug":1184,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1187,"name":1187,"fn":1188,"description":1189,"org":1190,"tags":1191,"stars":1046,"repoUrl":1047,"updatedAt":1197},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1192,1193,1194,1195,1196],{"name":1041,"slug":1042,"type":15},{"name":1161,"slug":1162,"type":15},{"name":1164,"slug":1165,"type":15},{"name":1063,"slug":1064,"type":15},{"name":1167,"slug":1168,"type":15},"2026-05-13T06:14:17.582229",267]