Files
erp/fleet/profile/fiscal.yaml
T
arcodangeandClaude Opus 5 cf0cc3073d fix(config): real company identity — capital without the € sign, and no placeholders
static/config/company.json feeds setupCompany() in both main.ts and
provisionSandbox.ts, and main.ts defaults to the PRODUCTION address. The file
held placeholder identity values: running it against prod would have replaced
Arcodange's legal identity with them.

- capital "1000€" -> "1000". Dolibarr expects a number; the € made the value
  unusable by the PDF template, which is why "Capital de 1 000 €" was missing
  from every invoice since January (mandatory mention, C. com. R.123-238). This
  file is the root cause — patching the database alone would have been undone
  by the next provisioning run.
- siren 123456789 -> 999657455, siret 12345678900011 -> 99965745500013,
  numTva FR00000000000 -> FR00999657455, rcs_rm "000 000 000 R.C.S. Evry"
  -> "R.C.S. Évry", naf_ape 62.02A -> 6201Z. All read off the production ERP,
  where they render on every issued invoice.
- formeJuridique SAS -> SARL, and the same correction in fleet/profile/fiscal.yaml
  (legal_form), which inherited "SAS" from the PRD README. Three operational
  sources say SARL: the production ERP, the signed contrat cadre signature block
  ("Pour Arcodange (SARL)"), and the 2026-05-28 cohort review. The PRD is wrong.
  Flagged in-file for confirmation against the Kbis.
- moisDebutExercice Juillet -> Janvier (fiscal year closes 12-31 per fiscal.yaml).

fiscal.yaml still validates: 8 rules, 15 calendar entries, 7 ADC records, 0 errors.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01VRShc4QhLLU73FLHx9vskh
2026-07-26 00:27:20 +02:00

162 lines
12 KiB
YAML

