[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSX32A57KVRRHWTED7T89X":3,"skill-same:01M6CSX32A57KVRRHWTED7T89X":108},{"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":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":14,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6CSX32A57KVRRHWTED7T89X","infra:skill-creator",null,"Guide expert pour créer des skills Claude Code efficaces. Couvre la structure SKILL.md, le frontmatter, les ressources bundlées (scripts, references, assets), la progressive disclosure et les bonnes pratiques. Utiliser quand l'utilisateur demande de créer ou améliorer un skill.","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\u002Finfra\u002Fskills\u002Fskill-creator\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"skill creator","infra","infra:skill creator","code","Bash","assets","read","write","edit","guide","expert","references","structure","2026-11-10 10:12:30",false,"---\nname: infra:skill-creator\ndescription: Guide expert pour créer des skills Claude Code efficaces. Couvre la structure SKILL.md, le frontmatter, les ressources bundlées (scripts, references, assets), la progressive disclosure et les bonnes pratiques. Utiliser quand l'utilisateur demande de créer ou améliorer un skill.\nmodel: sonnet\nallowed-tools: [Read, Write, Edit, Bash, Glob, AskUserQuestion]\nversion: 1.0.0\nlicense: MIT\n---\n\n# infra:skill-creator\n\nGuide complet pour créer des skills Claude Code efficaces.\n\n## Principes fondamentaux\n\n### Concision\n\nLe contexte est une ressource partagée. N'inclure que ce que Claude ne sait pas déjà. Préférer des exemples concis aux explications verbeuses.\n\n### Degrés de liberté\n\n- **Haute liberté** (instructions textuelles) : quand plusieurs approches sont valides\n- **Liberté moyenne** (pseudocode avec paramètres) : quand un pattern préféré existe\n- **Faible liberté** (scripts spécifiques) : quand la cohérence est critique\n\n## Structure d'un skill\n\n```\nskill-name\u002F\n├── SKILL.md (requis)\n└── Ressources bundlées (optionnel)\n    ├── scripts\u002F     - Code exécutable\n    ├── references\u002F  - Documentation à charger au besoin\n    └── assets\u002F      - Fichiers utilisés dans les outputs\n```\n\n## Frontmatter SKILL.md\n\nChamps importants :\n- `name` : identifiant (plugin:skill-name)\n- `description` : CRITIQUE — Claude s'en sert pour décider de charger le skill\n- `allowed-tools` : outils autorisés sans demande de permission\n- `model` : sonnet \u002F haiku \u002F opus\n- `argument-hint` : indice affiché en autocomplète\n- `disable-model-invocation: true` : seul l'utilisateur peut invoquer\n- `user-invocable: false` : seul Claude peut invoquer\n\n## Progressive disclosure\n\n3 niveaux de chargement :\n1. **Metadata** (name + description) — toujours en contexte (~100 mots)\n2. **SKILL.md body** — quand le skill se déclenche (\u003C 5000 mots)\n3. **Ressources bundlées** — chargées par Claude au besoin\n\nGarder SKILL.md sous 500 lignes. Déplacer les détails dans `references\u002F`.\n\n## Processus de création\n\n1. **Comprendre** le skill avec des exemples concrets\n2. **Planifier** les ressources réutilisables (scripts, references, assets)\n3. **Créer** la structure du répertoire\n4. **Éditer** : commencer par les ressources, puis SKILL.md\n5. **Itérer** sur des tâches réelles\n\n## Rédaction du frontmatter description\n\nInclure quand utiliser le skill. Exemples :\n- \"Explique le code avec des diagrammes. Utiliser quand l'utilisateur demande 'comment ça marche ?'\"\n- \"À utiliser proactivement après des changements de code pour la review qualité.\"\n\n## Bonnes pratiques\n\n- **Ne pas inclure** : README.md, CHANGELOG.md, guides d'installation dans le skill\n- **Inclure** uniquement ce dont un agent IA a besoin pour faire le travail\n- **references\u002F** : documentation de référence chargée au besoin\n- **scripts\u002F** : code répété ou nécessitant fiabilité déterministe\n- **assets\u002F** : templates, images, boilerplate copiés\u002Fmodifiés en output\n- Éviter les références imbriquées profondément (1 niveau depuis SKILL.md)\n\n## Template SKILL.md\n\n```markdown\n---\nname: plugin:skill-name\ndescription: Description concise avec quand l'utiliser\nmodel: sonnet\nallowed-tools: [Read, Write, Edit, Grep, Glob, Bash]\nversion: 1.0.0\nlicense: MIT\n---\n\n# Titre\n\nObjectif en 1-2 phrases.\n\n## Instructions à Exécuter\n\n[Contenu structuré]\n```\n","# infra:skill-creator\n\nGuide complet pour créer des skills Claude Code efficaces.\n\n## Principes fondamentaux\n\n### Concision\n\nLe contexte est une ressource partagée. N'inclure que ce que Claude ne sait pas déjà. Préférer des exemples concis aux explications verbeuses.\n\n### Degrés de liberté\n\n- **Haute liberté** (instructions textuelles) : quand plusieurs approches sont valides\n- **Liberté moyenne** (pseudocode avec paramètres) : quand un pattern préféré existe\n- **Faible liberté** (scripts spécifiques) : quand la cohérence est critique\n\n## Structure d'un skill\n\n```\nskill-name\u002F\n├── SKILL.md (requis)\n└── Ressources bundlées (optionnel)\n    ├── scripts\u002F     - Code exécutable\n    ├── references\u002F  - Documentation à charger au besoin\n    └── assets\u002F      - Fichiers utilisés dans les outputs\n```\n\n## Frontmatter SKILL.md\n\nChamps importants :\n- `name` : identifiant (plugin:skill-name)\n- `description` : CRITIQUE — Claude s'en sert pour décider de charger le skill\n- `allowed-tools` : outils autorisés sans demande de permission\n- `model` : sonnet \u002F haiku \u002F opus\n- `argument-hint` : indice affiché en autocomplète\n- `disable-model-invocation: true` : seul l'utilisateur peut invoquer\n- `user-invocable: false` : seul Claude peut invoquer\n\n## Progressive disclosure\n\n3 niveaux de chargement :\n1. **Metadata** (name + description) — toujours en contexte (~100 mots)\n2. **SKILL.md body** — quand le skill se déclenche (\u003C 5000 mots)\n3. **Ressources bundlées** — chargées par Claude au besoin\n\nGarder SKILL.md sous 500 lignes. Déplacer les détails dans `references\u002F`.\n\n## Processus de création\n\n1. **Comprendre** le skill avec des exemples concrets\n2. **Planifier** les ressources réutilisables (scripts, references, assets)\n3. **Créer** la structure du répertoire\n4. **Éditer** : commencer par les ressources, puis SKILL.md\n5. **Itérer** sur des tâches réelles\n\n## Rédaction du frontmatter description\n\nInclure quand utiliser le skill. Exemples :\n- \"Explique le code avec des diagrammes. Utiliser quand l'utilisateur demande 'comment ça marche ?'\"\n- \"À utiliser proactivement après des changements de code pour la review qualité.\"\n\n## Bonnes pratiques\n\n- **Ne pas inclure** : README.md, CHANGELOG.md, guides d'installation dans le skill\n- **Inclure** uniquement ce dont un agent IA a besoin pour faire le travail\n- **references\u002F** : documentation de référence chargée au besoin\n- **scripts\u002F** : code répété ou nécessitant fiabilité déterministe\n- **assets\u002F** : templates, images, boilerplate copiés\u002Fmodifiés en output\n- Éviter les références imbriquées profondément (1 niveau depuis SKILL.md)\n\n## Template SKILL.md\n\n```markdown\n---\nname: plugin:skill-name\ndescription: Description concise avec quand l'utiliser\nmodel: sonnet\nallowed-tools: [Read, Write, Edit, Grep, Glob, Bash]\nversion: 1.0.0\nlicense: MIT\n---\n\n# Titre\n\nObjectif en 1-2 phrases.\n\n## Instructions à Exécuter\n\n[Contenu structuré]\n```\n",{"name":5,"model":42,"license":15,"version":43,"description":7,"allowed-tools":44},"sonnet","1.0.0",[45,46,47,28,48,49],"Read","Write","Edit","Glob","AskUserQuestion","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","infra\u002Fskills\u002Fskill-creator","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":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"infra:skill-creator\"",{"tool":64,"command":65},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"infra:skill-creator\"",{"tool":67,"command":68},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"infra:skill-creator\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Finfra\u002Fskills\u002Fskill-creator\u002FSKILL.md",true,[72,78,82,86,92,96,100,104],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"_meta.json","REFERENCE","参考文档",145,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002F_meta.json",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"CHANGELOG.md",699,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002FCHANGELOG.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fapi-reference.md",3885,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002Freferences\u002Fapi-reference.md",{"path":87,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":91},"scripts\u002Fhelio.sh","SCRIPT","脚本",8262,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002Fscripts\u002Fhelio.sh",{"path":93,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":94,"sourceHtmlUrl":95},"scripts\u002Fsetup.sh",6427,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002Fscripts\u002Fsetup.sh",{"path":97,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":98,"sourceHtmlUrl":99},"skill-card.md",2150,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002Fskill-card.md",{"path":101,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":102,"sourceHtmlUrl":103},"SOURCE.md",274,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002FSOURCE.md",{"path":105,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":106,"sourceHtmlUrl":107},"TRUST.auto.yaml",2122,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmpc-payments\u002FTRUST.auto.yaml",[109,122,158,165,173,184],{"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":115,"publishedAt":37},"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",[],[116,117,30,32,31,118,119,120,121,28],"twig:make component","component","ux","grep","template","php",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":140,"publishedAt":37},"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",[128,131,134,135],{"categoryNo":129,"categoryName":130,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":132,"categoryName":133,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[141,142,143,144,145,146,147,148,149,150,151,28,152,153,154,155,30,31,156,157],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":37},"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",[],[160,28,119,30,31,32],{"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":37},"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",[],[167,172,28,119,30,31,32],"message",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":182,"publishedAt":37},"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",[179],{"categoryNo":180,"categoryName":181,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",[175,32,183,28,120,119,30,31],"email",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":37},"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",[],[186,28,119,30,31,32,191,150],"options"]