File size: 7,817 Bytes
d0a3fab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb13ad8
 
 
32c3118
d0a3fab
 
 
 
 
 
 
 
 
 
d5f9a91
 
d0a3fab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2f5797b
d0a3fab
 
 
 
 
 
 
416bee1
 
d5f9a91
d0a3fab
 
 
 
 
416bee1
32c3118
 
d0a3fab
32c3118
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# Documentation Picarones — index par rôle

> **Architecture documentaire** : ce projet adopte le modèle
> [Diataxis](https://diataxis.fr/) — quatre quadrants :
> *tutorials* (apprendre), *how-to* (résoudre), *reference*
> (consulter), *explanation* (comprendre).  Plus deux dossiers
> institutionnels : *governance* et *operations*.
>
> **Bilingue** : la **langue canonique est le français**.  Une
> surface publique réduite est traduite en anglais — README,
> CONTRIBUTING, SECURITY, ACCESSIBILITY, deux tutoriels clés.
> Le reste reste FR.  Politique assumée plutôt que bilingue partiel
> brouillé.

---

## Je suis…

### …un chercheur ou archiviste qui veut benchmarker un corpus

Vous voulez exécuter Picarones sur vos documents, lire un rapport,
comprendre les chiffres.

1. Installer : [`how-to/install.md`](how-to/install.md)
2. Premier benchmark : [`tutorials/first-benchmark.md`](tutorials/first-benchmark.md)
3. Lire le rapport produit : [`tutorials/reading-a-report.md`](tutorials/reading-a-report.md)
   ([EN](tutorials/reading-a-report.en.md))
4. Cas d'école pédagogiques : [`case-studies/`](case-studies/)
5. Glossaire des métriques : [`reference/normalization-profiles.md`](reference/normalization-profiles.md),
   [`reference/views.md`](reference/views.md)

### …un opérateur qui doit déployer en environnement institutionnel

Vous installez Picarones sur un NAS BnF, un cluster LoC, un serveur BL.

1. Déploiement institutionnel : [`operations/deployment-institutional.md`](operations/deployment-institutional.md)
2. Conformité RGPD : [`operations/data-retention-rgpd.md`](operations/data-retention-rgpd.md)
3. Runbook incidents : [`operations/runbook.md`](operations/runbook.md)
4. Observabilité (logs, métriques, alerting) : [`operations/observability.md`](operations/observability.md)
5. Process de release : [`operations/release-process.md`](operations/release-process.md)

### …un développeur qui veut contribuer du code

Vous ajoutez un adapter, une vue, une métrique, un détecteur narratif.

1. Vue d'ensemble du projet : [`/CONTRIBUTING.md`](../CONTRIBUTING.md)
   ([EN](../CONTRIBUTING.en.md))
2. Architecture en cercles : [`explanation/architecture.md`](explanation/architecture.md)
3. Politique modules contribués : [`developer/module-policy.md`](developer/module-policy.md)
4. Étendre un sous-système :
   [glossaire](developer/extending-glossary.md) ·
   [i18n](developer/extending-i18n.md) ·
   [moteur narratif](explanation/narrative-engine.md)
5. Écrire un module pour le banc d'essai : [`tutorials/writing-a-pipeline-module.md`](tutorials/writing-a-pipeline-module.md)

### …un mainteneur ou auditeur de sécurité

Vous évaluez Picarones avant un déploiement, un audit, une revue.

1. Politique de gouvernance : [`/GOVERNANCE.md`](../GOVERNANCE.md)
2. Politique de sécurité : [`/SECURITY.md`](../SECURITY.md)
   ([EN](../SECURITY.en.md))
3. Threat model STRIDE : [`security/threat-model.md`](security/threat-model.md)
4. API publique stable et politique de versioning : [`reference/api-stable.md`](reference/api-stable.md)
5. Audits historiques : [`archive/2026-audits/`](archive/2026-audits/)
6. État du rewrite et migration : [`archive/2026-migration/rewrite-status-s46.md`](archive/2026-migration/rewrite-status-s46.md)
7. Reproductibilité bit-for-bit : [`reference/reproducibility-snapshots.md`](reference/reproducibility-snapshots.md)

### …un Délégué à la Protection des Données (DPO)

Vous évaluez les implications RGPD avant signature.

1. Politique de rétention RGPD : [`operations/data-retention-rgpd.md`](operations/data-retention-rgpd.md)
2. Modèle d'accord de sous-traitance (DPA) : [`legal/dpa-template.md`](legal/dpa-template.md)
3. Threat model : [`security/threat-model.md`](security/threat-model.md)
4. Liste des sous-traitants potentiels (services cloud) :
   `pricing.yaml` + section *Adapters cloud* dans
   [`reference/api-stable.md`](reference/api-stable.md)

---

## Index thématique

### Tutorials — j'apprends

| Document | Public | Langue |
|----------|--------|--------|
| [`tutorials/first-benchmark.md`](tutorials/first-benchmark.md) | Chercheur découvrant l'outil | FR |
| [`tutorials/reading-a-report.md`](tutorials/reading-a-report.md) | Chercheur lisant un rapport | FR + EN |
| [`tutorials/writing-a-pipeline-module.md`](tutorials/writing-a-pipeline-module.md) | Développeur tiers | FR |

### How-to — je résous un problème concret

| Document | Cible |
|----------|-------|
| [`how-to/install.md`](how-to/install.md) | Installer en local ou serveur |
| [`how-to/cli-workflows.md`](how-to/cli-workflows.md) | Utiliser la CLI au quotidien |

### Reference — je consulte le contrat

| Document | Sujet |
|----------|-------|
| [`reference/api-stable.md`](reference/api-stable.md) | API Python publique + politique semver |
| [`reference/views.md`](reference/views.md) | Vues d'évaluation (text, alto, search) |
| [`reference/normalization-profiles.md`](reference/normalization-profiles.md) | Profils de normalisation textuelle |
| [`reference/reproducibility-snapshots.md`](reference/reproducibility-snapshots.md) | Reproductibilité bit-for-bit |

### Explanation — je comprends pourquoi

| Document | Sujet |
|----------|-------|
| [`explanation/architecture.md`](explanation/architecture.md) | Architecture en cercles, principes |
| [`explanation/narrative-engine.md`](explanation/narrative-engine.md) | Comment le moteur narratif fonctionne |

### Operations — je déploie et j'opère

| Document | Sujet |
|----------|-------|
| [`operations/deployment-institutional.md`](operations/deployment-institutional.md) | Déploiement institutionnel |
| [`operations/runbook.md`](operations/runbook.md) | Réponse aux incidents |
| [`operations/observability.md`](operations/observability.md) | Logs, métriques, alerting |
| [`operations/data-retention-rgpd.md`](operations/data-retention-rgpd.md) | Conformité RGPD |
| [`operations/release-process.md`](operations/release-process.md) | Cycle de release |

### Governance / security / legal

| Document | Sujet |
|----------|-------|
| [`/GOVERNANCE.md`](../GOVERNANCE.md) | Gouvernance |
| [`/SECURITY.md`](../SECURITY.md) | Sécurité (FR + EN) |
| [`/CODE_OF_CONDUCT.md`](../CODE_OF_CONDUCT.md) | Code de conduite |
| [`operations/accessibility.md`](operations/accessibility.md) | Accessibilité |
| [`security/threat-model.md`](security/threat-model.md) | Threat model STRIDE |
| [`legal/dpa-template.md`](legal/dpa-template.md) | DPA RGPD §28 |

### Archives et historique

| Document | Sujet |
|----------|-------|
| [`/CHANGELOG.md`](../CHANGELOG.md) | Journal des versions actives (depuis `0.9.0`) |
| [`archive/`](archive/) | Documents archivés (audits, migration, roadmap pré-rewrite, changelog historique) |
| [`roadmap/backlog.md`](roadmap/backlog.md) | Backlog vivant |

---

## Conventions

- **Une seule arborescence canonique** (depuis `0.9.0`) :
  `domain → formats → evaluation → pipeline → adapters → app → reports → interfaces`.
  Les paquets legacy ont été supprimés en mai 2026.
- **Tout chemin `picarones/.../X.py` cité dans la doc doit exister**.
  Vérifié par `tests/architecture/test_doc_paths.py` (ratchet
  strictement décroissant).
- **Les tableaux générés** (engines, CLI, endpoints) sont régénérés
  par `scripts/gen_readme_tables.py` — modifier le code, pas la doc.
  Les compteurs en prose (nombre de tests, etc.) utilisent la
  formulation approximative `N+ tests` pour absorber la dérive
  OS-dépendante ; le chiffre exact vit dans le badge CI.
- **Cohérence FR/EN** : la langue canonique est le français.  Une
  surface EN réduite est listée dans
  `tests/docs/test_translation_parity.py::TRANSLATION_PAIRS` —
  toute paire FR/EN doit y figurer.