specs-ui
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSpecs UI maquettées en Tailwind
Tailwind UI 规格原型
Ce skill produit un petit site de specs (une page par écran, publié comme un seul artifact multi-pages) qui sert de référence entre le métier et les développeurs : chaque écran y est maquetté en Tailwind (desktop et mobile), situé dans son parcours et annoté avec ses règles. On itère jusqu'à valider le fonctionnement et le rendu, puis les développements reprennent les mêmes tokens et les mêmes classes.
Documents, libellés, annotations et échanges sont en français. Le code (scripts, attributs, variables, identifiants techniques) est en anglais ; ses commentaires peuvent être en français.
Les specs sont fonctionnelles et UI : aucun nom de bibliothèque, de fonction, de champ d'API ni de notation technique dans les écrans, les annotations ou les règles (, « Specs fonctionnelles, sans code »).
redaction-specs.md<skill>node <skill>/scripts/…该 skill 会生成一个小型规格站点(每个屏幕一页,并以单个多页 artifact 发布),用于在业务方与开发人员之间充当参考:每个屏幕均以 Tailwind 制作原型(desktop 和 mobile),放入对应的用户流程中,并针对相关规则添加注释。持续迭代,直至功能和视觉呈现均通过确认;随后,开发工作会沿用相同的 tokens 和 classes。
文档、标签文案、注释和交流均使用法语。代码(scripts、attributes、variables、technical identifiers)使用英语;代码注释可以使用法语。
这些规格同时涵盖功能与 UI:屏幕、注释或规则中均不得出现任何 library、function、API field 或 technical notation 名称(,“不含代码的功能规格”)。
redaction-specs.md<skill>node <skill>/scripts/…Économiser le contexte (à lire en premier)
节省上下文(首先阅读)
Un projet de specs grossit vite : un lot d'une dizaine d'écrans en une seule page dépasse 300 Ko. C'est pourquoi les specs sont découpées en pages par écran, et pourquoi il ne faut jamais relire ce qui n'est pas utile. Règles :
- est la mémoire du projet. En reprise, le lire en premier et s'en contenter tant que possible. Il contient les décisions, l'identité, la disposition, les personas, les faits du fil rouge en chaînes exactes (identifiants, libellés, heures : à y ajouter dès qu'un écran en crée), l'inventaire avec les ancres, l'état des lots et leurs URL, les conventions propres au projet, les points ouverts et la prochaine étape. Le créer depuis
specs/ui/CONTEXTE.mddès l'étape 1, et le mettre à jour à la fin de chaque étape. Il doit rester sous 200 lignes.templates/contexte.md - Ne jamais lire les pages construites (). Les specs vivent dans
specs/ui/site/: un fichier par état d'écran. On lit et modifie seulement les fichiers utiles (specs/ui/sources/,sources/<lot>/070-e15d.html), puis on reconstruit (étape 3).sources/shared/shells.html - Relire ses captures en commençant par le moins cher. Lire d'abord les alertes de , puis la planche réduite (
capture.mjs, environ 1 000 tokens pour plusieurs écrans), et ouvrir un cadre seul seulement en cas de doute. Les captures de section (--sheet) coûtent cher : à réserver aux mises en page de document.--sections - Limiter au travail en cours : pour ne capturer que les écrans modifiés, références du skill lues selon la table ci-dessous.
--ids - Déléguer sobrement, au bon modèle (voir « Répartir le travail entre modèles »). Un sous-agent reçoit le chemin de et sa tâche, pas un résumé de tout le projet. Deux sous-agents en parallèle ne travaillent jamais sur les mêmes fichiers, et l'inventaire révisé (ID, titres, ancres) est écrit dans
CONTEXTE.mdavant de les lancer.CONTEXTE.md - Publier seulement ce qui a changé. Tout le projet est un seul artifact multi-pages : liste les pages modifiées depuis la dernière publication, et seules celles-là sont envoyées. Regrouper les retouches avant de publier.
prepare-publish.mjs
规格项目很快就会膨胀:一批约十个屏幕放在同一页面中就会超过 300 KB。因此,规格按每个屏幕一页拆分,并且绝不应重读无关内容。规则:
- 是项目记忆。 续作时先读取它,并尽可能只依赖该文件。它包含决策、视觉身份、布局、personas、以精确字符串记录的贯穿性事实(标识符、标签、时间:屏幕产生这些信息时应立即添加)、带锚点的清单、批次状态及其 URL、项目专属约定、待确认事项和下一步操作。从
specs/ui/CONTEXTE.md创建它,并在每个步骤结束时更新。必须保持在 200 行以内。templates/contexte.md - 绝不读取已构建的页面()。 规格实际保存在
specs/ui/site/中:每个屏幕状态对应一个文件。只读取和修改有用的文件(specs/ui/sources/、sources/<lot>/070-e15d.html),然后重新构建(步骤 3)。sources/shared/shells.html - 重看自己的截图时,从成本最低的方式开始。 先读取 的 alerts,再查看缩略拼版(
capture.mjs,多个屏幕约需 1 000 tokens),仅在有疑问时打开单个 frame。分区截图(--sheet)成本较高,仅应用于文档布局。--sections - 将工作限定在当前范围: 使用 仅捕获已修改的屏幕,并按照下表读取 skill references。
--ids - 适度委派给合适的模型(参见“如何在模型之间分配工作”)。Sub-agent 只接收 的路径及其任务,而不是整个项目的摘要。两个并行 sub-agent 绝不能处理相同文件;启动前,必须先将修订后的清单(ID、标题、锚点)写入
CONTEXTE.md。CONTEXTE.md - 只发布发生变化的内容。 整个项目是一个多页 artifact:会列出自上次发布以来修改过的页面,并且只发送这些页面。发布前应集中整理所有调整。
prepare-publish.mjs
Répartir le travail entre modèles
如何在模型之间分配工作
Écrire ou modifier du HTML d'écran, appliquer une décision, extraire du texte : c'est de l'exécution, qui ne demande pas le modèle le plus capable. Quand l'environnement permet de choisir le modèle d'un sous-agent (paramètre de l'outil Agent dans Claude Code), répartir ainsi :
model| Rôle | Modèle | Tâches |
|---|---|---|
| Conception et décision | modèle principal de la session | Cadrage, propositions (disposition + thème), inventaire, fiches d'écran, relecture des planches avec la grille de |
| Rédaction | | Écrire les fichiers d'écran d'un lot à partir des fiches ; appliquer des retours ou des décisions dans les sources ; mutualiser un composant ; migrer un projet |
| Exécution mécanique | | Lancer |
Pourquoi Sonnet pour rédiger : écrire un écran demande de composer une mise en page soignée et de rester fidèle à la fiche, au fil rouge et à la grille de qualité. Haiku y perd en finition et oblige à des allers-retours qui coûtent plus que l'écart de prix. Haiku reste le bon choix pour ce qui ne demande aucun jugement de mise en page : lancer les scripts, extraire, renommer, corriger une pastille ou un lien signalé.
Fiche d'écran : ce que le modèle principal transmet au rédacteur, en 10 à 20 lignes par écran. Elle contient l'ID et les ancres de chaque état, l'objectif et l'usage dominant, le point focal, le contenu exact (faits du fil rouge), les composants et l'écran modèle à reprendre, les annotations à écrire (règle, condition, renvoi), les liens Depuis / Ensuite, et la portée mobile. Plus la fiche est précise, moins le rédacteur a besoin de contexte, et plus il peut être léger.
Le rédacteur ne décide pas : une ambiguïté ou un manque dans la fiche lui fait poser la question dans son compte rendu, pas improviser. Le modèle principal relit toujours les planches avant de publier ; un défaut de conception revient au rédacteur avec une consigne précise.
| Tâche | À lire |
|---|---|
| Reprise, itération, retouche | |
| Nouveau lot de specs | |
| Propositions d'interface | |
| Site existant | |
| Inventaire, évolution transverse | |
编写或修改屏幕 HTML、应用决策、提取文本属于执行工作,不需要使用能力最强的模型。当环境允许为 sub-agent 选择模型时(Claude Code 中 Agent 工具的 参数),应按以下方式分配:
model| 角色 | 模型 | 任务 |
|---|---|---|
| 构思与决策 | 当前会话的主模型 | 范围界定、方案(布局 + 主题)、清单、屏幕卡片、使用 |
| 编写 | | 根据卡片编写一个批次的屏幕文件;在 sources 中应用反馈或决策;抽取共用组件;迁移项目 |
| 机械执行 | | 运行 |
为什么使用 Sonnet 编写: 编写一个屏幕需要构思精致的布局,并忠实遵循卡片、贯穿性事实和质量检查表。Haiku 在精细度上有所损失,还会引发成本高于价格差异的往返沟通。对于不需要判断布局的任务,Haiku 仍是正确选择:运行 scripts、提取内容、重命名,以及修复被指出的标记或链接。
屏幕卡片: 主模型传递给编写者的信息,每个屏幕 10 至 20 行。它包含每个状态的 ID 和锚点、目标与主要用途、视觉焦点、确切内容(贯穿性事实)、组件及要沿用的参考屏幕、要编写的注释(规则、条件、引用)、“Depuis / Ensuite”链接以及 mobile 范围。卡片越精确,编写者需要的上下文越少,工作也就能越轻量。
编写者不负责决策:如果卡片中存在歧义或缺失内容,编写者应在报告中提出问题,而不是即兴发挥。主模型在发布前始终会重新查看拼版;设计缺陷会以明确指令退回给编写者修正。
| 任务 | 需要读取的内容 |
|---|---|
| 续作、迭代、调整 | |
| 新建一批规格 | |
| 界面方案 | |
| 现有网站 | |
| 清单、横向演进 | |
Fichiers produits
产出文件
Les trois skills de la chaîne rangent leurs livrables dans un seul dossier à la racine du projet. C'est aussi le dossier qui vit dans le dépôt de code de l'application pendant les développements :
specs/specs/
├── ui/ ce skill : specs maquettées
├── prototype/ skill prototype-ui (facultatif)
└── requirements/ skill requirements-doc : cahier des charges (facultatif)specs/ui/
├── CONTEXTE.md mémoire du projet (à jour à chaque étape)
├── tokens.css identité : bloc @theme Tailwind, injecté dans chaque document
├── propositions.html propositions d'interface et décision (jamais supprimé ; copié dans le site)
├── captures/ captures du site existant (étape 1B)
├── assets/ (facultatif) images du produit : logos, illustrations, photos de démonstration
├── sources/
│ ├── site.json titre, introduction, URL de l'artifact, liste ordonnée des lots, dossier des images
│ ├── shared/shells.html coquilles <template id="tpl-shell-…"> communes à tous les lots
│ └── <lot>/ lot.json, 000-header.html, NNN-<id>.html (un état d'écran par fichier), templates.html
└── site/ construit par build.mjs, ne pas modifier à la main :
index.html (accueil), <lot>/index.html (en-tête, règles, écrans, points ouverts,
journal), <lot>/eN.html (une page par écran, tous ses états), propositions.html,
assets/ (les images citées par les pages)Images du produit. Un logo, une mascotte, une illustration ou un insigne que l'interface affiche se montre dans la maquette, pas une forme de couleur qui le remplace : sans lui, l'écran ne se reconnaît pas. Les sources citent l'image par ; dans un projet qui a déjà ses images (application existante), → désigne leur dossier (chemin relatif à , par exemple ) plutôt que de les copier. copie dans les seules images citées, et les publie avec les pages ( §7).
assets/<chemin>sources/site.json"assets"specs/ui/"../../apps/web/public/assets"build.mjssite/assets/prepare-publish.mjstailwind.mdLes captures de vérification vont dans un dossier temporaire (le scratchpad de la session s'il existe), jamais dans le projet.
Dans un dépôt git, on commite les sources et , qui dit ce qui est publié, mais pas le site construit : le build est déterministe et prend quelques secondes, et l'équipe lit les specs dans l'artifact publié. Dans le du projet : , puis . Sur un clone neuf, lancer avant . Ne versionner le site que si l'équipe doit lire le HTML sans rien construire ni ouvrir l'artifact. Les captures et les dossiers de publication restent hors du dépôt.
site/.published.json.gitignorespecs/ui/site/*!specs/ui/site/.published.jsonbuild.mjsprepare-publish.mjs工作流中的三个 skills 会将各自的交付物放在项目根目录的同一个 文件夹中。应用开发期间,该文件夹也会保留在代码仓库中:
specs/specs/
├── ui/ ce skill : specs maquettées
├── prototype/ skill prototype-ui (facultatif)
└── requirements/ skill requirements-doc : cahier des charges (facultatif)specs/ui/
├── CONTEXTE.md mémoire du projet (à jour à chaque étape)
├── tokens.css identité : bloc @theme Tailwind, injecté dans chaque document
├── propositions.html propositions d'interface et décision (jamais supprimé ; copié dans le site)
├── captures/ captures du site existant (étape 1B)
├── assets/ (facultatif) images du produit : logos, illustrations, photos de démonstration
├── sources/
│ ├── site.json titre, introduction, URL de l'artifact, liste ordonnée des lots, dossier des images
│ ├── shared/shells.html coquilles <template id="tpl-shell-…"> communes à tous les lots
│ └── <lot>/ lot.json, 000-header.html, NNN-<id>.html (un état d'écran par fichier), templates.html
└── site/ construit par build.mjs, ne pas modifier à la main :
index.html (accueil), <lot>/index.html (en-tête, règles, écrans, points ouverts,
journal), <lot>/eN.html (une page par écran, tous ses états), propositions.html,
assets/ (les images citées par les pages)产品图片。 界面中展示的 logo、mascot、illustration 或 badge 应在原型中显示真实图片,而不是用色块替代:否则用户无法认出该屏幕。Sources 通过 引用图片;对于已有图片的现有应用项目, → 指定其文件夹(相对于 的路径,例如 ),无需复制这些图片。 仅将页面引用的图片复制到 , 则在发布页面时一并发布这些图片( §7)。
assets/<chemin>sources/site.json"assets"specs/ui/"../../apps/web/public/assets"build.mjssite/assets/prepare-publish.mjstailwind.md验证截图应放在临时文件夹中(如果会话存在 scratchpad,就使用它),绝不能放入项目。
在 git 仓库中,应提交 sources 和 ;后者记录已发布的内容,但不要提交构建后的站点。构建过程是确定性的,只需数秒,团队会通过已发布的 artifact 阅读规格。在项目的 中加入 ,然后加入 。在全新 clone 上,应先运行 ,再运行 。只有在团队必须直接阅读 HTML、既不构建也不打开 artifact 时,才应将站点纳入版本管理。截图和发布目录应保留在仓库之外。
site/.published.json.gitignorespecs/ui/site/*!specs/ui/site/.published.jsonbuild.mjsprepare-publish.mjsRessources du skill
Skill 资源
| Fichier | Rôle |
|---|---|
| Tokens, cadres, blocs réutilisables, annotations, catalogue de composants |
| Principes de qualité UI et grille de revue avant publication |
| Construire trois propositions (disposition + thème) |
| Fonctionnalité ajoutée à un site ou une application existante |
| Inventaire, anatomie d'un écran, états, itérations, évolutions transverses |
| Squelette d'un document de specs : habillage, script, deux écrans d'exemple |
| Page de comparaison : trois dispositions, trois thèmes, combinables en direct |
| Fichier d'identité, mémoire du projet |
| Construit le site depuis les sources : pages, liens entre pages, tokens, coquilles, habillage, typographie ; liste les pages modifiées |
| Crée un lot ( |
| Contrôles d'un fichier ou de tout le site ; images : |
| Contrôle WCAG AA des tokens |
| Prépare la publication du site (page principale + pages modifiées) ou d'un document isolé ; |
| Range un projet à l'ancienne disposition ( |
| Identité d'un site (URL) ou d'un code (dossier), captures |
| Met un document ancien (sans sources) au niveau des templates, sans toucher aux maquettes |
| Typographie française (appliquée automatiquement par |
| (Facultatif) Prépare un dossier Design System Claude Design : tokens, fondations, composants, README |
| (Facultatif) Crée le paquet « tokens seuls » envoyé à Claude Design par |
| Catalogue de composants exporté vers le Design System |
| Modèles du paquet : |
Les templates contiennent un produit fictif (« Orbe », demandes clients) qui ne sert qu'à montrer le format : en remplacer tout le contenu.
Où poser les questions. Une question ne doit jamais exister seulement dans la conversation. Les choix fermés passent par l'outil de questions interactives s'il existe (AskUserQuestion), avec une option recommandée. Tout ce qui attend une réponse est aussi reporté dans le document publié (« À valider » des propositions, « Points ouverts » des specs) et dans . Le message annonce ce qui est attendu.
CONTEXTE.md| 文件 | 作用 |
|---|---|
| Tokens、frames、可复用 blocks、annotations、组件目录 |
| UI 质量原则及发布前的检查表 |
| 构建三个方案(布局 + 主题) |
| 为现有网站或应用添加功能 |
| 清单、屏幕结构、状态、迭代、横向演进 |
| 规格文档骨架:页面样式、script、两个示例屏幕 |
| 对比页面:三种布局、三种主题,可实时组合 |
| 视觉身份文件、项目记忆 |
| 从 sources 构建站点:页面、页面间链接、tokens、shells、页面样式、排版;列出已修改的页面 |
| 创建批次( |
| 检查单个文件或整个站点;图片: |
| 检查 tokens 的 WCAG AA 对比度 |
| 准备发布站点(主页 + 已修改页面)或独立文档; |
| 将采用旧目录结构( |
| 从网站(URL)或代码(文件夹)提取视觉身份及截图 |
| 将旧文档(没有 sources)升级到当前 templates 级别,不修改原型 |
| 法语排版(由 |
| (可选)准备 Claude Design System 文件夹:tokens、foundations、components、README |
| (可选)创建仅含 tokens 的包,通过 |
| 导出到 Design System 的组件目录 |
| Design Sync 包的 templates:build.mjs、draft conventions、sync notes |
Templates 中包含一个虚构产品(“Orbe”、客户请求),仅用于展示格式:必须替换其中的全部内容。
问题应放在哪里。 问题绝不能只存在于对话中。对于封闭式选择,应优先使用交互式问题工具(如果存在则使用 AskUserQuestion),并提供一个推荐选项。所有需要答复的内容,也必须记录在已发布文档中(方案中的“À valider”、规格中的“Points ouverts”)以及 中。消息应说明当前等待用户提供的内容。
CONTEXTE.mdÉtape 0 · Cadrer
步骤 0 · 确定范围
- Reprise ? Si existe, lire
specs/ui/et reprendre à l'étape utile. Un projet à l'ancienne disposition (CONTEXTE.mdà la racine, versions 2.x) se range d'abord avecspecs-ui/(node <skill>/scripts/migrate-layout.mjs <projet>pour voir), puis se reconstruit ; les artifacts gardent leur URL. Un projet sans--dry-runniCONTEXTE.md(créé par une version 1.x, un document par lot) se migre d'abord :sources/- sur chaque document de specs, dans l'ordre des lots ;
split.mjs - ranger les anciens documents dans ;
specs/ui/archives/ - , puis contrôle avec
build.mjs specs/ui;capture.mjs specs/ui/site <tmp> - rédiger en extrayant le texte des points ouverts et des journaux, plutôt qu'en lisant les pages ;
CONTEXTE.md - publier le site comme un nouvel artifact, et noter les anciens artifacts comme remplacés.
- Origine de l'identité, déduite de la conversation : à définir → étape 1A ; site ou code existant → étape 1B ; fournie (charte, design system, tokens) → directement, puis étape 2. Si la personne dispose d'un Design System Claude Design et souhaite partir de celui-ci (c'est facultatif, le proposer seulement s'il existe), le lire (outil Artifact :
tokens.cssavec le type « Design System », puislistdu README et des tokens) et le traduire enreadet en coquilles : l'étape 1A devient inutile.tokens.css - Besoin fonctionnel : objectif, utilisateurs, règles, documents fournis. Un brief qui s'appuie sur une bibliothèque ou une documentation se lit avant de concevoir, puis se traduit en vocabulaire fonctionnel (§1). La bibliothèque n'apparaît jamais dans les specs.
redaction-specs.md
S'il manque des informations, les demander toutes dans un seul message. Si le brief suffit, ne rien demander : écrire les hypothèses et produire. Sans nom de produit, en choisir un provisoire et le signaler.
- 续作? 如果存在 ,先读取
specs/ui/,然后从合适的步骤继续。位于项目根目录、采用旧目录结构(2.x 版本的CONTEXTE.md)的项目,应先通过specs-ui/重新整理(使用node <skill>/scripts/migrate-layout.mjs <projet>可先预览),然后重新构建;artifacts 会保留原有 URL。既没有--dry-run也没有CONTEXTE.md的项目(由 1.x 版本创建,每个批次一个文档),应先进行迁移:sources/- 按批次顺序,对每份规格文档运行 ;
split.mjs - 将旧文档移入 ;
specs/ui/archives/ - 运行 ,然后使用
build.mjs specs/ui检查;capture.mjs specs/ui/site <tmp> - 编写 ,方法是提取待确认事项和日志中的文本,而不是读取页面;
CONTEXTE.md - 将站点发布为新的 artifact,并注明旧 artifacts 已被替代。
- 按批次顺序,对每份规格文档运行
- 视觉身份来源,根据对话推断:待定义 → 步骤 1A;现有网站或代码 → 步骤 1B;已提供(charte、design system、tokens)→ 直接使用 ,然后进入步骤 2。如果用户拥有 Claude Design System 并希望以此为基础(这是可选项,仅在确实存在时提出),则读取它(Artifact 工具:使用类型“Design System”调用
tokens.css,再读取 README 和 tokens),并将其转换为list和 shells;此时无需执行步骤 1A。tokens.css - 功能需求: 目标、用户、规则、已提供的文档。如果 brief 依赖某个 library 或 documentation,应先阅读,再将其转化为功能词汇(§1)。Library 的名称绝不能出现在规格中。
redaction-specs.md
如果缺少信息,应在同一条消息中一次性询问全部问题。如果 brief 已足够,不要提问:写明假设并开始产出。如果没有产品名称,则选择一个临时名称并明确说明。
Étape 1A · Trois propositions : disposition + thème
步骤 1A · 三个方案:布局 + 主题
Suivre . Une proposition associe une disposition (navigation, organisation, manière de travailler) et un thème (palette, typographie, formes, densité). Les trois propositions diffèrent sur les deux plans, sur le même écran représentatif, avec le même contenu réel, desktop et mobile. Partir de : chaque disposition a son balisage, et des boutons appliquent n'importe quel thème à n'importe quelle disposition.
references/propositions.mdtemplates/propositions.htmlVérifier : , puis (test de la vignette : les trois dispositions se distinguent au premier coup d'œil), sur deux ou trois combinaisons, et la grille de . Publier, puis demander un choix : une lettre, une combinaison ou des retouches. Présenter au même point d'arrêt l'inventaire de l'étape 2 dans la section « À valider ».
check-contrast.mjscapture.mjs --thumbnails--themesqualite-ui.mdAprès un retour (« A et C se ressemblent »), refaire l'étape dans le même fichier et le même artifact, avec un encadré « Depuis la version précédente ». Une fois le choix fait :
- figer le thème dans (source, date, contrastes revérifiés) et la disposition dans
tokens.css;sources/shared/shells.html - ajouter à un encadré « Décision » et marquer « À valider » comme tranché. Ne jamais supprimer
propositions.html.propositions.html
Un choix composite se reformule précisément avant d'être appliqué. S'il reste ambigu sans moyen de demander, retenir l'interprétation la plus plausible, l'écrire comme hypothèse et la poser en première question.
遵循 。每个方案都结合一种布局(导航、组织方式、工作方式)和一种主题(palette、typography、shapes、density)。三个方案应在这两个维度上均有差异,并基于同一个代表性屏幕、相同的真实内容以及 desktop 和 mobile 形式进行设计。以 为起点:每种布局都有自己的 markup,按钮可以将任意主题应用到任意布局。
references/propositions.mdtemplates/propositions.html验证方式:先运行 ,再运行 (缩略图测试:三种布局应能让人第一眼区分),对两到三种组合运行 ,并使用 的检查表。发布后,询问用户选择:一个字母、一种组合或需要调整的内容。在同一个确认节点,还应在“À valider”部分展示步骤 2 的清单。
check-contrast.mjscapture.mjs --thumbnails--themesqualite-ui.md收到反馈(例如“A 和 C 看起来相似”)后,在同一个文件和同一个 artifact 中重新制作该步骤,并加入“自从上一版本以来”的说明框。完成选择后:
- 在 中固定主题(来源、日期、重新检查过的对比度),并在
tokens.css中固定布局;sources/shared/shells.html - 在 中添加“Décision”说明框,并将“À valider”标记为已决定。绝不删除
propositions.html。propositions.html
对于组合式选择,应先准确重述,再予以应用。如果仍有歧义且无法询问,则采用最合理的解释,将其写为假设,并将其作为第一个问题提出。
Étape 1B · Reprendre un site existant
步骤 1B · 沿用现有网站
Suivre : (ou un dossier de code), croiser le rapport avec les captures, écrire avec les valeurs exactes et leur origine, puis reproduire une page en E0 · Existant à côté de sa capture et faire valider la fidélité. Si l'emplacement de la fonctionnalité est incertain, proposer deux ou trois dispositions d'intégration.
references/site-existant.mdextract-identity.mjs <url> --screenshots specs/ui/capturestokens.css遵循 :运行 (或传入代码文件夹),将报告与截图交叉核对,使用精确值及其来源编写 ,然后在截图旁复现一个 E0 · Existant 页面,并确认还原度。如果功能应放置的位置尚不明确,则提出两到三种集成布局。
references/site-existant.mdextract-identity.mjs <url> --screenshots specs/ui/capturestokens.cssÉtape 2 · Inventaire des écrans
步骤 2 · 屏幕清单
Suivre §1. Avant toute maquette, présenter le tableau des écrans (ID, objectif, états), les parcours, les règles comprises, les hypothèses et deux ou trois questions au plus. L'écrire aussi dans le document publié et dans , avec l'ancre de chaque écran. Attendre la validation. Un brief large se découpe en lots (un document par lot, numérotation globale) ; commencer par celui qui fixe la coquille. Le mobile est maquetté pour chaque écran, sauf portée réduite acceptée par la personne.
references/redaction-specs.mdCONTEXTE.md遵循 §1。在制作任何原型之前,展示屏幕表格(ID、目标、状态)、用户流程、已理解的规则、假设,以及最多两到三个问题。还应将这些内容连同每个屏幕的锚点写入已发布文档和 。然后等待确认。如果 brief 范围较大,应拆分为多个批次(每批一个文档,使用全局编号);先从确定 shell 的批次开始。除非用户接受缩小范围,否则每个屏幕都要制作 mobile 版本。
redaction-specs.mdCONTEXTE.mdÉtape 3 · Écrire les specs (sources par écran)
步骤 3 · 编写规格(按屏幕拆分 sources)
Créer un lot :
bash
node <skill>/scripts/split.mjs --new <lot> --root specs/ui # → sources/<lot>/, inscrit dans sources/site.jsonDans un projet qui a déjà ses coquilles, le lot démarre d'un squelette vide (en-tête, règles, points ouverts, journal à remplir, annexe d'identité reprise d'un lot existant) : partir des écrans modèles cités dans .
Puis, dans :
CONTEXTE.mdsources/<lot>/- renseigner :
lot.json(« Lot 2 · Projets et dépôts »),label,title,fonts(titre court de chaque écran :screens) ;{ "e4": "Assistant de création" } - renseigner l'en-tête () : contexte, règles, parcours ;
000-header.html - écrire un fichier par état d'écran (,
020-e4a.html…) en remplaçant les écrans d'exemple. Les sections030-e4b.htmld'un même écran forment une page ; les autres sections (règles, points ouverts, journal, annexe) vont sur l'index du lot.eN…
Un lot peut n'avoir aucun écran : une revue des points ouverts ou une liste de décisions à prendre, faite seulement de sections (tableaux à annoter avec « Retours »), avec dans pour sa carte sur l'accueil.
"summary"lot.jsonLes coquilles se modifient une seule fois dans , pour tous les lots ; les composants communs à plusieurs lots (en-tête de projet…) vont dans . Les fonds de calque et contenus réutilisés vont dans . Les liens s'écrivent simplement (, , ) : le build les réécrit vers la bonne page.
shells.htmlsources/shared/components.htmltemplates.html#e13bsessions.html#e13bpropositions.html#retenuConstruire après chaque série de modifications :
bash
node <skill>/scripts/build.mjs specs/uibuild.mjsspecs/ui/site/tokens.cssContenu : suivre (tokens uniquement, catalogue de composants, annotations) et (usage dominant, point focal, hiérarchie). Chaque écran comporte un ID, un titre, un badge, une note, « Depuis / Ensuite », une maquette desktop, une maquette mobile repensée et 3 à 6 annotations. Écrire l'en-tête et le premier écran, construire, vérifier, puis la suite.
tailwind.mdqualite-ui.md创建批次:
bash
node <skill>/scripts/split.mjs --new <lot> --root specs/ui # → sources/<lot>/, inscrit dans sources/site.json在已经有 shells 的项目中,新批次从一个空骨架开始(待填写 header、rules、open points、journal,以及从现有批次复用的 identity appendix):从 中列出的参考屏幕开始。
CONTEXTE.md然后在 中:
sources/<lot>/- 填写 :
lot.json(“Lot 2 · Projets et dépôts”)、label、title、fonts(每个屏幕的简短标题:screens);{ "e4": "Assistant de création" } - 填写 header():context、rules、paths;
000-header.html - 编写每个屏幕状态一个文件(、
020-e4a.html……),替换示例屏幕。同一屏幕的030-e4b.htmlsections 组成一个页面;其他 sections(rules、open points、journal、appendix)放在批次索引页上。eN…
某个批次可以完全没有屏幕:例如,只包含 sections(带有“Retours”列、供批注的表格)的待确认事项或待决定事项评审,并在 中填写 ,用于首页中的批次卡片。
lot.json"summary"Shells 只在 中修改一次,并应用于所有批次;多个批次共用的组件(例如项目 header)放入 。可复用的 overlay 背景和内容放入 。链接只需简单编写(、、):build 会将它们重写到正确页面。
shells.htmlsources/shared/components.htmltemplates.html#e13bsessions.html#e13bpropositions.html#retenu每完成一系列修改后进行构建:
bash
node <skill>/scripts/build.mjs specs/uibuild.mjsspecs/ui/site/tokens.css内容:遵循 (仅使用 tokens、组件目录、annotations)和 (主要用途、视觉焦点、层级)。每个屏幕包含 ID、标题、badge、note、“Depuis / Ensuite”、desktop 原型、重新设计的 mobile 原型以及 3 到 6 条 annotations。先编写 header 和第一个屏幕,然后构建、检查,再继续其余部分。
tailwind.mdqualite-ui.mdÉtape 4 · Vérifier, puis publier
步骤 4 · 检查,然后发布
bash
node <skill>/scripts/capture.mjs specs/ui/site <tmp>/captures # contrôles seuls, aucune image
node <skill>/scripts/capture.mjs specs/ui/site <tmp>/captures --sheet --ids e4,e5 # planches des écrans touchésLe script signale la version du template, les icônes inconnues, les blocs non assemblés, le contenu coupé et les pastilles posées sur du texte ou coupées par un bord (avec le cadre, le numéro et le texte recouvert). Corriger ces alertes, relire les planches avec la grille de §9, ouvrir un cadre seul () seulement en cas de doute, puis corriger les trois défauts les plus visibles et recapturer les écrans touchés. Cette boucle prime sur toute consigne générale de vérification unique. Sans navigateur, le dire.
qualite-ui.md--frames --ids …Publier (outil Artifact s'il existe ; les fichiers locaux font foi). Tout le projet est un seul artifact multi-pages :
bash
node <skill>/scripts/prepare-publish.mjs specs/ui/site <tmp>/publish # page principale + pages à envoyer- Passer à l'outil Artifact la page principale préparée () et la table
file_pathaffichée par le script : chemin publié → fichier defiles. Les pages secondaires sont des documents complets ; les liens relatifs entre pages fonctionnent tels quels.specs/ui/site/ - Première publication : toutes les pages (). Ensuite, seules les pages modifiées depuis la dernière publication ; les autres restent en ligne. Un artifact introuvable (supprimé, ou publié depuis un autre compte claude.ai) se remplace par un nouveau : publier avec
--all, puis remplacer l'URL partout (--all,site.json, configurations du prototype et du cahier des charges, README du projet) en notant l'ancienne comme remplacée. AvecCONTEXTE.md, l'outil peut exiger d'avoir vu la liste des fichiers : demander la liste (url) plutôt que de relire les pages.scope: "files" - Après une publication réussie : . Noter l'URL dans
prepare-publish.mjs specs/ui/site --confirm(sources/site.json) et dansartifact.CONTEXTE.md - Respecter les règles de l'outil Artifact pour la publication ; titre de deux à quatre mots.
Terminer par le chemin, le lien, un résumé court et les décisions attendues, et rappeler comment faire des retours : bouton « Retours » sur chaque page, puis coller l'export (voir « Retours de relecture » à l'étape 5). Mettre à jour.
CONTEXTE.mdbash
node <skill>/scripts/capture.mjs specs/ui/site <tmp>/captures # contrôles seuls, aucune image
node <skill>/scripts/capture.mjs specs/ui/site <tmp>/captures --sheet --ids e4,e5 # planches des écrans touchésScript 会报告 template 版本、未知 icons、未组装的 blocks、被截断的内容,以及落在文本上或被边缘裁切的标记(包括 frame、编号和被遮挡的文本)。修正这些 alerts,使用 §9 的检查表重新查看拼版,仅在有疑问时打开单个 frame(),然后修复最明显的三个缺陷,并重新捕获已修改的屏幕。这个循环的优先级高于任何通用的单次验证要求。如果没有浏览器,应明确说明。
qualite-ui.md--frames --ids …发布(如果存在则使用 Artifact 工具;本地文件是事实依据)。整个项目是一个多页 artifact:
bash
node <skill>/scripts/prepare-publish.mjs specs/ui/site <tmp>/publish # page principale + pages à envoyer- 向 Artifact 工具传入已准备好的主页(),以及 script 显示的
file_path表:published path →files中的 file。Secondary pages 是完整文档;页面之间的相对链接可正常工作。specs/ui/site/ - 首次发布:使用 发布所有页面。此后,只发布自上次发布以来修改过的页面;其他页面保持在线。如果找不到某个 artifact(已删除,或从另一个 claude.ai 账户发布),则创建新的 artifact:使用
--all发布,然后替换所有位置中的 URL(--all、site.json、prototype 和 cahier des charges 的配置、项目 README),并注明旧 artifact 已被替代。使用CONTEXTE.md时,工具可能要求先查看文件列表:应请求列表(url),而不是重新读取页面。scope: "files" - 发布成功后:运行 。在
prepare-publish.mjs specs/ui/site --confirm(sources/site.json)和artifact中记录 URL。CONTEXTE.md - 遵循 Artifact 工具的发布规则;标题为两到四个词。
最后提供路径、链接、简短摘要和待决定事项,并说明如何提供反馈:点击每个页面上的“Retours”按钮,然后粘贴导出内容(参见步骤 5 的“评审反馈”)。更新 。
CONTEXTE.mdÉtape 5 · Itérer
步骤 5 · 迭代
Suivre §6. Pour chaque retour :
redaction-specs.md- modifier seulement les sources concernées (et celles qu'elles impactent) en gardant les identifiants stables, puis reconstruire ;
- incrémenter l'itération, ajouter une entrée au journal, mettre à jour les points ouverts ;
- vérifier, republier, mettre à jour .
CONTEXTE.md
Selon le type de changement :
- identité : passe par , puis reconstruire ;
tokens.css - coquille : se fait dans , puis reconstruire (c'est une maintenance, pas une itération) ;
shells.html - disposition d'un écran qui fait débat : maquetter des variantes /
E5-Acôte à côte ;E5-B - évolution transverse : analyse d'impact, décisions, inventaire révisé dans et les propositions, puis production en commençant par le lot qui la porte.
CONTEXTE.md
遵循 §6。对于每条反馈:
redaction-specs.md- 只修改相关 sources(以及受其影响的 sources),并保持 identifiers 稳定,然后重新构建;
- 增加迭代次数,添加一条 journal entry,并更新 open points;
- 检查、重新发布,并更新 。
CONTEXTE.md
根据变更类型:
- 视觉身份: 通过 修改,然后重新构建;
tokens.css - shell: 在 中修改,然后重新构建;这属于维护,不算一次迭代;
shells.html - 某个屏幕的布局存在争议: 并排制作 /
E5-A变体;E5-B - 横向演进: 进行 impact analysis、作出决策、修订 和 propositions 中的清单,然后从承载该变更的批次开始产出。
CONTEXTE.md
Retours de relecture
评审反馈
Chaque page du site porte un bouton « Retours » (habillage du document, absent des captures et de l'impression). La personne qui relit passe en mode « Annoter », clique sur l'endroit d'une maquette ou d'un texte (règle, annotation, point ouvert) et écrit une correction à faire ou une question. Chaque retour est repéré à l'endroit cliqué (R1, R2…), gardé dans son navigateur seulement, puis exporté en Markdown et collé dans la conversation : « Copier l'export », « Afficher l'export » (grande fenêtre de lecture, avec copie et sélection du texte quand le presse-papiers est refusé) et, hors artifact, « Télécharger » (une page publiée dans un artifact ne peut pas déclencher de téléchargement). L'export regroupe les retours par état d'écran et cite pour chacun le fichier source (, inscrit par dans chaque section), le cadre (), la position dans le cadre et le texte visé.
sources/<lot>/NNN-<id>.htmlbuild.mjse4c-desktopPour traiter un export :
- Ne lire que l'export, puis les seuls fichiers sources qu'il cite. Repérer l'élément par le texte cité, le cadre et la position (en % de la largeur et de la hauteur du cadre) ; jamais de relecture des pages construites.
- Correction claire et compatible avec les règles et décisions : l'appliquer dans la source. Correction ambiguë, qui contredit une règle, une décision de ou un autre écran : la poser à la personne (outil de questions, choix fermés) plutôt que d'improviser.
CONTEXTE.md - Question : y répondre dans la conversation ; si elle appelle une décision, l'ajouter aux points ouverts du lot (et à ) avec une recommandation.
CONTEXTE.md - Une itération par série de retours : journal du lot qui cite les retours traités (« R1, R3 : … »), reconstruire, capturer les écrans touchés (), republier les pages modifiées.
--ids - Répondre par un tableau (corrigé, question posée, point ouvert, non retenu et pourquoi). La personne marque ensuite les retours « traités » dans le panneau, ou les efface.
Retour | Suite donnée | Écran
Les retours restent dans le navigateur de chaque personne : plusieurs relecteurs exportent chacun les leurs (le nom saisi les signe). Un retour sur un écran déjà livré (statut d'implémentation) suit la boucle de l'étape 7 : il change aussi le code, ou devient un écart.
站点中的每个页面都有一个 “Retours” 按钮(属于 document 样式,不会出现在截图和打印中)。评审者进入“Annoter”模式,点击原型或文本(rule、annotation、open point)上的具体位置,并填写一项待执行修正或一个问题。每条反馈都会在点击位置进行标记(R1、R2……),仅保存在其浏览器中,然后导出为 Markdown 并粘贴到对话中:“Copier l'export”、“Afficher l'export”(大尺寸阅读窗口,支持复制;如果浏览器拒绝剪贴板访问,则可选择文本),以及在 artifact 之外使用“Télécharger”(已发布到 artifact 的页面无法触发下载)。导出内容按屏幕状态分组,并为每条反馈注明 source file(,由 写入每个 section)、frame(如 )、frame 内的位置和目标文本。
sources/<lot>/NNN-<id>.htmlbuild.mjse4c-desktop处理导出内容时:
- 只读取导出内容,然后只读取其中引用的 source files。根据引用的文本、frame 和位置(占 frame 宽度和高度的百分比)定位元素;绝不重新读取构建后的页面。
- 修正明确且符合规则和决策的反馈:直接在 source 中应用。如果修正存在歧义,或与 中的规则、决策或其他屏幕相冲突,则通过问题工具向用户提出封闭式选择,而不是即兴发挥。
CONTEXTE.md - 问题: 在对话中回答;如果需要作出决策,则将其添加到批次的 open points 和 中,并附上建议。
CONTEXTE.md - 每系列反馈对应一次迭代:在批次 journal 中记录已处理的反馈(如“R1、R3:……”),重新构建,捕获已修改的屏幕(),并重新发布已修改的页面。
--ids - 使用 格式的表格作答。随后,用户可以在面板中将反馈标记为“已处理”,或者将其删除。
反馈 | 处理结果 | 屏幕
反馈保存在每个人的浏览器中:多位评审者会分别导出各自的反馈(输入的姓名会作为签名)。针对已交付屏幕的反馈(implementation status)遵循步骤 7 的流程:它还应改变代码,或者成为一项差异。
Option · Design System Claude Design
选项 · Claude Design System
Fonctionnalité facultative : chaque personne décide de l'utiliser ou non. La proposer une fois, par une question fermée (« Exporter l'identité vers un Design System Claude Design ? » Oui / Non / Plus tard), juste après la décision de l'étape 1A ou à l'étape 6, et noter la réponse dans (section « Préférences ») pour ne pas la reposer. Ne jamais l'exporter sans accord.
CONTEXTE.mdSi la réponse est oui, deux temps.
1. Le catalogue () :
specs/ui/design-system/bash
node <skill>/scripts/export-design-system.mjs specs/uiIl contient le README (thème, vocabulaire des tokens, règles d'usage), , les fondations (couleurs, typographie, formes), les composants du catalogue et ceux du projet (). Chaque fiche porte le marqueur de carte de Claude Design.
tokens.csssources/shared/2. Le paquet « tokens seuls » (, à côté de ). Claude Design construit en React à partir d'un paquet : comme les specs n'ont pas de composants React, on lui envoie l'identité sous forme de tokens et de classes utilitaires. Les fiches du catalogue deviennent les cartes visibles du projet.
specs/design-system-package/specs/ui/bash
node <skill>/scripts/design-sync-package.mjs specs/ui
cd design-system-package && npm install && npm run build- Compléter à partir de
.design-sync/conventions.md, en anglais, entre 2 000 et 4 000 caractères. C'est l'en-tête que lit le design agent : il doit nommer chaque token et dire quand l'employer, décrire les motifs récurrents (badges, coquille, en-têtes) et donner un exemple réaliste.CONTEXTE.md - La personne lance ensuite depuis ce dossier, et accorde l'accès avec
/design-syncsi on le lui demande. Ce skill n'envoie rien lui-même./design-login - Les étapes de reconstruction et les pièges connus sont dans .
.design-sync/NOTES.md
Après une évolution de l'identité ou des composants partagés : relancer l'export, puis dans le paquet, puis .
npm run build/design-sync这是一项可选功能:由每个人自行决定是否使用。在步骤 1A 的决策之后或步骤 6 之后,通过一个封闭式问题提出一次(“将视觉身份导出到 Claude Design System?”是/否/稍后),并将回答记录在 的“Preferences”部分,避免重复询问。未经同意,绝不能导出。
CONTEXTE.md如果回答为是,则分为两个阶段。
1. 目录():
specs/ui/design-system/bash
node <skill>/scripts/export-design-system.mjs specs/ui其中包含 README(主题、token 词汇、使用规则)、、foundations(颜色、排版、形状)、目录组件和项目组件()。每张卡片都带有 Claude Design 的卡片标记。
tokens.csssources/shared/2. 仅含 tokens 的包(,与 并列)。 Claude Design 会用 React 构建它。由于规格中没有 React components,因此需要将视觉身份以 tokens 和 utility classes 的形式发送。目录卡片会成为产品中可见的卡片。
specs/design-system-package/specs/ui/bash
node <skill>/scripts/design-sync-package.mjs specs/ui
cd design-system-package && npm install && npm run build- 根据 补全
CONTEXTE.md,使用英语,长度为 2 000 至 4 000 个字符。它是 design agent 读取的 header:必须命名每个 token 并说明何时使用,描述 recurring patterns(badges、shell、headers),并给出一个真实示例。.design-sync/conventions.md - 随后,用户在该目录中运行 ,并在工具要求时通过
/design-sync授予访问权限。该 skill 本身不会发送任何内容。/design-login - 重新构建步骤和已知陷阱记录在 中。
.design-sync/NOTES.md
视觉身份或共享组件发生变化后:重新导出,运行包中的 ,然后执行 。
npm run build/design-syncÉtape 6 · Passer aux développements
步骤 6 · 转入开发
Vérifier qu'aucun point ouvert ne bloque, activer le statut d'implémentation (étape 7), proposer l'export Design System si la personne ne s'est pas encore prononcée (voir l'option ci-dessus), proposer l'inventaire des composants récurrents, et rappeler que se colle tel quel après . Sur demande, découper en stories avec les annotations comme critères d'acceptation.
tokens.css@import "tailwindcss";Pour faire tester les parcours ou les montrer avant de développer, le skill transforme ces specs en prototype cliquable (mêmes écrans, données simulées, scénarios de test). Pour lancer les développements, le skill en tire le cahier des charges de l'équipe (specs par lot avec critères d'acceptation, architecture, stack, infrastructure, lots et estimations).
prototype-uirequirements-doc检查是否还有会阻塞工作的 open point,启用 implementation status(步骤 7);如果用户尚未就此作出选择,则提出导出 Design System 的选项(参见上文),并提出 recurring components 清单。提醒用户在 之后原样粘贴 。如有要求,可将屏幕拆分为 stories,并将 annotations 作为 acceptance criteria。
@import "tailwindcss";tokens.css为了测试用户流程,或在开发前进行演示, skill 会将这些规格转换为可点击的 prototype(相同的屏幕、模拟数据、测试场景)。在启动开发时, skill 会从中生成团队的 cahier des charges(按批次划分的 specs、acceptance criteria、architecture、stack、infrastructure、batches 和 estimations)。
prototype-uirequirements-docÉtape 7 · Maintenir pendant les développements
步骤 7 · 在开发期间持续维护
Une fois les développements lancés, les specs restent la référence : elles décrivent ce que l'application fait, écran par écran, et suivent l'implémentation. Le dossier vit dans le dépôt de l'application.
specs/Statut d'implémentation. L'activer dans (), puis le tenir à jour dans le de chaque lot :
sources/site.json"implementation": truelot.jsonjson
"status": { "e1": "done", "e2": "doing", "e3": { "status": "gap", "note": "Codex pas encore pris en charge" } }- Valeurs : (À développer, par défaut),
todo(En cours),doing(Livré),done(Écart : l'application diffère des specs ; la note dit en quoi).gap - Le build remplace le badge « Nouveau » de chaque état par le statut, met une pastille dans la navigation et affiche l'avancement sur l'index des lots et l'accueil. Le cahier des charges reprend les statuts à l'extraction.
Un écart constaté pendant le développement se tranche, puis se reporte dans le même changement que le code (même branche, même PR) :
- Le code a raison (contrainte technique, meilleure idée validée) : modifier les sources de l'écran, incrémenter l'itération et noter au journal du lot « aligné sur l'implémentation », avec la raison. Garder les identifiants (écrans, états, numéros de règles) : le code et les tests les citent.
- Les specs ont raison : le code se corrige ; en attendant, statut avec une note.
gap - Question ouverte : point ouvert du lot et de , statut
CONTEXTE.md.gap
Puis, dans l'ordre :
- reconstruire les specs ;
- reporter l'écart dans le prototype s'il câble l'écran (skill , « Suivre les specs ») ;
prototype-ui - réextraire le cahier des charges et ajuster les critères touchés (skill , « Maintenir ») ;
requirements-doc - publier les artifacts concernés (dit lesquels sont en retard) ;
prepare-publish.mjs … --check - commiter les sources et les ensemble (et les sites construits, s'ils sont versionnés).
.published.json
Numérotation stable. Une règle fonctionnelle garde son numéro : une nouvelle règle va à la fin de la liste, une règle abandonnée reste avec la mention « Retirée ». Un écran ou un état retiré garde son identifiant réservé. Les identifiants RF du cahier des charges viennent de ces numéros.
开发启动后,规格仍然是事实依据:它们逐屏描述应用的行为,并跟随实现同步更新。 文件夹保留在应用代码仓库中。
specs/Implementation status。 在 中启用(),然后在每个批次的 中持续更新:
sources/site.json"implementation": truelot.jsonjson
"status": { "e1": "done", "e2": "doing", "e3": { "status": "gap", "note": "Codex pas encore pris en charge" } }- 取值:(待开发,默认)、
todo(进行中)、doing(已交付)、done(差异:应用与 specs 不一致;note 说明具体差异)。gap - Build 会将每个状态的“Nouveau” badge 替换为对应状态,在导航中添加一个标记,并在批次索引和首页显示进度。提取 cahier des charges 时,也会带上这些状态。
开发期间发现差异时,应先作出决定,然后在与代码相同的变更中报告(同一 branch、同一 PR):
- 代码正确(存在技术限制,或采用了更好的方案并已确认):修改屏幕 sources,增加迭代次数,并在批次 journal 中注明“已与实现对齐”及其原因。保留 identifiers(屏幕、状态、规则编号):代码和测试会引用它们。
- 规格正确: 修正代码;在修正之前,将状态设为 并添加 note。
gap - 开放问题: 添加到批次的 open points 和 中,并将状态设为
CONTEXTE.md。gap
然后按以下顺序执行:
- 重新构建 specs;
- 如果 prototype 接入该屏幕,则将差异同步到 prototype(skill,“Suivre les specs”);
prototype-ui - 重新提取 cahier des charges,并调整受影响的 acceptance criteria(skill,“Maintenir”);
requirements-doc - 发布相关 artifacts(会指出哪些内容已落后);
prepare-publish.mjs … --check - 将 sources 和 一起提交(如果构建后的站点也纳入版本管理,则一并提交)。
.published.json
稳定编号。 一条功能规则始终保留其编号:新规则添加到列表末尾;废弃的规则保留并标注“Retirée”。被删除的屏幕或状态保留其 reserved identifier。Cahier des charges 中的 RF identifiers 来自这些编号。
Ce que ce skill ne fait pas
该 skill 不做什么
- Il ne code pas l'application : les maquettes sont statiques, et les specs restent la référence.
- Il ne copie pas l'identité d'un produit tiers : un site extérieur sert d'inspiration de structure, jamais de modèle visuel.
- 它不负责编写应用代码:原型是静态的,而 specs 始终是事实依据。
- 它不复制第三方产品的视觉身份:外部网站只能作为结构灵感,绝不能作为视觉样式范例。