[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R7QJTD0GAFRGPAC7ZCPXGH":3,"skill-same:01M6R7QJTD0GAFRGPAC7ZCPXGH":44},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":12,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M6R7QJTD0GAFRGPAC7ZCPXGH","personal-squad",null,"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-sdk\u002Ftemplates\u002Fskills\u002Fpersonal-squad\u002FSKILL.md",[],[17,18,19],"personal","squad","personal squad","2026-11-10 10:12:30",false,"# Personal Squad — Skill Document\n\n## What is a Personal Squad?\n\nA personal squad is a user-level collection of AI agents that travel with you across projects. Unlike project agents (defined in a project's `.squad\u002F` directory), personal agents live in your global config directory and are automatically discovered when you start a squad session.\n\n## Directory Structure\n\n```\n~\u002F.config\u002Fsquad\u002Fpersonal-squad\u002F    # Linux\u002FmacOS\n%APPDATA%\u002Fsquad\u002Fpersonal-squad\u002F    # Windows\n├── agents\u002F\n│   ├── {agent-name}\u002F\n│   │   ├── charter.md\n│   │   └── history.md\n│   └── ...\n└── config.json                    # Optional: personal squad config\n```\n\n## How It Works\n\n1. **Ambient Discovery:** When Squad starts a session, it checks for a personal squad directory\n2. **Merge:** Personal agents are merged into the session cast alongside project agents\n3. **Ghost Protocol:** Personal agents can read project state but not write to it\n4. **Kill Switch:** Set `SQUAD_NO_PERSONAL=1` to disable ambient discovery\n\n## Commands\n\n- `squad personal init` — Bootstrap a personal squad directory\n- `squad personal list` — List your personal agents\n- `squad personal add {name} --role {role}` — Add a personal agent\n- `squad personal remove {name}` — Remove a personal agent\n- `squad cast` — Show the current session cast (project + personal)\n\n## Ghost Protocol\n\nSee `templates\u002Fghost-protocol.md` for the full rules. Key points:\n- Personal agents advise; project agents execute\n- No writes to project `.squad\u002F` state\n- Transparent origin tagging in logs\n- Project agents take precedence on conflicts\n\n## Configuration\n\nOptional `config.json` in the personal squad directory:\n```json\n{\n  \"defaultModel\": \"auto\",\n  \"ghostProtocol\": true,\n  \"agents\": {}\n}\n```\n\n## Environment Variables\n\n- `SQUAD_NO_PERSONAL` — Set to any value to disable personal squad discovery\n- `SQUAD_PERSONAL_DIR` — Override the default personal squad directory path\n",{},"dev","ec19f5e92325e634e3c6eff500e3cefa56131cc9","packages\u002Fsquad-sdk\u002Ftemplates\u002Fskills\u002Fpersonal-squad","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad","https:\u002F\u002Fgithub.com\u002Fbarichter","2026-04-13 22:53:46",{"source":7,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add barichter\u002Fsquad --skill personal-squad",{"tool":36,"command":37},"bunx","bunx skills add barichter\u002Fsquad --skill personal-squad",{"tool":39,"command":40},"pnpm","pnpm dlx skills add barichter\u002Fsquad --skill personal-squad","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Fpackages\u002Fsquad-sdk\u002Ftemplates\u002Fskills\u002Fpersonal-squad\u002FSKILL.md",true,[],[45,61,69,85,108,114],{"skillNo":46,"name":47,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":48,"categories":49,"keywords":55,"publishedAt":20},"01M6R7VE8SZD1E37WWJN4ZFPWB","My Skill","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[50],{"categoryNo":51,"categoryName":52,"taxonomyType":53,"taxonomyTypeDesc":54},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[56,57,58,59,60],"my","my skill","tester","vitest","testing",{"skillNo":62,"name":63,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":20},"01M6R7VD19M4TMAA74XGD6QSZX","bad-skill","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[],[67,68],"bad skill","bad",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":20},"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",[],[76,18,77,78,79,80,81,82,83,84],"squad conventions","conventions","project-conventions","core","patterns","project","manual","high","codebase",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":20},"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",[],[92,93,94,95,96,97,98,99,100,83,18,101,102,103,104,105,106,107,82],"rate","rework rate","metric","efficiency","prs","when","pr","review","code quality","code","code-review","metrics","health","team","analyze","quality",{"skillNo":109,"name":110,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":20},"01M6R7TRZPET44JRCSQF08EEA8","nap","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fnap\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":20},"01M6R7TK10WCT77A52E27GR5R3","{skill-name}","{what this skill teaches agents}","https:\u002F\u002Fgithub.com\u002Fbarichter\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskill.md",[120],{"categoryNo":51,"categoryName":52,"taxonomyType":53,"taxonomyTypeDesc":54},[122,123,124,125,126,127,128,129,130,131,82,83,60],"{skill name}","skill name","name","design","api","how","error-handling","learned","error","api-design"]