add 2 dolibarr-* skills: thirdparty-completeness, tva-deductible #4

Merged
arcodange merged 1 commits from claude/dolibarr-thirdparty-tva-deductible into main 2026-05-29 06:15:05 +02:00
Owner

Summary

V4 bundle — two sibling skills, both read-only, both depending on dolibarr. The dolibarr-* family now counts 8 skills.

dolibarr-thirdparty-completeness/

Country-aware completeness audit for any thirdparty (client or supplier). Generalizes the V1 KM-hardcoded audit-km-thirdparty.sh.

  • audit-thirdparty.sh <socid> — single-id audit with country-specific rules:
    • FR: SIREN (idprof1) + SIRET (idprof2) + tva_intra (if supplier)
    • EU non-FR: tva_intra required for B2B autoliquidation
    • Extra-EU: national tax id in idprof1 (EIN for US, etc.)
  • audit-all-thirdparties.sh [--clients-only|--suppliers-only] — loops the whole list, compact table of gaps.

Live findings — 5 / 10 thirdparties have mandatory gaps:

socid name gap
1 KissMetrics (US) EIN missing (already known)
2 Wise Europe SA (BE) tva_intra missing
5 Medialex (FR) SIRET + tva_intra missing
6 Qonto (FR) SIRET missing
9 Infogreffe (FR) SIRET missing

dolibarr-tva-deductible/

The supplier-side mirror of dolibarr-tva-reconciliation. Together they give you the two numbers a French CA3 needs (collectée vs déductible → net to remit).

  • deductible-by-month.sh — HT + TVA déductible grouped by (year-month × tva_tx), mapped to CA3 lignes.
  • deductible-line-detail.sh — per-line audit with supplier country classification (FR / EU intra-UE / extra-EU).

Live findings:

  • TVA déductible totals 223.22 € across 13 supplier-invoice lines.
  • Largest items: Darnis Operations (51 + 102 €), Qonto (33.80 €), Medialex (24.80 €).
  • Wise Europe SA correctly identified as intra-UE autoliquidation (ligne 17 + 24).
  • La Poste correctly identified as FR exempt (timbres).
  • TVA collectée = 0 € (all KM under 259-1° CGI) → Arcodange is in 223.22 € TVA credit cumulatif.

API gotcha documented

/supplierinvoices/{id}/lines returns HTTP 403 for ai_agent. We work around it cleanly — lines are also embedded inline on /supplierinvoices/{id}, just like the customer-side. Saved as acl_403_supplier_lines.json for future reference.

Base-skill updates

dolibarr/SKILL.md: catalogue row for /supplierinvoices (with the 403 gotcha) and two new sibling cross-links.
dolibarr/README.md: two new permission checkboxes for "Factures fournisseurs → Lire / Voir toutes" — they were already granted in this Dolibarr but the doc now reflects the required state for any rebuild.

Test plan

  • audit-all-thirdparties.sh → exit 1, 5 gaps
  • audit-thirdparty.sh 1 → exit 1 (US EIN missing)
  • audit-thirdparty.sh 7 → exit 0 (OVH complete)
  • deductible-by-month.sh → 4 month-buckets, total 223.22 € TVA
  • deductible-line-detail.sh → 14 rows, 3 buckets in summary
  • No credentials in the diff (verified pre-commit)

V5 candidates

  • dolibarr-tva-summary — composes tva-reconciliation + tva-deductible into a single monthly CA3-ready report (net to remit / TVA credit, ligne-by-ligne).
  • arcodange-k8s, arcodange-backups, arcodange-bank-reco — operational siblings outside the Dolibarr-API perimeter.
