一键导入
generate-story-qa
Génère une story QA à partir de guidelines et du contrat d’interface d’un composant.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Génère une story QA à partir de guidelines et du contrat d’interface d’un composant.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Produit une analyse des bugs de Lucca Front sur une période donnée (trimestre, mois…) en croisant deux populations : les issues de type `Bug` (demande) et les PR labellisées FIX (livraison) — volumes ouverts/traités/restants, criticité, sujets et comparatif trimestriel.
Règles d’écriture du SCSS Lucca Front : nommage type BEM à plat, modifiers/états, layers, tokens, propriétés logiques, structure de fichiers et enregistrement highlight-prisme. À utiliser pour écrire ou modifier du SCSS dans packages/scss, packages/ng ou les stories.
Génère ou complète des tests Storybook (`play`) pour les stories Lucca Front.
Design system Lucca Front / Prisme (Angular). À charger pour tout fichier d'un projet qui dépend de @lucca-front/ng ou @lucca-front/scss, ou contenant des sélecteurs lu-*, pr-* ou des directives commençant par 'lu' (ex: luButton, luTooltip, luForm).
Design system Lucca Front / Prisme (Angular). À charger pour tout fichier d'un projet qui dépend de @lucca-front/ng ou @lucca-front/scss, ou contenant des sélecteurs lu-*, pr-* ou des directives commençant par 'lu' (ex: luButton, luTooltip, luForm).
Design system Lucca Front / Prisme (Angular) — toutes versions. À charger pour tout fichier d'un projet qui dépend de @lucca-front/ng ou @lucca-front/scss, ou contenant des sélecteurs lu-*, pr-* ou des directives commençant par 'lu' (ex: luButton, luTooltip, luForm).
| name | generate-story-qa |
| description | Génère une story QA à partir de guidelines et du contrat d’interface d’un composant. |
Chaque composant possède une story QA qui liste les cas d’usage permettant de tester ses différentes options. Ces stories sont situées dans stories/qa/<composant>/ et suivent un format strict pour être facilement maintenues et utilisées par les équipes de développement et de QA.
Avant de générer la story, explorer le code source du composant dans packages/ng/<composant>/ pour identifier :
@Input()) : chaque input avec plusieurs valeurs possibles doit avoir une ligne dans la table@Output()) : à mentionner si nécessaire dans un cas de test interactifmod-*, is-*, palette-*) définies dans le SCSSdisabled, loading, error, success…)Chaque combinaison significative d'options donne lieu à une ligne dans la table QA.
Si des guidelines design sont fournies (texte, Figma, documentation), les utiliser pour :
Si aucune guideline n'est fournie, demander à l'utilisateur s'il souhaite en fournir une (lien Figma, documentation, texte libre) avant de générer la story, en précisant que cela permettra de couvrir les règles d'usage officielles et les cas limites. Si l'utilisateur confirme qu'il n'en a pas, se baser uniquement sur le contrat d'interface.
Ordre de priorité recommandé pour les lignes de la table :
palette-*mod-S, mod-M, mod-XS…loading, success, errorChaque dossier contient exactement 2 fichiers :
stories/qa/<composant>/
├── <composant>.stories.ts
└── <composant>.stories.html
<composant>.stories.tsimport { ChangeDetectionStrategy, Component } from '@angular/core';
import { MonComposantComponent } from '@lucca-front/ng/mon-composant';
import { Meta, StoryObj } from '@storybook/angular-vite';
@Component({
selector: 'mon-composant-stories',
templateUrl: './mon-composant.stories.html',
imports: [MonComposantComponent],
changeDetection: ChangeDetectionStrategy.OnPush,
})
class MonComposantStory {
// Propriétés réactives si nécessaire (ex: données pour les selects)
}
export default {
title: 'QA/MonComposant',
component: MonComposantStory,
} as Meta;
const template = () => ({});
export const Basic: StoryObj<MonComposantStory> = {
args: {},
render: template,
};
Règles :
selector suit le pattern <kebab-case>-storieschangeDetection: ChangeDetectionStrategy.OnPush est toujours présenttitle suit le pattern 'QA/<NomPascalCase>'Basic dans la grande majorité des cas<composant>.stories.html<table class="demo-QAtable">
<tbody>
<tr>
<td></td>
<td>
<div class="demo-QAtable-list">HTML</div>
</td>
<td>
<div class="demo-QAtable-list">Angular</div>
</td>
</tr>
<tr>
<td>Default</td>
<td>
<div class="demo-QAtable-list">
<!-- Implémentation HTML pure avec classes CSS -->
</div>
</td>
<td>
<div class="demo-QAtable-list">
<!-- Implémentation Angular avec composants/directives -->
</div>
</td>
</tr>
<tr>
<td>Variante A</td>
<td>
<div class="demo-QAtable-list"><!-- ... --></div>
</td>
<td>
<div class="demo-QAtable-list"><!-- ... --></div>
</td>
</tr>
<!-- Une ligne par cas de test -->
</tbody>
</table>
<!-- To tell the ui-diff tool that the page has finished rendering -->
<span id="ready"></span>
Règles :
<tr> représente un cas de test (Default, Style, Size, States, Disabled…)demo-QAtable-list est toujours présent pour wrapper les exemples d'une même cellule<span id="ready"></span> est obligatoire en fin de fichier (signal pour l'outil ui-diff)<td> reste vide