# ============================================================================
# fleet/profile/fiscal.yaml — Arcodange fiscal profile (machine-readable, T11)
# ============================================================================
# What the fiscal atoms read (T10 TVA preparation, T03 VAT ventilation, T11
# calendar) instead of carrying business rules in prompts — per the PRD
# agent-catalog § "The document surface agents read".
#
# PRD root: https://gitea.arcodange.lab/arcodange-org/factory/src/branch/main/vibe/PRD/ai-back-office
# All "PRD <leaf> § <anchor>" comments below were verified against the factory
# repo at origin/main on 2026-07-18.
#
# MUTATION POLICY — changes arrive as PRs ONLY. The T12 regulatory watch
# *proposes* a diff (source links + effective dates, PRD task-inventory § T12);
# a human reviews and merges (PRD task-inventory § T11 guardrail: "the calendar
# file is reviewed like code"). No agent edits this file directly. A rule
# change moves its ADC too — supersede, never edit (PRD compliance.md § ADC,
# rule 1: permanence des méthodes made structural).
#
# CONTRACT — every rule carries:
# effective_from / effective_until (null = in force until superseded)
# decision: adc-NNN (its justification record, decisions/)
# so the chain écriture → règle → ADC → base légale resolves in four hops
# (PRD compliance.md § ADC, rule 2).
#
# Schema: fiscal.schema.json — validate with: python3 scripts/validate.py
# (stdlib-only; this file is written in the strict YAML subset the validator
# parses: block maps/lists, single-line scalars, [flow] lists of scalars,
# comments — no anchors, no multi-line scalars; see ../profile README).
# ============================================================================
version: 1
entity:
name: "Arcodange"
legal_form: "SARL" # ERP prod (rendered on every issued invoice: "Société à responsabilité
# limitée (SARL)") + the signed contrat cadre signature block ("Pour
# Arcodange (SARL)") + cohort review 2026-05-28. The PRD README says "SAS" —
# it is wrong; three operational sources agree on SARL. Confirm on the Kbis.
siren: "999657455" # erp#54 + agent memory arcodange-tva-fiscal — NOT corroborated by a PRD leaf (see README § Facts not corroborated by the PRD)
incorporated: "2026-01" # PRD compliance.md § Questions for the expert-comptable — "mid-January 2026 incorporation"; exact day not in the PRD (month precision on purpose)
fiscal_year_end: "12-31" # PRD compliance.md § Questions for the expert-comptable — "close 2026-12-31"
vat_registered: true # holder of the régime réel simplifié (rules below)
b2b_only: true # PRD compliance.md § Obligations, NF525 row — "Arcodange is B2B-only"
# Informational ERP-read position, NOT a rule (hence no decision field).
# PRD README.md § regulatory table (2026-12 row) + task-inventory § T10 trigger:
# expected ≈ 0 € to pay while in credit — "verify, don't assume".
vat_position:
stance: "credit" # TVA collectée = 0 (100 % of revenue in box E2) vs déductible on FR supplier invoices
net_credit_eur_approx_min: 223.22 # dolibarr-tva-summary skill figure (all-time at skill authoring) — ERP read, not a PRD figure
net_credit_eur_approx_max: 267.12 # agent memory arcodange-tva-fiscal (prod `arcodange tva summary`, 2026-06-30) — ERP read, not a PRD figure
as_of: "2026-06-30"
note: "Approximation from ERP reads. Verify on the espace pro impots.gouv.fr before any filing - never assume (PRD task-inventory T10)."
rules:
# --- VAT regime -----------------------------------------------------------
- id: "vat-regime-reel-simplifie"
title: "Régime réel simplifié (CA12 + acomptes) for FY-2026"
category: "vat-regime"
statement: "Arcodange declares VAT under the régime réel simplifié: one annual CA12 (form 3517) plus two acomptes (July and December). No monthly or quarterly CA3 under this regime. Stay on it until its legal abolition - no early opt-out to the réel normal."
effective_from: "2026-01-01" # conservative exercice-start bound; incorporation is "mid-January 2026" (PRD compliance.md § Questions) — exact registration day NOT in the PRD
effective_until: "2026-12-31" # PRD task-inventory.md § T11 step 1 — "réel simplifié until 2026-12-31"
decision: "adc-004"
legal_basis:
- "CGI art. 302 septies A (régime simplifié d'imposition)"
- "LF 2025 art. 38 - abolition effective 2027-01-01 (PRD task-inventory § T10 trigger)"
source: "PRD task-inventory.md § T11 step 1 + § T10 trigger; PRD README.md § three dated regulatory obligations"
notes: "The regime was confirmed by a DGFiP mail of 2026-06-25 (agent memory arcodange-tva-fiscal) - not a PRD leaf; keep the mail as evidence."
- id: "vat-regime-ca3-quarterly"
title: "Quarterly CA3 from the régime simplifié abolition"
category: "vat-regime"
statement: "From 2027-01-01 the régime réel simplifié is abolished: Arcodange files quarterly CA3 declarations (turnover under 1,000,000 EUR; the CA3 becomes monthly above that threshold). A last CA12 covering FY-2026 is still filed in 2027."
effective_from: "2027-01-01" # PRD roadmap.md § Milestones — "2027-01-01 | Régime simplifié abolished → quarterly CA3 | regulatory — hard"
effective_until: null # in force until superseded (e.g. crossing the 1 M€ threshold → monthly)
decision: "adc-004"
legal_basis:
- "LF 2025 art. 38 (PRD task-inventory § T10 trigger)"
- "CGI art. 287 (CA3 filing)"
- "1 M€ monthly threshold noted in PRD task-inventory § T12 step 1"
source: "PRD roadmap.md § Milestones + task-inventory.md § T10 trigger"
# --- VAT treatment: clients ----------------------------------------------
- id: "client-export-autoliquidation"
title: "Client invoices to KissMetrics (extra-EU export): autoliquidation art. 259-1° CGI"
category: "vat-treatment"
statement: "B2B services to KissMetrics (US, extra-EU) are outside French VAT scope: the place of supply is where the customer is established. TVA collectée = 0 on every KM invoice; each invoice carries the autoliquidation mention referencing art. 259-1° CGI; the basis reports in box E2 of the CA3/CA12. Today this covers 100 % of client revenue."
effective_from: "2026-01-01" # practiced "since the first invoice" (PRD compliance.md § ADC seed table, adc-001); conservative exercice-start bound — the first invoice's exact date is not in the PRD
effective_until: null
decision: "adc-001"
legal_basis:
- "CGI art. 259-1° (place of supply of B2B services = the customer)"
- "CA3 box E2 mapping per PRD task-inventory § T10 step 1"
source: "PRD compliance.md § ADC seed table (adc-001) + task-inventory.md § T05 step 2 and § T10 step 1"
notes: "From 2027-09-01 these export invoices enter e-reporting scope (PRD roadmap § Milestones); they stay OUT of domestic e-invoicing scope, so the PAF remains load-bearing for them (PRD compliance.md § Obligations, PAF row)."
# --- VAT treatment: suppliers --------------------------------------------
- id: "supplier-fr-vat-deductible"
title: "FR supplier invoices: VAT déductible at the invoiced rate (20 % standard)"
category: "vat-treatment"
statement: "Domestic French supplier invoices carry deductible French VAT at the invoiced rate - 20 % standard in practice. A rate outside the whitelist {0, 2.1, 5.5, 10, 20} without an explicit reverse-charge mention is quarantined, never defaulted."
effective_from: "2026-01-01" # standard-law ventilation applied since the first exercice (conservative exercice-start bound; see adc-004)
effective_until: null
decision: "adc-004" # standard law operated under the regime decision — recorded as a downstream rule in adc-004 § Consequences
legal_basis:
- "CGI art. 271 (droit à déduction)"
- "Rate whitelist per PRD task-inventory § T02 step 5"
source: "PRD task-inventory.md § T03 step 2 - 'correct VAT treatment per the fiscal profile: FR 20 % déductible, intra-EU reverse charge, etc.'"
- id: "supplier-intra-eu-reverse-charge"
title: "Intra-EU B2B supplier invoices: reverse charge (autoliquidation)"
category: "vat-treatment"
statement: "Intra-EU B2B supplier invoices (e.g. Wise, BE) arrive without VAT: Arcodange self-assesses French VAT - declared as collectée AND déductible, net zero for a fully deductible business. Déductible-side CA3 mapping: lines 17+24."
effective_from: "2026-01-01" # same conservative exercice-start bound as supplier-fr-vat-deductible
effective_until: null
decision: "adc-004" # downstream rule of the regime decision, see adc-004 § Consequences
legal_basis:
- "CGI art. 283-2 (autoliquidation des prestations intracommunautaires)"
- "CA3 lines 17+24 mapping per the dolibarr-tva-deductible skill - ERP-side convention, not a PRD leaf"
source: "PRD task-inventory.md § T03 step 2 (intra-EU reverse charge) + § T10 step 1"
# --- Bookkeeping methods --------------------------------------------------
- id: "fx-deltas-766-666"
title: "FX deltas on customer wires → 766 / 666"
category: "bookkeeping"
statement: "Customer payments are recorded at the invoice's remaining EUR amount; any difference against the EUR actually received is booked separately as gains de change (account 766) or pertes de change (account 666). A validated invoice is never adjusted for FX - corrections stay append-only per the ledger grammar."
effective_from: "2026-01-01" # method applies from exercice start; formalized in the 2026-07-11 books regularization (PRD compliance.md § ADC seed table, adc-002)
effective_until: null
decision: "adc-002"
legal_basis:
- "PCG chart accounts 666 (pertes de change) / 766 (gains de change)"
- "PRD compliance.md § The ledger grammar (append-only corrections)"
source: "PRD compliance.md § ADC seed table (adc-002); worked examples in erp#57 (+1.08 EUR FAC004, +50.05 EUR FAC006)"
- id: "saas-subscriptions-expensed"
title: "AI/SaaS subscriptions expensed (6xx), never immobilized"
category: "bookkeeping"
statement: "AI/SaaS subscription costs are expensed to class-6 accounts in the period invoiced, never immobilized at current unit costs. If a perpetual licence or a single subscription ever materially exceeds the small-equipment tolerance, a superseding ADC is drafted before changing method."
effective_from: "2026-01-01" # implicit practice since the first exercice (PRD compliance.md § ADC seed table, adc-003: "implicit today")
effective_until: null
decision: "adc-003"
legal_basis:
- "PCG art. 211-1 (asset definition: control + future economic benefits)"
- "BOI-BIC-CHG-20-30-10 (500 EUR HT small-equipment tolerance) - general doctrine, not a PRD leaf; expert-comptable confirmation requested in adc-003"
source: "PRD compliance.md § ADC seed table (adc-003)"
- id: "personal-card-cca-lane"
title: "Personal-card business expenses through the compte courant d'associé (455)"
category: "bookkeeping"
statement: "Business expenses paid with the operator's personal card are recorded as normal supplier invoices whose payment is booked against the compte courant d'associé (account 455; Dolibarr bank account G.RADUREAU CCA, fk_account=3). That account is invisible to the bank APIs - a permanent, flagged manual lane, never silently ignored. Reimbursement is a separate human decision."
effective_from: "2026-01-01" # practiced since the first exercice; formalized with erp#57 (PRD compliance.md § ADC seed table, adc-005)
effective_until: null
decision: "adc-005"
legal_basis:
- "PCG account 455 (associés - comptes courants)"
source: "PRD compliance.md § ADC seed table (adc-005) + task-inventory.md § T07 guardrail (fk_account=3 manual lane)"