L'appel de cotisations URSSAF 2026 (PDF officiel du 09/07) a permis de qualifier
l'imputation, restée explicitement ouverte dans le runbook. La réponse contredit
ce qui y était écrit.
Le compte 646 est réservé à l'entreprise individuelle et aux sociétés à l'IR : il
ne s'applique pas à une SARL à l'IS. La prise en charge par la société des
cotisations de son gérant majoritaire est un complément de rémunération —
compte 641, sous-compte dédié, déductible. 645 et 631/633 restent vides :
aucun salarié, l'opérateur n'est pas employeur.
Piège corrigé au passage : la mention « CSG déductible fiscalement » de l'appel
vise l'IR personnel du gérant (art. 62 CGI), pas l'IS de la société. Pour la
SARL la CSG/CRDS est intégralement déductible — la réintégration annoncée dans
un premier temps était un raisonnement d'entreprise individuelle mal transposé.
Le runbook affirmait aussi que le type de charge Dolibarr pilotait le compte.
Faux : la colonne « Code comptable » du dictionnaire est vide pour tous les
types, TAXSSI compris (vérifié cellule par cellule), et le module comptabilité
n'est pas déployé. La carte affiche « Code comptable: Inconnu ». L'ERP porte les
faits, pas les écritures.
Deux corrections de fond sur les dates et les montants :
- les dates de l'échéancier sont des dates d'ÉCHÉANCE (le 5 du mois), pas de
débit bancaire — 05/05 et non 22/05, ce qui rend visible le retard de 17 jours ;
- les 3 041 EUR sont PROVISOIRES, assis sur un forfait début d'activité, et
seront régularisés. L'assiette est la rémunération du gérant, jamais le CA.
Enfin, découvert en tentant la correction de date : aucune charge sociale n'est
modifiable sur ce déploiement. Toute édition, même du seul montant, échoue sur
« multiple assignments to same column fk_user_modif » — ChargeSociales::update()
génère un UPDATE que PostgreSQL rejette (42601) là où MySQL passe. Le défaut est
propre à cet objet ; la mise à jour d'un tiers via REST fonctionne. La date doit
donc être juste à la création. updateSocialCharge.ts conserve le cas de
reproduction et diagnostique l'erreur au lieu de la subir.
Le justificatif officiel est attaché aux trois charges de production.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
L'entrée « urssaf-echeancier / pending-definition / recurrence unknown » traînait
depuis erp#54 avec la consigne « ne pas inventer de cadence ». L'opérateur a
communiqué l'échéancier : ce n'est pas trimestriel mais trois appels irréguliers.
493,00 (22/05, prélevé) + 1 215,00 (05/08) + 1 333,00 (05/11) = 3 041,00 EUR
Corrige aussi le compte comptable, faux dans la note : les cotisations d'un
gérant associé unique de SARLU (TNS) vont en 646 — cotisations personnelles du
dirigeant — et non en 645, qui vise les cotisations patronales sur salaires et
doit rester vide puisque Arcodange n'a aucun salarié.
Le schéma accepte désormais amount_eur : la boucle de rappels T11 (erp#60) a
besoin du montant en donnée structurée, pas noyé dans du texte libre.
Registre validé : 8 règles, 16 entrées, 8 ADC, 0 erreur.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
fleet/profile/ goes from stub to the machine-readable business-rules surface
the fleet reads (PRD agent-catalog document surface + compliance ADC framework):
- fiscal.yaml — entity, VAT position, 8 rules (regime reel simplifie until
2026-12-31 -> quarterly CA3 from 2027-01-01 per LF 2025 art. 38; KM export
autoliquidation 259-1 CGI box E2; FR 20% deductible; intra-EU reverse
charge; FX 766/666; SaaS expensed; CCA 455 lane). Every rule carries
effective_from/effective_until AND decision: adc-NNN; every date cites its
PRD anchor as an inline comment (verified against factory origin/main).
- calendar.yaml — 15 entries: acomptes TVA (2026-07 month-window, 2026-12-15),
last CA12 FY-2026 (2027-05-04), CA3 quarterly windows, CFE (December),
AG comptes annuels (2027-06-30), e-invoicing milestones (2026-09-01
reception, 2027-09-01 emission/e-reporting), URSSAF echeancier with the
in-file NOTE that a real direct debit exists since May 2026 (erp#57 revisit
of the payroll-dormant assumption), KM deferred due dates + renewal stub.
- JSON Schemas for both + scripts/validate.py (stdlib-only: strict YAML-subset
parser, JSON-Schema-subset checker, rule->ADC resolution, calendar checks).
- decisions/ — ADC register: template + adc-001..005 Accepted formalizations
(autoliquidation KM, FX->766/666, SaaS expensed, reel simplifie until
abolition, CCA personal-card lane) + adc-006/007 Proposed stubs (retainer
currency -> erp#53; capital path -> erp#51). Agents draft, the operator
Accepts — never the reverse; immutable once merged, supersede never edit.
- Mutation policy in-file: PRs only (T12 proposes, human merges).
- Same-change: profile README stub -> real doc; fleet/README.md layout line
and AGENTS.md fleet row updated (profile no longer a stub).
Validation: PASS — 8 rules, 15 entries, 7 ADCs, 0 errors, 7 warnings (the
warnings list exactly what awaits operator verification). Human gate left
open on purpose: operator sanity-read of the calendar + Acceptance of
adc-001..005.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh