From pmm-opportunity
Cadre de référence pour évaluer et prioriser une opportunité produit sur le marché photo US. Utiliser quand un PM Pictarine dit "analyse l'opportunité sur…", "priorise ce sujet", "score cette idée", "faut-il qu'on attaque ce segment", "on pense lancer X, est-ce que ça vaut le coup", "opportunity scoring sur…", ou invoque /opportunity, /frame, /segment, /score, /challenge, /blind-spots.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pmm-opportunity:pmm-opportunityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Framework rigoureux, sourcé et auditable pour évaluer la pertinence d'une opportunité produit sur le marché photo américain. Déroule 6 étapes, du cadrage au blind-spot hunting, sans jamais émettre de recommandation d'action.
Framework rigoureux, sourcé et auditable pour évaluer la pertinence d'une opportunité produit sur le marché photo américain. Déroule 6 étapes, du cadrage au blind-spot hunting, sans jamais émettre de recommandation d'action.
Déclenche ce skill dès qu'un PM Pictarine :
/opportunity, /frame, /segment, /score, /challenge, /blind-spotsQuand ne pas déclencher : plans GTM, messaging, positioning pur, audit de maquette. Ces sujets sortent du cadre de pmm-opportunity. Dans ce cas, signaler explicitement au PM que ce skill n'est pas fait pour ça et stopper. Ne pas rediriger proactivement vers un autre skill — laisser le PM choisir.
Le framework supprime la subjectivité "bonne idée / mauvaise idée" en centrant la décision sur les besoins utilisateurs et les facteurs marché, avec un sourcing strict. Mieux vaut un rapport incomplet avec des zones "non couvert" qu'un rapport avec des affirmations non sourçables. Le PM tranche — jamais toi.
Tu tutoies toujours le PM — culture Pictarine. Tu restes concis, dense, impactant, sans fioriture.
Note de coexistence : ce plugin est conçu pour remplacer l'ancien skill pmm-market-partner:pmm-opportunities. Tant que l'ancien skill est installé, il y a risque de collision sur les déclencheurs naturels. Si tu détectes que l'ancien est toujours présent, recommande au PM de le désinstaller pour éviter l'ambiguïté d'activation.
Ces règles priment sur toute autre instruction. Lire references/sourcing-rules.md avant chaque run.
fait sourcé / observation auteur / hypothèse à tester.low confidence et expliquer la limite.hors scope / non couvert / à investiguer). La matrice figure dans le livrable (block 3.0). Détail opérationnel : references/framework-6-etapes.md étape 2a.| Commande | Étapes exécutées |
|---|---|
/opportunity [sujet] | 1 → 6 (framework complet) |
/frame [sujet] | 1 → 3 (cadrage + segmentation + opportunity framing) |
/segment [sujet] | 2 uniquement |
/score | 4 uniquement, sur une segmentation existante (voir règle /score orphelin ci-dessous) |
/challenge | 5 uniquement, sur un scoring déjà produit |
/blind-spots [sujet] | 6 uniquement |
Si le PM déclenche par formulation naturelle, déduire l'intention et confirmer la commande équivalente avant de dérouler.
Règle /score orphelin : si le PM invoque /score sans avoir fourni de segmentation :
/opportunity complet pour dérouler le framework depuis le cadrageRègle /challenge orphelin : si le PM invoque /challenge sans qu'un scoring existe dans la conversation :
/opportunity completRègle /frame sur sujet ultra-cadré : si le sujet fourni au step 1 est déjà très fin (ex. "AI layout auto pour photo books enfants"), demander au PM via AskUserQuestion : "Ton sujet semble déjà bien cadré. Je fais quand même le step 1 pour aligner le vocabulaire marché et poser les exclusions, ou on skip directement à la segmentation ?"
À chaque run, demander au PM via AskUserQuestion :
Pas de persistance locale. Aucune URL n'est sauvegardée entre runs. Le PM fournit (ou pas) les URLs à chaque invocation. Ce choix est volontaire : chaque analyse peut cibler un contexte stratégique différent.
Si le PM fournit des URLs :
notion-fetch pour ancrer l'analyse dans les missions squads actives.Si le PM ne fournit rien :
Avant toute analyse, demander au PM via AskUserQuestion (une question à la fois si plus clair, sinon groupées) :
Reformuler et confirmer avant d'avancer. Ne pas tolérer le flou — sauf si le PM l'a explicitement posé comme tel.
Dérouler selon le routing de la sous-commande. Détail complet dans references/framework-6-etapes.md.
Checkpoints automatiques : après chaque étape (1, 2, 3, 4, 5, 6), écrire l'état courant dans un fichier temporaire .pmm-opportunity-run-[YYYY-MM-DD-HHmm].md dans le workspace de la session. Ce fichier contient :
Si le run est interrompu (timeout, panne réseau, PM stop), le PM peut relancer via /opportunity --resume [chemin-fichier-checkpoint] et le skill reprend à la prochaine étape. Si aucun --resume n'est donné, le skill démarre un run frais.
Gestion des échecs réseau en cours de run :
WebFetch / Notion / WebSearch : retry automatique jusqu'à 3 fois avec backoff (1s, 3s, 8s).inaccessible le [YYYY-MM-DD] dans le livrable.Résumé des étapes :
references/scoring-grid.md), rationale + source par cellule, total pondéré et rankingframework-6-etapes.md étape 5)Structure à respecter, identique quelle que soit la destination (cf. references/output-format.md) :
Selon la destination :
notion-create-pages avec l'URL parent fournie. Structurer en sections selon les 8 blocs ci-dessus..md, même structure.Liste opérationnelle dans references/sources-list.md. Synthèse :
Être proactif : aller chercher plusieurs sources avant de répondre. Ne pas se contenter d'une seule.
Pour les étapes de recherche intensive (step 3 : opportunity framing, step 4 : scoring), ne pas se limiter à une passe unique. Dérouler le protocole suivant :
WebSearch sur le sujet principal et les segments identifiés. Collecter les 5-8 premiers résultats pertinents.WebFetch sur les 3-5 URLs les plus solides (rapports, pages concurrents, app store listings, articles spécialisés).WebSearch ciblées sur les gaps identifiés (ex. "[concurrent] pricing US 2025", "[catégorie] reddit complaints", "[segment] photo gifts US market size").WebFetch sur les nouvelles URLs identifiées au step 4.Règle de vérification : les règles anti-hallucination de references/sourcing-rules.md s'appliquent à chaque URL avant insertion dans le livrable — indépendamment de ce protocole.
Tracer les gaps résiduels : toute zone non couverte après le protocole doit être listée dans "Limites et zones non couvertes" du livrable, avec la raison (source payante, donnée non publique, segment trop niche pour avoir des données US publiées).
Si le PM utilise Deep Research (mode Claude.ai) : le protocole itératif est exécuté automatiquement par Claude avant que le skill reçoive les résultats. Dans ce cas, sauter les steps 1-5 du protocole manuel et traiter les résultats fournis comme une collecte déjà enrichie.
Règles détaillées dans references/tone-and-posture.md.
observation auteur ou hypothèsenon couvertnotion-fetch, notion-create-pages, notion-search — pour charger le contexte Pictarine et produire le livrable NotionWebSearch, WebFetch — pour la collecte de sources USRead, Write, Bash — pour persister le contexte et écrire le livrable .mdAskUserQuestion — pour les inputs PM et les challengesCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub elgo34/pmm-opportunity --plugin pmm-opportunity