[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSWXRP6KYWNVM27WD9FRSR":3,"skill-same:01M6CSWXRP6KYWNVM27WD9FRSR":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6CSWXRP6KYWNVM27WD9FRSR","infra:make-subagent",null,"Guide expert pour créer et configurer des sous-agents Claude Code spécialisés. Couvre la structure des fichiers agent, le frontmatter, les prompts système, les outils, les modes background et les patterns d'orchestration. Utiliser pour créer de nouveaux agents ou configurer des workflows multi-agents.","atournayre\u002Fclaude-personas","atournayre","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4262077?v=4","01M6CSSGYW0E0D0M3E2T6J9X2Z","Aurélien Tournayre","01M6CSSH3DENJF2XWZ41H0F43K",0,"MIT","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Finfra\u002Fskills\u002Fmake-subagent\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"subagent","infra","infra:make subagent","orchestration","workflows","code","Bash","read","write","edit","guide","prompts","expert","patterns","structure","2026-11-10 10:12:30",false,"---\nname: infra:make-subagent\ndescription: Guide expert pour créer et configurer des sous-agents Claude Code spécialisés. Couvre la structure des fichiers agent, le frontmatter, les prompts système, les outils, les modes background et les patterns d'orchestration. Utiliser pour créer de nouveaux agents ou configurer des workflows multi-agents.\nmodel: sonnet\nallowed-tools: [Read, Write, Edit, Bash, Glob, AskUserQuestion]\nversion: 1.0.0\nlicense: MIT\n---\n\n# infra:make-subagent\n\nGuide expert pour créer des sous-agents Claude Code spécialisés.\n\n## Contrainte critique\n\n**Les sous-agents ne peuvent pas interagir avec l'utilisateur.**\n\n- Peuvent utiliser : Read, Write, Edit, Bash, Grep, Glob\n- Ne peuvent pas : AskUserQuestion, présenter des options, attendre l'input utilisateur\n- L'utilisateur ne voit que le rapport final de l'agent\n\n## Structure des fichiers\n\n| Type | Emplacement | Priorité |\n|------|-------------|----------|\n| Projet | `.claude\u002Fagents\u002F` | Haute |\n| Utilisateur | `~\u002F.claude\u002Fagents\u002F` | Basse |\n| Plugin | `plugin\u002Fagents\u002F` | Plus basse |\n\n## Frontmatter obligatoire\n\n```markdown\n---\nname: nom-en-kebab-case\ndescription: \"Description orientée action avec quand l'utiliser\"\ntools: Read, Grep, Glob, Bash\nmodel: sonnet\n---\n```\n\nChamps :\n- `name` : lettres minuscules et tirets uniquement\n- `description` : inclure les déclencheurs (\"À utiliser proactivement pour...\")\n- `tools` : liste CSV (hérite tout si omis)\n- `model` : sonnet, opus, haiku, ou inherit\n\n## Structure du prompt système\n\nUtiliser des balises XML (pas de titres Markdown dans le body) :\n\n```markdown\n\u003Crole>\nTu es un spécialiste en [domaine].\n\u003C\u002Frole>\n\n\u003Cfocus_areas>\n- Point 1\n- Point 2\n\u003C\u002Ffocus_areas>\n\n\u003Cworkflow>\n1. Étape 1\n2. Étape 2\n\u003C\u002Fworkflow>\n\n\u003Coutput_format>\nFormat de sortie attendu.\n\u003C\u002Foutput_format>\n```\n\n## Sélection du modèle\n\n- **sonnet** : tâches de raisonnement (review, analyse, génération)\n- **haiku** : tâches simples (vérifications, formatage, recherches rapides)\n- **opus** : tâches très complexes nécessitant un raisonnement profond\n\n## Conception du workflow\n\nUtiliser le **main chat** pour :\n- Collecter les besoins utilisateur\n- Présenter des options ou décisions\n- Tout ce qui requiert confirmation\n\nUtiliser les **agents** pour :\n- Recherche (analyse de code, documentation API)\n- Génération de code selon un plan prédéfini\n- Analyse et reporting (review sécurité, couverture tests)\n\n## Exécution en arrière-plan\n\n```\nTask(\n  subagent_type=\"agent-name\",\n  run_in_background=True\n)\n```\n\nRécupérer les résultats via TaskOutput avec l'agent_id retourné.\n\n## Pattern d'agents parallèles\n\nLancer plusieurs agents dans le même message (sans dépendances entre eux), puis collecter les résultats.\n\n## Créer un agent : workflow\n\n1. Définir le rôle précis (pas d'agent générique)\n2. Identifier les outils nécessaires (principe du moindre privilège)\n3. Écrire le prompt système avec balises XML\n4. Optimiser la description pour le routing automatique\n5. Tester sur des tâches représentatives\n\n## Template agent\n\n```markdown\n---\nname: agent-name\ndescription: \"Description orientée action. À utiliser proactivement pour...\"\ntools: Read, Grep, Glob, Bash\nmodel: sonnet\n---\n\n\u003Crole>\nTu es un [rôle précis].\n\u003C\u002Frole>\n\n\u003Cworkflow>\n1. [Étape 1]\n2. [Étape 2]\n3. [Étape 3]\n\u003C\u002Fworkflow>\n\n\u003Coutput_format>\n[Format de sortie attendu]\n\u003C\u002Foutput_format>\n```\n","# infra:make-subagent\n\nGuide expert pour créer des sous-agents Claude Code spécialisés.\n\n## Contrainte critique\n\n**Les sous-agents ne peuvent pas interagir avec l'utilisateur.**\n\n- Peuvent utiliser : Read, Write, Edit, Bash, Grep, Glob\n- Ne peuvent pas : AskUserQuestion, présenter des options, attendre l'input utilisateur\n- L'utilisateur ne voit que le rapport final de l'agent\n\n## Structure des fichiers\n\n| Type | Emplacement | Priorité |\n|------|-------------|----------|\n| Projet | `.claude\u002Fagents\u002F` | Haute |\n| Utilisateur | `~\u002F.claude\u002Fagents\u002F` | Basse |\n| Plugin | `plugin\u002Fagents\u002F` | Plus basse |\n\n## Frontmatter obligatoire\n\n```markdown\n---\nname: nom-en-kebab-case\ndescription: \"Description orientée action avec quand l'utiliser\"\ntools: Read, Grep, Glob, Bash\nmodel: sonnet\n---\n```\n\nChamps :\n- `name` : lettres minuscules et tirets uniquement\n- `description` : inclure les déclencheurs (\"À utiliser proactivement pour...\")\n- `tools` : liste CSV (hérite tout si omis)\n- `model` : sonnet, opus, haiku, ou inherit\n\n## Structure du prompt système\n\nUtiliser des balises XML (pas de titres Markdown dans le body) :\n\n```markdown\n\u003Crole>\nTu es un spécialiste en [domaine].\n\u003C\u002Frole>\n\n\u003Cfocus_areas>\n- Point 1\n- Point 2\n\u003C\u002Ffocus_areas>\n\n\u003Cworkflow>\n1. Étape 1\n2. Étape 2\n\u003C\u002Fworkflow>\n\n\u003Coutput_format>\nFormat de sortie attendu.\n\u003C\u002Foutput_format>\n```\n\n## Sélection du modèle\n\n- **sonnet** : tâches de raisonnement (review, analyse, génération)\n- **haiku** : tâches simples (vérifications, formatage, recherches rapides)\n- **opus** : tâches très complexes nécessitant un raisonnement profond\n\n## Conception du workflow\n\nUtiliser le **main chat** pour :\n- Collecter les besoins utilisateur\n- Présenter des options ou décisions\n- Tout ce qui requiert confirmation\n\nUtiliser les **agents** pour :\n- Recherche (analyse de code, documentation API)\n- Génération de code selon un plan prédéfini\n- Analyse et reporting (review sécurité, couverture tests)\n\n## Exécution en arrière-plan\n\n```\nTask(\n  subagent_type=\"agent-name\",\n  run_in_background=True\n)\n```\n\nRécupérer les résultats via TaskOutput avec l'agent_id retourné.\n\n## Pattern d'agents parallèles\n\nLancer plusieurs agents dans le même message (sans dépendances entre eux), puis collecter les résultats.\n\n## Créer un agent : workflow\n\n1. Définir le rôle précis (pas d'agent générique)\n2. Identifier les outils nécessaires (principe du moindre privilège)\n3. Écrire le prompt système avec balises XML\n4. Optimiser la description pour le routing automatique\n5. Tester sur des tâches représentatives\n\n## Template agent\n\n```markdown\n---\nname: agent-name\ndescription: \"Description orientée action. À utiliser proactivement pour...\"\ntools: Read, Grep, Glob, Bash\nmodel: sonnet\n---\n\n\u003Crole>\nTu es un [rôle précis].\n\u003C\u002Frole>\n\n\u003Cworkflow>\n1. [Étape 1]\n2. [Étape 2]\n3. [Étape 3]\n\u003C\u002Fworkflow>\n\n\u003Coutput_format>\n[Format de sortie attendu]\n\u003C\u002Foutput_format>\n```\n",{"name":5,"model":44,"license":15,"version":45,"description":7,"allowed-tools":46},"sonnet","1.0.0",[47,48,49,30,50,51],"Read","Write","Edit","Glob","AskUserQuestion","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","infra\u002Fskills\u002Fmake-subagent","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas","https:\u002F\u002Fatournayre.github.io\u002Fclaude-personas\u002F","https:\u002F\u002Fgithub.com\u002Fatournayre","🔵, Back End Developer, @symfony  :heart:, @rectorphp :heart:,  \r\n:bug: fixer (creator sometimes 🤫), member of @afup","2026-03-02 23:42:20",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"infra:make-subagent\"",{"tool":66,"command":67},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"infra:make-subagent\"",{"tool":69,"command":70},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"infra:make-subagent\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Finfra\u002Fskills\u002Fmake-subagent\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"evals\u002Ftriggers.json","REFERENCE","参考文档",1583,"https:\u002F\u002Fgithub.com\u002Fevent4u-app\u002Fagent-config\u002Fblob\u002Fmain\u002Fsrc\u002Fskills\u002Freview-routing\u002Fevals\u002Ftriggers.json",[81,94,130,137,145,156],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":39},"01M6CSZPR0W1K1S9BX3247CZJ1","twig:make-component","Génère un Twig Component Symfony UX (classe PHP + template Twig)","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Ftwig\u002Fskills\u002Fmake-component\u002FSKILL.md",[],[88,89,31,33,32,90,91,92,93,30],"twig:make component","component","ux","grep","template","php",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":112,"publishedAt":39},"01M6CSZKCYYT4EAW4CDSTS3TSH","tester:ui-test","Teste automatiquement une interface utilisateur dans Chrome : navigation, clics, validation visuelle, tests fonctionnels, responsive, comportement et debug. Génère un rapport détaillé avec screenshots et optionnellement un GIF du parcours.","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Ftester\u002Fskills\u002Fui-test\u002FSKILL.md",[100,103,106,107],{"categoryNo":101,"categoryName":102,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":108,"categoryName":109,"taxonomyType":110,"taxonomyTypeDesc":111},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[113,114,115,116,117,118,119,120,121,122,123,30,124,125,126,127,31,32,128,129],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":39},"01M6CSZGQ8X9XNXRBYX0AA3CYE","symfony:voter","Genere un Voter de securite Symfony pour le controle d'acces granulaire","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fvoter\u002FSKILL.md",[],[132,30,91,31,32,33],{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":39},"01M6CSZEJ3BNHCNZT18SYFGDME","symfony:message","Genere un Message Symfony Messenger avec son Handler pour traitement asynchrone","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fmessage\u002FSKILL.md",[],[139,144,30,91,31,32,33],"message",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":154,"publishedAt":39},"01M6CSZBWSK9M6YMJX886BVWYF","symfony:mailer","Genere un email Symfony (TemplatedEmail ou Notification) avec template Twig","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fmailer\u002FSKILL.md",[151],{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",[147,33,155,30,92,91,31,32],"email",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":39},"01M6CSZ9DXMYZ9HTRE8A324AWG","symfony:form","Genere un FormType Symfony avec contraintes de validation et options","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fform\u002FSKILL.md",[],[158,30,91,31,32,33,163,122],"options"]