[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSWA4EZSWFARRSFD8HVC4C":3,"skill-same:01M6CSWA4EZSWFARRSFD8HVC4C":86},{"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":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6CSWA4EZSWFARRSFD8HVC4C","implementer:implement",null,"Forcer l'implémentation complète d'une feature (pas juste planification)","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\u002Fimplementer\u002Fskills\u002Fimplement\u002FSKILL.md",[],[19,20,5,21,22,23,24,25,26,27],"implement","implementer","Bash","grep","read","write","edit","issue","task","2026-11-10 10:12:30",false,"---\nname: implementer:implement\ndescription: Forcer l'implémentation complète d'une feature (pas juste planification)\nargument-hint: \u003Cdescription-ou-issue>\nmodel: opus\nallowed-tools: [Task, Bash, Read, Write, Edit, Grep, Glob, TaskCreate, TaskUpdate, TaskList]\nversion: 1.0.0\nlicense: MIT\n---\n\n# Implémentation Complète d'une Feature\n\nCe skill produit du CODE, pas un plan.\n\n## Feature demandée\n\n$ARGUMENTS\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Étape 1 : Inventaire (max 3 tours)\n\n**Règle :** Maximum 5 fichiers lus avant de coder. Pas de phase explore longue.\n\n1. Lire le `CLAUDE.md` du projet pour les contraintes architecturales\n2. Lire `.claude\u002Frules\u002F` si le répertoire existe\n3. Identifier TOUS les fichiers à créer\u002Fmodifier avec chemin exact\n4. Pour chaque fichier, noter :\n   - Chemin exact\n   - Action : `create` ou `modify`\n   - Description courte de ce qui sera fait\n\n**Sortie :**\n\n```\nInventaire des fichiers\n\n  Fichiers à créer :\n  - src\u002FService\u002FNewService.php (create) : Service principal\n  - tests\u002FService\u002FNewServiceTest.php (create) : Tests unitaires\n\n  Fichiers à modifier :\n  - config\u002Fservices.yaml (modify) : Enregistrer le service\n  - src\u002FController\u002FMainController.php (modify) : Utiliser le service\n\n  Total : X fichiers\n```\n\n## Étape 2 : Checklist\n\nCréer une tâche pour CHAQUE fichier identifié :\n\n```\nTaskCreate : \"Créer src\u002FService\u002FNewService.php\"\nTaskCreate : \"Créer tests\u002FService\u002FNewServiceTest.php\"\nTaskCreate : \"Modifier config\u002Fservices.yaml\"\nTaskCreate : \"Modifier src\u002FController\u002FMainController.php\"\n```\n\n- `activeForm` pour chaque tâche (ex: \"Créant NewService.php\")\n- La checklist est OBLIGATOIRE avant le premier Edit\u002FWrite\n\n## Étape 3 : Implémentation\n\nPour chaque fichier de la checklist :\n\n1. `TaskUpdate` → tâche en `in_progress`\n2. Implémenter le fichier (Write pour création, Edit pour modification)\n3. `TaskUpdate` → tâche en `completed`\n\n**Ordre d'implémentation :**\n- D'abord les fichiers de base (entités, value objects, interfaces)\n- Puis les services et repositories\n- Puis les tests\n- Enfin la configuration et le wiring\n\n**Contraintes :**\n- Respecter les contraintes du CLAUDE.md du projet\n- Chaque fichier doit être complet et fonctionnel\n- Les tests doivent couvrir les cas principaux\n\n## Étape 4 : Vérification\n\n1. Compter les fichiers créés\u002Fmodifiés vs la checklist\n2. Si des fichiers manquent, boucler sur l'étape 3 pour les compléter\n3. Lancer les vérifications si disponibles (PHPStan, tests)\n\n**Rapport final :**\n\n```\nImplémentation terminée\n\n  Checklist : X\u002FY fichiers complétés\n\n  Fichiers créés :\n  - src\u002FService\u002FNewService.php\n  - tests\u002FService\u002FNewServiceTest.php\n\n  Fichiers modifiés :\n  - config\u002Fservices.yaml\n  - src\u002FController\u002FMainController.php\n\n  Manquants : (aucun | liste)\n```\n\n## Règles\n\n- **Max 5 fichiers lus** avant de coder (pas de phase explore longue)\n- **Checklist obligatoire** AVANT le premier Edit\u002FWrite\n- **Chaque fichier** = une tâche dans le task manager\n- **Rapport final** : fichiers créés\u002Fmodifiés vs checklist + manquants\n- **Pas de planification seule** : ce skill DOIT produire du code\n- **Restriction** : ne JAMAIS créer de commits Git\n","# Implémentation Complète d'une Feature\n\nCe skill produit du CODE, pas un plan.\n\n## Feature demandée\n\n$ARGUMENTS\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Étape 1 : Inventaire (max 3 tours)\n\n**Règle :** Maximum 5 fichiers lus avant de coder. Pas de phase explore longue.\n\n1. Lire le `CLAUDE.md` du projet pour les contraintes architecturales\n2. Lire `.claude\u002Frules\u002F` si le répertoire existe\n3. Identifier TOUS les fichiers à créer\u002Fmodifier avec chemin exact\n4. Pour chaque fichier, noter :\n   - Chemin exact\n   - Action : `create` ou `modify`\n   - Description courte de ce qui sera fait\n\n**Sortie :**\n\n```\nInventaire des fichiers\n\n  Fichiers à créer :\n  - src\u002FService\u002FNewService.php (create) : Service principal\n  - tests\u002FService\u002FNewServiceTest.php (create) : Tests unitaires\n\n  Fichiers à modifier :\n  - config\u002Fservices.yaml (modify) : Enregistrer le service\n  - src\u002FController\u002FMainController.php (modify) : Utiliser le service\n\n  Total : X fichiers\n```\n\n## Étape 2 : Checklist\n\nCréer une tâche pour CHAQUE fichier identifié :\n\n```\nTaskCreate : \"Créer src\u002FService\u002FNewService.php\"\nTaskCreate : \"Créer tests\u002FService\u002FNewServiceTest.php\"\nTaskCreate : \"Modifier config\u002Fservices.yaml\"\nTaskCreate : \"Modifier src\u002FController\u002FMainController.php\"\n```\n\n- `activeForm` pour chaque tâche (ex: \"Créant NewService.php\")\n- La checklist est OBLIGATOIRE avant le premier Edit\u002FWrite\n\n## Étape 3 : Implémentation\n\nPour chaque fichier de la checklist :\n\n1. `TaskUpdate` → tâche en `in_progress`\n2. Implémenter le fichier (Write pour création, Edit pour modification)\n3. `TaskUpdate` → tâche en `completed`\n\n**Ordre d'implémentation :**\n- D'abord les fichiers de base (entités, value objects, interfaces)\n- Puis les services et repositories\n- Puis les tests\n- Enfin la configuration et le wiring\n\n**Contraintes :**\n- Respecter les contraintes du CLAUDE.md du projet\n- Chaque fichier doit être complet et fonctionnel\n- Les tests doivent couvrir les cas principaux\n\n## Étape 4 : Vérification\n\n1. Compter les fichiers créés\u002Fmodifiés vs la checklist\n2. Si des fichiers manquent, boucler sur l'étape 3 pour les compléter\n3. Lancer les vérifications si disponibles (PHPStan, tests)\n\n**Rapport final :**\n\n```\nImplémentation terminée\n\n  Checklist : X\u002FY fichiers complétés\n\n  Fichiers créés :\n  - src\u002FService\u002FNewService.php\n  - tests\u002FService\u002FNewServiceTest.php\n\n  Fichiers modifiés :\n  - config\u002Fservices.yaml\n  - src\u002FController\u002FMainController.php\n\n  Manquants : (aucun | liste)\n```\n\n## Règles\n\n- **Max 5 fichiers lus** avant de coder (pas de phase explore longue)\n- **Checklist obligatoire** AVANT le premier Edit\u002FWrite\n- **Chaque fichier** = une tâche dans le task manager\n- **Rapport final** : fichiers créés\u002Fmodifiés vs checklist + manquants\n- **Pas de planification seule** : ce skill DOIT produire du code\n- **Restriction** : ne JAMAIS créer de commits Git\n",{"name":5,"model":33,"license":15,"version":34,"description":7,"allowed-tools":35,"argument-hint":45},"opus","1.0.0",[36,21,37,38,39,40,41,42,43,44],"Task","Read","Write","Edit","Grep","Glob","TaskCreate","TaskUpdate","TaskList","\u003Cdescription-ou-issue>","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","implementer\u002Fskills\u002Fimplement","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":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"implementer:implement\"",{"tool":60,"command":61},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"implementer:implement\"",{"tool":63,"command":64},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"implementer:implement\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fimplementer\u002Fskills\u002Fimplement\u002FSKILL.md",true,[68,74,80],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"assets\u002Fexample_asset.txt","ASSET","资产文件",866,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fqms-audit-expert\u002Fassets\u002Fexample_asset.txt",{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fapi_reference.md","REFERENCE","参考文档",968,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fqms-audit-expert\u002Freferences\u002Fapi_reference.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fexample.py","SCRIPT","脚本",592,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fqms-audit-expert\u002Fscripts\u002Fexample.py",[87,99,139,146,154,165],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":28},"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",[],[94,95,23,25,24,96,22,97,98,21],"twig:make component","component","ux","template","php",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":121,"publishedAt":28},"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",[105,110,113,116],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":111,"categoryName":112,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":114,"categoryName":115,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":117,"categoryName":118,"taxonomyType":119,"taxonomyTypeDesc":120},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[122,123,124,125,126,127,128,129,130,131,132,21,133,134,135,136,23,24,137,138],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"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":28},"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",[],[141,21,22,23,24,25],{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":28},"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",[],[148,153,21,22,23,24,25],"message",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":28},"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",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000005","邮件与沟通",[156,25,164,21,97,22,23,24],"email",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":28},"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",[],[167,21,22,23,24,25,172,131],"options"]