fonzarely/regine-photos-archiverpublic Fork
⑂ main
Commits
⬇ Clone ▾
git clone https://git.rickub.com/fonzarely/regine-photos-archiver.git
git clone ssh://git@rickub.com/fonzarely/regine-photos-archiver.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
duplicates a1d9142 · on main · Fabien Champigny · Sep 22, 2026
quickstart.md · 59 lines · 4.3 KBmarkdown
Blame HistoryOpen raw

Quickstart : validation de l'import de photos

Ce guide valide les 3 user stories de spec.md via la commande regine import (cf. contracts/cli-import.md). À exécuter une fois regine_core.import_carte et regine_cli.import_cmd implémentés (cf. tasks.md).

Prérequis

  • regine-core/regine-cli installés, exiftool disponible.
  • Un contexte de travail configuré (specs/003-config-contexte-travail) : répertoire temporaire, répertoire de travail local, archive (peut être un dossier local simulant le NAS pour ce test).
  • Un jeu de fichiers de test avec dates EXIF contrôlées, simulant une "carte mémoire" (simple dossier local en lecture).

Scénario 1 — Import simple (User Story 1, P1)

regine import ./fixtures/carte_journee_unique --titre "Sortie parc" --annee --yes

Résultat attendu : un seul groupe proposé (une journée), dossier créé sous <local_work>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc/, fichiers renommés <AAAA-MM-JJ>_Sortie-parc_<nomOrigine>.ext et classés dans leur dossier de format (raw/, jpeg/...), résumé affiché puis publication locale confirmée (--yes). Vérifier que la carte source n'a nécessité qu'une seule lecture par fichier (SC-001), et qu'aucun dossier n'apparaît sous <archive> à l'issue de cette commande (SC-006/SC-010) — la sortie stdout indique la commande regine reconcile à lancer plus tard pour archiver.

regine reconcile <archive>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc --local-dest <local_work>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc

Résultat attendu : ce dossier n'ayant jamais été archivé, tous ses fichiers sont classés « nouveau » ; en confirmant leur archivage, le dossier apparaît alors sous <archive> avec la même structure (raw//jpeg/...) que la copie locale (cf. specs/005-checkout-reconciliation, aucune modification requise pour ce cas).

Scénario 2 — Découpage multi-jours (User Story 2, P2)

regine import ./fixtures/carte_semaine_avec_pic

Résultat attendu : la répartition jour par jour est affichée, le jour au pic isolé est mis en avant comme candidat au détachement (jamais détaché automatiquement) ; en le détachant, deux groupes distincts sont proposés pour destination/titre séparément.

Scénario 3 — Voyage multi-étapes avec désambiguïsation de boîtiers (User Story 3, P3)

regine import ./fixtures/carte_etape1 --destination parent --categorie voyage --titre "Montenegro"
regine import ./fixtures/carte_etape2 --destination sous-dossier:<id_parent> --titre "Kotor"

Résultat attendu : structure à deux niveaux sous <archive>/voyage/<AAAA-MM>_Montenegro/<AAAA-MM-JJ>_Kotor_Montenegro/, le second import héritant automatiquement de la catégorie voyage sans qu'elle soit redemandée (cf. specs/004-categorisation-dossiers).

regine import ./fixtures/carte_secours_meme_etape --destination fusion:<id_kotor>

Résultat attendu : que <id_kotor> existe en local ou seulement dans l'archive, la fusion aboutit avec désambiguïsation automatique des boîtiers par modèle EXIF (ou question d'étiquetage manuel si nécessaire, cf. specs/002-profil-boitiers-optionnel). Si <id_kotor> n'existe que dans l'archive, un checkout automatique (specs/005-checkout-reconciliation) précède l'intégration des nouveaux fichiers — visible sur stdout comme une étape supplémentaire, pas un échec. Si ce dossier est déjà verrouillé par un autre checkout en cours, la commande échoue explicitement.

Scénario 4 — Détection de doublon entre deux imports séparés (FR-004 révisé, 2026-09-22)

regine import ./fixtures/carte_journee_unique --titre "Premier essai" --annee --yes
regine import ./fixtures/carte_journee_unique --titre "Deuxieme essai" --annee

Résultat attendu : le second import (même carte, titre et dossier de destination différents) affiche un avertissement listant les fichiers dont la somme de contrôle correspond à ceux déjà importés sous « Premier essai » et le chemin de ce dossier, puis attend une confirmation avant de poursuivre — jamais une exclusion ou une inclusion silencieuse.

Critères de sortie

Les 4 scénarios, y compris la fusion vers un dossier déjà archivé et la détection de doublon, doivent passer intégralement — plus aucun sous-scénario documenté comme bloqué.

 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
