devmethod-ai 0.1.0-rc.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/.agents/skills/decision-architecture/SKILL.md +15 -13
  2. package/.agents/skills/decision-architecture/assets/ADR.md +18 -17
  3. package/.agents/skills/decision-architecture/references/api-contracts.md +21 -16
  4. package/.agents/skills/decision-architecture/references/backend-boundaries.md +21 -18
  5. package/.agents/skills/decision-architecture/references/product-decisions.md +14 -17
  6. package/.agents/skills/design-to-code/SKILL.md +18 -11
  7. package/.agents/skills/design-to-code/assets/UI_ACCEPTANCE.md +13 -12
  8. package/.agents/skills/design-to-code/references/ux-contract.md +20 -15
  9. package/.agents/skills/design-to-code/references/visual-creation.md +37 -0
  10. package/.agents/skills/project-foundation/SKILL.md +39 -30
  11. package/.agents/skills/project-foundation/assets/AGENTS.foundation.md +16 -15
  12. package/.agents/skills/project-foundation/assets/PROJECT_PROFILE.md +24 -23
  13. package/.agents/skills/project-foundation/assets/START_HERE.md +17 -14
  14. package/.agents/skills/project-foundation/references/mission-context.md +30 -0
  15. package/.agents/skills/project-foundation/references/operating-commands.md +49 -34
  16. package/.agents/skills/project-foundation/references/profiles/README.md +18 -0
  17. package/.agents/skills/project-foundation/references/profiles/ci.md +11 -0
  18. package/.agents/skills/project-foundation/references/profiles/cloud-delivery.md +13 -0
  19. package/.agents/skills/project-foundation/references/profiles/messaging.md +11 -0
  20. package/.agents/skills/project-foundation/references/profiles/mongodb.md +11 -0
  21. package/.agents/skills/project-foundation/references/profiles/node-nest.md +11 -0
  22. package/.agents/skills/project-foundation/references/profiles/postgres-drizzle.md +11 -0
  23. package/.agents/skills/project-foundation/references/profiles/react-next.md +11 -0
  24. package/.agents/skills/project-foundation/references/profiles/typescript.md +11 -0
  25. package/.agents/skills/project-foundation/references/work-sizing.md +31 -0
  26. package/.agents/skills/react-feature-engineering/SKILL.md +26 -22
  27. package/.agents/skills/react-feature-engineering/references/review-and-sources.md +41 -37
  28. package/.agents/skills/reliable-ai-integration/SKILL.md +13 -10
  29. package/.agents/skills/reliable-ai-integration/assets/AI_EVALUATION.md +19 -18
  30. package/.agents/skills/reliable-ai-integration/references/evidence-and-media.md +22 -18
  31. package/.agents/skills/reliable-ai-integration/references/jobs-and-costs.md +20 -15
  32. package/.agents/skills/scoped-delivery/SKILL.md +25 -18
  33. package/.agents/skills/scoped-delivery/assets/CHECKPOINT.md +22 -11
  34. package/.agents/skills/scoped-delivery/assets/MISSION.md +35 -0
  35. package/.agents/skills/scoped-delivery/assets/SLICE.md +15 -14
  36. package/.agents/skills/scoped-delivery/assets/VERIFICATION.md +19 -0
  37. package/.agents/skills/scoped-delivery/references/verification-and-cost.md +21 -18
  38. package/COMPATIBILITY.md +3 -3
  39. package/CONTRIBUTING.md +13 -0
  40. package/README.md +94 -9
  41. package/START_HERE.md +24 -0
  42. package/VALIDATION.md +37 -0
  43. package/dist/checkpoint.js +171 -0
  44. package/dist/cli.js +118 -17
  45. package/dist/doctor.js +113 -0
  46. package/dist/filesystem.js +32 -0
  47. package/dist/init.js +38 -34
  48. package/dist/mission.js +85 -0
  49. package/dist/planner.js +65 -0
  50. package/dist/records.js +76 -0
  51. package/dist/update.js +57 -0
  52. package/docs/ADR-001-distribution.md +13 -0
  53. package/docs/ADR-002-read-only-diagnostics.md +25 -0
  54. package/docs/ADR-003-installation-provenance.md +15 -0
  55. package/docs/ADR-004-checkpoint-resumption.md +23 -0
  56. package/docs/ADR-005-mission-context.md +11 -0
  57. package/docs/ADR-006-opt-in-native-pilot.md +15 -0
  58. package/docs/BMAD-COMPARISON.md +34 -0
  59. package/docs/CODEX-ADAPTER-VALIDATION.md +20 -0
  60. package/docs/COMPARISON-ITERATION.md +25 -0
  61. package/docs/DOCTOR.md +23 -0
  62. package/docs/EVALUATION.md +39 -0
  63. package/docs/EVOLUTION.md +34 -0
  64. package/docs/GREENFIELD-VALIDATION.md +36 -0
  65. package/docs/MILESTONES.md +39 -0
  66. package/docs/MISSIONS.md +47 -0
  67. package/docs/NATIVE-PILOT-RESULTS.md +22 -0
  68. package/docs/NATIVE-PILOT.md +17 -0
  69. package/docs/ORCHESTRATION.md +11 -0
  70. package/docs/RC2-VALIDATION.md +50 -0
  71. package/docs/RELEASE-0.1.0.md +60 -0
  72. package/docs/RELEASE-0.2.0.md +37 -0
  73. package/docs/RELEASE-CHECKLIST.md +13 -0
  74. package/docs/RELEASE-NOTES-0.1.0-rc.2.md +32 -0
  75. package/docs/RELEASE-NOTES-0.1.0.md +11 -0
  76. package/docs/RESUMPTION.md +87 -0
  77. package/docs/ROADMAP.md +39 -0
  78. package/docs/STACK-PROFILES.md +9 -0
  79. package/docs/TROUBLESHOOTING.md +16 -0
  80. package/docs/UPDATES.md +30 -0
  81. package/docs/VISUAL-CREATION-PROPOSAL.md +21 -0
  82. package/docs/VISUAL-WORKFLOW.md +75 -0
  83. package/docs/images/devmethod-delivery.svg +10 -0
  84. package/docs/images/devmethod-flow.svg +13 -0
  85. package/docs/media/from-zero/README.md +17 -0
  86. package/docs/media/from-zero/devmethod-demo.fr.srt +59 -0
  87. package/docs/media/from-zero/scenes.json +50 -0
  88. package/docs/media/full-chain-4k/README.md +37 -0
  89. package/docs/media/full-chain-4k/devmethod-chaine-complete.fr.srt +435 -0
  90. package/docs/media/full-chain-4k/scenes.json +173 -0
  91. package/docs/media/full-chain-4k/transcripts.fr.md +315 -0
  92. package/docs/media/visual-chain/README.md +44 -0
  93. package/docs/media/visual-chain/assets/add-book-v1.png +0 -0
  94. package/docs/media/visual-chain/assets/completed-v1.png +0 -0
  95. package/docs/media/visual-chain/devmethod-du-besoin-au-produit.fr.srt +147 -0
  96. package/docs/media/visual-chain/execution.fr.md +30 -0
  97. package/docs/media/visual-chain/image-prompts.json +9 -0
  98. package/docs/media/visual-chain/reference-hashes.json +5 -0
  99. package/docs/media/visual-chain/scenes.json +232 -0
  100. package/docs/media/visual-chain/video-preview.jpg +0 -0
  101. package/docs/missions/visual-workflow.md +46 -0
  102. package/evaluation/COMPARISONS.md +33 -0
  103. package/evaluation/README.md +35 -0
  104. package/evaluation/candidate-setup.json +33 -0
  105. package/evaluation/comparison-v2-readiness.json +18 -0
  106. package/evaluation/comparison-v2-results.json +58 -0
  107. package/evaluation/fixtures/dependency/CONTRIBUTING.md +3 -0
  108. package/evaluation/fixtures/dependency/TICKET.md +3 -0
  109. package/evaluation/fixtures/dependency/acceptance.test.mjs +4 -0
  110. package/evaluation/fixtures/dependency/api.mjs +1 -0
  111. package/evaluation/fixtures/failing-verification/CONTRIBUTING.md +3 -0
  112. package/evaluation/fixtures/failing-verification/acceptance.test.mjs +4 -0
  113. package/evaluation/fixtures/failing-verification/total.mjs +1 -0
  114. package/evaluation/fixtures/stale-handoff/CHECKPOINT.md +3 -0
  115. package/evaluation/fixtures/stale-handoff/CONTRACT.md +3 -0
  116. package/evaluation/fixtures/stale-handoff/CONTRIBUTING.md +3 -0
  117. package/evaluation/fixtures/stale-handoff/acceptance.test.mjs +4 -0
  118. package/evaluation/fixtures/stale-handoff/label.mjs +1 -0
  119. package/evaluation/fixtures/update-customization/README.md +13 -0
  120. package/evaluation/fixtures.json +85 -0
  121. package/evaluation/greenfield/acceptance.test.mjs +57 -0
  122. package/evaluation/greenfield/security.test.mjs +28 -0
  123. package/evaluation/native-pilot-results.json +155 -0
  124. package/examples/README.md +36 -0
  125. package/examples/bugfix/acceptance.test.mjs +17 -0
  126. package/examples/bugfix/page-size.mjs +4 -0
  127. package/examples/clair-from-zero/AGENT-EVALUATION.md +15 -0
  128. package/examples/clair-from-zero/MISSION.md +41 -0
  129. package/examples/clair-from-zero/README.md +24 -0
  130. package/examples/clair-from-zero/app/app.mjs +69 -0
  131. package/examples/clair-from-zero/app/domain.mjs +30 -0
  132. package/examples/clair-from-zero/app/index.html +20 -0
  133. package/examples/clair-from-zero/app/storage.mjs +4 -0
  134. package/examples/clair-from-zero/app/styles.css +128 -0
  135. package/examples/clair-from-zero/browser-check.cjs +2 -0
  136. package/examples/clair-from-zero/tests/domain.test.mjs +37 -0
  137. package/examples/fullstack/CONTRACT.md +23 -0
  138. package/examples/fullstack/DEPENDENCIES.md +18 -0
  139. package/examples/fullstack/README.md +100 -0
  140. package/examples/fullstack/api/application/tasks.ts +13 -0
  141. package/examples/fullstack/api/domain/task.ts +12 -0
  142. package/examples/fullstack/api/http.ts +26 -0
  143. package/examples/fullstack/api/infrastructure/migrate.ts +15 -0
  144. package/examples/fullstack/api/infrastructure/postgres.ts +18 -0
  145. package/examples/fullstack/api/infrastructure/schema.ts +6 -0
  146. package/examples/fullstack/api/main.ts +17 -0
  147. package/examples/fullstack/api/tsconfig.json +17 -0
  148. package/examples/fullstack/compose.yaml +14 -0
  149. package/examples/fullstack/migrations/0000_tasks.sql +5 -0
  150. package/examples/fullstack/migrations/meta/_journal.json +13 -0
  151. package/examples/fullstack/mission.json +34 -0
  152. package/examples/fullstack/package-lock.json +2661 -0
  153. package/examples/fullstack/package.json +45 -0
  154. package/examples/fullstack/tests/e2e.test.cjs +54 -0
  155. package/examples/fullstack/tests/http.test.cjs +33 -0
  156. package/examples/fullstack/tests/postgres.test.cjs +29 -0
  157. package/examples/fullstack/tests/unit.test.cjs +20 -0
  158. package/examples/fullstack/tests/web-model.test.cjs +23 -0
  159. package/examples/fullstack/web/app/layout.tsx +4 -0
  160. package/examples/fullstack/web/app/page.tsx +11 -0
  161. package/examples/fullstack/web/features/tasks/components/task-list.tsx +11 -0
  162. package/examples/fullstack/web/features/tasks/hooks/use-task-filter.ts +7 -0
  163. package/examples/fullstack/web/features/tasks/model/tasks.ts +12 -0
  164. package/examples/fullstack/web/features/tasks/server/list-tasks.ts +8 -0
  165. package/examples/fullstack/web/next.config.mjs +2 -0
  166. package/examples/fullstack/web/tsconfig.json +36 -0
  167. package/examples/mission/CONTRACT.md +3 -0
  168. package/examples/mission/mission.json +18 -0
  169. package/examples/mission/plan.json +11 -0
  170. package/examples/pocket-tasks/BRIEF.md +21 -0
  171. package/examples/pocket-tasks/PROJECT_PROFILE.md +19 -0
  172. package/examples/pocket-tasks/README.md +43 -0
  173. package/examples/pocket-tasks/docs/ADR-001.md +7 -0
  174. package/examples/pocket-tasks/docs/HANDOFF.md +16 -0
  175. package/examples/pocket-tasks/docs/MISSION.md +15 -0
  176. package/examples/pocket-tasks/docs/VERIFICATION.md +58 -0
  177. package/examples/pocket-tasks/package.json +1 -0
  178. package/examples/pocket-tasks/public/app.js +84 -0
  179. package/examples/pocket-tasks/public/index.html +12 -0
  180. package/examples/pocket-tasks/public/styles.css +1 -0
  181. package/examples/pocket-tasks/server.mjs +79 -0
  182. package/examples/pocket-tasks/src/domain.mjs +31 -0
  183. package/examples/pocket-tasks/src/store.mjs +49 -0
  184. package/examples/pocket-tasks/tests/app.test.mjs +132 -0
  185. package/examples/pocket-tasks/tests/ui-errors.test.mjs +49 -0
  186. package/examples/visual-pilot/README.md +11 -0
  187. package/examples/visual-pilot/app/app.js +10 -0
  188. package/examples/visual-pilot/app/index.html +1 -0
  189. package/examples/visual-pilot/app/reference.png +0 -0
  190. package/examples/visual-pilot/app/style.css +3 -0
  191. package/examples/visual-pilot/browser-check.cjs +3 -0
  192. package/examples/visual-pilot/desktop-actual.png +0 -0
  193. package/examples/visual-pilot/directions-prompt.txt +1 -0
  194. package/examples/visual-pilot/directions-v1.png +0 -0
  195. package/examples/visual-pilot/editorial-mockup-prompt.txt +1 -0
  196. package/examples/visual-pilot/editorial-mockup-v1.png +0 -0
  197. package/examples/visual-pilot/mismatch-probe.png +0 -0
  198. package/examples/visual-pilot/mobile-actual.png +0 -0
  199. package/examples/visual-pilot/quick-filter/AGENT-RESULT.md +25 -0
  200. package/examples/visual-pilot/quick-filter/baseline.log +42 -0
  201. package/examples/visual-pilot/quick-filter/filter.mjs +3 -0
  202. package/examples/visual-pilot/quick-filter/filter.test.mjs +9 -0
  203. package/package.json +15 -3
  204. package/scripts/check-codex-git.mjs +20 -0
  205. package/scripts/check-docs.mjs +14 -0
  206. package/scripts/check-native-sandbox.mjs +11 -0
  207. package/scripts/comparison-readiness.mjs +26 -0
  208. package/scripts/comparison.mjs +42 -0
  209. package/scripts/evaluation.mjs +64 -0
  210. package/scripts/fullstack-mission.mjs +30 -0
  211. package/scripts/hosts/checks.mjs +13 -0
  212. package/scripts/hosts/codex-meter.mjs +17 -0
  213. package/scripts/hosts/codex-rpc.mjs +44 -0
  214. package/scripts/hosts/codex-task.mjs +29 -0
  215. package/scripts/hosts/codex.mjs +28 -0
  216. package/scripts/media/demo-actions.cjs +16 -0
  217. package/scripts/media/encode-demo.py +22 -0
  218. package/scripts/media/record-demo.cjs +30 -0
  219. package/scripts/media/visual-short/check.cjs +1 -0
  220. package/scripts/media/visual-short/encode.py +16 -0
  221. package/scripts/media/visual-short/record.cjs +4 -0
  222. package/scripts/media/visual-short/story.py +34 -0
  223. package/scripts/native-host.mjs +55 -0
  224. package/scripts/package-smoke.mjs +64 -0
  225. package/scripts/probe-codex-children.mjs +41 -0
  226. package/scripts/run-comparison-v2.mjs +45 -0
  227. package/scripts/run-native-pilot.mjs +76 -0
  228. package/scripts/summarize-native-pilot.mjs +7 -0
