Feature Specification: Configuration du contexte de travail de Régine
Feature Branch: [003-config-contexte-travail]
Created: 2026-09-18
Status: Draft
Input: User description: "le module de configuration permet de definir le context de travail de Regine. Permet de nomer les boitiers du photographe en fonction des photos déjà integrées. Configure les chemins : repertoire temporaire, repertoire de travaille local , chemin du nas (SMB) et aide au montage auto du SMB si pas disponible. d'autres paramètres pourronts êtres integrés plus tard. Il faut aussi préparer la base de données de travail qui sera à la racine du répértoire de travail et archivée en même temps que l'archivage des dossiers locaux."
Clarifications
Session 2026-09-18
- Q: Que doit devenir le contenu déjà présent (checkouts en cours, base de données de travail) dans l'ancien répertoire de travail local quand l'utilisateur change ce chemin de configuration ? → A: Régine refuse le changement tant qu'un checkout ou un import n'est pas réconcilié/archivé ; le changement n'est autorisé qu'une fois le répertoire vide de tout travail non archivé.
- Q: La détection des boîtiers déjà rencontrés (User Story 3) doit-elle parcourir tout le NAS en direct, ou s'appuyer sur des informations déjà connues localement ? → A: Les références de boîtiers sont enregistrées dans une base de contexte centralisée à chaque import ; un parcours à la demande sur l'ensemble du NAS est une capacité complémentaire, optionnelle et à déclenchement volontaire, pas une dépendance obligatoire de la détection de base.
Session 2026-09-21
- Q: La base de contexte centralisée doit-elle vivre à un emplacement standard différent selon le système d'exploitation (Linux/macOS/Windows) ? → A: Non, pas pour l'instant — l'emplacement unique déjà en place (
~/.regine/, indépendant de l'OS) est conservé tel quel ; une convention par OS reste une amélioration possible d'une prochaine version, pas un besoin actuel. - Q: L'interface graphique doit-elle pouvoir consulter et modifier le contexte de travail ? → A: Oui — en appelant directement
regine_core.config(mêmes fonctions que la CLI), sans aucune logique de configuration propre à la GUI (Principe VI). Couvert par la nouvelle User Story 4 ci-dessous.
Session 2026-09-23
- Q:
~/.regine/doit-il continuer à héberger l'intégralité de la base de contexte (chemins, boîtiers, catégories, historique d'imports), ou seulement une partie ? → A: Seulement les trois chemins de travail (FR-001), dans une configuration globale minimale propre à la machine. Le reste (boîtiers nommés, catégories connues, historique des imports — cf.specs/001-import-photosFR-004) déménage à la racine du répertoire de travail local, dans le fichier déjà prévu par FR-006 (jusqu'ici sous-défini) — écart trouvé par l'utilisateur : ce contenu représentait un savoir accumulé important (désambiguïsation de boîtiers, catégorisation apprise, historique anti-doublon) qui ne survivait pas à la perte de la machine locale, alors que les photos elles-mêmes sont protégées sur le NAS. Ce déménagement corrige aussi une confusion déjà présente dans les Assumptions de cette spec : FR-006 (« base de données de travail » à la racine du répertoire local) et la base de contexte centralisée décrite plus bas désignaient jusqu'ici deux choses distinctes, sans qu'aucune des deux ne soit réellement précisée ni exploitée par le code existant — elles fusionnent en une seule (cf. FR-006 révisée, User Story 5). - Q: Quand la base de contexte centralisée doit-elle être répliquée vers l'archive NAS (FR-016) ? → A: Manuellement, au moment où un dossier est archivé (
regine reconcile) — jamais automatiquement à chaque modification isolée du contexte, ni via une commande dédiée séparée. Rationale de l'utilisateur : archiver un dossier suppose déjà d'écrire sur le NAS, et l'archive globale a alors besoin du contexte associé à jour — pas de nouvelle dépendance au NAS introduite au-delà de celle déjà requise parregine reconcile. - Q: Quand le contexte doit-il être retrouvé depuis l'archive sur une nouvelle machine (FR-017) ? → A: Automatiquement, à la configuration initiale des emplacements de travail, et lors de la récupération locale d'un dossier archivé (checkout) — les deux moments naturels où une nouvelle machine entre en contact avec l'archive pour la première fois, sans action de récupération dédiée supplémentaire à apprendre.
User Scenarios & Testing (mandatory)
User Story 1 - Configuration initiale des emplacements de travail (Priority: P1)
Avant tout import ou archivage, un photographe indique à Régine où se trouvent ses trois emplacements de travail : un répertoire temporaire pour les copies brutes, un répertoire de travail local pour l'édition, et l'emplacement de l'archive sur le NAS. Une fois ces trois chemins enregistrés, Régine est prête à réaliser sa première opération.
Why this priority: Aucune autre fonctionnalité de Régine (import, checkout, réconciliation, archivage) ne peut fonctionner sans savoir où lire et écrire. C'est le prérequis strict de tout le reste.
Independent Test: Peut être testé en configurant les trois chemins sur une installation neuve de Régine, sans réaliser aucun import, puis en vérifiant qu'une autre fonctionnalité (ex. import) peut lire ces chemins et les utiliser sans reconfiguration supplémentaire.
Acceptance Scenarios:
- Given une installation de Régine sans contexte de travail configuré, When l'utilisateur renseigne un répertoire temporaire, un répertoire de travail local et un emplacement d'archive NAS, Then Régine enregistre ces trois chemins comme contexte de travail actif.
- Given un chemin de répertoire temporaire ou de répertoire de travail local qui n'existe pas encore, When l'utilisateur le configure, Then Régine propose de le créer plutôt que d'échouer silencieusement.
- Given un répertoire de travail local nouvellement configuré, When Régine initialise le contexte de travail, Then une base de données de travail est créée et prête à la racine de ce répertoire, avant qu'aucune autre opération n'en ait besoin.
- Given un contexte de travail déjà configuré, When l'utilisateur modifie l'un des trois chemins, Then Régine applique le changement sans nécessiter de réinstallation ni perdre les autres paramètres déjà définis (boîtiers nommés compris).
- Given un checkout ou un import en cours, non encore réconcilié ni archivé, dans le répertoire de travail local, When l'utilisateur tente de changer ce chemin, Then Régine refuse le changement et indique le travail à réconcilier ou archiver au préalable, plutôt que de déplacer ou d'abandonner silencieusement ce travail.
User Story 2 - Assistance quand l'archive NAS n'est pas accessible (Priority: P2)
Un photographe lance une opération nécessitant l'archive (import, archivage, consultation), mais le partage réseau vers le NAS n'est pas monté ou pas accessible à cet instant (ex. redémarrage récent de l'ordinateur, réseau non encore établi). Plutôt que d'échouer avec une erreur incompréhensible, Régine détecte la situation et aide l'utilisateur à rétablir l'accès.
Why this priority: L'indisponibilité temporaire d'un partage réseau est un incident courant et non bloquant en soi ; sans cette assistance, chaque redémarrage ou coupure réseau se traduirait par une erreur confuse plutôt qu'une situation récupérable.
Independent Test: Peut être testé en configurant un emplacement d'archive NAS valide mais actuellement inaccessible, en déclenchant une opération qui en a besoin, et en vérifiant que Régine propose une assistance au rétablissement de l'accès plutôt qu'un simple message d'erreur, puis que l'opération peut reprendre une fois l'accès rétabli.
Acceptance Scenarios:
- Given un emplacement d'archive NAS configuré mais non accessible au moment d'une opération, When cette opération démarre, Then Régine détecte l'indisponibilité avant d'échouer et propose une action pour rétablir l'accès.
- Given une assistance au rétablissement de l'accès proposée, When l'accès au NAS est rétabli, Then l'opération initialement bloquée peut reprendre sans que l'utilisateur ait à reconfigurer le contexte de travail depuis le début.
- Given une tentative de rétablissement de l'accès qui échoue de façon répétée, When Régine ne parvient toujours pas à accéder au NAS, Then elle informe clairement l'utilisateur de l'échec plutôt que de retenter indéfiniment en silence.
User Story 3 - Nommer les boîtiers à partir des photos déjà archivées (Priority: P3)
Un photographe consulte la configuration de Régine et veut donner un nom lisible à ses boîtiers (ex. "Fuji principal", "Fuji secours") sans avoir à réimporter une carte mémoire : Régine détecte les boîtiers déjà rencontrés dans les photos déjà intégrées à l'archive et propose de les nommer.
Why this priority: Complète le profil de boîtiers optionnel (déjà couvert par ailleurs) avec un point d'entrée proactif et confortable, mais reste un raffinement : un utilisateur peut se passer de cette fonctionnalité, le nommage restant possible au moment d'une collision réelle.
Independent Test: Peut être testé sur une archive contenant déjà des photos d'au moins un boîtier identifiable, en ouvrant l'écran de configuration des boîtiers et en vérifiant que ce boîtier apparaît comme détecté à partir des photos existantes, sans qu'aucun nouvel import ne soit nécessaire.
Acceptance Scenarios:
- Given des photos déjà importées via Régine, dont les références de boîtier ont été enregistrées dans la base de contexte centralisée, When l'utilisateur ouvre la configuration des boîtiers, Then Régine liste les boîtiers détectés (regroupés par modèle et, si disponible, numéro de série) à partir de cette base, sans parcourir le NAS en direct.
- Given un boîtier détecté mais non nommé, When l'utilisateur lui attribue un nom, Then ce nom est associé au boîtier et réutilisé partout où Régine identifie ce même boîtier par la suite.
- Given deux boîtiers de même modèle jamais distingués faute de collision ou de numéro de série exploitable, When l'utilisateur consulte la liste, Then ils apparaissent comme une seule entrée détectée tant qu'aucune information ne permet de les séparer.
- Given un dossier archivé avant l'existence de cette fonctionnalité, dont les boîtiers ne figurent donc pas encore dans la base de contexte centralisée, When l'utilisateur déclenche volontairement un parcours complet du NAS, Then Régine détecte aussi les boîtiers de ce dossier et les ajoute à la liste.
User Story 4 - Configurer le contexte de travail depuis l'interface graphique (Priority: P4)
Un photographe qui utilise déjà l'interface graphique de Régine pour trier ses photos (specs/006-gui-tri-consultation) veut aussi pouvoir consulter et modifier son contexte de travail (chemins, état du partage SMB, boîtiers nommés) sans repasser par la ligne de commande.
Why this priority: Confort d'usage pur — la CLI (regine config ...) couvre déjà 100% de ces capacités et continue de fonctionner à l'identique ; un utilisateur à l'aise avec la ligne de commande peut se passer entièrement de cet onglet.
Independent Test: Peut être testé en ouvrant l'onglet de configuration de la GUI sur une installation neuve, en y saisissant les trois emplacements de travail, puis en vérifiant via regine config show que la CLI reflète exactement ce qui a été saisi dans la GUI (et réciproquement).
Acceptance Scenarios:
- Given l'interface graphique ouverte, When l'utilisateur sélectionne l'onglet de configuration, Then il voit les trois emplacements de travail actuels (ou leur absence) et l'état connu du partage SMB, identiques à ce que renverrait
regine config show. - Given l'onglet de configuration, When l'utilisateur y modifie un chemin et confirme, Then le changement est appliqué en appelant directement
regine_core.config.context.enregistrer_chemins— même fonction, mêmes règles (répertoire manquant, collision de chemins, travail non réconcilié) que celles déjà validées côté CLI (FR-003/FR-010), jamais une logique de validation propre à la GUI. - Given une tentative de changement refusée par
regine_core.config(ex. travail non réconcilié sous l'ancien répertoire de travail local), When l'erreur remonte à la GUI, Then elle est présentée clairement à l'utilisateur (quel dossier réconcilier), jamais une exception technique brute. - Given l'onglet de configuration, When l'utilisateur consulte la liste des boîtiers, Then il retrouve les mêmes boîtiers, dans le même état (nommé ou non), que
regine config cameras list— et peut leur attribuer un nom depuis cet onglet.
User Story 5 - Reprendre le travail sur une nouvelle machine sans perdre le contexte (Priority: P2)
Un photographe change d'ordinateur (nouvelle machine, réinstallation, disque remplacé). Aucune photo n'est perdue puisqu'elles vivent sur le NAS, mais il veut retrouver, sans les ressaisir ni les reconstituer manuellement, ses boîtiers nommés, ses catégories connues et son historique d'imports déjà accumulés sur l'ancienne machine — en reconfigurant simplement Régine pour pointer vers la même archive.
Why this priority: Sans cette garantie, tout incident sur la machine de travail ferait perdre silencieusement un savoir accumulé (désambiguïsation de boîtiers, catégorisation apprise, historique anti-doublon) que rien n'indiquerait comme sauvegardé — une régression grave pour un outil dont la promesse centrale est de ne jamais perdre d'information sans confirmation. Reste un raffinement au sens où l'usage quotidien sur une seule machine, jamais changée, n'en dépend pas.
Independent Test: Peut être testé en enrichissant le contexte de travail (nommer un boîtier, réaliser un import) sur une installation, puis en configurant une seconde installation "neuve" (nouveau répertoire de travail local vide) pointant vers la même archive NAS, et en vérifiant que ce contexte est retrouvé sans réimport ni ressaisie.
Acceptance Scenarios:
- Given un contexte de travail enrichi (boîtiers nommés, catégories connues, historique d'imports) sur une machine, When un dossier est archivé (
regine reconcile) depuis cette machine, Then ce contexte est répliqué vers l'archive NAS au même moment, sans action de sauvegarde distincte à apprendre (FR-016). - Given une nouvelle machine sur laquelle Régine vient d'être configurée avec le même emplacement d'archive NAS qu'une installation précédente, When l'utilisateur termine la configuration des trois emplacements de travail, Then Régine retrouve automatiquement, depuis l'archive, le contexte enrichi de cette installation précédente (FR-017) — sans que l'utilisateur ait à réimporter une carte mémoire ou à renommer ses boîtiers de nouveau.
- Given une nouvelle machine dont la configuration initiale n'a pas encore retrouvé de contexte existant sur l'archive (ex. configurée hors ligne), When l'utilisateur y effectue un premier checkout d'un dossier déjà archivé, Then Régine retrouve à cette occasion le contexte enrichi de l'installation précédente (FR-017), au plus tard à ce moment.
- Given ce contexte retrouvé sur la nouvelle machine, When l'utilisateur consulte ses boîtiers nommés, ses catégories connues, ou lance un nouvel import, Then l'historique anti-doublon (
specs/001-import-photosFR-004) et la désambiguïsation de boîtiers (specs/002-profil-boitiers-optionnel) se comportent exactement comme sur l'ancienne machine, sans repartir de zéro. - Given les trois emplacements de travail (FR-001), When l'utilisateur configure une nouvelle machine, Then seuls ces trois chemins doivent être ressaisis — jamais les boîtiers nommés, les catégories, ni l'historique d'imports.
Edge Cases
- Que se passe-t-il si le répertoire temporaire et le répertoire de travail local pointent vers le même emplacement ? Régine DOIT avertir l'utilisateur de cette configuration ambiguë plutôt que de l'accepter silencieusement.
- Que se passe-t-il si le chemin renseigné pour l'archive NAS ne correspond pas à un partage réseau valide (ex. confusion avec un dossier local) ? Régine DOIT signaler l'anomalie de configuration plutôt que de l'enregistrer telle quelle.
- Que se passe-t-il si l'espace disque du répertoire de travail local devient insuffisant pour accueillir la base de données de travail ? Régine DOIT signaler une erreur de configuration claire plutôt que de créer une base de données partiellement écrite.
- Que se passe-t-il si l'utilisateur tente de lancer une opération avant d'avoir configuré le contexte de travail ? Régine DOIT indiquer clairement quels chemins manquent plutôt que d'échouer avec une erreur technique.
- Que se passe-t-il si l'utilisateur tente de changer le répertoire de travail local alors qu'un checkout ou un import est encore en cours (non réconcilié/archivé) ? Régine DOIT refuser ce changement et indiquer précisément ce qui doit être réconcilié ou archivé avant de pouvoir continuer.
- Que se passe-t-il si le contexte de travail local (boîtiers, catégories, historique) et la sauvegarde présente sur l'archive ont divergé (ex. deux machines utilisées successivement sans que la première n'ait sauvegardé ses derniers changements) ? Cette spécification suppose un contexte actif sur une seule machine à la fois (cf. Assumptions) : elle ne couvre pas la fusion de deux contextes divergents, seulement le remplacement du contexte local par la dernière sauvegarde connue sur l'archive.
- Que se passe-t-il si l'archive NAS n'est pas accessible au moment où Régine tenterait de retrouver ou de sauvegarder le contexte de travail (User Story 5) ? Régine DOIT réutiliser l'assistance au montage déjà prévue (User Story 2) plutôt que d'échouer sans explication, et ne DOIT jamais bloquer les opérations qui n'ont besoin que du contexte déjà présent localement.
Requirements (mandatory)
Functional Requirements
- FR-001: Le système DOIT permettre de configurer, indépendamment de tout import, trois emplacements de travail : un répertoire temporaire, un répertoire de travail local, et l'emplacement de l'archive sur le NAS.
- FR-002: Le système DOIT permettre de spécifier l'emplacement de l'archive comme un partage réseau SMB.
- FR-003: Lorsqu'un répertoire temporaire ou un répertoire de travail local configuré n'existe pas encore, le système DOIT proposer de le créer plutôt que d'échouer silencieusement.
- FR-004: Lorsque le partage SMB configuré n'est pas accessible au moment où une opération en a besoin, le système DOIT détecter cette indisponibilité et déclencher le mécanisme de montage natif du système d'exploitation pour ce partage, plutôt que d'échouer avec une erreur générique. Le système ne DOIT PAS gérer ou stocker lui-même d'identifiants réseau : l'authentification et la sécurité des paramètres de connexion restent entièrement déléguées au système d'exploitation.
- FR-005: Le système DOIT mémoriser l'emplacement SMB configuré (cf. FR-001) afin de pouvoir redéclencher son montage natif à chaque nouvelle indisponibilité détectée, sans que l'utilisateur ait à ressaisir ce chemin. Une fois l'accès au NAS rétabli après une indisponibilité détectée, le système DOIT permettre de reprendre l'opération initialement bloquée sans reconfiguration complète du contexte de travail.
- FR-006 (révisée le 2026-09-23): Le système DOIT initialiser, à la racine du répertoire de travail local, une base de données de travail prête à l'usage avant qu'aucune autre opération de Régine n'en ait besoin — cette base est le contexte de travail lui-même (boîtiers nommés, catégories connues, historique des imports, cf. FR-008/FR-015), pas un fichier distinct et vide.
- FR-007 (révisée le 2026-09-23): La configuration globale minimale (FR-014) permettant de localiser le répertoire de travail local NE DOIT jamais dépendre du contenu de ce répertoire pour exister — elle DOIT rester lisible même si le répertoire de travail local est absent ou vide (ex. nouvelle machine, cf. User Story 5), pour permettre de le retrouver ou de le reconstituer.
- FR-008: À chaque import, le système DOIT enregistrer les références des boîtiers rencontrés (modèle et, si disponible, numéro de série) dans une base de contexte centralisée, et permettre à l'utilisateur, depuis cette base, d'attribuer un nom lisible à un boîtier déjà rencontré, sans nécessiter de nouvel import ni de parcours du NAS.
- FR-009: Un nom attribué à un boîtier via la configuration DOIT être réutilisé partout où Régine identifie ce même boîtier par la suite (import, désambiguïsation de collision).
- FR-010: Le système DOIT permettre de modifier tout paramètre du contexte de travail (chemins, boîtiers nommés) après la configuration initiale, sans réinstallation. Pour le répertoire de travail local spécifiquement, le système DOIT refuser ce changement tant qu'un checkout ou un import n'a pas été réconcilié ou archivé, et indiquer clairement ce qui bloque le changement, plutôt que de déplacer ou d'abandonner silencieusement du travail en cours.
- FR-011: Le système DOIT être conçu pour accueillir de nouveaux paramètres de configuration à l'avenir sans remettre en cause les paramètres déjà définis.
- FR-012: Le système PEUT proposer, comme action distincte et déclenchée volontairement par l'utilisateur, un parcours complet de l'archive NAS pour détecter les boîtiers de dossiers archivés avant l'existence de cette fonctionnalité ou jamais revus depuis ; cette capacité est complémentaire et n'est pas requise pour que FR-008 soit satisfaite.
- FR-013: L'interface graphique DOIT pouvoir consulter et modifier le contexte de travail (chemins, boîtiers nommés) en appelant directement les mêmes fonctions de
regine_core.configque la CLI, sans dupliquer la moindre règle de validation ou de désambiguïsation (Principe VI) — toute règle déjà vraie côté CLI (FR-003/FR-004/FR-010/FR-012) reste vraie à l'identique depuis la GUI. - FR-014 (ajoutée le 2026-09-23): Le système DOIT conserver les trois emplacements de travail (FR-001) dans une configuration globale minimale, propre à la machine, à un emplacement fixe et indépendant du contenu du répertoire de travail local (cf. FR-007) — c'est la seule information que l'utilisateur doit ressaisir en configurant Régine sur une nouvelle machine.
- FR-015 (ajoutée le 2026-09-23): Le système DOIT stocker les boîtiers nommés (FR-008), les catégories connues (
specs/004-categorisation-dossiers) et l'historique des imports (specs/001-import-photosFR-004) à la racine du répertoire de travail local (FR-006) — jamais dans la configuration globale de FR-014, dont ce contenu doit rester indépendant. - FR-016 (ajoutée le 2026-09-23): Le système DOIT protéger le contenu de FR-015 contre la perte du répertoire de travail local, en le répliquant vers l'archive NAS à chaque archivage d'un dossier (
regine reconcile,specs/005-checkout-reconciliation) — jamais automatiquement à chaque modification isolée du contexte (nommage d'un boîtier, import réalisé), ni via une commande dédiée séparée. Cette réplication ne DOIT introduire aucune nouvelle dépendance au NAS au-delà de celle déjà requise parregine reconcilelui-même : elle profite du seul moment où une écriture sur l'archive a de toute façon déjà lieu. - FR-017 (ajoutée le 2026-09-23): Quand le répertoire de travail local ne contient pas (ou plus) le contenu de FR-015 alors qu'une sauvegarde en existe sur l'archive NAS (cf. FR-016), le système DOIT le retrouver automatiquement, sans action supplémentaire de l'utilisateur, à l'un des deux moments suivants : lors de la configuration initiale des emplacements de travail sur une machine (FR-001), ou lors d'un premier checkout d'un dossier archivé (
specs/005-checkout-reconciliation) réalisé depuis cette machine.
Key Entities
- Contexte de travail : ensemble des paramètres actifs (chemins, boîtiers nommés, catégories, historique d'imports) utilisés par l'ensemble des modules de Régine — réparti, depuis le 2026-09-23, entre la configuration globale et la base de contexte centralisée ci-dessous.
- Configuration globale (ajoutée le 2026-09-23) : fichier minimal, propre à la machine, à un emplacement fixe (
~/.regine/) — contient uniquement les trois emplacements de travail (FR-001/FR-014), jamais les boîtiers, catégories, ni l'historique d'imports. Sert uniquement à localiser la base de contexte centralisée ; reste lisible même si le répertoire de travail local est vide ou absent (FR-007). - Répertoire temporaire : emplacement local destiné aux copies brutes avant analyse, en amont d'un import.
- Répertoire de travail local : emplacement local où résident les copies de travail (checkout, import en cours) et la base de contexte centralisée.
- Emplacement de l'archive (NAS/SMB) : chemin réseau où réside l'archive persistante de Régine, et où est répliquée une sauvegarde de la base de contexte centralisée (FR-016).
- Base de contexte centralisée (révisée le 2026-09-23) : base persistante unique, vivant désormais à la racine du répertoire de travail local (fusionne l'ancienne « base de données de travail », jusqu'ici sous-définie, et l'ancienne base de contexte centralisée de
~/.regine/) — contient les boîtiers rencontrés, les catégories connues, et l'historique des imports (specs/001-import-photosFR-004). Alimentée à chaque import ; source par défaut de la détection de boîtiers de la User Story 3 ; protégée contre la perte de la machine locale par réplication vers l'archive NAS (FR-016/FR-017, User Story 5). - Boîtier nommé : entrée associant un nom lisible choisi par l'utilisateur à un boîtier détecté (modèle et, si disponible, numéro de série) dans la base de contexte centralisée, complétable par un parcours à la demande de l'archive NAS (FR-012).
Success Criteria (mandatory)
Measurable Outcomes
- SC-001: Un utilisateur configure les trois emplacements de travail et réalise un premier import sans aucune erreur liée à un chemin manquant ou incorrect.
- SC-002: 100% des opérations nécessitant l'accès au NAS alors que le partage SMB est indisponible déclenchent une assistance au rétablissement de l'accès plutôt qu'un échec brut.
- SC-003: La base de données de travail est présente et utilisable à la racine du répertoire de travail local avant la première opération qui en a besoin, dans 100% des cas.
- SC-004: Un utilisateur peut nommer un boîtier déjà enregistré dans la base de contexte centralisée sans avoir à réimporter, reconnecter de carte mémoire, ni déclencher de parcours du NAS.
- SC-007: L'ouverture de l'écran de configuration des boîtiers ne déclenche par défaut aucun parcours du NAS ; un tel parcours ne survient que sur action explicite de l'utilisateur (FR-012).
- SC-005: Modifier un chemin du contexte de travail après la configuration initiale ne provoque la perte d'aucun boîtier déjà nommé.
- SC-006: 100% des tentatives de changer le répertoire de travail local alors qu'un travail non réconcilié y est présent sont bloquées, avec une explication claire de ce qui doit être réconcilié ou archivé au préalable.
- SC-008: Toute modification du contexte de travail effectuée depuis la GUI est immédiatement visible via
regine config show/cameras listen CLI, et réciproquement — les deux façades lisent et écrivent le même état, jamais deux états divergents. - SC-009 (ajoutée le 2026-09-23): Configurer Régine sur une nouvelle machine (mêmes trois emplacements de travail qu'une installation précédente) retrouve 100% des boîtiers nommés, des catégories connues, et de l'historique d'imports de cette installation précédente, sans qu'aucun ne doive être ressaisi ou reconstitué manuellement.
- SC-010 (ajoutée le 2026-09-23): La perte totale de la machine locale (disque défaillant, vol, réinstallation) n'entraîne la perte définitive d'aucun boîtier nommé, d'aucune catégorie connue, ni d'aucune entrée de l'historique d'imports, tant que l'archive NAS reste intacte.
Assumptions
- Le contexte de travail est unique par installation de Régine (un seul jeu de chemins et de boîtiers nommés actif à la fois) ; la gestion de plusieurs contextes en parallèle n'est pas couverte par cette spécification. Précisé le 2026-09-23 : la User Story 5 couvre le remplacement séquentiel d'une machine par une autre (une seule active à la fois), pas l'usage simultané de deux machines sur le même contexte — aucune fusion de contextes divergents n'est nécessaire dans ce cadre (cf. Edge Cases).
- Les paramètres supplémentaires évoqués comme "à intégrer plus tard" ne sont pas définis dans cette spécification ; seule l'exigence d'extensibilité (FR-011) les anticipe.
- Cette spécification s'appuie sur le mécanisme de profil de boîtiers optionnel déjà défini (
specs/002-profil-boitiers-optionnel) : elle ajoute un point d'entrée proactif de nommage à partir de l'archive existante, sans modifier les règles de désambiguïsation par collision déjà établies. - Révisé le 2026-09-23 : la base de données de travail (FR-006) ne correspond plus au manifeste persistant par dossier de la constitution (schéma
fichiers/verrou,specs/005-checkout-reconciliation) — c'était une confusion de conception non résolue depuis la création de cette spec, jamais réellement exploitée par le code. Elle correspond désormais explicitement à la base de contexte centralisée elle-même (boîtiers, catégories, historique d'imports), physiquement déplacée à la racine du répertoire de travail local. - L'emplacement de la configuration globale reste unique et indépendant du système d'exploitation (
~/.regine/) pour cette itération (Clarification 2026-09-21) ; une convention par OS (XDG sur Linux,Application Supportsur macOS,%APPDATA%sur Windows) est une amélioration explicitement différée, pas un besoin de cette spécification. Précisé le 2026-09-23 : depuis ce déménagement,~/.regine/ne contient plus que les trois chemins de travail (FR-014) — plus les boîtiers, catégories, ni l'historique d'imports. - L'onglet de configuration de la GUI (User Story 4) réutilise l'infrastructure déjà en place dans
regine-guidepuisspecs/006-gui-tri-consultation(fenêtre à onglets) plutôt que d'introduire une nouvelle application ; il n'ajoute aucune capacité que la CLI n'a pas déjà. - La base de contexte centralisée (boîtiers, catégories, historique d'imports) est distincte des manifestes persistants par dossier de l'archive (
specs/005-checkout-reconciliation) : elle vit au niveau du contexte de travail entier, pas par dossier, et n'a pas vocation à remplacer l'index inter-dossiers en lecture seule déjà anticipé comme travail futur dans les notes de conception du projet — le parcours à la demande (FR-012) reste une capacité complémentaire, pas une dépendance de cette spécification. - Ajouté le 2026-09-23 : la réplication de la base de contexte centralisée vers l'archive (FR-016) vit à un emplacement fixe à la racine de l'archive NAS (symétrique à son emplacement à la racine du répertoire de travail local, FR-006/FR-015), distinct de tout dossier photo particulier — cette spécification ne redéfinit pas la structure des dossiers photo eux-mêmes (
specs/004-categorisation-dossiers).
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 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
|