fonzarely/regine-photos-archiverpublic⑂ Fork 0
⑂ a74a75b
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.

constitution

Fabien Champigny committed 2026-09-10T00:50:50+02:00 Browse files
a74a75b parent: b3c7a08
modified .specify/memory/constitution.md +34 -17
@@ -1,11 +1,14 @@
11 <!--
22 Sync Impact Report
3-Version change: [TEMPLATE] → 1.0.0 (ratification initiale)
4-Modified principles: aucun (première rédaction)
5-Added principles: I. Fichier maître intouchable, II. Confirmation explicite avant toute action destructive, III. Identité par contenu jamais par nom de fichier seul, IV. Métadonnées ouvertes et embarquées, V. L'utilisateur décide, Régine suggère
6-Added sections: Contraintes techniques, Workflow d'archivage, Governance (contenu)
3+Version change: 1.0.0 → 2.0.0 (redéfinition incompatible du Principe I)
4+Modified principles: I. Fichier maître intouchable — périmètre étendu aux JPEG issus directement
5+ de l'appareil (import carte mémoire, JPEG seul ou couple RAW+JPEG), qui ne sont plus traités
6+ comme des dérivés jetables du RAW.
7+Added sections: aucune
78 Removed sections: aucune
8-Templates requiring follow-up: aucun contrôle croisé effectué sur plan-template.md / spec-template.md / tasks-template.md dans cette exécution — à vérifier manuellement lors du prochain /speckit-plan.
9+Templates requiring follow-up: aucun contrôle croisé effectué sur plan-template.md /
10+ spec-template.md / tasks-template.md dans cette exécution — à vérifier manuellement lors du
11+ prochain /speckit-plan.
912 Deferred TODOs: aucun
1013 -->
1114 # Constitution du projet Régine
@@ -13,21 +16,33 @@ Deferred TODOs: aucun
1316 ## Core Principles
1417
1518 ### I. Fichier maître intouchable
16-Les fichiers maîtres (RAW, TIFF, BMP — capturés par l'appareil ou issus d'un scan) ne sont jamais
17-modifiés une fois entrés dans l'archive. Toute modification détectée sur un fichier maître par
18-rapport au manifeste de référence (hash SHA-256, cf. workflow de réconciliation) DOIT être
19-signalée à l'utilisateur comme anomalie et ne DOIT JAMAIS être réarchivée silencieusement. Seuls
20-les dérivés (JPEG, exports, sidecars XMP/DOP) peuvent être créés ou modifiés librement.
21-
22-**Rationale**: L'intégrité du fichier maître est le socle de toute pratique d'archivage
23-professionnelle (négatif original, planche-contact, tirage) ; la perdre rend l'archive non
24-fiable, même si elle reste volumineuse.
19+Est un fichier maître : tout RAW, tout TIFF ou BMP issu d'un scan, ET tout JPEG issu directement
20+de l'appareil photo — que ce JPEG soit la seule capture (mode JPEG seul) ou qu'il forme un couple
21+RAW+JPEG avec un RAW du même nom. Aucun fichier maître n'est modifié une fois entré dans
22+l'archive. Toute modification détectée sur un fichier maître par rapport au manifeste de
23+référence (hash SHA-256, cf. workflow de réconciliation) DOIT être signalée à l'utilisateur comme
24+anomalie et ne DOIT JAMAIS être réarchivée silencieusement.
25+
26+Un JPEG issu de l'appareil n'est jamais un simple dérivé jetable du RAW : certaines captures
27+n'existent qu'en JPEG (pas de RAW correspondant, photo par ailleurs précieuse) et sont donc
28+irremplaçables ; et même quand un RAW existe, le JPEG de la même capture (même nom de fichier hors
29+extension) est une version distincte de la photo, pas une copie de secours du RAW. Régine ne DOIT
30+JAMAIS supprimer ou modifier un JPEG au seul prétexte qu'un RAW du même nom existe dans l'archive,
31+et réciproquement. Seuls les dérivés créés par l'utilisateur après capture (exports web,
32+retouches enregistrées à part, sidecars XMP/DOP) peuvent être créés ou modifiés librement.
33+
34+**Rationale**: Une capture JPEG seule, ou un JPEG appairé à un RAW, peut être la seule version
35+existante d'une photo — l'appareil ne produit pas toujours de RAW, et l'utilisateur choisit
36+parfois le mode JPEG seul. Traiter le JPEG comme un simple dérivé jetable du RAW risquerait de
37+faire perdre des photos qui n'ont aucune autre copie.
2538
2639 ### II. Confirmation explicite avant toute action destructive
2740 Aucune suppression de fichier dans l'archive n'est automatique. Qu'elle provienne d'une anomalie
2841 de réconciliation (fichier absent de la copie de travail) ou d'un déchet identifié à l'import
2942 (test d'exposition, déclenchement accidentel), la suppression DOIT toujours être présentée à
30-l'utilisateur et validée explicitement avant d'être exécutée sur l'archive.
43+l'utilisateur et validée explicitement avant d'être exécutée sur l'archive. Cette règle s'applique
44+à l'identique aux RAW et aux JPEG : l'existence d'un fichier maître de l'autre type sous le même
45+nom ne justifie jamais une suppression automatique.
3146
3247 **Rationale**: Une archive qui perd des fichiers sans confirmation humaine perd la confiance qui
3348 justifie son existence.
@@ -36,7 +51,9 @@ justifie son existence.
3651 La détection des renommages, déplacements, doublons et promotions (ex. capture promue à la racine
3752 du projet) DOIT s'appuyer sur le hash de contenu (SHA-256) comme source de vérité, jamais sur le
3853 nom de fichier ou le chemin seuls. L'identifiant pérenne attribué à chaque image relie ses
39-versions dans le temps indépendamment de tout renommage ultérieur.
54+versions dans le temps indépendamment de tout renommage ultérieur. Le nom de fichier identique
55+hors extension sert à apparier un RAW et son JPEG jumeau (même capture), mais ne fait jamais foi
56+seul pour décider qu'un des deux fichiers est superflu.
4057
4158 **Rationale**: Les noms de fichiers changent (renommage à l'import, déplacement entre dossiers de
4259 format) ; seul le contenu identifie fiablement une image dans la durée.
@@ -103,4 +120,4 @@ Chaque amendement DOIT inclure un rapport d'impact de synchronisation (Sync Impa
103120 commentaire en tête du fichier, listant la version précédente, la nouvelle version, et les
104121 sections modifiées, ajoutées ou supprimées.
105122
106-**Version**: 1.0.0 | **Ratified**: 2026-09-09 | **Last Amended**: 2026-09-09
123+**Version**: 2.0.0 | **Ratified**: 2026-09-09 | **Last Amended**: 2026-09-09
@@ -1,11 +1,14 @@
1 <!--1 <!--
2 Sync Impact Report2 Sync Impact Report
3-Version change: [TEMPLATE] → 1.0.0 (ratification initiale)3+Version change: 1.0.0 → 2.0.0 (redéfinition incompatible du Principe I)
4-Modified principles: aucun (première rédaction)4+Modified principles: I. Fichier maître intouchable — périmètre étendu aux JPEG issus directement
5-Added principles: I. Fichier maître intouchable, II. Confirmation explicite avant toute action destructive, III. Identité par contenu jamais par nom de fichier seul, IV. Métadonnées ouvertes et embarquées, V. L'utilisateur décide, Régine suggère5+ de l'appareil (import carte mémoire, JPEG seul ou couple RAW+JPEG), qui ne sont plus traités
6-Added sections: Contraintes techniques, Workflow d'archivage, Governance (contenu)6+ comme des dérivés jetables du RAW.
7+Added sections: aucune
7 Removed sections: aucune8 Removed sections: aucune
8-Templates requiring follow-up: aucun contrôle croisé effectué sur plan-template.md / spec-template.md / tasks-template.md dans cette exécution — à vérifier manuellement lors du prochain /speckit-plan.9+Templates requiring follow-up: aucun contrôle croisé effectué sur plan-template.md /
10+ spec-template.md / tasks-template.md dans cette exécution — à vérifier manuellement lors du
11+ prochain /speckit-plan.
9 Deferred TODOs: aucun12 Deferred TODOs: aucun
10 -->13 -->
11 # Constitution du projet Régine14 # Constitution du projet Régine
@@ -13,21 +16,33 @@ Deferred TODOs: aucun
13 ## Core Principles16 ## Core Principles
14 17
15 ### I. Fichier maître intouchable18 ### I. Fichier maître intouchable
16-Les fichiers maîtres (RAW, TIFF, BMP — capturés par l'appareil ou issus d'un scan) ne sont jamais19+Est un fichier maître : tout RAW, tout TIFF ou BMP issu d'un scan, ET tout JPEG issu directement
17-modifiés une fois entrés dans l'archive. Toute modification détectée sur un fichier maître par20+de l'appareil photo — que ce JPEG soit la seule capture (mode JPEG seul) ou qu'il forme un couple
18-rapport au manifeste de référence (hash SHA-256, cf. workflow de réconciliation) DOIT être21+RAW+JPEG avec un RAW du même nom. Aucun fichier maître n'est modifié une fois entré dans
19-signalée à l'utilisateur comme anomalie et ne DOIT JAMAIS être réarchivée silencieusement. Seuls22+l'archive. Toute modification détectée sur un fichier maître par rapport au manifeste de
20-les dérivés (JPEG, exports, sidecars XMP/DOP) peuvent être créés ou modifiés librement.23+référence (hash SHA-256, cf. workflow de réconciliation) DOIT être signalée à l'utilisateur comme
21-24+anomalie et ne DOIT JAMAIS être réarchivée silencieusement.
22-**Rationale**: L'intégrité du fichier maître est le socle de toute pratique d'archivage25+
23-professionnelle (négatif original, planche-contact, tirage) ; la perdre rend l'archive non26+Un JPEG issu de l'appareil n'est jamais un simple dérivé jetable du RAW : certaines captures
24-fiable, même si elle reste volumineuse.27+n'existent qu'en JPEG (pas de RAW correspondant, photo par ailleurs précieuse) et sont donc
28+irremplaçables ; et même quand un RAW existe, le JPEG de la même capture (même nom de fichier hors
29+extension) est une version distincte de la photo, pas une copie de secours du RAW. Régine ne DOIT
30+JAMAIS supprimer ou modifier un JPEG au seul prétexte qu'un RAW du même nom existe dans l'archive,
31+et réciproquement. Seuls les dérivés créés par l'utilisateur après capture (exports web,
32+retouches enregistrées à part, sidecars XMP/DOP) peuvent être créés ou modifiés librement.
33+
34+**Rationale**: Une capture JPEG seule, ou un JPEG appairé à un RAW, peut être la seule version
35+existante d'une photo — l'appareil ne produit pas toujours de RAW, et l'utilisateur choisit
36+parfois le mode JPEG seul. Traiter le JPEG comme un simple dérivé jetable du RAW risquerait de
37+faire perdre des photos qui n'ont aucune autre copie.
25 38
26 ### II. Confirmation explicite avant toute action destructive39 ### II. Confirmation explicite avant toute action destructive
27 Aucune suppression de fichier dans l'archive n'est automatique. Qu'elle provienne d'une anomalie40 Aucune suppression de fichier dans l'archive n'est automatique. Qu'elle provienne d'une anomalie
28 de réconciliation (fichier absent de la copie de travail) ou d'un déchet identifié à l'import41 de réconciliation (fichier absent de la copie de travail) ou d'un déchet identifié à l'import
29 (test d'exposition, déclenchement accidentel), la suppression DOIT toujours être présentée à42 (test d'exposition, déclenchement accidentel), la suppression DOIT toujours être présentée à
30-l'utilisateur et validée explicitement avant d'être exécutée sur l'archive.43+l'utilisateur et validée explicitement avant d'être exécutée sur l'archive. Cette règle s'applique
44+à l'identique aux RAW et aux JPEG : l'existence d'un fichier maître de l'autre type sous le même
45+nom ne justifie jamais une suppression automatique.
31 46
32 **Rationale**: Une archive qui perd des fichiers sans confirmation humaine perd la confiance qui47 **Rationale**: Une archive qui perd des fichiers sans confirmation humaine perd la confiance qui
33 justifie son existence.48 justifie son existence.
@@ -36,7 +51,9 @@ justifie son existence.
36 La détection des renommages, déplacements, doublons et promotions (ex. capture promue à la racine51 La détection des renommages, déplacements, doublons et promotions (ex. capture promue à la racine
37 du projet) DOIT s'appuyer sur le hash de contenu (SHA-256) comme source de vérité, jamais sur le52 du projet) DOIT s'appuyer sur le hash de contenu (SHA-256) comme source de vérité, jamais sur le
38 nom de fichier ou le chemin seuls. L'identifiant pérenne attribué à chaque image relie ses53 nom de fichier ou le chemin seuls. L'identifiant pérenne attribué à chaque image relie ses
39-versions dans le temps indépendamment de tout renommage ultérieur.54+versions dans le temps indépendamment de tout renommage ultérieur. Le nom de fichier identique
55+hors extension sert à apparier un RAW et son JPEG jumeau (même capture), mais ne fait jamais foi
56+seul pour décider qu'un des deux fichiers est superflu.
40 57
41 **Rationale**: Les noms de fichiers changent (renommage à l'import, déplacement entre dossiers de58 **Rationale**: Les noms de fichiers changent (renommage à l'import, déplacement entre dossiers de
42 format) ; seul le contenu identifie fiablement une image dans la durée.59 format) ; seul le contenu identifie fiablement une image dans la durée.
@@ -103,4 +120,4 @@ Chaque amendement DOIT inclure un rapport d'impact de synchronisation (Sync Impa
103 commentaire en tête du fichier, listant la version précédente, la nouvelle version, et les120 commentaire en tête du fichier, listant la version précédente, la nouvelle version, et les
104 sections modifiées, ajoutées ou supprimées.121 sections modifiées, ajoutées ou supprimées.
105 122
106-**Version**: 1.0.0 | **Ratified**: 2026-09-09 | **Last Amended**: 2026-09-09123+**Version**: 2.0.0 | **Ratified**: 2026-09-09 | **Last Amended**: 2026-09-09