Two changes that go together: now operators can run every read-only
workflow without going through Claude. The skills (SKILL.md files)
remain the source of behaviour documentation and Claude triggers;
bin/arcodange is the human-facing entry point.
bin/arcodange:
- Bash dispatcher at the project root. Subcommands per domain:
tva {collect, collect-detail, deductible, deductible-detail, summary},
invoice {list, audit}, thirdparty {audit, audit-all},
payments {state, timeline, by-month},
templates {list, inspect},
snapshot, whoami, ping, curl, help.
- Locates the project root via `git rev-parse` so it works from any
CWD (including from a worktree).
- Per-subcommand `help` text. Unknown commands exit 2 with a hint.
- Reuses the existing per-skill scripts under .claude/skills/<name>/
scripts/ via `exec` (zero behaviour drift, full credit to the
existing tested code).
dolibarr-tva-summary:
- Composes dolibarr-tva-reconciliation (TVA collectée customer-side)
and dolibarr-tva-deductible (TVA déductible supplier-side) into a
single CA3-ready monthly summary with per-month net verdict
(TVA à reverser / crédit de TVA / équilibre) and a cumulative line.
- Live baseline: Arcodange en crédit de TVA de 223.22 € cumulé
(0 € collectée 259-1° CGI vs 223.22 € déductible).
- Exposed as `arcodange tva summary [--year|--since|--until]`.
Each existing skill's SKILL.md gets a one-line "CLI shortcut" near
the top so the human path is discoverable from any skill page.
The project root README.md gets a CLI section as the primary
operator entry point.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
# ERP
|
||
|
||
## CLI — `bin/arcodange`
|
||
|
||
Read-only operational CLI for the Arcodange Dolibarr at `erp.arcodange.lab`. One entry point, subcommands per domain:
|
||
|
||
```sh
|
||
bin/arcodange ping # Dolibarr version + liveness
|
||
bin/arcodange whoami # confirm auth as ai_agent
|
||
bin/arcodange invoice list # KissMetrics invoices with payment state
|
||
bin/arcodange invoice audit 12 # JSON facts + PDF mandatory-mention audit
|
||
bin/arcodange payments state # per-invoice TTC vs payments reconciliation
|
||
bin/arcodange payments timeline --year 2026 # cash receipts with cumulative balance
|
||
bin/arcodange tva summary # CA3-ready collectée − déductible per month
|
||
bin/arcodange thirdparty audit-all # completeness audit, country-aware
|
||
bin/arcodange templates inspect 1 # recurring template health (frequency, next fire, …)
|
||
bin/arcodange snapshot --out /tmp/erp.json # full state dump with content_hash
|
||
bin/arcodange help # full command tree
|
||
```
|
||
|
||
**Read-only by design.** The underlying API key (`ai_agent`) has no write permissions; corrections go through the Dolibarr UI.
|
||
|
||
**Credentials.** Reads `.claude/skills/dolibarr/.env` (mode 600, gitignored). Setup instructions: [.claude/skills/dolibarr/README.md](.claude/skills/dolibarr/README.md).
|
||
|
||
**Source of behaviour.** Each subcommand delegates to a script under `.claude/skills/<skill>/scripts/`. The skills' `SKILL.md` files document the business logic and are also discoverable by Claude Code via skill triggers.
|
||
|
||
## Dolibarr
|
||
|
||
### Premiers démarrages
|
||
|
||
Si l'application log au démarrage l'erreur suivante:
|
||
```sh
|
||
Importing custom SQL from update_table_ownership.sql ...
|
||
sed: couldn't open temporary file /var/www/scripts/before-starting.d/sedwHcRlQ: Read-only file system
|
||
```
|
||
Il faudra prendre la main du shell du pod et executer:
|
||
```sh
|
||
kubectl exec -n erp `kubectl get pod -n erp -l app.kubernetes.io/name=erp -o=name` -c erp -- sh -c 'PGPASSWORD=${DOLI_DB_PASSWORD} psql -U ${DOLI_DB_USER} -h ${DOLI_DB_HOST} -p ${DOLI_DB_HOST_PORT} ${DOLI_DB_NAME} \
|
||
-f /var/www/scripts/before-starting.d/update_table_ownership.sql'
|
||
```
|
||
|
||
Sous peine de ne plus avoir les droits de consulter la base de données une fois les crédentials mis à jour par vault. Dans ce cas executer la commande mais avec les credentials d'admin postgres. |