# ============================================================================
# fleet/profile/calendar.yaml — Arcodange compliance calendar (machine-readable, T11)
# ============================================================================
# The dated obligations the T11 reminder loop (erp#60) reads; maintained in git
# and "reviewed like code" (PRD task-inventory § T11 guardrail).
#
# 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 — same as fiscal.yaml: changes arrive as PRs ONLY (T12
# regulatory watch proposes, a human merges); calendar entries proposed from
# mail content are confirmed by a human (PRD task-inventory § T11 step 4: mail
# is untrusted input). No agent edits this file directly.
#
# DATE PRECISION — due "YYYY-MM-DD" = exact date; "YYYY-MM" = month window:
# the source gives no day — verify on the authority's own notice (avis
# d'acompte, espace pro), NEVER invent one.
#
# Schema: calendar.schema.json — validate with: python3 scripts/validate.py
# ============================================================================

version: 1

defaults:
  reminders_days_before: [30, 7, 1]          # PRD task-inventory § T11 step 2 — "reminders at D-30/D-7/D-1 via Telegram"; the reminder LOOP itself is erp#60, not this file
  reminders_repeat_until_acknowledged: true  # PRD task-inventory § T11 guardrail — "reminders repeat until acknowledged - silence is never treated as done"

entries:

  # --- TVA, réel simplifié era (until 2026-12-31) ---------------------------

  - id: "tva-acompte-2026-07"
    title: "Acompte de TVA de juillet 2026 (réel simplifié)"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "estimated"
    due: "2026-07"               # PRD task-inventory.md § T10 trigger — "acompte July 2026"; month only — the exact day is on the avis d'acompte (NOT in the PRD)
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD task-inventory.md § T10 trigger"
    notes: "Expected approx 0 EUR while in TVA credit - verify on impots.gouv.fr, never assume (PRD T10). First year: no prior CA12 to base an acompte on. A DGFiP mail of 2026-06-25 announced this acompte (agent memory arcodange-tva-fiscal - not a PRD leaf)."

  - id: "tva-acompte-2026-12"
    title: "Acompte de TVA de décembre 2026 (réel simplifié)"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "confirmed"
    due: "2026-12-15"            # PRD roadmap.md § Milestones — "2026-12-15 | Acompte TVA de décembre (≈ 0 € expected — verify) | fiscal — hard"
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD roadmap.md § Milestones + README.md § regulatory table (2026-12 row)"
    notes: "POC-4a dry-run scheduled 2026-11-30 → 2026-12-11 (PRD roadmap Gantt, e2) - the first euro-parity proof. Expected approx 0 EUR while in credit - verify, never assume."

  - id: "tva-ca12-fy2026"
    title: "CA12 FY-2026 (form 3517) - the LAST CA12, recovers the TVA credit"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "confirmed"
    due: "2027-05-04"            # PRD roadmap.md § Milestones — "2027-05-04 | CA12 FY-2026 filed (TVA credit recovery) | fiscal — hard (early-May window)"
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD roadmap.md § Milestones + task-inventory.md § T10 trigger ('CA12 for FY 2026 ~May 2027')"
    notes: "Last CA12 ever: the regime is abolished 2027-01-01 (fiscal.yaml vat-regime-ca3-quarterly, adc-004). Recovery point for the cumulated TVA credit, including pre-creation deductible VAT. Prep window 2027-04-19 → 2027-05-03 (PRD roadmap Gantt, e5)."

  # --- TVA, CA3 era (from 2027-01-01) ---------------------------------------

  - id: "regime-simplifie-abolition"
    title: "Régime réel simplifié abolished → quarterly CA3 regime starts"
    category: "regulatory"
    nature: "regulatory-hard"
    status: "confirmed"
    due: "2027-01-01"            # PRD roadmap.md § Milestones — "2027-01-01 | Régime simplifié abolished → quarterly CA3 | regulatory — hard"
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD roadmap.md § Milestones; LF 2025 art. 38 per task-inventory.md § T10 trigger"
    notes: "Regime switch, not a filing. From here fiscal.yaml rule vat-regime-ca3-quarterly is in force (decision adc-004)."

  - id: "ca3-2027-q1"
    title: "First real CA3 (2027-Q1) filing"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "confirmed"
    due: "2027-04-20"            # PRD roadmap.md § Milestones — "2027-04-20 | First real CA3 (2027-Q1) filed | fiscal — hard (April window)"
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD roadmap.md § Milestones + Gantt (e4: prepare 2027-04-01 → 2027-04-16)"
    notes: "Preceded by POC-4b Q1 simulation + expert-comptable checkpoint 2027-01-11 → 2027-02-26 (PRD roadmap Gantt, e3): the expert checkpoint sits BEFORE the first real quarterly filing."

  - id: "ca3-quarterly"
    title: "CA3 quarterly filing windows (April / July / October / January)"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "estimated"
    recurrence: "quarterly"
    months: [4, 7, 10, 1]        # windows per erp#54 deliverable text; only the April window is PRD-anchored (roadmap § Milestones, 2027-04-20)
    effective_from: "2027-01-01" # first covered quarter; first filing lands in the April 2027 window
    effective_until: null
    authority: "DGFiP"
    related_task: "T10"
    source: "erp#54 deliverable ('CA3 quarterly windows April/July/Oct/Jan'); April window corroborated by PRD roadmap.md § Milestones"
    notes: "The July/October/January windows and each quarter's exact deadline are NOT corroborated by a PRD leaf - verify each on the espace pro before relying on a day."

  # --- Other fiscal ---------------------------------------------------------

  - id: "cfe-annual"
    title: "CFE (cotisation foncière des entreprises) - December"
    category: "fiscal"
    nature: "fiscal-hard"
    status: "estimated"
    recurrence: "yearly"
    months: [12]                 # PRD task-inventory.md § T11 step 1 — "CFE (cotisation foncière des entreprises, December)"; no day in the PRD
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD task-inventory.md § T11 step 1"
    notes: "Exact day not in the PRD (statutorily mid-December - verify on the avis). NOT corroborated by the PRD and to verify with the SIE: whether the creation-year (2026) is exonerated and whether an initial declaration (1447-C) is due before 2026-12-31."

  - id: "is-installments"
    title: "IS installments (once profitable)"
    category: "fiscal"
    status: "conditional"
    recurrence: "unknown"
    authority: "DGFiP"
    related_task: "T10"
    source: "PRD task-inventory.md § T11 step 1 — 'IS installments (once profitable)'"
    notes: "Dormant until the first profitable exercice; dates get defined (via PR) when the condition triggers."

  # --- Legal ----------------------------------------------------------------

  - id: "ag-comptes-annuels-fy2026"
    title: "AG - approval of the FY-2026 annual accounts"
    category: "legal"
    nature: "legal-hard"
    status: "confirmed"
    due: "2027-06-30"            # PRD roadmap.md § Milestones — "2027-06-30 | AG — FY-2026 accounts approved | legal — hard"
    authority: "Greffe / AG"
    source: "PRD roadmap.md § Milestones + task-inventory.md § T11 step 1 ('within 6 months of FY close → June 2027 for FY 2026')"
    notes: "The annexe's règles et méthodes section is generated from the ADC register - records Accepted and in force during the exercice (PRD compliance.md § ADC, rule 3)."

  # --- E-invoicing milestones -----------------------------------------------

  - id: "einvoicing-reception"
    title: "E-invoice reception mandatory (all companies)"
    category: "regulatory"
    nature: "regulatory-hard"
    status: "confirmed"
    due: "2026-09-01"            # PRD roadmap.md § Milestones — "2026-09-01 | E-invoice reception mandatory | regulatory — hard"
    authority: "DGFiP"
    source: "PRD roadmap.md § Milestones + README.md § regulatory table"
    notes: "PA (plateforme agréée) leaning Qonto - decision D4, ADR due 2026-08-14 with a fallback window to 2026-08-28 (PRD roadmap Gantt, P2). Reception must be wired and verified BEFORE this date."

  - id: "einvoicing-emission-ereporting"
    title: "E-invoice emission + e-reporting mandatory (PME)"
    category: "regulatory"
    nature: "regulatory-hard"
    status: "confirmed"
    due: "2027-09-01"            # PRD roadmap.md § Milestones — "2027-09-01 | E-reporting + emission mandatory (PME) | regulatory — hard"
    authority: "DGFiP"
    source: "PRD roadmap.md § Milestones + README.md § regulatory table"
    notes: "Covers e-reporting of the KM export invoices (PRD README § three dated regulatory obligations; task-inventory § T05 step 5). P6 pipeline work starts 2027-05-03 (roadmap Gantt, f1)."

  # --- Social (URSSAF) ------------------------------------------------------

  - id: "urssaf-echeancier"
    title: "URSSAF échéancier (cotisations - nature to clarify)"
    category: "social"
    status: "pending-definition"
    recurrence: "unknown"
    authority: "URSSAF"
    source: "erp#54 deliverable + erp#57 (2026-05-22 direct debit evidence)"
    notes: "NOTE - a real URSSAF direct debit exists since May 2026 (2026-05-22, 493.00 EUR, target account 6451 - erp#57): the PRD's 'URSSAF/DSN payroll declarations (dormant until first salary)' assumption (task-inventory § T11 step 1) needs revisiting. [HUMAN] clarification of what these cotisations are (president? CFP?) is tracked in erp#57. Do not fire payroll/DSN reminders until clarified; do not invent a cadence."

  # --- Contract-driven (KissMetrics) ----------------------------------------

  - id: "km-fac005-due"
    title: "KM invoice FAC005 due (deferred schedule)"
    category: "receivable"
    status: "confirmed"
    due: "2026-08-23"            # PRD task-inventory.md § Backlog, 'Contract lifecycle' — "FAC005/FAC007 validated, due 2026-08-23 & 2026-09-23"
    related_task: "T06"
    source: "PRD task-inventory.md § Backlog — deferred schedule 'now IN the ERP'; rides this calendar per the same bullet ('#54/#60')"
    notes: "Receivable watch input for T06 dunning - cross-check against the contracted deferred cycle, not naive due dates."

  - id: "km-fac007-due"
    title: "KM invoice FAC007 due (deferred schedule)"
    category: "receivable"
    status: "confirmed"
    due: "2026-09-23"            # PRD task-inventory.md § Backlog, 'Contract lifecycle' — "FAC005/FAC007 validated, due 2026-08-23 & 2026-09-23"
    related_task: "T06"
    source: "PRD task-inventory.md § Backlog — deferred schedule 'now IN the ERP'; rides this calendar per the same bullet ('#54/#60')"
    notes: "Receivable watch input for T06 dunning - cross-check against the contracted deferred cycle, not naive due dates."

  - id: "km-contract-renewal-4pct-window"
    title: "KM contract renewal + 4 %-window obligation (dates TBD)"
    category: "contract"
    status: "pending-definition"
    source: "PRD task-inventory.md § Backlog, 'Contract lifecycle' — 'renewal reminders + the 4 %-window obligation ride the compliance calendar (#54/#60)'"
    notes: "Exact dates and terms land with the contract objects (erp#65 phase 2 / erp#67). Do not invent dates - this stub only reserves the slot the PRD points at this calendar."
