Proposition d'architecture des regles business CTRM
Statut: proposal
Date: 2026-05-11
Scope: documentation metier purchase_trade / CTRM
Objectif
Cette note garde la proposition de structure documentaire pour les regles business trading. L'objectif est de pouvoir s'appuyer sur une source de verite exhaustive sans charger trop de contexte quand une demande concerne seulement un theme precis.
Etat des lieux
modules/AGENTS.mdporte les regles courtes communes aux modules.modules/purchase_trade/AGENTS.mdporte les invariants critiques du module trading et les fichiers pivots.modules/purchase_trade/docs/business-rules.mdest la base metier la plus riche, mais elle melange regles canoniques, notes de session et quelques doublons de numerotation.notes/business_rules.mdsert de journal transverse de sessions.notes/accounting/documente plutot le standard comptable Tryton, les gaps de reporting et les extensions comptablespurchase_trade.- Les fichiers specialises comme
fees.md,padding-invoice-accounting.md,template-rules.mdettemplate-properties.mdsont de bons exemples de documentation ciblee.
Principe recommande
Garder purchase_trade comme source de verite canonique pour le metier CTRM,
mais decouper les regles par theme.
AGENTS.md doit rester court et servir de routeur:
- charger seulement les invariants toujours utiles;
- indiquer quel fichier thematique lire selon la demande;
- eviter d'embarquer toute la documentation business a chaque intervention.
Les notes de session doivent rester historiques. Une decision devient canonique seulement quand elle est promue dans un fichier thematique.
Structure cible proposee
modules/purchase_trade/docs/business/
README.md
INDEX.md
glossary.md
invariants.md
sessions.md
contracts.md
lots-and-quantities.md
matching.md
shipments-execution.md
pricing.md
fees.md
valuation-pnl-mtm.md
invoicing.md
accounting-bridge.md
payments-banking.md
reports-templates.md
risk-credit-forex.md
lots-management.md
Role des fichiers
README.md: explique la convention documentaire et le statut des fichiers.INDEX.md: routeur par theme, avec les fichiers a lire selon le sujet.glossary.md: vocabulaire stable du CTRM Tradon.invariants.md: principes structurants toujours vrais.sessions.md: journal historique non canonique.- fichiers thematiques: source canonique exhaustive pour chaque domaine.
Grands themes metier
contracts.md: achats, ventes, lignes, dates, lieux, banques, counterparties, quantite contractuelle, statut finished.lots-and-quantities.md: lots virtuels/physiques,lot.qt, historique, weighing, split/merge, suppression de lot physique, solde ouvert.matching.md: matching purchase/sale, open matching vialot.qt, wizardCreate contracts, back-to-back, multi-lots.shipments-execution.md: shipments, dropship/inbound, controller, SLA, locations, surveyor, weight reports, BL.pricing.md:priced,basis, components, manual pricing, summary, linked currency, premium, settlement price.fees.md: fees ligne/shipment, lots effectifs,% rate,ppack, maritime freight, insurance, declencheurs PnL.valuation-pnl-mtm.md: valuation achat/vente, sale-first, references, MTM strategies, derivatives, exclusions fees.invoicing.md: provisional/final, facture achat/vente, padding, quantites facturees, liens lot/facture, templates invoice.accounting-bridge.md: effets suraccount_invoice,account.move, taxes, devises, additional moves, validate/post.payments-banking.md: payment terms, echeances, comptes bancaires party/company, payment order.reports-templates.md: Relatorio, proprietesreport_*, documents trade, regles XML, cache report.risk-credit-forex.md: credit risk, forex, FX revaluation, exposition.lots-management.md: rapports operationnels, filtres matching/side/shipping, dimension, strategy.
Format conseille pour une regle
### BR-PT-VAL-007 - Le MTM ne s'applique pas aux fees
Theme: valuation-pnl-mtm
Status: active
Scope: purchase_trade
Code: valuation.py, fee.py
Depends on: BR-PT-FEE-002
Summary: Les lignes de fee ne portent jamais mtm, mtm_price ou strategy.
Rule:
- MTM autorise seulement pour `pur. priced`, `sale priced`, `derivative`.
- Fees: `pur. fee`, `sale fee`, `shipment fee`, `line fee` restent hors MTM.
Tests:
- valuation fee sans mtm
- valuation priced avec mtm
Les identifiants devraient encoder le theme (LOT, MAT, PRI, FEE,
VAL, INV, ACC, etc.) plutot qu'une numerotation globale unique. Cela
evite les collisions quand les regles sont ajoutees au fil des sessions.
Routeur de contexte a ajouter plus tard dans AGENTS.md
Si la demande concerne:
- lots, quantites, matching: lire `docs/business/lots-and-quantities.md` et
`docs/business/matching.md`
- pricing, premium, basis: lire `docs/business/pricing.md`
- fees, freight, insurance: lire `docs/business/fees.md`
- valuation, PnL, MTM: lire `docs/business/valuation-pnl-mtm.md`
- facture, padding, payment order: lire `docs/business/invoicing.md` et
`docs/business/accounting-bridge.md`
- templates `.fodt`: lire `docs/business/reports-templates.md` et
`docs/template-rules.md`
Migration proposee
- Creer
docs/business/INDEX.md,invariants.mdetglossary.md. - Decouper
docs/business-rules.mdpar theme, sans changer le fond. - Deplacer les notes de session dans
sessions.md. - Promouvoir uniquement les decisions durables dans les fichiers thematiques.
- Reduire
modules/purchase_trade/AGENTS.mda un memo court + routeur. - Garder
notes/accounting/comme documentation comptable Tryton et comme vue specialisee des extensions comptablespurchase_trade.
Risque actuel a traiter lors de la migration
Le risque principal n'est pas le manque de regles, mais leur dilution entre
plusieurs fichiers. Certaines decisions existent a la fois dans AGENTS.md,
notes/business_rules.md, business-rules.md, fees.md et les notes
accounting. La migration devra designer une source canonique par theme et
laisser les autres fichiers jouer leur role d'index, de journal ou de vue
specialisee.