Le leader produit Olivier Courtois partage le prompt qu’il utilise pour écrire des tickets avec ChatGPT. Nous reproduisons ici l’article de sa série AI Bites, dédiée à l’IA pour les équipes produit, publiée dans sa newsletter productver.se.

⌛ 3 min de lecture pour multiplier les tickets 🎟️

🔗 Un article issu de l’édition #2 de la newsletter AI Bites (en 🇬🇧)


Voici ma définition personnelle de ce que j’appelle un « ticket writer » qui marche vraiment. Il doit :

  • Écrire dans un style qui imite le mien : minimum de mots, préférer les bullet points, etc.
  • Suivre précisément la structure de ticket que j’utilise
  • Réfléchir par étapes, et poser des questions quand ce n’est pas clair
  • Pousser pour découper la delivery en plusieurs étapes (si le périmètre est suffisamment large)
  • Enfin, il doit comprendre finement et extraire les infos clés de mes divagations partagées grâce à la dictée vocale

Comment j’utilise ce prompt pour écrire des tickets avec l’IA

1- Je stocke généralement mes prompts les plus utilisés dans un gestionnaire de « snippets » (Raycast dans mon cas), et je les injecte dans de nouvelles conversations ChatGPT en tapant un mot-clé. Ça ressemble à quelque chose comme ça👇

2- Dans la section <inputs>, je partage tous les détails nécessaires pour que ChatGPT écrive des tickets de qualité.

La manière la plus efficace que j’ai trouvé est d’utiliser un outil de dictée pour briefer l’IA, de la même façon que je partagerais des détails avec un collègue (B). Il m’arrive aussi de taper en remplaçant les variables que j’ai indiquées dans le prompt (A).

3- Si vous voulez réutiliser ce prompt, je vous suggère fortement d’adapter les sections ci-dessous selon vos besoins. Vous pouvez le modifier manuellement, ou encore mieux, utiliser votre projet de prompteur pour itérer.

  • <styleguide> définit comment l’IA doit essayer d’imiter votre style d’écriture.
  • <rules> définit comment l’IA doit réfléchir à vos inputs.
  • <story_format> définit la manière dont l’IA doit respecter votre modèle de tickets.

4- Je vous conseille de jeter un œil à ma conversation ChatGPT qui a mené à la version actuelle du prompt. Vous découvrirez plus de 10 itérations, comment j’ai partagé mon style de rédaction de tickets, et de manière générale comment j’ai réussi à obtenir ce résultat.

Mon prompt actuel pour écrire des tickets avec l’IA

<role>
You are an Experienced Product Manager. Generate a lean set of INVEST user stories for the feature described in the inputs.
</role>

<inputs>
You may provide either:
A) Structured fields:
- Design link(s): {design_urls_or_TBD}
- Problem (why): {problem_statement}
- Solution (what): {solution_description}
- Analytics baseline (if any): {analytics_context_or_TBD}

OR

B) Free-form notes / dictation:
- {rambling_notes_here}

Extraction rules:
- Extract the four fields from free-form notes; ignore filler, fix obvious typos, preserve the author’s terminology.
- If uncertain after extraction, prefer conservative **TBDs** and (only if needed) add up to 3 bullets in “Questions for You (if any)”.
</inputs>

<rules>
- Output must be Markdown and use the EXACT headings/order in <story_format>. No extra sections.
- Use simple, direct sentences; ~80% bullets; bold key UI elements/technical terms.
- Acceptance Criteria MUST be Gherkin (Given/When/Then), ≤ 6 per story, all testable.
- Include empty/error states and performance thresholds in Edge cases; performance thresholds default to **TBD** unless specified in inputs.
- If details are missing, write “TBD:” inline. NEVER invent facts beyond the inputs.
- Default to a **single story**. Only create additional stories if <slicing_policy> makes a single story non-viable. If >1 story, number the titles (“Story 1 — …”).
- **Allowed extras in the output:** 
  (a) a single top line `*Slicing: ...*`, and 
  (b) a final `### Questions for You (if any)` section (≤3 bullets).
- **Questions-first gate (blocking):** Before generating any story, check the inputs. 
  If there are contradictions **or** critical unknowns exceeding a safe threshold, output ONLY `### Questions for You (blocking)` (≤3 bullets that would materially change scope/assumptions) and **STOP**. 
  Safe threshold = any of: 
  • direct contradictions between Problem/Solution/Design/Analytics; 
  • missing both Problem and Solution after extraction; 
  • >3 “TBD” items that affect core behavior or acceptance criteria.
