[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSV7A7K9JS2H3ARJG7PDRK":3,"skill-same:01M6CSV7A7K9JS2H3ARJG7PDRK":95},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6CSV7A7K9JS2H3ARJG7PDRK","devops:release-notes",null,"Génère des notes de release HTML orientées utilisateurs finaux. Transforme les commits techniques en descriptions accessibles sans jargon.","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\u002Fdevops\u002Fskills\u002Frelease-notes\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"notes","release notes","release","devops","devops:release notes","sans","commits","Bash","grep","read","write","html","en","2026-11-10 10:12:30",false,"---\nname: devops:release-notes\ndescription: >\n  Génère des notes de release HTML orientées utilisateurs finaux.\n  Transforme les commits techniques en descriptions accessibles sans jargon.\nallowed-tools: [Bash, Read, Write, Grep, Glob, AskUserQuestion]\nmodel: sonnet\nversion: 1.0.0\nlicense: MIT\n---\n\n# DevOps Release Notes Skill\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Usage\n```\n\u002Fdevops:release-notes \u003Cbranche-source> \u003Cbranche-cible> [nom-release]\n```\nSi arguments manquants : `AskUserQuestion` pour demander.\n\n## Workflow\n\n### Initialisation\n\n**Créer les tâches du workflow :**\n\n```\nTaskCreate #1: Parser et valider arguments (branches source\u002Fcible)\nTaskCreate #2: Collecter commits via git log\nTaskCreate #3: Catégoriser par impact utilisateur\nTaskCreate #4: Rédiger descriptions sans jargon\nTaskCreate #5: Générer HTML dans .claude\u002Freports\u002F\n```\n\n**Important :**\n- Utiliser `activeForm` (ex: \"Validant les arguments\", \"Collectant les commits\")\n- Chaque tâche doit être marquée `in_progress` puis `completed`\n\n### Étapes\n\n1. Parser et valider arguments (branches source\u002Fcible)\n2. Collecter commits via `git log`\n3. Catégoriser par impact utilisateur\n4. Rédiger descriptions sans jargon\n5. Générer HTML dans `.claude\u002Freports\u002F`\n\n## Catégories\n\n| Catégorie | Icône | Mots-clés |\n|-----------|-------|-----------|\n| Nouveautés | Etoile | feat, improve |\n| Améliorations | Graphe | improve, perf |\n| Corrections | Check | fix |\n| Sécurité | Cadenas | security |\n\n## Commits ignorés\n\n- `refactor:`, `test:`, `chore:`, `ci:`, `docs:`, `style:`\n- Commits de merge\n- Mises à jour de dépendances\n\n## Règles de rédaction\n\n1. **ZÉRO jargon** - Pas de API, SQL, cache, endpoint, refactoring\n2. **Bénéfice utilisateur** - \"L'application est plus rapide\" vs \"Optimisation SQL\"\n3. **Verbes d'action** - \"Vous pouvez maintenant...\", \"Nous avons corrigé...\"\n4. **Phrases courtes** - Max 1-2 phrases par item\n\n## Exemples de transformation\n\n| Commit | Note utilisateur |\n|--------|------------------|\n| `feat: implémenter cache Redis` | L'affichage est plus rapide |\n| `fix: corriger validation email` | Certaines adresses email sont maintenant acceptées |\n\n## Output\n\n`{REPORT_PATH}\u002Frelease_notes_{RELEASE_NAME}.html`\n\noù `REPORT_PATH` = `.claude\u002Freports`\n\n## Task Management\n\n**Progression du workflow :**\n- 5 tâches créées à l'initialisation\n- Chaque étape suit le pattern : `in_progress` -> exécution -> `completed`\n- Utiliser `TaskList` pour voir la progression\n\n## References\n\nPour le template HTML et les règles de rédaction détaillées, consulter :\n- `devops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fhtml-template.html`\n- `devops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fwriting-rules.md`\n","# DevOps Release Notes Skill\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\n## Usage\n```\n\u002Fdevops:release-notes \u003Cbranche-source> \u003Cbranche-cible> [nom-release]\n```\nSi arguments manquants : `AskUserQuestion` pour demander.\n\n## Workflow\n\n### Initialisation\n\n**Créer les tâches du workflow :**\n\n```\nTaskCreate #1: Parser et valider arguments (branches source\u002Fcible)\nTaskCreate #2: Collecter commits via git log\nTaskCreate #3: Catégoriser par impact utilisateur\nTaskCreate #4: Rédiger descriptions sans jargon\nTaskCreate #5: Générer HTML dans .claude\u002Freports\u002F\n```\n\n**Important :**\n- Utiliser `activeForm` (ex: \"Validant les arguments\", \"Collectant les commits\")\n- Chaque tâche doit être marquée `in_progress` puis `completed`\n\n### Étapes\n\n1. Parser et valider arguments (branches source\u002Fcible)\n2. Collecter commits via `git log`\n3. Catégoriser par impact utilisateur\n4. Rédiger descriptions sans jargon\n5. Générer HTML dans `.claude\u002Freports\u002F`\n\n## Catégories\n\n| Catégorie | Icône | Mots-clés |\n|-----------|-------|-----------|\n| Nouveautés | Etoile | feat, improve |\n| Améliorations | Graphe | improve, perf |\n| Corrections | Check | fix |\n| Sécurité | Cadenas | security |\n\n## Commits ignorés\n\n- `refactor:`, `test:`, `chore:`, `ci:`, `docs:`, `style:`\n- Commits de merge\n- Mises à jour de dépendances\n\n## Règles de rédaction\n\n1. **ZÉRO jargon** - Pas de API, SQL, cache, endpoint, refactoring\n2. **Bénéfice utilisateur** - \"L'application est plus rapide\" vs \"Optimisation SQL\"\n3. **Verbes d'action** - \"Vous pouvez maintenant...\", \"Nous avons corrigé...\"\n4. **Phrases courtes** - Max 1-2 phrases par item\n\n## Exemples de transformation\n\n| Commit | Note utilisateur |\n|--------|------------------|\n| `feat: implémenter cache Redis` | L'affichage est plus rapide |\n| `fix: corriger validation email` | Certaines adresses email sont maintenant acceptées |\n\n## Output\n\n`{REPORT_PATH}\u002Frelease_notes_{RELEASE_NAME}.html`\n\noù `REPORT_PATH` = `.claude\u002Freports`\n\n## Task Management\n\n**Progression du workflow :**\n- 5 tâches créées à l'initialisation\n- Chaque étape suit le pattern : `in_progress` -> exécution -> `completed`\n- Utiliser `TaskList` pour voir la progression\n\n## References\n\nPour le template HTML et les règles de rédaction détaillées, consulter :\n- `devops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fhtml-template.html`\n- `devops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fwriting-rules.md`\n",{"name":5,"model":37,"license":15,"version":38,"description":39,"allowed-tools":40},"sonnet","1.0.0","Génère des notes de release HTML orientées utilisateurs finaux. Transforme les commits techniques en descriptions accessibles sans jargon.\n",[26,41,42,43,44,45],"Read","Write","Grep","Glob","AskUserQuestion","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","devops\u002Fskills\u002Frelease-notes","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 \"devops:release-notes\"",{"tool":60,"command":61},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"devops:release-notes\"",{"tool":63,"command":64},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"devops:release-notes\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fdevops\u002Fskills\u002Frelease-notes\u002FSKILL.md",true,[68,73,79,83,87,91],{"path":69,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"LICENSE","许可证",1065,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-sentry-mcp-queries\u002FLICENSE",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fhtml-template.html","REFERENCE","参考文档",2458,"https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fdevops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fhtml-template.html",{"path":80,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":81,"sourceHtmlUrl":82},"references\u002Fwriting-rules.md",2584,"https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fdevops\u002Fskills\u002Frelease-notes\u002Freferences\u002Fwriting-rules.md",{"path":84,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":85,"sourceHtmlUrl":86},"repos\u002Fmetamask-extension.md",2272,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-sentry-mcp-queries\u002Frepos\u002Fmetamask-extension.md",{"path":88,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":89,"sourceHtmlUrl":90},"SOURCE.md",375,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-sentry-mcp-queries\u002FSOURCE.md",{"path":92,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":93,"sourceHtmlUrl":94},"TRUST.auto.yaml",2197,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-sentry-mcp-queries\u002FTRUST.auto.yaml",[96,109,149,156,164,175],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":32},"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",[],[103,104,28,105,29,106,27,107,108,26],"twig:make component","component","edit","ux","template","php",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":131,"publishedAt":32},"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",[115,120,123,126],{"categoryNo":116,"categoryName":117,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":121,"categoryName":122,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":124,"categoryName":125,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[132,133,134,135,136,137,138,139,140,141,142,26,143,144,145,146,28,29,147,148],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":32},"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",[],[151,26,27,28,29,105],{"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":32},"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",[],[158,163,26,27,28,29,105],"message",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":32},"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",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":118,"taxonomyTypeDesc":119},"01JBSEEDCAT000000000000005","邮件与沟通",[166,105,174,26,107,27,28,29],"email",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":32},"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",[],[177,26,27,28,29,105,182,141],"options"]