Skip to content

Latest commit

 

History

History
136 lines (108 loc) · 5.67 KB

File metadata and controls

136 lines (108 loc) · 5.67 KB
name modelio-doc
description Génère des documents professionnels Word (.docx) à partir d'un modèle Modelio via le protocole MCP. Invoque ce skill quand l'utilisateur demande de générer, produire ou créer un document, un rapport ou une spécification depuis un modèle Modelio.
applyTo **

Skill — Génération de documents Modelio

Quand utiliser ce skill

L'utilisateur te demande de :

  • Générer un document (exigences, classes, cas d'utilisation, conception, objectifs, risques, règles métier)
  • Produire un rapport à partir d'un modèle Modelio
  • Créer une spécification depuis Modelio

Types de documents disponibles

Type Fichier de consignes Description
Requirements doc-types/requirements.md Cahier des exigences
ClassReference doc-types/class-reference.md Référence des classes UML
UseCases doc-types/use-cases.md Cas d'utilisation
AnalysisAndDesign doc-types/analysis-and-design.md Analyse et conception
Goals doc-types/goals.md Objectifs
Risks doc-types/risks.md Risques
BusinessRules doc-types/business-rules.md Règles métier

Workflow obligatoire

Quand l'utilisateur demande un document :

  1. Identifie le type — Détermine quel doc-type correspond à la demande
  2. Lis les consignes — Ouvre et lis intégralement le fichier doc-types/{type}.md correspondant
  3. Extrais les données — Appelle les resources et tools MCP Modelio indiqués dans les consignes
  4. Génère le script python-docx — Écris un script Python complet qui utilise python-docx pour assembler le document Word avec les styles Modelio exacts
  5. Exécute le script — Lance le script pour produire le fichier .docx
  6. Confirme — Indique à l'utilisateur le chemin du document généré

Règles impératives

  • Ne jamais inventer de données — N'utilise que les données extraites via MCP. Si un champ est vide, laisse-le vide.
  • Respecter la structure exacte — Chaque doc-type décrit précisément l'ordre des sections, les tableaux, les colonnes. Suis-les à la lettre.
  • Respecter les styles Modelio — Couleurs, polices, tailles sont documentées dans chaque skill. Le document doit être visuellement identique au Document Publisher de Modelio.
  • Le template .docx est la source de styles — Charge toujours le template depuis examples/ comme base du document pour hériter des styles Word.
  • Captions après les tableaux — Les légendes de tableaux sont toujours placées APRÈS le tableau, jamais avant.
  • Numérotation globale — Les tableaux sont numérotés séquentiellement (Table 1, Table 2...) sur tout le document.

Styles Modelio de référence

Style Police Taille Gras Italique Couleur
Heading 1 Calibri 18pt Oui #4F81BD
Heading 2 Calibri 13pt Oui #4F81BD
Caption Calibri 10pt Oui Oui #4F81BD
Subtitle Calibri 12pt Oui #4F81BD
TOC Heading Calibri 14pt #365F91
Normal / Texte Calibri 11pt Noir
No Spacing Calibri 11pt Noir

En-tête de tableau Modelio

Toutes les lignes d'en-tête de tableau utilisent :

  • Fond bleu #4F81BD
  • Texte blanc, gras, Calibri 10pt, centré

Code de référence — Appliquer le fond bleu sur un en-tête

from docx.oxml import OxmlElement
from docx.oxml.ns import qn

def style_header_row(row, bg_color="4F81BD"):
    for cell in row.cells:
        shading = OxmlElement("w:shd")
        shading.set(qn("w:fill"), bg_color)
        shading.set(qn("w:val"), "clear")
        cell._tc.get_or_add_tcPr().append(shading)
        for paragraph in cell.paragraphs:
            paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
            for run in paragraph.runs:
                run.font.color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
                run.font.bold = True
                run.font.size = Pt(10)
                run.font.name = "Calibri"

En-tête commun du document

Tous les documents (sauf ClassReference) commencent par cet en-tête commun :

  1. Table des matières — style "TOC Heading", suivi du texte : « Merci de sélectionner ce champ et d'appuyer sur F9 pour créer/mettre à jour la table des matières »
  2. Tableau de révision — 1 ligne d'en-tête uniquement : [Rev | Date | Auteur | Description], avec le style en-tête bleu
  3. Table des figures — style "TOC Heading" + texte placeholder F9
  4. Table des tables — style "TOC Heading" + texte placeholder F9

Code de référence — Charger un template et vider son contenu

from pathlib import Path
from docx import Document

template_path = Path("ModelioDocSkill/examples/Requirements - Exigences.docx")
if template_path.exists():
    doc = Document(str(template_path))
    # Vider le contenu existant tout en gardant les styles
    for _ in range(len(doc.paragraphs)):
        p = doc.paragraphs[0]
        p._element.getparent().remove(p._element)
    for table in doc.tables:
        table._element.getparent().remove(table._element)
else:
    doc = Document()

Dépendance Python

Le script généré doit utiliser uniquement python-docx :

from docx import Document
from docx.shared import Pt, RGBColor, Cm
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml import OxmlElement
from docx.oxml.ns import qn

Emplacement des templates et de la sortie

ModelioDocSkill/examples/          ← Templates .docx (source de styles)
ModelioDocSkill/output/            ← Documents générés