## Summary V4 bundle — two sibling skills, both read-only, both depending on `dolibarr`. The `dolibarr-*` family now counts **8 skills**. ### `dolibarr-thirdparty-completeness/` Country-aware completeness audit for any thirdparty (client or supplier). Generalizes the V1 KM-hardcoded `audit-km-thirdparty.sh`. - `audit-thirdparty.sh <socid>` — single-id audit with country-specific rules: - **FR**: SIREN (idprof1) + SIRET (idprof2) + tva_intra (if supplier) - **EU non-FR**: tva_intra required for B2B autoliquidation - **Extra-EU**: national tax id in idprof1 (EIN for US, etc.) - `audit-all-thirdparties.sh [--clients-only|--suppliers-only]` — loops the whole list, compact table of gaps. **Live findings — 5 / 10 thirdparties have mandatory gaps:** | socid | name | gap | |---|---|---| | 1 | KissMetrics (US) | EIN missing (already known) | | 2 | Wise Europe SA (BE) | tva_intra missing | | 5 | Medialex (FR) | SIRET + tva_intra missing | | 6 | Qonto (FR) | SIRET missing | | 9 | Infogreffe (FR) | SIRET missing | ### `dolibarr-tva-deductible/` The supplier-side mirror of `dolibarr-tva-reconciliation`. Together they give you the two numbers a French CA3 needs (collectée vs déductible → net to remit). - `deductible-by-month.sh` — HT + TVA déductible grouped by `(year-month × tva_tx)`, mapped to CA3 lignes. - `deductible-line-detail.sh` — per-line audit with supplier country classification (FR / EU intra-UE / extra-EU). **Live findings:** - TVA déductible totals **223.22 €** across 13 supplier-invoice lines. - Largest items: Darnis Operations (51 + 102 €), Qonto (33.80 €), Medialex (24.80 €). - Wise Europe SA correctly identified as intra-UE autoliquidation (ligne 17 + 24). - La Poste correctly identified as FR exempt (timbres). - TVA collectée = 0 € (all KM under 259-1° CGI) → **Arcodange is in 223.22 € TVA credit cumulatif**. ### API gotcha documented `/supplierinvoices/{id}/lines` returns HTTP 403 for `ai_agent`. We work around it cleanly — lines are also embedded inline on `/supplierinvoices/{id}`, just like the customer-side. Saved as [acl_403_supplier_lines.json](.claude/skills/dolibarr/examples/acl_403_supplier_lines.json) for future reference. ### Base-skill updates `dolibarr/SKILL.md`: catalogue row for `/supplierinvoices` (with the 403 gotcha) and two new sibling cross-links. `dolibarr/README.md`: two new permission checkboxes for "Factures fournisseurs → Lire / Voir toutes" — they were already granted in this Dolibarr but the doc now reflects the required state for any rebuild. ## Test plan - [ ] `audit-all-thirdparties.sh` → exit 1, 5 gaps - [ ] `audit-thirdparty.sh 1` → exit 1 (US EIN missing) - [ ] `audit-thirdparty.sh 7` → exit 0 (OVH complete) - [ ] `deductible-by-month.sh` → 4 month-buckets, total 223.22 € TVA - [ ] `deductible-line-detail.sh` → 14 rows, 3 buckets in summary - [ ] No credentials in the diff (verified pre-commit) ## V5 candidates - `dolibarr-tva-summary` — composes `tva-reconciliation` + `tva-deductible` into a single monthly CA3-ready report (net to remit / TVA credit, ligne-by-ligne). - `arcodange-k8s`, `arcodange-backups`, `arcodange-bank-reco` — operational siblings outside the Dolibarr-API perimeter.
arcodange added 1 commit 2026-05-29 06:14:59 +02:00
V4 bundle — two more sibling skills, both read-only, both depending
on the dolibarr base skill.

dolibarr-thirdparty-completeness:
- audit-thirdparty.sh <socid>: country-aware completeness audit for
  any thirdparty (FR: SIREN + SIRET + tva_intra; EU non-FR: tva_intra;
  extra-EU: national tax id). Generalizes the V1 KM-hardcoded script.
- audit-all-thirdparties.sh: loops over /thirdparties and surfaces a
  compact table of gaps. --clients-only / --suppliers-only flags.
- Live baseline finds 5/10 thirdparties with mandatory gaps:
  KissMetrics (US tax id), Wise Europe SA (BE tva_intra), Medialex
  (FR SIRET + tva_intra), Qonto (SIRET), Infogreffe (SIRET).

dolibarr-tva-deductible:
- deductible-by-month.sh: TVA déductible aggregated per period × rate.
- deductible-line-detail.sh: per supplier-invoice line with country-
  based CA3 bucket assignment (ligne 20 for 20 % FR, ligne 19 for
  reduced rates, ligne 17+24 for intra-UE autoliquidation).
- Live baseline: 223.22 € total TVA déductible across 13 lines.
  Wise Europe SA correctly identified as intra-UE autoliquidation;
  La Poste correctly identified as FR exempt (timbres).
- Mirrors dolibarr-tva-reconciliation on the supplier side. Together
  they give the two numbers a CA3 monthly declaration needs.

Also extends dolibarr/SKILL.md endpoint catalogue with /supplierinvoices
(noting the 403 on the /lines sub-endpoint — inline lines on the detail
endpoint make this a non-issue). dolibarr/README.md gains two new
permission checkboxes for Factures fournisseurs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
arcodange merged commit 8ba10e6f65 into main 2026-05-29 06:15:05 +02:00
arcodange deleted branch claude/dolibarr-thirdparty-tva-deductible 2026-05-29 06:15:05 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/erp#4