[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSSVYXW99NAGQ9RMXF4N2Q":3,"skill-same:01M6CSSVYXW99NAGQ9RMXF4N2Q":91},{"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":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":14,"repositoryHtmlUrl":41,"repositoryHomepageUrl":42,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M6CSSVYXW99NAGQ9RMXF4N2Q","analyst:impact",null,"Génère automatiquement deux rapports d'impact (métier et technique) pour une PR GitHub et les intègre dans la description","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\u002Fanalyst\u002Fskills\u002Fimpact\u002FSKILL.md",[],[5,19,20,21,22,23,24],"github","pr","Bash","grep","read","write","2026-11-10 10:12:30",false,"---\nname: analyst:impact\ndescription: Génère automatiquement deux rapports d'impact (métier et technique) pour une PR GitHub et les intègre dans la description\nargument-hint: \u003Cpr-number>\nallowed-tools: [Bash, Read, Write, Grep, Glob]\nmodel: opus\nversion: 1.0.0\nlicense: MIT\n---\n\n# Analyse d'impact PR GitHub\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Usage\n```\n\u002Fanalyst:impact \u003Cpr-number>\n```\n\n## Workflow\n\n1. Récupérer infos PR via `gh pr view`\n2. Identifier fichiers modifiés (`gh pr diff`)\n3. Analyser dépendances et templates\n4. Analyser tests\n5. Générer rapport métier\n6. Générer rapport technique\n7. Ajouter rapports à la description PR\n8. Sauvegarder localement dans `.analysis-reports\u002F`\n\n## Rapports générés\n\n### Rapport Métier\n- Vue d'ensemble (portée, domaines, risque)\n- Changements fonctionnels (nouvelles features, améliorations, corrections)\n- Impact utilisateur (UX, performance, compatibilité)\n- Risques identifiés + recommandations\n\n### Rapport Technique\n- Métriques (fichiers, ajouts, suppressions)\n- Analyse par type (PHP, JS, Templates, Config, Assets)\n- Changements architecturaux (classes, dépendances)\n- Analyse sécurité\n- Couverture tests\n- Points d'attention (performance, compatibilité, dette technique)\n\n## Output\n\n```bash\n# Dans la PR\n\u003C!-- IMPACT-REPORTS-START -->\n[Rapport métier]\n[Rapport technique]\n\u003C!-- IMPACT-REPORTS-END -->\n\n# Local\n.analysis-reports\u002Fimpact_pr_{PR_NUMBER}.md\n```\n\n## Error Handling\n\n- PR introuvable → ARRÊT\n- Échec mise à jour PR → WARNING (non bloquant)\n","# Analyse d'impact PR GitHub\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Usage\n```\n\u002Fanalyst:impact \u003Cpr-number>\n```\n\n## Workflow\n\n1. Récupérer infos PR via `gh pr view`\n2. Identifier fichiers modifiés (`gh pr diff`)\n3. Analyser dépendances et templates\n4. Analyser tests\n5. Générer rapport métier\n6. Générer rapport technique\n7. Ajouter rapports à la description PR\n8. Sauvegarder localement dans `.analysis-reports\u002F`\n\n## Rapports générés\n\n### Rapport Métier\n- Vue d'ensemble (portée, domaines, risque)\n- Changements fonctionnels (nouvelles features, améliorations, corrections)\n- Impact utilisateur (UX, performance, compatibilité)\n- Risques identifiés + recommandations\n\n### Rapport Technique\n- Métriques (fichiers, ajouts, suppressions)\n- Analyse par type (PHP, JS, Templates, Config, Assets)\n- Changements architecturaux (classes, dépendances)\n- Analyse sécurité\n- Couverture tests\n- Points d'attention (performance, compatibilité, dette technique)\n\n## Output\n\n```bash\n# Dans la PR\n\u003C!-- IMPACT-REPORTS-START -->\n[Rapport métier]\n[Rapport technique]\n\u003C!-- IMPACT-REPORTS-END -->\n\n# Local\n.analysis-reports\u002Fimpact_pr_{PR_NUMBER}.md\n```\n\n## Error Handling\n\n- PR introuvable → ARRÊT\n- Échec mise à jour PR → WARNING (non bloquant)\n",{"name":5,"model":30,"license":15,"version":31,"description":7,"allowed-tools":32,"argument-hint":37},"opus","1.0.0",[21,33,34,35,36],"Read","Write","Grep","Glob","\u003Cpr-number>","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","analyst\u002Fskills\u002Fimpact","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":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"analyst:impact\"",{"tool":52,"command":53},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"analyst:impact\"",{"tool":55,"command":56},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"analyst:impact\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fanalyst\u002Fskills\u002Fimpact\u002FSKILL.md",true,[60,65,71,75,79,83,87],{"path":61,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"LICENSE","许可证",1065,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002FLICENSE",{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Fevidence-package.md","REFERENCE","参考文档",1966,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002Freferences\u002Fevidence-package.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"repos\u002Fcore.md",628,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002Frepos\u002Fcore.md",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"repos\u002Fmetamask-extension.md",224,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002Frepos\u002Fmetamask-extension.md",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"repos\u002Fmetamask-mobile.md",1596,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002Frepos\u002Fmetamask-mobile.md",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"SOURCE.md",363,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002FSOURCE.md",{"path":88,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":89,"sourceHtmlUrl":90},"TRUST.auto.yaml",2243,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-harness\u002FTRUST.auto.yaml",[92,105,145,152,160,171],{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":25},"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",[],[99,100,23,101,24,102,22,103,104,21],"twig:make component","component","edit","ux","template","php",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":127,"publishedAt":25},"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",[111,116,119,122],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":117,"categoryName":118,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":120,"categoryName":121,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[128,129,130,131,132,133,134,135,136,137,138,21,139,140,141,142,23,24,143,144],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"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":151,"publishedAt":25},"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",[],[147,21,22,23,24,101],{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":25},"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",[],[154,159,21,22,23,24,101],"message",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":169,"publishedAt":25},"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",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000005","邮件与沟通",[162,101,170,21,103,22,23,24],"email",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":25},"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",[],[173,21,22,23,24,101,178,137],"options"]