@@ -0,0 +1,315 @@
1
+ # Exécution réelle — transcriptions Codex CLI
2
+
3
+ Les chemins temporaires sont remplacés par `<projet>`. Réponses enregistrées au moment de chaque étape, sans réécriture de leur contenu. Les prompts comprennent des contraintes de tournage en plus de la commande.
4
+
5
+ Modèle utilisé : `gpt-5.6-sol`, Codex CLI 0.147.0, sessions éphémères successives avec la même mission sur disque. Le premier essai avec le modèle configuré par défaut a échoué (modèle incompatible avec cette CLI); il ne fait pas partie des sorties réussies ci-dessous. Aucun réglage global modifié.
6
+
7
+ ## Étape 01
8
+
9
+ ### Entrée
10
+
11
+ ```text
12
+ $project-foundation explore
13
+ Lis BRIEF.md. Explore le besoin de Lisière à partir de ce dossier neuf. Enregistre le contexte utile en un seul document de mission, sans coder. Termine par la prochaine commande recommandée.
14
+ ```
15
+
16
+ ### Sortie réelle
17
+
18
+ Exploration terminée et consignée dans l’unique document canonique : [LIS-001-lisiere.md](<projet>/docs/missions/LIS-001-lisiere.md).
19
+
20
+ Le document rassemble besoin, utilisateurs, parcours, périmètre, critères observables, contraintes, référence visuelle approuvée, risques et décisions encore ouvertes. Aucun code ni test applicatif n’a été créé.
21
+
22
+ Incertitudes principales : état initial, règles d’ajout, comportement de « rouvrir », erreurs `localStorage` et états vides. `CONTRIBUTING.md`, `AGENTS.md`, dépôt Git et CI sont absents.
23
+
24
+ Prochaine commande recommandée : `$project-foundation frame LIS-001`
25
+
26
+ ## Étape 02
27
+
28
+ ### Entrée
29
+
30
+ ```text
31
+ $project-foundation frame
32
+ Cadre le périmètre et les critères de réussite de Lisière depuis BRIEF.md et la mission existante. Aucun code.
33
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
34
+ ```
35
+
36
+ ### Sortie réelle
37
+
38
+ Cadrage consigné dans la [mission canonique LIS-001](<projet>/docs/missions/LIS-001-lisiere.md).
39
+
40
+ - MVP : page locale, bibliothèque initialement vide, ajout titre/auteur, cycle **À lire → En cours → Terminé → En cours**, filtres et persistance.
41
+ - Règles précisées : ajout initial « À lire », espaces seuls refusés, doublons acceptés, livres récents en premier, ordre inchangé par les transitions.
42
+ - Exclus : modification, suppression, recherche, tri configurable, notes, dates, statistiques, backend, réseau et déploiement.
43
+ - Réussite : preuves pour C1–C9, couvrant parcours, panne de stockage, états vides, clavier, responsive, fidélité éditoriale et fonctionnement autonome.
44
+ - Restent à concevoir : formulaire, validations visibles, focus, états vides, alerte de stockage et adaptation responsive. La vérification navigateur demeure à la charge du parent.
45
+
46
+ Aucun code ni test n’a été créé ou exécuté.
47
+
48
+ Prochaine commande recommandée : `$project-foundation design LIS-001`
49
+
50
+ ## Étape 03
51
+
52
+ ### Entrée
53
+
54
+ ```text
55
+ $project-foundation design
56
+ Inspecte les images dans references. La direction A et le master screen ont été approuvés explicitement par le même utilisateur dans la session de préparation. Formalise les tokens, le master screen, le responsive et les interactions nécessaires dans la mission existante. Ne génère pas de fausse image ni de code. Mentionne cette réutilisation.
57
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
58
+ ```
59
+
60
+ ### Sortie réelle
61
+
62
+ Conception formalisée dans la [mission canonique LIS-001](<projet>/docs/missions/LIS-001-lisiere.md).
63
+
64
+ Ajouts réalisés :
65
+
66
+ - réutilisation explicite de la direction **A — Éditorial** et du master approuvés lors de la préparation ;
67
+ - tokens visuels et interactifs ;
68
+ - composition du master desktop ;
69
+ - adaptations tablette et mobile ;
70
+ - dialogue d’ajout, validation et gestion du focus ;
71
+ - filtres, cycle des statuts et navigation clavier ;
72
+ - états vides, stockage indisponible et données invalides ;
73
+ - matrice UX minimale et décisions restant à l’architecture.
74
+
75
+ La mission passe à l’étape « conception accomplie ». Aucune image, aucun code applicatif et aucun test n’ont été produits. La fidélité n’a pas été vérifiée dans un navigateur, conformément à la responsabilité laissée au parent. `CONTRIBUTING.md` et `AGENTS.md` restent absents.
76
+
77
+ Prochaine commande recommandée : `$project-foundation architecture LIS-001`.
78
+
79
+ ## Étape 04
80
+
81
+ ### Entrée
82
+
83
+ ```text
84
+ $project-foundation architecture
85
+ Définis les frontières minimales pour une application statique locale sans dépendances, avec logique testable et stockage. Mets à jour la mission existante, pas de nouveau dossier de specs.
86
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
87
+ ```
88
+
89
+ ### Sortie réelle
90
+
91
+ Architecture minimale définie dans la [mission canonique LIS-001](<projet>/docs/missions/LIS-001-lisiere.md).
92
+
93
+ - Frontières : domaine pur, adaptateur `localStorage`, application/vue, composition.
94
+ - Contrats fixés : modèle du livre, transitions, limites Unicode, identifiants, ordre et couvertures déterministes.
95
+ - Stockage versionné `v1`, validation stricte, récupération explicite et maintien en mémoire lors des échecs.
96
+ - Compatibilité navigateur et stratégie de tests sans dépendance cadrées.
97
+ - Mission passée à l’étape « architecture » sans créer de document ni dossier supplémentaire.
98
+
99
+ Reste incertain : le harnais de test exact, à choisir après constat des runtimes disponibles. La vérification réelle dans le navigateur demeure à la charge du parent. Aucun code ni test n’a été produit, conformément au périmètre de cette étape.
100
+
101
+ Prochaine commande recommandée : `$project-foundation plan LIS-001`
102
+
103
+ ## Étape 05
104
+
105
+ ### Entrée
106
+
107
+ ```text
108
+ $project-foundation plan
109
+ Découpe en une première tranche LISIERE-1 avec critères, tests, dépendances et preuve attendue. Reste dans le périmètre du brief.
110
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
111
+ ```
112
+
113
+ ### Sortie réelle
114
+
115
+ **Fait :** la mission canonique [LIS-001-lisiere.md](<projet>/docs/missions/LIS-001-lisiere.md) contient désormais la première tranche **LISIERE-1**.
116
+
117
+ Elle couvre strictement le MVP du brief :
118
+
119
+ - ajout et validation des livres ;
120
+ - filtres et cycle des statuts ;
121
+ - persistance `localStorage` et récupérations d’erreur ;
122
+ - états vides, clavier et accessibilité ;
123
+ - fidélité responsive à la référence éditoriale approuvée ;
124
+ - fonctionnement hors réseau, sans dépendance.
125
+
126
+ Le plan précise les critères C1–C9, l’ordre d’implémentation, les contrats à respecter, la définition de terminé et les preuves attendues. Node.js `v24.18.0` permettra des tests sans installation via `node:test`.
127
+
128
+ **Non fait :** aucun code applicatif ni test n’a été créé ou exécuté. Les contrôles dans un navigateur réel restent explicitement à la charge du parent et ne sont pas présentés comme acquis.
129
+
130
+ **Prochaine commande recommandée :** `$project-foundation ready LISIERE-1`
131
+
132
+ ## Étape 06
133
+
134
+ ### Entrée
135
+
136
+ ```text
137
+ $project-foundation ready LISIERE-1
138
+ Vérifie la préparation de cette tranche. Aucun code, pas de build par habitude.
139
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
140
+ ```
141
+
142
+ ### Sortie réelle
143
+
144
+ **Fait — LISIERE-1 est prête à implémenter.**
145
+
146
+ Le brief et la mission canonique `docs/missions/LIS-001-lisiere.md` concordent sur :
147
+
148
+ - objectif, périmètre et exclusions ;
149
+ - critères C1–C9 et définition de terminé ;
150
+ - frontières domaine / stockage / vue / composition ;
151
+ - stratégie de tests avec `node:test`, sans dépendance ;
152
+ - responsabilité distincte du parent pour la vérification navigateur.
153
+
154
+ Les prérequis sont disponibles : Node.js `v24.18.0`, références PNG en 1536 × 1024, empreintes du brief et du master conformes à la mission. Aucun manifeste, lockfile ou code applicatif n’existe, conformément à l’état annoncé.
155
+
156
+ **Limites :** `CONTRIBUTING.md` et `AGENTS.md` sont absents, mais ce n’est pas bloquant ici. `PROJECT_PROFILE.md` reste un gabarit vierge et non canonique. Aucun test, build ou contrôle navigateur n’a été exécuté.
157
+
158
+ **Prochaine commande recommandée :** `$project-foundation implement LISIERE-1`
159
+
160
+ ## Étape 07
161
+
162
+ ### Entrée
163
+
164
+ ```text
165
+ $project-foundation implement LISIERE-1
166
+ Implémente maintenant la tranche et ses tests purs. Vue desktop/mobile fidèle au master screen validé, vrais contrôles et stockage local. Ne copie aucun code externe : seuls les assets de référence et le kit sont fournis. Application dans app/, tests node --test dans tests/. Le parent fera les tests Chrome. Regroupe implémentation, tests et corrections locales. Pas de dépendances, réseau, navigateur ou nouvel agent. Termine avec preuves et commande suivante.
167
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
168
+ ```
169
+
170
+ ### Sortie réelle
171
+
172
+ LISIERE-1 est implémentée dans [app/](<projet>/app) :
173
+
174
+ - interface éditoriale responsive desktop/mobile fidèle au master ;
175
+ - ajout via dialogue accessible, validation et gestion du focus ;
176
+ - filtres, cycle des statuts et états vides ;
177
+ - persistance `localStorage`, erreurs explicites, nouvelle tentative et réinitialisation confirmée ;
178
+ - couvertures abstraites déterministes, sans réseau ni dépendance.
179
+
180
+ Les tests purs sont dans [tests/](<projet>/tests). Preuves locales :
181
+
182
+ - `node --test tests/*.test.js` : **22 réussis, 0 échec** ;
183
+ - `node --check` réussi sur tous les JavaScript ;
184
+ - aucune URL, dépendance applicative ou API réseau dans `app/`.
185
+
186
+ La revue a corrigé un risque d’écrasement après échec de lecture et sécurisé l’accès initial à `localStorage`. La mission canonique a été actualisée dans [LIS-001-lisiere.md](<projet>/docs/missions/LIS-001-lisiere.md).
187
+
188
+ Non vérifiés ici, conformément au partage des responsabilités : rendu Chrome réel, clavier, zoom, contraste, persistance et défaillances simulées.
189
+
190
+ Commande suivante recommandée au parent : **`$project-foundation verify LISIERE-1`**.
191
+
192
+ ## Étape 08
193
+
194
+ ### Entrée
195
+
196
+ ```text
197
+ $project-foundation review LISIERE-1
198
+ Relis les fichiers réalisés et les critères, sans réécrire le code. Identifie les défauts concrets ou indique absence de défaut détecté. Ne prétends pas avoir exécuté Chrome.
199
+ Lis BRIEF.md et la mission canonique. Réponse finale en français, concise (environ 180 mots maximum), honnête, avec prochaine commande qualifiée.
200
+ ```
201
+
202
+ ### Sortie réelle
203
+
204
+ Revue statique de LISIERE-1 terminée, sans modification du code.
205
+
206
+ Défauts concrets détectés :
207
+
208
+ - [application.js](<projet>/app/application.js:25) autorise l’ajout après une lecture `localStorage` impossible ou incompatible. L’appel à `save()` peut alors écraser les données non chargées sans la réinitialisation confirmée exigée.
209
+ - [view.js](<projet>/app/view.js:15) appelle directement `crypto.randomUUID()`. Son indisponibilité provoque une exception lors de l’ajout, sans avertissement explicite, contrairement au contrat de compatibilité.
210
+ - [index.html](<projet>/app/index.html:35) utilise `maxlength="120"`, compté en unités UTF-16 par le navigateur, tandis que le domaine autorise 120 points de code Unicode. Certains titres comportant des caractères hors BMP sont donc refusés prématurément.
211
+
212
+ C1–C3, C6 et C9 paraissent autrement correctement représentés dans les fichiers et tests. C4–C5 restent affectés par le premier défaut. C7–C8 ne peuvent pas être conclus par inspection seule.
213
+
214
+ Je n’ai exécuté ni Chrome ni les tests; les « 22 tests réussis » restent une preuve antérieure consignée dans la mission.
215
+
216
+ Prochaine commande recommandée : `$project-foundation implement LISIERE-1`.
217
+
218
+ ## Étape 08b
219
+
220
+ ### Entrée
221
+
222
+ ```text
223
+ $project-foundation implement LISIERE-1
224
+ Corrige les trois défauts de la revue précédente : ajout/retry ne doivent jamais écraser des données non chargées après échec de lecture ou données incompatibles sans reset confirmé, indisponibilité de crypto.randomUUID doit être gérée, limite Unicode doit suivre les points de code. Lis aussi BROWSER-PRELIMINARY.md : getter localStorage était cassé avant ta correction, le parent le retestera. Pour la fidélité, réutilise les couvertures de la référence approuvée pour les trois titres correspondants, via crops CSS de l'image disponible (ne copie aucun ancien code), garde des couvertures abstraites pour les autres. Ajoute les tests de régression pertinents, exécute-les, actualise la mission. Pas de navigateur ni réseau. Réponse française 180 mots environ, preuves précises et prochaine commande.
225
+ ```
226
+
227
+ ### Sortie réelle
228
+
229
+ LISIERE-1 est corrigée et la mission actualisée.
230
+
231
+ - La persistance est verrouillée après lecture échouée ou données incompatibles : ajout et retry restent en mémoire sans `setItem`; seul un reset confirmé et réussi la réactive ([application.js](<projet>/app/application.js:11)).
232
+ - Le getter `localStorage` levant est capturé dans l’adaptateur, avec régression dédiée ([storage.js](<projet>/app/storage.js:43)).
233
+ - `crypto.randomUUID` dispose d’un repli UUID v4 via `getRandomValues`, puis d’un dernier recours local ([domain.js](<projet>/app/domain.js:85)).
234
+ - La limite de 120 suit désormais strictement les points de code Unicode : les `maxlength` UTF-16 ont été retirés.
235
+ - Les trois couples titre/auteur approuvés utilisent des crops CSS de l’image maître; les autres gardent leurs couvertures abstraites ([styles.css](<projet>/app/styles.css:5)).
236
+ - Les preuves et réserves sont consignées dans [LIS-001-lisiere.md](<projet>/docs/missions/LIS-001-lisiere.md:260).
237
+
238
+ Vérification exécutée : `node --test tests/*.test.js` — **27 réussis, 0 échec**. Tous les JS passent `node --check`; aucun appel/import réseau détecté. Aucun navigateur n’a été lancé, conformément à la consigne.
239
+
240
+ Prochaine commande :
241
+
242
+ ```text
243
+ $project-foundation verify LISIERE-1
244
+ ```
245
+
246
+ ## Étape 09
247
+
248
+ ### Entrée
249
+
250
+ ```text
251
+ $project-foundation verify LISIERE-1
252
+ Lis la mission et BROWSER-EVIDENCE.md, preuves réelles Chrome du parent après correction08b. Consolide les critères sans prétendre avoir lancé le navigateur toi-même. Réutilise les27 tests déjà passés si leurs fichiers sont inchangés, exécute seulement un contrôle encore nécessaire. Signale toute vraie limite. Réponse française180 mots environ et prochaine commande qualifiée. Pas de nouveau code, réseau, publication ou agent.
253
+ ```
254
+
255
+ ### Sortie réelle
256
+
257
+ **Vérification LISIERE-1 consolidée**
258
+
259
+ C1 à C6 sont étayés par les 27 tests locaux déjà réussis et par les observations Chrome réelles du parent après correction08b : ajout, filtres, cycle complet, rechargement, validation, états vides et défaillances de stockage. C9 est également établi : fonctionnement local, sans dépendance, requête distante, fournisseur payant ni déploiement.
260
+
261
+ C7 est partiellement confirmé : formulaire, fermeture par Échap et parcours interactifs ont été observés, mais la preuve ne détaille pas un parcours clavier intégral par tabulation puis activation des filtres et statuts. C8 est raisonnablement étayé par l’inspection parent des captures desktop/mobile : composition éditoriale, palette, couvertures et absence de débordement mobile sont préservées, sans identité pixel à pixel.
262
+
263
+ Je n’ai lancé aucun navigateur. Le seul contrôle exécuté ici est la comparaison des dates de modification : tous les fichiers `app/` et `tests/` précèdent `BROWSER-EVIDENCE.md`. Les résultats 27/27 restent donc réutilisables et n’ont pas été relancés.
264
+
265
+ Limites réelles : zoom 200 %, contraste mesuré, audit d’accessibilité complet et autres navigateurs non vérifiés. La mission n’est pas totalement clôturable au sens maximal du contrat.
266
+
267
+ Prochaine commande recommandée : `$project-foundation verify LISIERE-1` avec Chrome réel, ciblée uniquement sur clavier complet, zoom 200 % et contraste.
268
+
269
+ ## Étape 09b
270
+
271
+ ### Entrée
272
+
273
+ ```text
274
+ $project-foundation verify LISIERE-1
275
+ Les preuves supplémentaires du parent sont enregistrées dans BROWSER-EVIDENCE.md : parcours clavier intégral réussi, contrastes mesurés >4.5, reflow720 et320px réussi. Le zoom natif navigateur n'est pas observé, seulement le reflow à largeur CSS divisée par deux : conserve cette limite sans la présenter comme un succès. Consolide l'acceptation locale au périmètre observé; l'utilisateur demande ce prototype pédagogique local, pas une certification tous navigateurs. Si un critère indispensable reste réellement bloqué, indique-le. Réutilise les27 tests inchangés. Réponse française180 mots environ et prochaine commande qualifiée. Pas de code ou publication.
276
+ ```
277
+
278
+ ### Sortie réelle
279
+
280
+ **Fait.** LISIERE-1 est accepté localement dans le périmètre du prototype pédagogique observé. Les preuves navigateur couvrent C1 à C9 : ajout, filtres, cycle complet, persistance après rechargement, défaillances de stockage, états vides, parcours intégral au clavier, rendu desktop/mobile et autonomie hors réseau. Les régressions `localStorage`, données incompatibles, Unicode et repli UUID réussissent également.
281
+
282
+ La suite existante a été réutilisée sans modification : `node --test tests/*.test.js` donne **27 tests réussis, 0 échec**. Les contrôles syntaxiques JavaScript réussissent. Aucun code, test ou document n’a été modifié, et rien n’a été publié.
283
+
284
+ **Limites conservées.** Les contrastes mesurés sur les couples CSS sélectionnés sont tous supérieurs à 4,5, sans constituer une analyse de chaque pixel rendu. Le reflow réussit à 720 et 320 px sans débordement horizontal. En revanche, le zoom navigateur natif à 200 % n’a pas été manipulé : il demeure **non vérifié** et n’est pas déclaré réussi. Firefox, Safari, Edge et une certification exhaustive d’accessibilité restent hors du périmètre observé.
285
+
286
+ Aucun critère indispensable au prototype local n’est réellement bloqué.
287
+
288
+ **Prochaine commande recommandée :** `$project-foundation integrate LISIERE-1` — pour préparer l’intégration locale seulement, sans fusion, déploiement ni publication implicite.
289
+
290
+ ## Étape 10
291
+
292
+ ### Entrée
293
+
294
+ ```text
295
+ $project-foundation integrate LISIERE-1
296
+ La vérification finale09b a accepté le prototype local avec les limites documentées dans BROWSER-EVIDENCE.md. Enregistre la livraison locale et la reprise exacte dans la mission canonique. Le dossier n'est pas un dépôt Git : aucune fusion, PR ou publication à inventer. Aucun nouveau périmètre, aucun réseau, aucun code à modifier ou test à relancer sans cause. Réponse française180 mots environ, résultat concret, limites, prochaine commande qualifiée.
297
+ ```
298
+
299
+ ### Sortie réelle
300
+
301
+ L’intégration locale de **LISIERE-1** est enregistrée dans la [mission canonique](<projet>/docs/missions/LIS-001-lisiere.md).
302
+
303
+ La mission indique désormais :
304
+
305
+ - la vérification finale09b acceptée ;
306
+ - le prototype livré uniquement sous forme de fichiers locaux ;
307
+ - les contrôles Chrome, clavier, persistance, stockage défaillant, contraste et reflow reliés à [BROWSER-EVIDENCE.md](<projet>/BROWSER-EVIDENCE.md) ;
308
+ - la clôture de LISIERE-1 dans ce mode de livraison ;
309
+ - l’absence explicite de dépôt Git, fusion, PR, publication ou déploiement.
310
+
311
+ Les limites acceptées sont conservées sans sur-promesse : pas d’identité pixel, de métrique perceptuelle automatisée, de panel humain distinct, d’audit complet d’accessibilité ou inter-navigateurs. Le reflow à 720 et 320 px ne constitue pas une preuve du zoom Chrome natif à 200 %, qui reste non vérifié.
312
+
313
+ Aucun code n’a été modifié, aucun test ou contrôle navigateur n’a été relancé, et aucun accès réseau n’a été effectué. Seule la cohérence documentaire de la mission a été vérifiée.
314
+
315
+ Prochaine commande qualifiée : `$project-foundation next LISIERE-1`, pour constater la clôture et sélectionner uniquement une éventuelle suite expressément autorisée.
@@ -0,0 +1,44 @@
1
+ # DevMethod — du besoin au produit vérifié
2
+
3
+ [Voir le film 4K](https://github.com/montassarkhalloufi/DevMethod/raw/refs/heads/main/docs/media/visual-chain/devmethod-du-besoin-au-produit-4k.fr.mp4) · [Sous-titres](devmethod-du-besoin-au-produit.fr.srt) · [Prototype source](https://github.com/montassarkhalloufi/DevMethod/raw/refs/heads/main/docs/media/visual-chain/lisiere-visual-source.zip)
4
+
5
+ **2 min 58 s · 3840 × 2160 · 23 séquences · voix française.**
6
+
7
+ Le film remplace le long documentaire comme démonstration principale : un seul projet, Lisière, une commande et son résultat visuel, puis l'étape suivante. Narration française courte, commandes tapées, apparitions successives, mouvements doux et interaction réelle. Le cadrage, les choix techniques, les responsabilités du code, la préparation, la revue et la reprise complètent le parcours des maquettes. GitHub garde la prononciation « guit-hub » demandée.
8
+
9
+ ## Ce qui est effectivement vérifié
10
+
11
+ | Passage | Preuve et portée |
12
+ | --- | --- |
13
+ | Trois directions → choix A → master approuvé | Assets et choix réels conservés du pilote Lisière antérieur ; pas une nouvelle décision utilisateur inventée |
14
+ | Master → images des écrans | Deux appels image_gen avec le master en référence : ajout et terminés ; une correction image du fond de la modale |
15
+ | Images → nouvelle application | Nouveau dossier contenant seulement le kit, le brief et les références ; Codex CLI implémente ensuite sans recevoir l'ancien code |
16
+ | Architecture | Stack HTML/CSS/JavaScript et stockage local réellement présents ; règles testables dans domain.mjs, validation des données sauvegardées ; ce choix de prototype ne vaut pas recommandation universelle |
17
+ | Application → vérification | 6 tests Node ; parcours Chrome avec filtres, ajout, statut, focus après transition, sauvegarde, mobile et préservation de données illisibles |
18
+ | Livraison | Prototype local archivé, sans déploiement ni publication npm |
19
+
20
+ Les commandes visibles sont des formulations types réutilisables, pas une transcription littérale d'un unique chat ni une capture continue de Codex Desktop. Les résultats visuels et interactions sont réels. La préparation de la petite tranche neuve a été regroupée dans `implement` ; le film présente `frame`, `architecture`, `plan`, `ready`, `review` et `handoff` séparément pour expliquer leurs rôles. Ces étapes ne sont pas présentées comme des exécutions séparées réellement enregistrées.
21
+
22
+ Le parent a corrigé deux défauts de la réalisation neuve avant la vérification finale : la règle CSS `hidden` de l'alerte et le maintien du focus après changement de statut. Les images dérivées ajoutent seulement des états déjà prévus ; aucune nouvelle approbation utilisateur de ces images n'est revendiquée. Le master A conserve son approbation antérieure. Écarts restants : police système, dimensions adaptées et détails raster ; aucune identité pixel à pixel ni certification complète d'accessibilité.
23
+
24
+ ## Parcours expliqué
25
+
26
+ `explore` → `frame` → `design` → `architecture` → `plan` → `ready` → `implement` → `review` → `verify` → `integrate` → `handoff` / `next`.
27
+
28
+ Dans Codex, chaque étape utilise le préfixe `$project-foundation`. Le niveau de détail dépend du projet ; une petite tranche peut regrouper plusieurs étapes dans une même exécution.
29
+
30
+ Le skill [design-to-code](../../../.agents/skills/design-to-code/SKILL.md) guide les alternatives, le master approuvé, les images dérivées et la comparaison au navigateur. [decision-architecture](../../../.agents/skills/decision-architecture/SKILL.md) compare les technologies et leurs compromis, définit les frontières et consigne les décisions structurantes. Ces capacités se complètent ; le design ne remplace pas les choix techniques.
31
+
32
+ ## Revalidation du contenu
33
+
34
+ Le film précédent était trop détaillé et ne prouvait pas le passage master → pages : sa commande design réutilisait surtout une référence existante. Le skill explicite désormais les trois points de passage et recommande de rester dans design lorsque des visuels demandés manquent. Il ne crée aucune commande autonome « master » ou « pages ».
35
+
36
+ La génération d'images dépend toujours d'un outil disponible dans l'agent. Une instruction documentée ne suffit pas à prouver son exécution : le test présent conserve les prompts, les références, les images générées et la réalisation postérieure. Le [guide](../../VISUAL-WORKFLOW.md) contient les commandes correspondantes. Clair et Lisière ne sont plus mélangés dans la narration.
37
+
38
+ ## Sources de montage
39
+
40
+ Les scripts sont dans [scripts/media/visual-short](../../../scripts/media/visual-short). Ils utilisent macOS Thomas, ffmpeg/ffprobe, Chrome et Playwright (PLAYWRIGHT_MODULE si nécessaire). Depuis la racine du dépôt : extraire le prototype dans /private/tmp/devmethod-shortfilm/project et le servir sur localhost:8768 ; exécuter check.cjs, story.py, record.cjs, puis encode.py. Les maquettes raster sont les assets générés déjà conservés, pas régénérées par ces scripts.
41
+
42
+ Le montage est en 4K ; les images source générées sont en 1536×1024. Le texte et les transitions sont rendus dans Chrome à 3840×2160.
43
+
44
+ Vérifications du média : MP4 H.264, AAC, sous-titres français mov_text ; 177.509 secondes. Plans explicatifs de 6 à 10 secondes environ, transitions et apparitions animées ; séquence navigateur de 20 secondes avec plusieurs actions. Images du master, des déclinaisons, de la comparaison et de la persistance encodée inspectées. Les sous-titres ont un timing proportionnel par phrase. Pas de revendication d’écoute humaine complète.
@@ -0,0 +1,147 @@
1
+ 1
2
+ 00:00:00,000 --> 00:00:03,789
3
+ Du besoin au design, des choix techniques au produit vérifié.
4
+
5
+ 2
6
+ 00:00:03,789 --> 00:00:06,211
7
+ Voici Dev Method sur un projet concret.
8
+
9
+ 3
10
+ 00:00:06,917 --> 00:00:11,573
11
+ D’abord, décrivez le produit et ce que son utilisateur doit pouvoir faire.
12
+
13
+ 4
14
+ 00:00:12,924 --> 00:00:19,739
15
+ Frame fixe le périmètre : une bibliothèque personnelle, trois statuts, et une sauvegarde sur cet appareil.
16
+
17
+ 5
18
+ 00:00:20,596 --> 00:00:24,253
19
+ Avec design, demandez trois directions pour le même écran.
20
+
21
+ 6
22
+ 00:00:26,712 --> 00:00:29,024
23
+ Éditorial, Atelier ou Botanique.
24
+
25
+ 7
26
+ 00:00:29,024 --> 00:00:32,204
27
+ Même contenu, trois personnalités visuelles.
28
+
29
+ 8
30
+ 00:00:33,056 --> 00:00:34,278
31
+ Ici, le choix est A.
32
+
33
+ 9
34
+ 00:00:34,278 --> 00:00:37,270
35
+ Codex développe cette direction en master screen.
36
+
37
+ 10
38
+ 00:00:40,166 --> 00:00:44,773
39
+ Le master précise la typographie, les couleurs, les cartes et les boutons.
40
+
41
+ 11
42
+ 00:00:44,773 --> 00:00:46,702
43
+ Il est approuvé avant la suite.
44
+
45
+ 12
46
+ 00:00:48,594 --> 00:00:53,610
47
+ La commande suivante reste design : génère les écrans à partir de ce master.
48
+
49
+ 13
50
+ 00:00:56,045 --> 00:01:00,852
51
+ Voici le formulaire d’ajout, généré avec le master comme référence visuelle.
52
+
53
+ 14
54
+ 00:01:02,182 --> 00:01:04,090
55
+ Puis la vue des lectures terminées.
56
+
57
+ 15
58
+ 00:01:04,090 --> 00:01:07,035
59
+ La même direction accompagne un autre état du produit.
60
+
61
+ 16
62
+ 00:01:09,191 --> 00:01:14,650
63
+ Architecture compare les options selon les besoins, le coût et la maintenance.
64
+
65
+ 17
66
+ 00:01:14,650 --> 00:01:19,199
67
+ Pour ce petit prototype local, HTML, CSS et JavaScript suffisent.
68
+
69
+ 18
70
+ 00:01:20,165 --> 00:01:23,065
71
+ Les règles des livres restent séparées de l’interface.
72
+
73
+ 19
74
+ 00:01:23,065 --> 00:01:25,160
75
+ Les données sauvegardées sont validées.
76
+
77
+ 20
78
+ 00:01:25,160 --> 00:01:28,919
79
+ Une synchronisation entre appareils demanderait une nouvelle décision.
80
+
81
+ 21
82
+ 00:01:30,028 --> 00:01:34,242
83
+ Le plan relie ces écrans aux actions à réaliser et aux vérifications attendues.
84
+
85
+ 22
86
+ 00:01:36,041 --> 00:01:40,848
87
+ Ready vérifie le périmètre, les dépendances et les critères de réussite avant de coder.
88
+
89
+ 23
90
+ 00:01:42,046 --> 00:01:46,678
91
+ Implement construit l’interface et ses vrais comportements à partir des références.
92
+
93
+ 24
94
+ 00:01:48,086 --> 00:01:49,361
95
+ Passons au résultat.
96
+
97
+ 25
98
+ 00:01:49,361 --> 00:01:51,019
99
+ On filtre la bibliothèque.
100
+
101
+ 26
102
+ 00:01:51,019 --> 00:01:52,230
103
+ On ajoute un livre.
104
+
105
+ 27
106
+ 00:01:52,230 --> 00:01:55,418
107
+ On commence sa lecture, puis on le marque terminé.
108
+
109
+ 28
110
+ 00:01:55,418 --> 00:01:58,988
111
+ Après rechargement, les données sont toujours présentes.
112
+
113
+ 29
114
+ 00:02:08,202 --> 00:02:12,927
115
+ Sur mobile, les mêmes actions restent accessibles dans une disposition adaptée.
116
+
117
+ 30
118
+ 00:02:14,208 --> 00:02:16,536
119
+ Review examine le code et les risques.
120
+
121
+ 31
122
+ 00:02:16,536 --> 00:02:21,313
123
+ Ici, la revue a conduit à corriger une alerte masquée et le maintien du focus.
124
+
125
+ 32
126
+ 00:02:22,443 --> 00:02:25,926
127
+ Verify contrôle les parcours utiles et les résultats des tests.
128
+
129
+ 33
130
+ 00:02:28,639 --> 00:02:33,596
131
+ On compare ensuite le navigateur aux références, puis on corrige les écarts importants.
132
+
133
+ 34
134
+ 00:02:36,378 --> 00:02:40,128
135
+ La livraison locale conserve le résultat et son état de reprise.
136
+
137
+ 35
138
+ 00:02:42,393 --> 00:02:45,861
139
+ Handoff conserve les décisions, les preuves et les limites.
140
+
141
+ 36
142
+ 00:02:45,861 --> 00:02:50,799
143
+ Next retrouve ensuite la suite pertinente, ou constate que le périmètre est terminé.
144
+
145
+ 37
146
+ 00:02:51,507 --> 00:02:55,280
147
+ Découvrez Dev Method sur GitHub et essayez cette chaîne sur votre projet.
@@ -0,0 +1,30 @@
1
+ # Exécution réelle après génération des images
2
+
3
+ Le master approuvé et les deux images dérivées étaient présents avant le code. Le dossier neuf ne contenait pas l’ancien prototype. Les étapes d’architecture, plan et préparation sont regroupées dans cette instruction.
4
+
5
+ ```text
6
+ $project-foundation implement VISUAL-1
7
+ Lis BRIEF.md et inspecte réellement les trois images de references/. Réalise le prototype décrit à partir de ces images, sans ancien code fourni. Fais la préparation et le plan proportionnés inline, implémente, teste puis relis et corrige les défauts locaux. Pas de navigateur : le parent le vérifie. Garde une mission compacte, pas un document par étape. Respecte la typographie légère et le master approuvé. Réponse finale française150 mots maximum avec preuves et prochaine commande.
8
+ ```
9
+
10
+ ## Sortie Codex CLI
11
+
12
+ VISUAL-1 est implémenté dans [app/](<projet>/app) avec :
13
+
14
+ - bibliothèque responsive fidèle au master ;
15
+ - couvertures recadrées depuis `master.png` ;
16
+ - filtres, transitions d’état et ajout par dialogue accessible ;
17
+ - persistance `localStorage` protégeant les données invalides ;
18
+ - état vide et erreurs visibles.
19
+
20
+ Preuves : 6/6 tests Node réussis dans [domain.test.mjs](<projet>/tests/domain.test.mjs), contrôles syntaxiques réussis, aucune requête externe. Relecture effectuée et recadrage responsive corrigé. `CONTRIBUTING.md` est absent, sans blocage. Le rendu navigateur reste volontairement non vérifié par cette mission.
21
+
22
+ Prochaine commande : `$project-foundation verify VISUAL-1`
23
+
24
+ ## Vérification parent postérieure
25
+
26
+ Après correction CSS de hidden et conservation du focus lors des transitions : 6 tests Node réussis. Chrome confirme 3 livres initiaux, alerte masquée normalement, filtre terminé, rouvrir et état vide, dialogue, ajout, persistance après reload, mobile390px sans débordement, données locales illisibles non écrasées. Aucun pageerror dans le parcours normal. Captures inspected desktop/mobile/modal.
27
+
28
+ Livraison locale seulement. La scène integrate est une commande type associée à cette livraison, pas une preuve de déploiement.
29
+
30
+ Le CLI a omis le document de mission demandé. Le parent a créé le checkpoint MISSION.md après vérification ; ce test supervisé ne prouve pas une tenue autonome parfaite du contexte.
@@ -0,0 +1,9 @@
1
+ {
2
+ "tool": "image_gen",
3
+ "master": "../../../examples/visual-pilot/editorial-mockup-v1.png",
4
+ "prompts": [
5
+ "Use case: ui-mockup. Generate a high fidelity French Lisière desktop screen derived from the attached APPROVED MASTER, not a new artistic direction. Output a single flat browser UI canvas, landscape 1536x1024, no device frame, no headings outside UI. Exact same ivory background, elegant regular-weight serif typography, thin rules, rust red primary button, book cover artwork and library header as master. Show the ADD BOOK state: center an elegant compact modal titled 'Ajouter un livre' over the dimmed existing library. Fields labeled 'Titre' and 'Auteur', filled 'Les heures claires' and 'Camille Laurent'. Footer actions 'Annuler' outlined and 'Ajouter' solid rust. Close × upper right. Main library stays subtly visible behind, no new navigation or functionality. Match reference identity and practical interface geometry. Crisp legible French text, consistent controls, no invented product features.",
6
+ "Use case: ui-mockup. Generate a high fidelity French Lisière desktop screen derived from the attached APPROVED MASTER, not a new artistic direction. Output single flat UI canvas landscape1536x1024 no devices or external titles. Preserve ivory, regular serif type, rust accents, thin separators, header 'Lisière' and 'Bibliothèque personnelle', heading 'Mes lectures', subtitle, upper right '+ Ajouter un livre', exact filters 'Tous', 'À lire', 'En cours', 'Terminés'. Show TERMINÉS selected with rust underline. A single completed book card uses the same 'Les jours tranquilles' cover artwork, title 'Les jours tranquilles', author 'Élise Martin', status pill 'Terminé', outlined action 'Rouvrir'. Spacious editorial layout aligned to master desktop grid, no new navigation or other content. Footer 'Lire, c’est habiter un peu plus grand.' and 'Démonstration · Livres fictifs'. Make this an obvious consistent derivative screen of the reference."
7
+ ],
8
+ "correction": "Add-book initial result duplicated the mobile panel; corrected with image_gen to retain a single desktop background. Final add-book-v1.png was visually inspected."
9
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "master.png": "f6cd5677f25db809c05deeb703efdfcb8ccc9e6df24d5d5acc7295dffc1384e3",
3
+ "add-book-v1.png": "c9067bdace97d9a424f0cb521e6e4c3b85adc74067f0939aeb11aad559480bc5",
4
+ "completed-v1.png": "849d09a1916d491cddf4f737430e5ce981a5721be8ef6005ef233f3fbf1a1b99"
5
+ }