[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"creator:01M6CSSGYW0E0D0M3E2T6J9X2Z":3,"creator-list:01M6CSSGYW0E0D0M3E2T6J9X2Z:stars:1:":23},{"accountNo":4,"login":5,"displayName":6,"avatarUrl":7,"accountType":8,"accountTypeDesc":9,"profileDescription":10,"skillCount":11,"repoCount":12,"professionCount":13,"scenarioCount":14,"totalStars":15,"updatedAt":16,"htmlUrl":17,"blogUrl":18,"company":19,"location":20,"followersCount":21,"publicReposCount":22},"01M6CSSGYW0E0D0M3E2T6J9X2Z","atournayre","Aurélien Tournayre","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4262077?v=4","USER","个人作者","🔵, Back End Developer, @symfony  :heart:, @rectorphp :heart:,  \r\n:bug: fixer (creator sometimes 🤫), member of @afup",81,1,3,4,0,"2026-03-02 23:42:20","https:\u002F\u002Fgithub.com\u002Fatournayre",null,"Groupe Mas Provence","Montpellier, France",21,69,{"records":24,"total":11,"current":12,"size":238},[25,46,86,93,101,112,120,127,138,147,155,167,182,189,197,206,219,229],{"skillNo":26,"name":27,"nameZh":18,"description":28,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":32,"categories":33,"keywords":34,"publishedAt":45},"01M6CSZPR0W1K1S9BX3247CZJ1","twig:make-component","Génère un Twig Component Symfony UX (classe PHP + template Twig)","atournayre\u002Fclaude-personas","01M6CSSH3DENJF2XWZ41H0F43K","MIT","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Ftwig\u002Fskills\u002Fmake-component\u002FSKILL.md",[],[35,36,37,38,39,40,41,42,43,44],"component","twig:make component","ux","Bash","php","template","grep","read","write","edit","2026-11-10 10:12:30",{"skillNo":47,"name":48,"nameZh":18,"description":49,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":50,"categories":51,"keywords":68,"publishedAt":45},"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",[52,57,60,63],{"categoryNo":53,"categoryName":54,"taxonomyType":55,"taxonomyTypeDesc":56},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":58,"categoryName":59,"taxonomyType":55,"taxonomyTypeDesc":56},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":61,"categoryName":62,"taxonomyType":55,"taxonomyTypeDesc":56},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[69,70,71,72,73,74,75,76,77,78,79,80,81,38,82,83,84,85,42,43],"test","ui","tester","ui test","tester:ui test","MCP","chrome","javascript","debug","create","update","validation","messages","plan","tool","page","find",{"skillNo":87,"name":88,"nameZh":18,"description":89,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":45},"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",[],[88,38,41,42,43,44],{"skillNo":94,"name":95,"nameZh":18,"description":96,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":45},"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",[],[100,95,38,41,42,43,44],"message",{"skillNo":102,"name":103,"nameZh":18,"description":104,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":105,"categories":106,"keywords":110,"publishedAt":45},"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",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":55,"taxonomyTypeDesc":56},"01JBSEEDCAT000000000000005","邮件与沟通",[103,111,38,40,41,42,43,44],"email",{"skillNo":113,"name":114,"nameZh":18,"description":115,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":45},"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",[],[114,80,38,41,42,43,44,119],"options",{"skillNo":121,"name":122,"nameZh":18,"description":123,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":45},"01M6CSZ73A0RY9G0WY091HJGYV","symfony:event","Genere un Event Symfony + EventSubscriber ou EventListener","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fevent\u002FSKILL.md",[],[122,38,41,42,43,44],{"skillNo":128,"name":129,"nameZh":18,"description":130,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":45},"01M6CSZ4Z0FYX16NZQPD1HECM7","symfony:diagnose","Diagnostique les problemes d'une application Symfony — erreurs, performances, configuration","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fdiagnose\u002FSKILL.md",[],[134,129,38,41,42,44,135,136,137],"diagnose","configuration","task","application",{"skillNo":139,"name":140,"nameZh":18,"description":141,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":45},"01M6CSZ2PAGBYKWJFTJGX64Q4M","symfony:controller","Genere un controleur Symfony avec routing attributs et bonnes pratiques","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fcontroller\u002FSKILL.md",[],[145,140,146,38,41,42,43,44],"controller","routing",{"skillNo":148,"name":149,"nameZh":18,"description":150,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":45},"01M6CSZ0HY7EMDFYN3V5HB63XA","symfony:console","Genere une commande console Symfony avec arguments, options et interaction","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fconsole\u002FSKILL.md",[],[154,149,38,41,42,43,44,119],"console",{"skillNo":156,"name":157,"nameZh":18,"description":158,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":45},"01M6CSYXCSNF56RKA7KCPZ1NY3","symfony:config","Assistant de configuration de bundles Symfony — aide a configurer n'importe quel bundle officiel","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fsymfony\u002Fskills\u002Fconfig\u002FSKILL.md",[],[162,157,163,164,38,41,42,43,44,165,135,166],"config","assistant","aide","webfetch","bundles",{"skillNo":168,"name":169,"nameZh":18,"description":170,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":171,"categories":172,"keywords":176,"publishedAt":45},"01M6CSYTYQ0N51SVC6TTFFJWSX","reviewer:review","Review qualité complète — PHPStan + Elegant Objects + code review + adversarial","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Freviewer\u002Fskills\u002Freview\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":55,"taxonomyTypeDesc":56},"01JBSEEDCAT000000000000007","代码审查",[177,178,169,179,180,38,41,42,44,136,181],"review","reviewer","code review","code","objects",{"skillNo":183,"name":184,"nameZh":18,"description":185,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":45},"01M6CSYRZT1GRA6P0SQN6MV1QN","reviewer:phpstan","Résoudre automatiquement les erreurs PHPStan niveau 9 — boucle jusqu'à zéro erreur","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Freviewer\u002Fskills\u002Fphpstan\u002FSKILL.md",[],[178,184,38,41,42,44,136],{"skillNo":190,"name":191,"nameZh":18,"description":192,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":45},"01M6CSYPPHCZ3QQ9G2WZTKR3G3","reviewer:elegant-objects","Vérifier la conformité du code PHP aux principes Elegant Objects de Yegor Bugayenko","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Freviewer\u002Fskills\u002Felegant-objects\u002FSKILL.md",[],[178,181,196,180,38,39,41,42],"reviewer:elegant objects",{"skillNo":198,"name":199,"nameZh":18,"description":200,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":201,"categories":202,"keywords":203,"publishedAt":45},"01M6CSYMZAX3N3XJP6G2AJPNY9","reviewer:challenge","Évaluer la dernière réponse Claude, donner une note sur 10 et proposer des améliorations","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Freviewer\u002Fskills\u002Fchallenge\u002FSKILL.md",[],[178,204,199,205,42],"challenge","haiku",{"skillNo":207,"name":208,"nameZh":18,"description":209,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":45},"01M6CSYK44FWEPGPNFB9Y5AF2G","researcher:search","Recherche temps réel via Google Search intégré à Gemini","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fresearcher\u002Fskills\u002Fsearch\u002FSKILL.md",[],[213,214,208,215,216,217,218],"search","researcher","google","gemini","google search","query",{"skillNo":220,"name":221,"nameZh":18,"description":222,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":223,"categories":224,"keywords":225,"publishedAt":45},"01M6CSYH93NGY62214VP6CMAKY","researcher:analyze","Analyse une codebase ou documentation avec Gemini (1M tokens)","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fresearcher\u002Fskills\u002Fanalyze\u002FSKILL.md",[],[226,214,221,216,227,228],"analyze","documentation","question",{"skillNo":230,"name":231,"nameZh":18,"description":232,"descriptionZh":18,"repositoryFullName":29,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":30,"starsCount":15,"licenseSpdxId":31,"licenseFileUrl":18,"sourceHtmlUrl":233,"categories":234,"keywords":235,"publishedAt":45},"01M6CSYEPCDM4E9AZ5ZCCCX2NS","php:make-urls","Génère classe Urls + Message CQRS + Handler","https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fphp\u002Fskills\u002Fmake-urls\u002FSKILL.md",[],[39,236,38,41,42,43,44,100,237],"php:make urls","cqrs",18]