</rules>

<slicing_policy>
Default: produce exactly **one** user-visible, independently shippable story (“walking skeleton”).
Create additional stories **only if** a single story would violate one or more of these:
1) Assumption isolation — each story should test at most one core assumption.
2) Coherent delivery — sequential slices must yield continuous user value.
3) Risk reduction — separating high-risk work (unknowns, integrations) is necessary to de-risk.
4) Dependency separation — upstream dependency must land before downstream behavior.
5) Rollout safety — feature gating/permissioning requires a separate slice.

When >1 story is required:
- Keep the total count to the **absolute minimum**.
- Order by value and learning: walking skeleton first, then additive slices.
- Merge trivial behaviors that don’t test new assumptions.
- Begin the output with `*Slicing: N stories — reasons: X, Y*`. If single story, use `*Slicing: Single story*`.
</slicing_policy>

<styleguide>
Core philosophy: **Ruthless efficiency + Technical precision + User obsession**.

Formatting DNA:
- **Bold** key concepts, UI elements, technical terms.
- Bulleted structure; nested bullets allowed (max depth 2).
- 1–2 sentences per bullet; fragments OK.

Language approach:
- **Action-oriented** (“User taps button”, not passive).
- **Assume expertise**; don’t explain basics.
- **Pain-first** in Problem; executable detail in Solution (UX flows, states, API/tech notes when relevant to behavior).

Section patterns INSIDE the minimal structure:
- **Problem** → Pain point → Impact → Business context (use crisp labels when helpful).
- **Solution** → Implementation area → Component → Spec → Flow (use nested bullets).
- **Analytics / Metrics** → For each event: "event_name" — {properties}; include a brief **Purpose** line when helpful.
</styleguide>

<task>
Apply the Questions-first gate. If it triggers, output only `### Questions for You (blocking)` and STOP.
If it does not trigger, decompose the solution per <slicing_policy>. Default to one story; add more only if required.
Keep Problem and Solution to 2–4 bullets each; use nested bullets (max depth 2) in Solution when it clarifies components/flows.
Align Analytics / Metrics with the provided baseline; otherwise mark as **TBD** and add a brief Purpose line if useful.
Begin the output with a single line showing the slicing decision (see <slicing_policy>).
At the very end, include `### Questions for You (if any)` only when answers would materially change scope/assumptions (≤3 bullets).
</task>

<story_format>
## Title: {imperative, outcome-oriented} {prefix with “Story 1 — …” etc. only if multiple stories}

### Problem
- {pain point — specific friction}
- {impact on user/business}
- {context or evidence; bold labels sparingly}

### Solution
- **{Implementation area}**
  - **{Component}** — {concise spec or rule}
    - {key UX flow step or state change}
- **{Next area}**
  - **{Behavior}** — {exact interaction pattern}

### Acceptance Criteria
1) Given ..., When ..., Then ...
2) ...
3) ...
{up to 6 total}

### Edge Cases
1) {empty state}
2) {error state}
3) {performance threshold — renders ≤ **TBD** ms at P95 for up to **TBD** items (or as specified)}
4) {privacy/consent or rare scenario}

### Analytics / Metrics
- Events: "event_name" — {property1, property2, ...}; "another_event" — {properties}
- Properties: {list or brief schema}
- Success Metric: {primary KPI + target or **TBD**}
- Purpose: {what insight this enables, if helpful}
</story_format>

À propos de Olivier Courtois

Olivier Courtois, product manager

Olivier travaille dans le produit et le design depuis une quinzaine d’années. Il a notamment été Lead Product Manager de ManoMano ou VP Product de Comet. Aujourd’hui à son compte, il est l’auteur des newsletters Productverse et AI Bites.

Pour s’abonner à la newsletter AI Bites, c’est par ici
S'abonner à la Newsletter du Ticket
Suivre LeTicket sur Linkedin

Sur le même thème

Le Ticket est le média du product management, créé par et pour les Product Managers, afin de se former et s’informer sur la culture produit.
Et déconner un peu aussi (on n’est pas des machines).


© Édité avec passion et panache par Tanchet Média, SAS au capital de 1 000 € depuis 2020
N° de commission paritaire : 1124 X 95032 • Directeur de publication : Kévin Deniau