# CLAUDE.md — Wiki EasyWMS Limagrain (Cowork) ## Mission Tu maintiens un **wiki projet Limagrain en Markdown** dans le sous-dossier `limagrain/`, au sein d'un dépôt qui contient aussi le **wiki standard EasyWMS** (dossiers `architecture/`, `concepts/`, `modules/`, `operations/`, `glossary.md`). Le wiki standard est également accessible via le MCP server `wms-wiki`. Le wiki Limagrain ne documente que le **delta projet** : customs, configurations, décisions, flux spécifiques. Chaque page renvoie vers la page standard correspondante quand un concept générique existe. **Règle d'or** : ne jamais modifier les fichiers du wiki standard. Le dossier `limagrain/` est le seul périmètre d'écriture pour le contenu projet. --- ## Arborescence ``` wiki-ameliorator-v2_x-Limagrain/ ← racine du dépôt │ ├── CLAUDE.md ← CE FICHIER │ ├── ── WIKI STANDARD (lecture seule) ── ├── architecture/ ← 6 pages standard ├── concepts/ ← 35 pages standard ├── modules/ ← 24 pages standard ├── operations/ ← 19 pages standard ├── glossary.md ← glossaire standard ├── _index.md ← index global (standard + Limagrain) ├── _lint_report.md ├── _log.md │ ├── ── SOURCES (inbox) ── ├── sources/ ← déposer ici les ressources à intégrer │ └── archives/ ← ressources déjà traitées │ ├── ── JOURNAL ── ├── consume.log ← journal de consommation (append-only) │ └── ── WIKI LIMAGRAIN (écriture) ── limagrain/ ├── README.md ← index + table des matières du wiki Limagrain ├── glossaire-limagrain.md ← termes et acronymes spécifiques projet │ ├── 01-inbound/ │ ├── _index.md │ ├── reception-fournisseur.md │ ├── reception-retour.md │ ├── controle-qualite-reception.md │ └── flux-erp-inbound.md │ ├── 02-stockage/ │ ├── _index.md │ ├── asrs-miniload.md │ ├── galileo-config.md │ ├── putaway-strategies.md │ ├── zones-stockage.md │ └── defragmentation.md │ ├── 03-picking/ │ ├── _index.md │ ├── picking-combinatoire.md │ ├── stations-picking.md │ ├── waves-groupes.md │ └── replenishment.md │ ├── 04-outbound/ │ ├── _index.md │ ├── flux-expedition.md │ ├── shipping-orders.md │ ├── consolidation-chargement.md │ └── flux-erp-outbound.md │ ├── 05-agv/ │ ├── _index.md │ ├── still-igo-integration.md │ ├── agv-stations-routes.md │ └── agv-troubleshooting.md │ ├── 06-erp-interface/ │ ├── _index.md │ ├── messages-reference.md │ ├── mapping-erp-wms.md │ └── interface-monitoring.md │ ├── 07-admin/ │ ├── _index.md │ ├── utilisateurs-groupes.md │ ├── parametres-projet.md │ └── ad-customs.md │ ├── 08-transverse/ │ ├── _index.md │ ├── jira-tickets-cles.md │ ├── decisions-architecture.md │ ├── questions-ouvertes.md │ └── historique-projet.md │ └── assets/ ``` L'arborescence `limagrain/` ci-dessus est le **squelette initial**. Tu peux créer de nouvelles pages ou sous-dossiers si le contenu le justifie — respecte les conventions ci-dessous et mets à jour `limagrain/README.md` en conséquence. --- ## Workflow de consommation Quand Arthur te demande d'intégrer des ressources ou quand tu détectes des fichiers dans `sources/` : ### Étape 1 — Inventaire Lis le contenu de `sources/` (ignore `archives/`) et liste les fichiers présents. Pour chaque fichier, identifie : - Le type (Confluence export, note Obsidian, mail, Excel, PDF, Word, capture d'écran) - Le domaine fonctionnel probable (inbound, stockage, picking, outbound, AGV, ERP, admin, transverse) - Les infos clés à extraire Présente ce résumé à Arthur avant de commencer l'intégration. ### Étape 2 — Rédaction / Mise à jour Pour chaque ressource : 1. **Vérifie le standard** : consulte d'abord la page correspondante dans le wiki standard local (`concepts/`, `modules/`, etc.) ET/OU appelle `wms-wiki:search_wiki` ou `wms-wiki:get_wiki_page` via MCP pour compléter 2. **Identifie la page cible** dans `limagrain/` (existante ou à créer) 3. **Rédige ou mets à jour** la page en respectant le template (voir plus bas) 4. **Cross-référence** : ajoute des liens vers les autres pages du wiki Limagrain si pertinent 5. **Mets à jour `limagrain/glossaire-limagrain.md`** si de nouveaux termes apparaissent 6. **Mets à jour `limagrain/README.md`** si de nouvelles pages sont créées ### Étape 3 — Log et archivage Après intégration de chaque fichier : 1. **Ajoute une entrée** dans `consume.log` à la racine (format ci-dessous) 2. **Déplace le fichier** de `sources/` vers `sources/archives/` ### Étape 4 — Compte rendu Après chaque session d'intégration, résume à Arthur : - Fichiers consommés - Pages créées ou modifiées - Nouvelles cross-références - Questions ouvertes identifiées - Termes ajoutés au glossaire --- ## Format du `consume.log` Fichier append-only à la racine du dépôt. Chaque session est datée, chaque fichier a une entrée. ``` ## [2026-05-05] session-001 - **Fichier** : `CR_reunion_picking_2026-04-15.pdf` **Type** : CR réunion **Action** : Mis à jour `limagrain/03-picking/picking-combinatoire.md` (ajout section CstAtt handshake) **Cross-refs** : Lien ajouté depuis `limagrain/04-outbound/flux-expedition.md` **Questions** : "Valeur par défaut CstAtt quand lot inconnu ?" → ajouté dans `limagrain/08-transverse/questions-ouvertes.md` - **Fichier** : `Mapping_ERP_Limagrain_v2.xlsx` **Type** : Excel mapping **Action** : Créé `limagrain/06-erp-interface/mapping-erp-wms.md` **Cross-refs** : Liens depuis `limagrain/01-inbound/flux-erp-inbound.md` et `limagrain/04-outbound/flux-erp-outbound.md` **Questions** : aucune ``` --- ## Template de page wiki Chaque fichier `.md` dans `limagrain/` doit suivre cette structure : ```markdown --- title: "Titre de la page" tags: [domaine, sous-domaine, concept] status: draft | review | validated standard_ref: concepts/reception.md jira_refs: [LIM-70, LIM-75] confluence_refs: [] sources: [] last_updated: 2026-05-05 author: Arthur --- # Titre de la page > **Résumé** : 1-2 phrases décrivant le sujet et pourquoi c'est spécifique Limagrain. > **Standard EasyWMS** : → voir [Nom page standard](../../concepts/page.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au standard. ## Contexte projet Pourquoi ce sujet est spécifique chez Limagrain. Quel besoin métier. ## Configuration / Implémentation Détails techniques : paramètres, valeurs, éléments AD customs. ## Flux fonctionnel Description du flux. Utiliser un diagramme Mermaid si pertinent : ​```mermaid sequenceDiagram participant ERP participant WMS ERP->>WMS: SOR01 WMS->>WMS: Stock assignment WMS-->>ERP: SOF01 ​``` ## Points d'attention ⚠️ Particularités, pièges connus, bugs rencontrés, workarounds. ## Questions ouvertes - [ ] Question 1 (@Théo) - [ ] Question 2 (@Michael) ## Historique des modifications | Date | Auteur | Modification | |------|--------|-------------| | 2026-05-05 | Arthur | Création initiale | ## Références | Source | Type | Date | |--------|------|------| | Jira LIM-70 | Ticket | 2025-xx-xx | | "Titre page" Confluence | Page | 2025-xx-xx | | CR réunion picking | PDF | 2026-04-15 | ``` --- ## Template `_index.md` (sommaire de section) ```markdown --- title: "Inbound — Vue d'ensemble" tags: [inbound, index] status: draft last_updated: 2026-05-05 --- # Inbound — Vue d'ensemble > **Périmètre** : réception fournisseur, retours, contrôle qualité à réception, messages ERP inbound. > **Standard EasyWMS** : voir [Reception](../../concepts/reception.md), [Order Inbound](../../concepts/order-inbound.md) ## Pages de cette section - [Réception fournisseur](reception-fournisseur.md) - [Réception retour](reception-retour.md) - [Contrôle qualité réception](controle-qualite-reception.md) - [Flux ERP inbound](flux-erp-inbound.md) ## Vue synthétique du flux inbound Limagrain (Diagramme Mermaid du flux global de la section — à compléter) ``` --- ## Liens entre wikis ### Depuis une page Limagrain → page standard (même dépôt) Chemins relatifs remontant au-dessus de `limagrain/` : ```markdown → voir [Reception standard](../../concepts/reception.md) → voir [Picking standard](../../concepts/picking.md) → voir [Galileo Integration](../../architecture/galileo-integration.md) ``` ### Depuis une page Limagrain → autre page Limagrain Chemins relatifs au sein de `limagrain/` : ```markdown Voir aussi [Flux expédition](../04-outbound/flux-expedition.md) Voir aussi [Glossaire Limagrain](../glossaire-limagrain.md) ``` ### Vers Jira ```markdown [LIM-70](https://easywmsfrance.atlassian.net/browse/LIM-70) ``` --- ## Conventions strictes ### Nommage - Fichiers : **kebab-case**, pas d'accents, `.md` → `picking-combinatoire.md` - Dossiers dans `limagrain/` : numérotés `01-` à `08-` + kebab-case - Assets : `{section}-{description}.{ext}` → `03-picking-schema-stations.png` ### Markdown lint Règles à respecter (compatible markdownlint) : - Headings ATX (`#`) uniquement, pas de saut de niveau (h1 → h3 interdit) - Pas de trailing spaces - Pas de lignes vides multiples (max 1) - Line length ≤ 120 caractères (souple pour tableaux et liens) - Listes entourées de lignes vides - Premier élément du fichier = front matter `---` puis heading H1 - Pas de headings dupliqués dans un même fichier - Liens relatifs entre pages (pas de chemins absolus) ### Langue - **Français** pour la rédaction - Termes techniques WMS en anglais acceptés (putaway, picking, stock assignment, etc.) - Noms de messages ERP en majuscules : SOR, SOF, ASN, RUT, LOF - Noms d'entités AD en anglais PascalCase : OutboundOrder, ContainerStock, etc. --- ## Contexte projet Limagrain ### Équipe | Personne | Rôle | |----------|------| | Arthur | Chef de projet technique - Intégrateur WMS / liaison client-dev, auteur du wiki | | Nicolas Chabanis | Responsable développement | | Théo | Chef de projet général - pilote tout le projet | | Michael | Directeur des opérations - Pilote Arthur | | Fabien Mogade | Développeur | | Fares Zaroui | Développeur | | Justine Beutin | Chef de projet fonctionnelle - Pilote le planning et principale interlocutrice avec Limagrain | ### Périmètre fonctionnel (par priorité) 1. **Réception / Inbound** — modes de réception, ASN, SSCC/LPN, mono-référence 2. **Stockage / ASRS / Galileo** — miniload, transstockeurs, stations, routes 3. **Picking / Préparation** — picking combinatoire (CR V3.0, 4-job, CstAtt), stations 4. **Expédition / Outbound** — flux SOR → RUT → SOF → LOF, chargement 5. **Intégration AGV / Still** — iGo API, DB protocol, transport lifecycle 6. **Intégration ERP** — catalogue messages, mapping champs 7. **Administration** — RBAC, groupes, paramètres, éléments AD customs ### Glossaire initial (termes spécifiques Limagrain) | Terme | Signification | |-------|--------------| | CstAtt | Custom Attribute — handshake dans le picking combinatoire | | CR V3.0 | Change Request version 3.0 — architecture 4 jobs picking combinatoire | | SOR | Shipping Order Request — message ERP entrant, crée un ordre d'expédition | | RUT | Route — message ERP entrant, définit une tournée transporteur | | SOF | Shipping Order Fulfilled — message ERP sortant, ordre expédié | | LOF | Load Order Fulfilled — message ERP sortant, chargement camion terminé | | ASN | Advanced Shipping Notice — pré-avis de réception avec contenu connu | | PIE | Station de pesée automatique | | PDL | Picking Dedicated Location — emplacement dédié picking | | ASRS | Automatic Storage and Retrieval System — stockage automatique | | TK | Transstockeur (miniload) | | TMS | Transport Management System (Galileo chez Mecalux) | | AD | Application Dictionary — framework métadonnées EasyWMS | ### Jira - **Projet** : Limagrain (préfixe `LIM-`) - **Cloud ID** : `d79e5957-a82c-4b8f-bd19-d553ef331c42` - **URL base** : `https://easywmsfrance.atlassian.net` ### MCP tools disponibles | Serveur | Usage | |---------|-------| | `wms-wiki:*` | Wiki standard EasyWMS — search, get_page, get_glossary_term, list_sections, get_related_pages | | `wms:*` | Données WMS live — queries LINQ, entities, workflows, AD, metadata | | `Atlassian:*` | Jira + Confluence — recherche JQL/CQL, lecture tickets/pages | **Utilise `wms-wiki` systématiquement** pour vérifier les concepts standard avant de rédiger. **Utilise `Atlassian` avec le cloudId ci-dessus** pour rechercher tickets ou pages Confluence référencés. **Consulte aussi les pages standard locales** (`concepts/`, `modules/`, etc.) quand elles sont plus complètes que le MCP. --- ## Règles impératives 1. **Ne jamais modifier le contenu standard** — les dossiers `architecture/`, `concepts/`, `modules/`, `operations/`, `glossary.md` sont en lecture seule. **Exception unique** : le fichier `_index.md` racine peut être modifié pour y ajouter/mettre à jour la section Limagrain (voir règle 10) 2. **Jamais de duplication du standard** — si le standard couvre un concept, renvoie vers lui et ne documente que le delta Limagrain 3. **Toujours sourcer** — chaque information vient d'une source identifiable. Cite-la dans le front matter `sources` et le tableau Références 4. **Marquer les incertitudes** — `> ⚠️ À confirmer` ou `- [ ] Question (@personne)`, reporter dans `limagrain/08-transverse/questions-ouvertes.md` 5. **Log obligatoire** — chaque fichier consommé → entrée dans `consume.log` AVANT archivage 6. **Archivage obligatoire** — après intégration, déplacer le fichier de `sources/` vers `sources/archives/` 7. **Cross-référencer** — quand une page mentionne un concept couvert ailleurs dans le wiki Limagrain, ajouter un lien 8. **Granularité** — un fichier = un sujet. Découper si > 300 lignes 9. **README.md à jour** — toute création/suppression de page dans `limagrain/` doit y être reflétée 10. **`_index.md` racine à jour (MCP discovery)** — le fichier `_index.md` à la racine est le registre utilisé par le MCP server `wms-wiki` pour découvrir les pages. Quand une page est créée ou supprimée dans `limagrain/`, ajouter/retirer son entrée dans `_index.md` sous une section dédiée `## Limagrain — Projet`. Le format doit suivre exactement le même pattern que les sections existantes (Concepts, Modules, Architecture, Operations) : ```markdown ## Limagrain — Projet (XX pages) ### Réception fournisseur - **Path:** limagrain/01-inbound/reception-fournisseur.md - **Type:** limagrain - Résumé court de la page (1-2 lignes tirées du front matter ou du bloc Résumé). ### Picking combinatoire - **Path:** limagrain/03-picking/picking-combinatoire.md - **Type:** limagrain - Architecture 4 jobs, CstAtt handshake, CR V3.0. ``` Ne jamais modifier les sections standard existantes (Concepts, Modules, Architecture, Operations) dans `_index.md`. Seule la section `## Limagrain — Projet` est modifiable. --- ## Démarrage Si le dossier `limagrain/` n'existe pas encore : 1. Crée `limagrain/` et toutes ses sous-sections (`01-inbound/` à `08-transverse/`, `assets/`) 2. Crée `consume.log` à la racine (vide, avec juste un header `# Journal de consommation`) 3. Crée les `_index.md` pour chaque section (contenu minimal, statut `draft`) 4. Crée `limagrain/README.md` avec la table des matières 5. Crée `limagrain/glossaire-limagrain.md` avec le tableau du glossaire initial ci-dessus 6. Attends qu'Arthur dépose des ressources dans `sources/` ou donne des instructions