[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSSQYNDMCX12DY65TE006G":3,"skill-same:01M6CSSQYNDMCX12DY65TE006G":59},{"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":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":14,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6CSSQYNDMCX12DY65TE006G","analyst:discover",null,"Comprendre le besoin avant développement - Phase 0 (supporte le mode automatique)","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\u002Fdiscover\u002FSKILL.md",[],[5,19,20],"grep","read","2026-11-10 10:12:30",false,"---\nname: analyst:discover\ndescription: Comprendre le besoin avant développement - Phase 0 (supporte le mode automatique)\nargument-hint: \u003Cdescription-feature>\nmodel: sonnet\nallowed-tools: [TaskCreate, TaskUpdate, TaskList, Read, AskUserQuestion, Glob, Grep]\nversion: 1.0.0\nlicense: MIT\n---\n\n# Comprendre le besoin (Phase 0)\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\nPhase 0 du workflow de développement : comprendre le besoin utilisateur avant de coder.\n\n# Feature demandée\n\n$ARGUMENTS\n\n# Instructions\n\n## 1. Analyser la demande\n\n- Si la demande est claire et complète, passer à l'étape 2\n- Si la demande est ambiguë ou incomplète :\n  - **Mode interactif** : poser des questions pour clarifier :\n    - Quel problème cette feature résout-elle ?\n    - Qui sont les utilisateurs cibles ?\n    - Quelles sont les contraintes connues ?\n  - **Mode automatique** (si issue GitHub fournie) : évaluer la clarté automatiquement\n    - Si ambiguïté critique → FAIL immédiatement avec message explicite et exit 1\n    - Si description claire → continuer sans interaction\n\n## 2. Explorer le contexte\n\n- Chercher si des fichiers similaires existent déjà dans le projet\n- Lire `CLAUDE.md` et `.ai\u002F` pour comprendre les conventions\n- Identifier les patterns architecturaux utilisés\n- Lire `.claude\u002Frules\u002F` si le répertoire existe pour extraire les contraintes\n\nEn mode automatique : limiter l'exploration à **5 fichiers maximum**\n\n## 3. Résumer la compréhension\n\nPrésenter un résumé structuré :\n\n```\nRésumé de la demande\n\n**Feature :** {titre court}\n\n**Problème résolu :**\n{description du problème}\n\n**Utilisateurs cibles :**\n{qui utilisera cette feature}\n\n**Contraintes identifiées :**\n- {contrainte 1}\n- {contrainte 2}\n\n**Contexte technique :**\n- {pattern existant pertinent}\n- {fichiers existants liés}\n```\n\n## 4. Confirmer ou valider\n\n- **Mode interactif** : demander confirmation avant de passer à la phase suivante\n  ```\n  Est-ce que cette compréhension est correcte ?\n  Prochaine étape : \u002Fanalyst:explore pour analyser le codebase\n  ```\n- **Mode automatique** : valider automatiquement et continuer sans interaction\n\n# Mise à jour du workflow state\n\nCréer ou mettre à jour `.claude\u002Fdata\u002F.dev-workflow-state.json` (créer le répertoire si nécessaire)\n\n# Règles\n\n- Ne PAS commencer à coder\n- Ne PAS proposer d'architecture\n- Se concentrer sur la COMPRÉHENSION du besoin\n- Poser des questions si quelque chose n'est pas clair (mode interactif)\n- Fail fast si ambiguïté critique (mode automatique)\n","# Comprendre le besoin (Phase 0)\n\n## Instructions à Exécuter\n\n**IMPORTANT : Exécute ce workflow étape par étape :**\n\nPhase 0 du workflow de développement : comprendre le besoin utilisateur avant de coder.\n\n# Feature demandée\n\n$ARGUMENTS\n\n# Instructions\n\n## 1. Analyser la demande\n\n- Si la demande est claire et complète, passer à l'étape 2\n- Si la demande est ambiguë ou incomplète :\n  - **Mode interactif** : poser des questions pour clarifier :\n    - Quel problème cette feature résout-elle ?\n    - Qui sont les utilisateurs cibles ?\n    - Quelles sont les contraintes connues ?\n  - **Mode automatique** (si issue GitHub fournie) : évaluer la clarté automatiquement\n    - Si ambiguïté critique → FAIL immédiatement avec message explicite et exit 1\n    - Si description claire → continuer sans interaction\n\n## 2. Explorer le contexte\n\n- Chercher si des fichiers similaires existent déjà dans le projet\n- Lire `CLAUDE.md` et `.ai\u002F` pour comprendre les conventions\n- Identifier les patterns architecturaux utilisés\n- Lire `.claude\u002Frules\u002F` si le répertoire existe pour extraire les contraintes\n\nEn mode automatique : limiter l'exploration à **5 fichiers maximum**\n\n## 3. Résumer la compréhension\n\nPrésenter un résumé structuré :\n\n```\nRésumé de la demande\n\n**Feature :** {titre court}\n\n**Problème résolu :**\n{description du problème}\n\n**Utilisateurs cibles :**\n{qui utilisera cette feature}\n\n**Contraintes identifiées :**\n- {contrainte 1}\n- {contrainte 2}\n\n**Contexte technique :**\n- {pattern existant pertinent}\n- {fichiers existants liés}\n```\n\n## 4. Confirmer ou valider\n\n- **Mode interactif** : demander confirmation avant de passer à la phase suivante\n  ```\n  Est-ce que cette compréhension est correcte ?\n  Prochaine étape : \u002Fanalyst:explore pour analyser le codebase\n  ```\n- **Mode automatique** : valider automatiquement et continuer sans interaction\n\n# Mise à jour du workflow state\n\nCréer ou mettre à jour `.claude\u002Fdata\u002F.dev-workflow-state.json` (créer le répertoire si nécessaire)\n\n# Règles\n\n- Ne PAS commencer à coder\n- Ne PAS proposer d'architecture\n- Se concentrer sur la COMPRÉHENSION du besoin\n- Poser des questions si quelque chose n'est pas clair (mode interactif)\n- Fail fast si ambiguïté critique (mode automatique)\n",{"name":5,"model":26,"license":15,"version":27,"description":7,"allowed-tools":28,"argument-hint":36},"sonnet","1.0.0",[29,30,31,32,33,34,35],"TaskCreate","TaskUpdate","TaskList","Read","AskUserQuestion","Glob","Grep","\u003Cdescription-feature>","main","bb0335112ea0991dc1dc6a29fa5a861397a5a6f6","analyst\u002Fskills\u002Fdiscover","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":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add atournayre\u002Fclaude-personas --skill \"analyst:discover\"",{"tool":51,"command":52},"bunx","bunx skills add atournayre\u002Fclaude-personas --skill \"analyst:discover\"",{"tool":54,"command":55},"pnpm","pnpm dlx skills add atournayre\u002Fclaude-personas --skill \"analyst:discover\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fatournayre\u002Fclaude-personas\u002Fblob\u002Fmain\u002Fanalyst\u002Fskills\u002Fdiscover\u002FSKILL.md",true,[],[60,75,115,122,130,141],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":21},"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",[],[67,68,20,69,70,71,19,72,73,74],"twig:make component","component","edit","write","ux","template","php","Bash",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":97,"publishedAt":21},"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",[81,86,89,92],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":90,"categoryName":91,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[98,99,100,101,102,103,104,105,106,107,108,74,109,110,111,112,20,70,113,114],"test","ui","tester","ui test","tester:ui test","MCP","debug","create","update","validation","messages","plan","tool","page","find","javascript","chrome",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":21},"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",[],[117,74,19,20,70,69],{"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":128,"publishedAt":21},"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",[],[124,129,74,19,20,70,69],"message",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":139,"publishedAt":21},"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",[136],{"categoryNo":137,"categoryName":138,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000005","邮件与沟通",[132,69,140,74,72,19,20,70],"email",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":21},"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",[],[143,74,19,20,70,69,148,107],"options"]