[{"data":1,"prerenderedAt":733},["ShallowReactive",2],{"navigation_docs":3,"-advanced-contributing":125,"-advanced-contributing-surround":728},[4,28,62,94,100],{"title":5,"path":6,"stem":7,"children":8,"order":11,"icon":27},"Getting Started","/getting-started","1.getting-started/index",[9,12,17,22],{"title":10,"path":6,"stem":7,"order":11},"What is Gangsta?",1,{"title":13,"path":14,"stem":15,"order":16},"Installation","/getting-started/installation","1.getting-started/installation",2,{"title":18,"path":19,"stem":20,"order":21},"Quickstart — Your First Heist","/getting-started/quickstart","1.getting-started/quickstart",3,{"title":23,"path":24,"stem":25,"order":26},"The 1% Rule","/getting-started/the-1-percent-rule","1.getting-started/the-1-percent-rule",4,"i-lucide-rocket",{"title":29,"path":30,"stem":31,"children":32,"order":11,"icon":61},"Core Concepts","/core-concepts","2.core-concepts/index",[33,34,39,43,48,52,56],{"title":29,"path":30,"stem":31,"order":11},{"title":35,"path":36,"stem":37,"order":38},"Intent Routing","/core-concepts/intent-routing","2.core-concepts/intent-routing",5,{"title":40,"path":41,"stem":42,"order":26},"Omerta — The Five Laws","/core-concepts/omerta","2.core-concepts/omerta",{"title":44,"path":45,"stem":46,"order":47},"Spec-Driven Development","/core-concepts/spec-driven-dev","2.core-concepts/spec-driven-dev",7,{"title":49,"path":50,"stem":51,"order":16},"The Borgata Hierarchy","/core-concepts/the-borgata","2.core-concepts/the-borgata",{"title":53,"path":54,"stem":55,"order":21},"The Heist Pipeline","/core-concepts/the-heist","2.core-concepts/the-heist",{"title":57,"path":58,"stem":59,"order":60},"The Ledger","/core-concepts/the-ledger","2.core-concepts/the-ledger",6,"i-lucide-brain",{"title":63,"icon":64,"path":65,"stem":66,"children":67},"Heist Pipeline","i-lucide-workflow","/heist-pipeline","3.heist-pipeline",[68,70,74,78,82,86,90],{"title":53,"path":65,"stem":69,"order":11},"3.heist-pipeline/index",{"title":71,"path":72,"stem":73,"order":16},"Reconnaissance","/heist-pipeline/reconnaissance","3.heist-pipeline/1.reconnaissance",{"title":75,"path":76,"stem":77,"order":21},"The Grilling","/heist-pipeline/the-grilling","3.heist-pipeline/2.the-grilling",{"title":79,"path":80,"stem":81,"order":26},"The Sit-Down","/heist-pipeline/the-sit-down","3.heist-pipeline/3.the-sit-down",{"title":83,"path":84,"stem":85,"order":38},"Resource Development","/heist-pipeline/resource-development","3.heist-pipeline/4.resource-development",{"title":87,"path":88,"stem":89,"order":60},"The Hit","/heist-pipeline/the-hit","3.heist-pipeline/5.the-hit",{"title":91,"path":92,"stem":93,"order":47},"Laundering","/heist-pipeline/laundering","3.heist-pipeline/6.laundering",{"title":95,"path":96,"stem":97,"children":98},"Skills Reference","/skills","4.skills/index",[99],{"title":95,"path":96,"stem":97},{"title":101,"icon":102,"path":103,"stem":104,"children":105},"Advanced","i-lucide-zap","/advanced","5.advanced",[106,109,113,117,121],{"title":107,"path":103,"stem":108,"order":11},"Advanced Topics","5.advanced/index",{"title":110,"path":111,"stem":112,"order":26},"Checkpoint Recovery","/advanced/checkpoint-recovery","5.advanced/checkpoint-recovery",{"title":114,"path":115,"stem":116,"order":38},"Contributing","/advanced/contributing","5.advanced/contributing",{"title":118,"path":119,"stem":120,"order":16},"Writing Custom Skills","/advanced/custom-skills","5.advanced/custom-skills",{"title":122,"path":123,"stem":124,"order":21},"Multi-Agent Patterns","/advanced/multi-agent-patterns","5.advanced/multi-agent-patterns",{"id":126,"title":114,"body":127,"description":721,"extension":722,"links":723,"meta":724,"navigation":725,"path":115,"seo":726,"stem":116,"__hash__":727},"docs/5.advanced/contributing.md",{"type":128,"value":129,"toc":706},"minimark",[130,134,138,143,172,176,181,228,232,248,252,255,452,456,459,509,513,516,524,528,553,557,579,586,612,616,619,651,655,658,672,675,679,702],[131,132,114],"h1",{"id":133},"contributing",[135,136,137],"p",{},"Gangsta is open source (MIT) and welcomes contributions — especially new skills that follow the established patterns.",[139,140,142],"h2",{"id":141},"what-you-can-contribute","What You Can Contribute",[144,145,146,154,160,166],"ul",{},[147,148,149,153],"li",{},[150,151,152],"strong",{},"New skills"," — Following the SKILL.md format",[147,155,156,159],{},[150,157,158],{},"Skill improvements"," — Enhancements to existing skills",[147,161,162,165],{},[150,163,164],{},"Documentation fixes"," — Corrections and clarifications",[147,167,168,171],{},[150,169,170],{},"Bug reports"," — Issues with skill behavior",[139,173,175],{"id":174},"creating-a-skill-for-contribution","Creating a Skill for Contribution",[177,178,180],"h3",{"id":179},"_1-fork-the-repository","1. Fork the Repository",[182,183,188],"pre",{"className":184,"code":185,"language":186,"meta":187,"style":187},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https://github.com/kucherenko/gangsta.git\ncd gangsta\ngit checkout -b my-new-skill\n","bash","",[189,190,191,206,215],"code",{"__ignoreMap":187},[192,193,195,199,203],"span",{"class":194,"line":11},"line",[192,196,198],{"class":197},"sBMFI","git",[192,200,202],{"class":201},"sfazB"," clone",[192,204,205],{"class":201}," https://github.com/kucherenko/gangsta.git\n",[192,207,208,212],{"class":194,"line":16},[192,209,211],{"class":210},"s2Zo4","cd",[192,213,214],{"class":201}," gangsta\n",[192,216,217,219,222,225],{"class":194,"line":21},[192,218,198],{"class":197},[192,220,221],{"class":201}," checkout",[192,223,224],{"class":201}," -b",[192,226,227],{"class":201}," my-new-skill\n",[177,229,231],{"id":230},"_2-create-the-skill-directory","2. Create the Skill Directory",[182,233,235],{"className":184,"code":234,"language":186,"meta":187,"style":187},"mkdir -p skills/my-new-skill\n",[189,236,237],{"__ignoreMap":187},[192,238,239,242,245],{"class":194,"line":11},[192,240,241],{"class":197},"mkdir",[192,243,244],{"class":201}," -p",[192,246,247],{"class":201}," skills/my-new-skill\n",[177,249,251],{"id":250},"_3-write-the-skillmd","3. Write the SKILL.md",[135,253,254],{},"Every skill must follow this structure:",[182,256,260],{"className":257,"code":258,"language":259,"meta":187,"style":187},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nname: my-new-skill\ndescription: |\n  Clear description of what the skill does and when to invoke it.\n  This is what AI agents read to decide whether to use this skill.\ntype: flexible  # or: rigid\n---\n\n# My New Skill\n\n## When to Invoke\n\nSpecific conditions under which this skill should be activated.\n\n## Process\n\n1. Step one — describe what happens\n2. Step two — describe what happens next\n3. Step three — describe the output\n\n## Checklist Before Proceeding\n\n- [ ] Verification item one\n- [ ] Verification item two\n\n## Outputs\n\nWhat this skill produces when complete.\n","yaml",[189,261,262,267,279,290,295,300,314,318,325,331,336,342,347,353,358,364,369,375,381,387,392,398,403,418,430,435,441,446],{"__ignoreMap":187},[192,263,264],{"class":194,"line":11},[192,265,266],{"class":197},"---\n",[192,268,269,273,277],{"class":194,"line":16},[192,270,272],{"class":271},"swJcz","name",[192,274,276],{"class":275},"sMK4o",":",[192,278,227],{"class":201},[192,280,281,284,286],{"class":194,"line":21},[192,282,283],{"class":271},"description",[192,285,276],{"class":275},[192,287,289],{"class":288},"s7zQu"," |\n",[192,291,292],{"class":194,"line":26},[192,293,294],{"class":201},"  Clear description of what the skill does and when to invoke it.\n",[192,296,297],{"class":194,"line":38},[192,298,299],{"class":201},"  This is what AI agents read to decide whether to use this skill.\n",[192,301,302,305,307,310],{"class":194,"line":60},[192,303,304],{"class":271},"type",[192,306,276],{"class":275},[192,308,309],{"class":201}," flexible",[192,311,313],{"class":312},"sHwdD","  # or: rigid\n",[192,315,316],{"class":194,"line":47},[192,317,266],{"class":197},[192,319,321],{"class":194,"line":320},8,[192,322,324],{"emptyLinePlaceholder":323},true,"\n",[192,326,328],{"class":194,"line":327},9,[192,329,330],{"class":312},"# My New Skill\n",[192,332,334],{"class":194,"line":333},10,[192,335,324],{"emptyLinePlaceholder":323},[192,337,339],{"class":194,"line":338},11,[192,340,341],{"class":312},"## When to Invoke\n",[192,343,345],{"class":194,"line":344},12,[192,346,324],{"emptyLinePlaceholder":323},[192,348,350],{"class":194,"line":349},13,[192,351,352],{"class":201},"Specific conditions under which this skill should be activated.\n",[192,354,356],{"class":194,"line":355},14,[192,357,324],{"emptyLinePlaceholder":323},[192,359,361],{"class":194,"line":360},15,[192,362,363],{"class":312},"## Process\n",[192,365,367],{"class":194,"line":366},16,[192,368,324],{"emptyLinePlaceholder":323},[192,370,372],{"class":194,"line":371},17,[192,373,374],{"class":201},"1. Step one — describe what happens\n",[192,376,378],{"class":194,"line":377},18,[192,379,380],{"class":201},"2. Step two — describe what happens next\n",[192,382,384],{"class":194,"line":383},19,[192,385,386],{"class":201},"3. Step three — describe the output\n",[192,388,390],{"class":194,"line":389},20,[192,391,324],{"emptyLinePlaceholder":323},[192,393,395],{"class":194,"line":394},21,[192,396,397],{"class":312},"## Checklist Before Proceeding\n",[192,399,401],{"class":194,"line":400},22,[192,402,324],{"emptyLinePlaceholder":323},[192,404,406,409,412,415],{"class":194,"line":405},23,[192,407,408],{"class":275},"-",[192,410,411],{"class":275}," [",[192,413,414],{"class":275}," ]",[192,416,417],{"class":201}," Verification item one\n",[192,419,421,423,425,427],{"class":194,"line":420},24,[192,422,408],{"class":275},[192,424,411],{"class":275},[192,426,414],{"class":275},[192,428,429],{"class":201}," Verification item two\n",[192,431,433],{"class":194,"line":432},25,[192,434,324],{"emptyLinePlaceholder":323},[192,436,438],{"class":194,"line":437},26,[192,439,440],{"class":312},"## Outputs\n",[192,442,444],{"class":194,"line":443},27,[192,445,324],{"emptyLinePlaceholder":323},[192,447,449],{"class":194,"line":448},28,[192,450,451],{"class":201},"What this skill produces when complete.\n",[177,453,455],{"id":454},"_4-skill-quality-standards","4. Skill Quality Standards",[135,457,458],{},"Before submitting, ensure your skill:",[144,460,461,467,477,483,489,495],{},[147,462,463,466],{},[150,464,465],{},"Has a clear invocation trigger"," — When should the AI use this skill?",[147,468,469,472,473,476],{},[150,470,471],{},"Follows an existing pattern"," — Look at ",[189,474,475],{},"skills/reconnaissance/SKILL.md"," for reference",[147,478,479,482],{},[150,480,481],{},"Has a complete process"," — Every step is described, no gaps",[147,484,485,488],{},[150,486,487],{},"Includes a checklist"," — Phase gates need verification items",[147,490,491,494],{},[150,492,493],{},"Specifies output artifacts"," — What does the skill produce?",[147,496,497,500,501,504,505,508],{},[150,498,499],{},"Uses correct skill type"," — ",[189,502,503],{},"rigid"," for processes that must be followed exactly, ",[189,506,507],{},"flexible"," for adaptable ones",[177,510,512],{"id":511},"_5-subagent-prompts-optional","5. Subagent Prompts (Optional)",[135,514,515],{},"If your skill delegates work to subagents, include prompt files:",[182,517,522],{"className":518,"code":520,"language":521},[519],"language-text","skills/my-new-skill/\n├── SKILL.md\n├── planner-prompt.md\n└── executor-prompt.md\n","text",[189,523,520],{"__ignoreMap":187},[177,525,527],{"id":526},"_6-test-your-skill","6. Test Your Skill",[529,530,531,538,541,544,547,550],"ol",{},[147,532,533,534,537],{},"Install your skill locally (see ",[535,536,13],"a",{"href":14},")",[147,539,540],{},"Start a new session with your AI tool",[147,542,543],{},"Trigger the skill with an appropriate intent",[147,545,546],{},"Walk through the full process",[147,548,549],{},"Verify all checklist items are actionable",[147,551,552],{},"Confirm the expected outputs are produced",[139,554,556],{"id":555},"submitting-a-pr","Submitting a PR",[182,558,560],{"className":184,"code":559,"language":186,"meta":187,"style":187},"# Push your branch\ngit push origin my-new-skill\n",[189,561,562,567],{"__ignoreMap":187},[192,563,564],{"class":194,"line":11},[192,565,566],{"class":312},"# Push your branch\n",[192,568,569,571,574,577],{"class":194,"line":16},[192,570,198],{"class":197},[192,572,573],{"class":201}," push",[192,575,576],{"class":201}," origin",[192,578,227],{"class":201},[135,580,581,582,585],{},"Then open a Pull Request against ",[189,583,584],{},"kucherenko/gangsta"," with:",[529,587,588,594,600,606],{},[147,589,590,593],{},[150,591,592],{},"Description"," — What the skill does and why it's needed",[147,595,596,599],{},[150,597,598],{},"Skill type"," — Rigid or flexible, and why",[147,601,602,605],{},[150,603,604],{},"Testing"," — How you verified the skill works",[147,607,608,611],{},[150,609,610],{},"Pattern alignment"," — How it follows existing Gangsta conventions",[139,613,615],{"id":614},"pr-review-criteria","PR Review Criteria",[135,617,618],{},"Maintainers will review for:",[144,620,621,627,633,639,645],{},[147,622,623,626],{},[150,624,625],{},"Invocation clarity"," — Is the description specific enough for AI agents?",[147,628,629,632],{},[150,630,631],{},"Process completeness"," — Are all steps actionable?",[147,634,635,638],{},[150,636,637],{},"Omerta compliance"," — Does it follow the Five Laws?",[147,640,641,644],{},[150,642,643],{},"Consistency"," — Does it match the tone and style of existing skills?",[147,646,647,650],{},[150,648,649],{},"No code"," — Skills are Markdown, not code",[139,652,654],{"id":653},"code-of-conduct","Code of Conduct",[135,656,657],{},"Gangsta uses the mafia metaphor as a playful organizational framework. Contributions should:",[144,659,660,663,666,669],{},[147,661,662],{},"Maintain the metaphor consistently",[147,664,665],{},"Be respectful and inclusive",[147,667,668],{},"Focus on structured, disciplined development processes",[147,670,671],{},"Not glorify actual criminal activity",[135,673,674],{},"The metaphor exists to make structured development memorable and engaging. Keep it fun, keep it professional.",[139,676,678],{"id":677},"getting-help","Getting Help",[144,680,681,692],{},[147,682,683,500,686],{},[150,684,685],{},"GitHub Issues",[535,687,691],{"href":688,"rel":689},"https://github.com/kucherenko/gangsta/issues",[690],"nofollow","github.com/kucherenko/gangsta/issues",[147,693,694,500,697],{},[150,695,696],{},"Discussions",[535,698,701],{"href":699,"rel":700},"https://github.com/kucherenko/gangsta/discussions",[690],"github.com/kucherenko/gangsta/discussions",[703,704,705],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":187,"searchDepth":16,"depth":16,"links":707},[708,709,717,718,719,720],{"id":141,"depth":16,"text":142},{"id":174,"depth":16,"text":175,"children":710},[711,712,713,714,715,716],{"id":179,"depth":21,"text":180},{"id":230,"depth":21,"text":231},{"id":250,"depth":21,"text":251},{"id":454,"depth":21,"text":455},{"id":511,"depth":21,"text":512},{"id":526,"depth":21,"text":527},{"id":555,"depth":16,"text":556},{"id":614,"depth":16,"text":615},{"id":653,"depth":16,"text":654},{"id":677,"depth":16,"text":678},"How to contribute skills to the Gangsta framework.","md",null,{},{"order":38},{"title":114,"description":721},"KjOyaGSW71xcxl1oo3BstnbH02YFgO6rIsYKoP4jgP0",[729,731],{"title":110,"path":111,"stem":112,"description":730,"order":26,"children":-1},"How to resume interrupted Heists from checkpoint files.",{"title":118,"path":119,"stem":120,"description":732,"order":16,"children":-1},"Create your own Gangsta skills using the SKILL.md format and register them with your AI tool.",1776282626914]