[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R7BVH5P1F1D3BF4RG00S7S":3,"skill-same:01M6R7BVH5P1F1D3BF4RG00S7S":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":13,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6R7BVH5P1F1D3BF4RG00S7S","github-multi-account",null,"Detect and set up account-locked gh aliases for multi-account GitHub. The AI reads this skill, detects accounts, asks the user which is personal\u002Fwork, and runs the setup automatically.","barichter\u002Fsquad","barichter","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96797186?v=4","01M6R712K8ESMDF089BFENBR16","01M6R712R74BSQQSG2GTXBWR8P",0,"MIT","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Fpackages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fgithub-multi-account\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"github","github multi account","multi","multi account","for","personal","high","which","tree","detect","main","up","user","work","gh","SET","plugins","https","squad","setup","2026-11-10 10:12:30",false,"---\nname: github-multi-account\ndescription: Detect and set up account-locked gh aliases for multi-account GitHub. The AI reads this skill, detects accounts, asks the user which is personal\u002Fwork, and runs the setup automatically.\nconfidence: high\nsource: https:\u002F\u002Fgithub.com\u002Ftamirdresher\u002Fsquad-skills\u002Ftree\u002Fmain\u002Fplugins\u002Fgithub-multi-account\nauthor: tamirdresher\n---\n\n# GitHub Multi-Account — AI-Driven Setup\n\n## When to Activate\nWhen the user has multiple GitHub accounts (check with `gh auth status`). If you see 2+ accounts listed, this skill applies.\n\n## What to Do (as the AI agent)\n\n### Step 1: Detect accounts\nRun: `gh auth status`\nLook for multiple accounts. Note which usernames are listed.\n\n### Step 2: Ask the user\nAsk: \"I see you have multiple GitHub accounts: {list them}. Which one is your personal account and which is your work\u002FEMU account?\"\n\n### Step 3: Run the setup automatically\nOnce the user confirms, do ALL of this for them:\n\n```powershell\n# 1. Define the functions\n$personal = \"THEIR_PERSONAL_USERNAME\"\n$work = \"THEIR_WORK_USERNAME\"\n\n# 2. Add to PowerShell profile\n$profilePath = $PROFILE.CurrentUserAllHosts\nif (!(Test-Path $profilePath)) { New-Item -Path $profilePath -Force | Out-Null }\n$existing = Get-Content $profilePath -Raw -ErrorAction SilentlyContinue\nif ($existing -notmatch \"gh-personal\") {\n    $block = @\"\n\n# === GitHub Multi-Account Aliases ===\nfunction gh-personal { gh auth switch --user $personal 2>`$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user $work 2>`$null | Out-Null; gh @args }\nSet-Alias ghp gh-personal\nSet-Alias ghw gh-work\n\"@\n    Add-Content -Path $profilePath -Value $block\n}\n\n# 3. Create CMD wrappers\n$binDir = Join-Path $env:USERPROFILE \".squad\\bin\"\nif (!(Test-Path $binDir)) { New-Item -ItemType Directory -Path $binDir -Force | Out-Null }\n\"@echo off`ngh auth switch --user $personal >nul 2>&1`ngh %*\" | Out-File \"$binDir\\ghp.cmd\" -Encoding ascii\n\"@echo off`ngh auth switch --user $work >nul 2>&1`ngh %*\" | Out-File \"$binDir\\ghw.cmd\" -Encoding ascii\n\n# 4. Add to PATH\n$userPath = [Environment]::GetEnvironmentVariable(\"PATH\", \"User\")\nif ($userPath -notmatch [regex]::Escape($binDir)) {\n    [Environment]::SetEnvironmentVariable(\"PATH\", \"$binDir;$userPath\", \"User\")\n    $env:PATH = \"$binDir;$env:PATH\"\n}\n\n# 5. Load in current session\nfunction gh-personal { gh auth switch --user $personal 2>$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user $work 2>$null | Out-Null; gh @args }\nSet-Alias ghp gh-personal\nSet-Alias ghw gh-work\n```\n\n### Step 4: Verify for the user\nRun these and show the results:\n```powershell\nghp api user --jq '.login'   # should show personal username\nghw api user --jq '.login'   # should show work username\n```\n\n### Step 5: Tell the user\n\"All set! From now on use `ghp` for personal repos and `ghw` for work repos. I'll use them too.\"\n\n## After Setup — Usage Rules\n\n1. **NEVER** use bare `gh` for repo operations — always `ghp` or `ghw`\n2. **NEVER** manually `gh auth switch` — the aliases handle it\n3. Determine alias by repo owner:\n   - Personal account repos → `ghp` \u002F `gh-personal`\n   - Work\u002FEMU account repos → `ghw` \u002F `gh-work`\n\n## Repo-Specific Account Binding\n\nThis repo (`bradygaster\u002Fsquad`) is bound to the **bradygaster** (personal) account.\nAll `gh` operations in this repo MUST use `ghp` \u002F `gh-personal`.\n\n## For Squad Agents\nAt the TOP of any script touching GitHub, define:\n```powershell\nfunction gh-personal { gh auth switch --user bradygaster 2>$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user bradyg_microsoft 2>$null | Out-Null; gh @args }\n```\n","# GitHub Multi-Account — AI-Driven Setup\n\n## When to Activate\nWhen the user has multiple GitHub accounts (check with `gh auth status`). If you see 2+ accounts listed, this skill applies.\n\n## What to Do (as the AI agent)\n\n### Step 1: Detect accounts\nRun: `gh auth status`\nLook for multiple accounts. Note which usernames are listed.\n\n### Step 2: Ask the user\nAsk: \"I see you have multiple GitHub accounts: {list them}. Which one is your personal account and which is your work\u002FEMU account?\"\n\n### Step 3: Run the setup automatically\nOnce the user confirms, do ALL of this for them:\n\n```powershell\n# 1. Define the functions\n$personal = \"THEIR_PERSONAL_USERNAME\"\n$work = \"THEIR_WORK_USERNAME\"\n\n# 2. Add to PowerShell profile\n$profilePath = $PROFILE.CurrentUserAllHosts\nif (!(Test-Path $profilePath)) { New-Item -Path $profilePath -Force | Out-Null }\n$existing = Get-Content $profilePath -Raw -ErrorAction SilentlyContinue\nif ($existing -notmatch \"gh-personal\") {\n    $block = @\"\n\n# === GitHub Multi-Account Aliases ===\nfunction gh-personal { gh auth switch --user $personal 2>`$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user $work 2>`$null | Out-Null; gh @args }\nSet-Alias ghp gh-personal\nSet-Alias ghw gh-work\n\"@\n    Add-Content -Path $profilePath -Value $block\n}\n\n# 3. Create CMD wrappers\n$binDir = Join-Path $env:USERPROFILE \".squad\\bin\"\nif (!(Test-Path $binDir)) { New-Item -ItemType Directory -Path $binDir -Force | Out-Null }\n\"@echo off`ngh auth switch --user $personal >nul 2>&1`ngh %*\" | Out-File \"$binDir\\ghp.cmd\" -Encoding ascii\n\"@echo off`ngh auth switch --user $work >nul 2>&1`ngh %*\" | Out-File \"$binDir\\ghw.cmd\" -Encoding ascii\n\n# 4. Add to PATH\n$userPath = [Environment]::GetEnvironmentVariable(\"PATH\", \"User\")\nif ($userPath -notmatch [regex]::Escape($binDir)) {\n    [Environment]::SetEnvironmentVariable(\"PATH\", \"$binDir;$userPath\", \"User\")\n    $env:PATH = \"$binDir;$env:PATH\"\n}\n\n# 5. Load in current session\nfunction gh-personal { gh auth switch --user $personal 2>$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user $work 2>$null | Out-Null; gh @args }\nSet-Alias ghp gh-personal\nSet-Alias ghw gh-work\n```\n\n### Step 4: Verify for the user\nRun these and show the results:\n```powershell\nghp api user --jq '.login'   # should show personal username\nghw api user --jq '.login'   # should show work username\n```\n\n### Step 5: Tell the user\n\"All set! From now on use `ghp` for personal repos and `ghw` for work repos. I'll use them too.\"\n\n## After Setup — Usage Rules\n\n1. **NEVER** use bare `gh` for repo operations — always `ghp` or `ghw`\n2. **NEVER** manually `gh auth switch` — the aliases handle it\n3. Determine alias by repo owner:\n   - Personal account repos → `ghp` \u002F `gh-personal`\n   - Work\u002FEMU account repos → `ghw` \u002F `gh-work`\n\n## Repo-Specific Account Binding\n\nThis repo (`bradygaster\u002Fsquad`) is bound to the **bradygaster** (personal) account.\nAll `gh` operations in this repo MUST use `ghp` \u002F `gh-personal`.\n\n## For Squad Agents\nAt the TOP of any script touching GitHub, define:\n```powershell\nfunction gh-personal { gh auth switch --user bradygaster 2>$null | Out-Null; gh @args }\nfunction gh-work { gh auth switch --user bradyg_microsoft 2>$null | Out-Null; gh @args }\n```\n",{"name":5,"author":43,"source":44,"confidence":24,"description":7},"tamirdresher","https:\u002F\u002Fgithub.com\u002Ftamirdresher\u002Fsquad-skills\u002Ftree\u002Fmain\u002Fplugins\u002Fgithub-multi-account","dev","ec19f5e92325e634e3c6eff500e3cefa56131cc9","packages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fgithub-multi-account","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad","https:\u002F\u002Fgithub.com\u002Fbarichter","2026-04-13 22:53:46",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add barichter\u002Fsquad --skill github-multi-account",{"tool":57,"command":58},"bunx","bunx skills add barichter\u002Fsquad --skill github-multi-account",{"tool":60,"command":61},"pnpm","pnpm dlx skills add barichter\u002Fsquad --skill github-multi-account","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Fpackages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fgithub-multi-account\u002FSKILL.md",true,[],[66,82,90,105,128,134],{"skillNo":67,"name":68,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":76,"publishedAt":38},"01M6R7VE8SZD1E37WWJN4ZFPWB","My Skill","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[71],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[77,78,79,80,81],"my","my skill","tester","vitest","testing",{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":38},"01M6R7VD19M4TMAA74XGD6QSZX","bad-skill","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[],[88,89],"bad skill","bad",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":38},"01M6R7V9TYTX6Z621V6RWA51G6","squad-conventions","Core conventions and patterns used in the Squad codebase","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fsquad-conventions\u002FSKILL.md",[],[97,36,98,99,100,101,102,103,24,104],"squad conventions","conventions","project-conventions","core","patterns","project","manual","codebase",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":38},"01M6R7TTF0ABMGSVWASVYF6D51","rework-rate","Measure and interpret PR rework rate — the emerging 5th DORA metric","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Frework-rate\u002FSKILL.md",[],[112,113,114,115,116,117,118,119,120,24,36,121,122,123,124,125,126,127,103],"rate","rework rate","metric","efficiency","prs","when","pr","review","code quality","code","code-review","metrics","health","team","analyze","quality",{"skillNo":129,"name":130,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":38},"01M6R7TRZPET44JRCSQF08EEA8","nap","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fnap\u002FSKILL.md",[],[130],{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":38},"01M6R7TK10WCT77A52E27GR5R3","{skill-name}","{what this skill teaches agents}","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskill.md",[140],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},[142,143,144,145,146,147,148,149,150,151,103,24,81],"{skill name}","skill name","name","design","api","how","error-handling","learned","error","api-design"]