# Quickstart : validation de l'import de photos

Ce guide valide les 3 user stories de `spec.md` via la commande `regine import` (cf. `contracts/cli-import.md`). À exécuter une fois `regine_core.import_carte` et `regine_cli.import_cmd` implémentés (cf. `tasks.md`).

## Prérequis

- `regine-core`/`regine-cli` installés, `exiftool` disponible.
- Un contexte de travail configuré (`specs/003-config-contexte-travail`) : répertoire temporaire, répertoire de travail local, archive (peut être un dossier local simulant le NAS pour ce test).
- Un jeu de fichiers de test avec dates EXIF contrôlées, simulant une "carte mémoire" (simple dossier local en lecture).

## Scénario 1 — Import simple (User Story 1, P1)

```bash
regine import ./fixtures/carte_journee_unique --titre "Sortie parc" --annee --yes
```

**Résultat attendu** : un seul groupe proposé (une journée), dossier créé sous `<local_work>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc/`, fichiers renommés `<AAAA-MM-JJ>_Sortie-parc_<nomOrigine>.ext` et classés dans leur dossier de format (`raw/`, `jpeg/`...), résumé affiché puis publication locale confirmée (`--yes`). Vérifier que la carte source n'a nécessité qu'une seule lecture par fichier (SC-001), et qu'**aucun dossier n'apparaît sous `<archive>`** à l'issue de cette commande (SC-006/SC-010) — la sortie stdout indique la commande `regine reconcile` à lancer plus tard pour archiver.

```bash
regine reconcile <archive>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc --local-dest <local_work>/<AAAA>/<AAAA-MM-JJ>_Sortie-parc
```

**Résultat attendu** : ce dossier n'ayant jamais été archivé, tous ses fichiers sont classés « nouveau » ; en confirmant leur archivage, le dossier apparaît alors sous `<archive>` avec la même structure (`raw/`/`jpeg/`...) que la copie locale (cf. `specs/005-checkout-reconciliation`, aucune modification requise pour ce cas).

## Scénario 2 — Découpage multi-jours (User Story 2, P2)

```bash
regine import ./fixtures/carte_semaine_avec_pic
```

**Résultat attendu** : la répartition jour par jour est affichée, le jour au pic isolé est mis en avant comme candidat au détachement (jamais détaché automatiquement) ; en le détachant, deux groupes distincts sont proposés pour destination/titre séparément.

## Scénario 3 — Voyage multi-étapes avec désambiguïsation de boîtiers (User Story 3, P3)

```bash
regine import ./fixtures/carte_etape1 --destination parent --categorie voyage --titre "Montenegro"
regine import ./fixtures/carte_etape2 --destination sous-dossier:<id_parent> --titre "Kotor"
```

**Résultat attendu** : structure à deux niveaux sous `<archive>/voyage/<AAAA-MM>_Montenegro/<AAAA-MM-JJ>_Kotor_Montenegro/`, le second import héritant automatiquement de la catégorie `voyage` sans qu'elle soit redemandée (cf. `specs/004-categorisation-dossiers`).

```bash
regine import ./fixtures/carte_secours_meme_etape --destination fusion:<id_kotor>
```

**Résultat attendu** : que `<id_kotor>` existe en local ou seulement dans l'archive, la fusion aboutit avec désambiguïsation automatique des boîtiers par modèle EXIF (ou question d'étiquetage manuel si nécessaire, cf. `specs/002-profil-boitiers-optionnel`). Si `<id_kotor>` n'existe que dans l'archive, un checkout automatique (`specs/005-checkout-reconciliation`) précède l'intégration des nouveaux fichiers — visible sur stdout comme une étape supplémentaire, pas un échec. Si ce dossier est déjà verrouillé par un autre checkout en cours, la commande échoue explicitement.

## Scénario 4 — Détection de doublon entre deux imports séparés (FR-004 révisé, 2026-09-22)

```bash
regine import ./fixtures/carte_journee_unique --titre "Premier essai" --annee --yes
regine import ./fixtures/carte_journee_unique --titre "Deuxieme essai" --annee
```

**Résultat attendu** : le second import (même carte, titre et dossier de destination différents) affiche un avertissement listant les fichiers dont la somme de contrôle correspond à ceux déjà importés sous « Premier essai » et le chemin de ce dossier, puis attend une confirmation avant de poursuivre — jamais une exclusion ou une inclusion silencieuse.

## Critères de sortie

Les 4 scénarios, y compris la fusion vers un dossier déjà archivé et la détection de doublon, doivent passer intégralement — plus aucun sous-scénario documenté comme bloqué.