[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSXW14XN0PJYNTF407J0CD":3,"skill-same:01M6CSXW14XN0PJYNTF407J0CD":61},{"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":18,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":14,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6CSXW14XN0PJYNTF407J0CD","php:make-all",null,"Génère tous les fichiers pour une entité complète (orchestrateur)","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\u002Fphp\u002Fskills\u002Fmake-all\u002FSKILL.md",[],[19,20,21,22,23,24,25],"php","php:make all","Bash","grep","read","write","edit","2026-11-10 10:12:30",false,"---\nname: php:make-all\ndescription: Génère tous les fichiers pour une entité complète (orchestrateur)\nmodel: sonnet\nallowed-tools: [Bash, Read, Write, Edit, Grep, Glob]\nversion: 1.0.0\nlicense: MIT\n---\n\n# PHP Make All Skill\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n\n## Description\nOrchestrateur générant une stack complète Elegant Objects + DDD pour une entité.\n\n## Usage\n```\nUse skill php:make-all\n```\n\n## Variables requises\n- **{EntityName}** - Nom de l'entité en PascalCase (ex: Product)\n- **{properties}** - Liste des propriétés avec types (optionnel)\n\n## Skills orchestrées\n\n1. `php:make-contracts` (si absent)\n2. `php:make-entity`\n3. `php:make-out`\n4. `php:make-invalide`\n5. `php:make-urls`\n6. `php:make-collection`\n7. `php:make-factory`\n8. `php:make-story`\n\n## Outputs\n\n| Phase | Fichiers |\n|-------|----------|\n| Core | Entity, Repository, RepositoryInterface |\n| Patterns | Out, Invalide |\n| Avancé | Urls, UrlsMessage, UrlsMessageHandler, Collection |\n| Tests | Factory, Story, AppStory |\n\n## Workflow\n\n### Initialisation\n\n**Créer les tâches du workflow :**\n\nUtiliser `TaskCreate` pour chaque phase :\n\n```\nTaskCreate #1: Demander EntityName et propriétés\nTaskCreate #2: Vérifier\u002Fcréer Contracts\nTaskCreate #3: Générer Entity (php:make-entity)\nTaskCreate #4: Générer Out (php:make-out)\nTaskCreate #5: Générer Invalide (php:make-invalide)\nTaskCreate #6: Générer Urls (php:make-urls)\nTaskCreate #7: Générer Collection (php:make-collection)\nTaskCreate #8: Générer Factory (php:make-factory)\nTaskCreate #9: Générer Story (php:make-story)\nTaskCreate #10: Afficher résumé + prochaines étapes\n```\n\n**Important :**\n- Utiliser `activeForm` (ex: \"Demandant EntityName\", \"Générant Entity\")\n- Respecter l'ordre d'exécution (dépendances entre skills)\n- Chaque tâche doit être marquée `in_progress` puis `completed`\n\n**Pattern d'exécution pour chaque étape :**\n1. `TaskUpdate` → tâche en `in_progress`\n2. Exécuter l'étape\n3. `TaskUpdate` → tâche en `completed`\n\n### Étapes\n\n1. Demander EntityName et propriétés\n2. Vérifier\u002Fcréer Contracts\n3. Exécuter séquentiellement les 8 skills\n4. Afficher résumé + prochaines étapes\n\n## Ordre d'exécution\n\n```\ncontracts → entity → out\u002Finvalide → urls\u002Fcollection → factory → story\n```\n\n## Task Management\n\n**Progression du workflow :**\n- 10 tâches créées à l'initialisation\n- Chaque skill orchestré correspond à une tâche (tâches #3 à #9)\n- Respecter l'ordre séquentiel (dépendances entre skills)\n- Chaque tâche suit le pattern : `in_progress` → exécution → `completed`\n- Utiliser `TaskList` pour voir la progression globale\n\n## Notes\n- Orchestrateur sans templates propres\n- Ordre critique (respecte dépendances)\n- Idéal pour démarrer rapidement\n","# PHP Make All Skill\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n\n## Description\nOrchestrateur générant une stack complète Elegant Objects + DDD pour une entité.\n\n## Usage\n```\nUse skill php:make-all\n```\n\n## Variables requises\n- **{EntityName}** - Nom de l'entité en PascalCase (ex: Product)\n- **{properties}** - Liste des propriétés avec types (optionnel)\n\n## Skills orchestrées\n\n1. `php:make-contracts` (si absent)\n2. `php:make-entity`\n3. `php:make-out`\n4. `php:make-invalide`\n5. `php:make-urls`\n6. `php:make-collection`\n7. `php:make-factory`\n8. `php:make-story`\n\n## Outputs\n\n| Phase | Fichiers |\n|-------|----------|\n| Core | Entity, Repository, RepositoryInterface |\n| Patterns | Out, Invalide |\n| Avancé | Urls, UrlsMessage, UrlsMessageHandler, Collection |\n| Tests | Factory, Story, AppStory |\n\n## Workflow\n\n### Initialisation\n\n**Créer les tâches du workflow :**\n\nUtiliser `TaskCreate` pour chaque phase :\n\n```\nTaskCreate #1: Demander EntityName et propriétés\nTaskCreate #2: Vérifier\u002Fcréer Contracts\nTaskCreate #3: Générer Entity (php:make-entity)\nTaskCreate #4: Générer Out (php:make-out)\nTaskCreate #5: Générer Invalide (php:make-invalide)\nTaskCreate #6: Générer Urls (php:make-urls)\nTaskCreate #7: Générer Collection (php:make-collection)\nTaskCreate #8: Générer Factory (php:make-factory)\nTaskCreate #9: Générer Story (php:make-story)\nTaskCreate #10: Afficher résumé + prochaines étapes\n```\n\n**Important :**\n- Utiliser `activeForm` (ex: \"Demandant EntityName\", \"Générant Entity\")\n- Respecter l'ordre d'exécution (dépendances entre skills)\n- Chaque tâche doit être marquée `in_progress` puis `completed`\n\n**Pattern d'exécution pour chaque étape :**\n1. `TaskUpdate` → tâche en `in_progress`\n2. Exécuter l'étape\n3. `TaskUpdate` → tâche en `completed`\n\n### Étapes\n\n1. Demander EntityName et propriétés\n2. Vérifier\u002Fcréer Contracts\n3. Exécuter séquentiellement les 8 skills\n4. Afficher résumé + prochaines étapes\n\n## Ordre d'exécution\n\n```\ncontracts → entity → out\u002Finvalide → urls\u002Fcollection → factory → story\n```\n\n## Task Management\n\n**Progression du workflow :**\n- 10 tâches créées à l'initialisation\n- Chaque skill orchestré correspond à une tâche (tâches #3 à #9)\n- Respecter l'ordre séquentiel (dépendances entre skills)\n- Chaque tâche suit le pattern : `in_progress` → exécution → `completed`\n- Utiliser `TaskList` pour voir la progression globale\n\n## Notes\n- Orchestrateur sans templates propres\n- Ordre critique (respecte dépendances)\n- Idéal pour démarrer rapidement\n",{"name":5,"model":31,"license":15,"version":32,"description":7,"allowed-tools":33},"sonnet","1.0.0",[21,34,35,36,37,38],"Read","Write","Edit","Grep","Glob","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","php\u002Fskills\u002Fmake-all","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":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"php:make-all\"",{"tool":53,"command":54},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"php:make-all\"",{"tool":56,"command":57},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"php:make-all\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fphp\u002Fskills\u002Fmake-all\u002FSKILL.md",true,[],[62,73,113,120,128,139],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":26},"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",[],[69,70,23,25,24,71,22,72,19,21],"twig:make component","component","ux","template",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":95,"publishedAt":26},"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",[79,84,87,90],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":85,"categoryName":86,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":88,"categoryName":89,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[96,97,98,99,100,101,102,103,104,105,106,21,107,108,109,110,23,24,111,112],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":26},"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",[],[115,21,22,23,24,25],{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":26},"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",[],[122,127,21,22,23,24,25],"message",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":26},"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",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000005","邮件与沟通",[130,25,138,21,72,22,23,24],"email",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":26},"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",[],[141,21,22,23,24,25,146,105],"options"]