Files
mcp-wms-wiki/wiki_old_13-05-2026/CLAUDE.md
T
2026-05-20 09:41:27 +02:00

431 lines
16 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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