431 lines
16 KiB
Markdown
431 lines
16 KiB
Markdown
# 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 |