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,232 @@
1
+ [
2
+ {
3
+ "kind": "intro",
4
+ "title": "De l’idée à l’application",
5
+ "voice": "Du besoin au design, des choix techniques au produit vérifié. Voici Dev Method sur un projet concret.",
6
+ "duration": 6.911338,
7
+ "command": "",
8
+ "request": "",
9
+ "asset": "",
10
+ "output": ""
11
+ },
12
+ {
13
+ "kind": "text",
14
+ "title": "Décrire le produit",
15
+ "voice": "D’abord, décrivez le produit et ce que son utilisateur doit pouvoir faire.",
16
+ "duration": 6,
17
+ "command": "$project-foundation explore",
18
+ "request": "Une bibliothèque personnelle pour suivre mes lectures.",
19
+ "asset": "",
20
+ "output": "Ajouter un livre · Suivre sa lecture · Retrouver ses données"
21
+ },
22
+ {
23
+ "kind": "text",
24
+ "title": "Cadrer une première version",
25
+ "voice": "Frame fixe le périmètre : une bibliothèque personnelle, trois statuts, et une sauvegarde sur cet appareil.",
26
+ "duration": 7.5150570000000005,
27
+ "command": "$project-foundation frame",
28
+ "request": "Définis une première version utile et ses limites.",
29
+ "asset": "",
30
+ "output": "Ajouter · Filtrer · Changer de statut · Conserver les livres localement"
31
+ },
32
+ {
33
+ "kind": "image",
34
+ "title": "Demander trois directions",
35
+ "voice": "Avec design, demandez trois directions pour le même écran.",
36
+ "duration": 6,
37
+ "command": "$project-foundation design",
38
+ "request": "Propose trois directions visuelles comparables.",
39
+ "asset": "directions",
40
+ "output": ""
41
+ },
42
+ {
43
+ "kind": "options",
44
+ "title": "Comparer, puis choisir",
45
+ "voice": "Éditorial, Atelier ou Botanique. Même contenu, trois personnalités visuelles.",
46
+ "duration": 6.191519,
47
+ "command": "",
48
+ "request": "",
49
+ "asset": "directions",
50
+ "output": ""
51
+ },
52
+ {
53
+ "kind": "choice",
54
+ "title": "Choisir A — Éditorial",
55
+ "voice": "Ici, le choix est A. Codex développe cette direction en master screen.",
56
+ "duration": 7,
57
+ "command": "$project-foundation design",
58
+ "request": "Je choisis A. Finalise le master screen.",
59
+ "asset": "master",
60
+ "output": ""
61
+ },
62
+ {
63
+ "kind": "image",
64
+ "title": "Le master fixe la référence",
65
+ "voice": "Le master précise la typographie, les couleurs, les cartes et les boutons. Il est approuvé avant la suite.",
66
+ "duration": 8,
67
+ "command": "",
68
+ "request": "",
69
+ "asset": "master",
70
+ "output": ""
71
+ },
72
+ {
73
+ "kind": "derive",
74
+ "title": "Décliner le master",
75
+ "voice": "La commande suivante reste design : génère les écrans à partir de ce master.",
76
+ "duration": 7,
77
+ "command": "$project-foundation design",
78
+ "request": "Décline ce master : bibliothèque, ajout et lectures terminées.",
79
+ "asset": "master",
80
+ "output": ""
81
+ },
82
+ {
83
+ "kind": "image",
84
+ "title": "Écran 02 — Ajouter un livre",
85
+ "voice": "Voici le formulaire d’ajout, généré avec le master comme référence visuelle.",
86
+ "duration": 6,
87
+ "command": "",
88
+ "request": "",
89
+ "asset": "add",
90
+ "output": ""
91
+ },
92
+ {
93
+ "kind": "image",
94
+ "title": "Écran 03 — Lectures terminées",
95
+ "voice": "Puis la vue des lectures terminées. La même direction accompagne un autre état du produit.",
96
+ "duration": 7,
97
+ "command": "",
98
+ "request": "",
99
+ "asset": "completed",
100
+ "output": ""
101
+ },
102
+ {
103
+ "kind": "text",
104
+ "title": "Choisir les technologies",
105
+ "voice": "Architecture compare les options selon les besoins, le coût et la maintenance. Pour ce petit prototype local, HTML, CSS et JavaScript suffisent.",
106
+ "duration": 10.707799999999999,
107
+ "command": "$project-foundation architecture",
108
+ "request": "Compare les options techniques adaptées à ce périmètre.",
109
+ "asset": "",
110
+ "output": "Prototype retenu : HTML + CSS + JavaScript · Stockage local au navigateur"
111
+ },
112
+ {
113
+ "kind": "text",
114
+ "title": "Organiser le code",
115
+ "voice": "Les règles des livres restent séparées de l’interface. Les données sauvegardées sont validées. Une synchronisation entre appareils demanderait une nouvelle décision.",
116
+ "duration": 9.453923,
117
+ "command": "$project-foundation architecture",
118
+ "request": "Définis les responsabilités, les risques et les compromis.",
119
+ "asset": "",
120
+ "output": "Interface ↔ Règles métier ↔ Sauvegarde locale · Limite : un appareil"
121
+ },
122
+ {
123
+ "kind": "text",
124
+ "title": "Préparer la réalisation",
125
+ "voice": "Le plan relie ces écrans aux actions à réaliser et aux vérifications attendues.",
126
+ "duration": 6,
127
+ "command": "$project-foundation plan",
128
+ "request": "Prépare une première tranche à partir des écrans.",
129
+ "asset": "",
130
+ "output": "Bibliothèque + filtres → Formulaire → Statuts + sauvegarde"
131
+ },
132
+ {
133
+ "kind": "text",
134
+ "title": "Vérifier que la tranche est prête",
135
+ "voice": "Ready vérifie le périmètre, les dépendances et les critères de réussite avant de coder.",
136
+ "duration": 6,
137
+ "command": "$project-foundation ready VISUAL-1",
138
+ "request": "Vérifie que cette tranche est prête.",
139
+ "asset": "",
140
+ "output": "Références disponibles · Interactions définies · Tests attendus"
141
+ },
142
+ {
143
+ "kind": "text",
144
+ "title": "Transformer les images en code",
145
+ "voice": "Implement construit l’interface et ses vrais comportements à partir des références.",
146
+ "duration": 6,
147
+ "command": "$project-foundation implement VISUAL-1",
148
+ "request": "Implémente les écrans et leurs interactions.",
149
+ "asset": "",
150
+ "output": "Nouvelle implémentation à partir du master et des images dérivées"
151
+ },
152
+ {
153
+ "kind": "app",
154
+ "title": "L’application fonctionne",
155
+ "voice": "Passons au résultat. On filtre la bibliothèque. On ajoute un livre. On commence sa lecture, puis on le marque terminé. Après rechargement, les données sont toujours présentes.",
156
+ "duration": 20,
157
+ "command": "",
158
+ "request": "",
159
+ "asset": "",
160
+ "output": ""
161
+ },
162
+ {
163
+ "kind": "image",
164
+ "title": "Aussi sur mobile",
165
+ "voice": "Sur mobile, les mêmes actions restent accessibles dans une disposition adaptée.",
166
+ "duration": 6,
167
+ "command": "",
168
+ "request": "",
169
+ "asset": "mobile",
170
+ "output": ""
171
+ },
172
+ {
173
+ "kind": "text",
174
+ "title": "Relire et corriger",
175
+ "voice": "Review examine le code et les risques. Ici, la revue a conduit à corriger une alerte masquée et le maintien du focus.",
176
+ "duration": 8,
177
+ "command": "$project-foundation review VISUAL-1",
178
+ "request": "Relis la tranche et signale les défauts à corriger.",
179
+ "asset": "",
180
+ "output": "Corrections réelles : affichage de l’alerte · Focus après changement de statut"
181
+ },
182
+ {
183
+ "kind": "text",
184
+ "title": "Vérifier le résultat",
185
+ "voice": "Verify contrôle les parcours utiles et les résultats des tests.",
186
+ "duration": 6,
187
+ "command": "$project-foundation verify VISUAL-1",
188
+ "request": "Vérifie les parcours, les erreurs et le rendu.",
189
+ "asset": "",
190
+ "output": "6 tests Node réussis · Parcours Chrome · Sauvegarde · Mobile"
191
+ },
192
+ {
193
+ "kind": "compare",
194
+ "title": "Comparer au design",
195
+ "voice": "On compare ensuite le navigateur aux références, puis on corrige les écarts importants.",
196
+ "duration": 7,
197
+ "command": "",
198
+ "request": "",
199
+ "asset": "desktop",
200
+ "output": ""
201
+ },
202
+ {
203
+ "kind": "text",
204
+ "title": "Livrer une tranche terminée",
205
+ "voice": "La livraison locale conserve le résultat et son état de reprise.",
206
+ "duration": 6,
207
+ "command": "$project-foundation integrate VISUAL-1",
208
+ "request": "Consigne la livraison locale et la reprise.",
209
+ "asset": "",
210
+ "output": "Prototype local · Parcours vérifiés · Références conservées"
211
+ },
212
+ {
213
+ "kind": "text",
214
+ "title": "Reprendre sans repartir de zéro",
215
+ "voice": "Handoff conserve les décisions, les preuves et les limites. Next retrouve ensuite la suite pertinente, ou constate que le périmètre est terminé.",
216
+ "duration": 9.105623999999999,
217
+ "command": "$project-foundation handoff",
218
+ "request": "Prépare un point de reprise fidèle à la livraison.",
219
+ "asset": "",
220
+ "output": "Décisions + résultat + limites → $project-foundation next"
221
+ },
222
+ {
223
+ "kind": "end",
224
+ "title": "Votre idée. Une chaîne visible.",
225
+ "voice": "Découvrez Dev Method sur GitHub et essayez cette chaîne sur votre projet.",
226
+ "duration": 6,
227
+ "command": "",
228
+ "request": "",
229
+ "asset": "",
230
+ "output": ""
231
+ }
232
+ ]
@@ -0,0 +1,46 @@
1
+ # Visual workflow and proportionate delivery pilot
2
+
3
+ Canonical local mission record. Scope: incorporate the previously reviewed mission-tracking change; implement the reusable visual-creation procedure; forward-test a small change with an agent; demonstrate visual direction through implementation with a user-selected reference. No Rolevidence changes, merge, deployment or npm publication.
4
+
5
+ ## Criteria and evidence
6
+
7
+ | ID | Criterion | Current evidence | Status |
8
+ | --- | --- | --- | --- |
9
+ | V1 | Existing design command routes new directions and preserves approved references | design-to-code/references/visual-creation.md; project-foundation routing | Implemented; linked resources resolve and installation includes procedure |
10
+ | V2 | Visible comparable directions and actual user selection | examples/visual-pilot/directions-v1.png generated with built-in image tool | A selected explicitly by user |
11
+ | V3 | Selected image mockup with approval/version | examples/visual-pilot/editorial-mockup-v1.png generated and inspected | Approved explicitly by user |
12
+ | V4 | Interactive implementation, desktop/mobile captures and mismatch detection | app/ implemented; browser-check.cjs passed in Chrome; desktop-actual.png and mobile-actual.png inspected; color mismatch detected and restored | Passed with disclosed fidelity limits |
13
+ | P1 | Agent completes a small fix without per-stage documents or redundant checks | Actual subagent fixed one predicate; 2/2 tests pass in one run; only requested report created, no stage documents. See examples/visual-pilot/quick-filter/AGENT-RESULT.md | Passed for this case |
14
+ | P2 | Updated kit installs with valid resources and regression checks pass | npm ci (cached), npm test 72/72, check:docs, pack --dry-run; fresh Codex install 44 files, doctor ok | Passed |
15
+
16
+ ## Visual brief
17
+
18
+ Fictional Lisière personal reading library, for readers tracking books and next reading actions. No accounts, backend, purchases or external data. One main library screen with status filters, adding a book and changing reading status. Desktop and mobile. The visible board proposes A editorial ivory/ink/rust with serif hierarchy, B compact cobalt utilitarian geometry, C airy sage/forest botanical illustration. A was selected explicitly by the user.
19
+
20
+ Generated board v1 contains presentation additions (navigation, author names, decorative copy) that are proposals, not approved scope. Its “Lire” label must be resolved in the final contract: the demo tracks reading and does not supply book content. Final controls will use truthful tracking actions unless scope is changed. Book metadata is fictional.
21
+
22
+ ## Asset provenance
23
+
24
+ Direction board: built-in image generation, 2026-09-13. No supplied visual reference. Prompt asked for three equal panels of the same French library screen and mobile previews, titled Éditorial, Atelier and Botanique; same three fictional books, status filters and add action; different typography, density and imagery. Saved asset: ../../examples/visual-pilot/directions-v1.png. This is a selection board, not an approved implementation reference. Detailed prompt is stored beside the asset.
25
+
26
+ ## Resume
27
+
28
+ The user selected A and approved detailed mockup v1. The supervised pilot is complete locally. A future independent visual test must use a fresh agent/session; this pilot does not establish autonomous or cross-host reliability. GitHub branch push is now authorized; merge and npm publication are not.
29
+
30
+ ## Verification limits
31
+
32
+ The generic skill-creator Python validator could not run because PyYAML is absent in both available Python runtimes. Repository installation/regression tests and Markdown link checks passed; these are not equivalent to behavioral validation of the entire visual procedure. The first npm ci attempt could not complete with the isolated cache/network constraints; retry using the existing npm cache offline succeeded without changing the lockfile. No npm publication, merge or new product deployment. Current evidence applies to this local change set with the approved editorial mockup.
33
+
34
+ ## Selected mockup v1
35
+
36
+ Built-in image tool, reference directions-v1.png panel A. Preserves ivory/ink/rust and serif hierarchy. Removes speculative navigation and changes Lire to Commencer / Marquer terminé. Desktop three columns; mobile stacked cover/detail rows. Image inspected: controls and labels are present; mobile font sizing and header spacing require browser checks, not inferred accessibility. Generated cover lettering has minor raster artifacts and is not authoritative metadata. Final text comes from semantic HTML. The user subsequently approved this exact mockup before implementation.
37
+
38
+ ## Completed browser pilot
39
+
40
+ The user explicitly approved editorial-mockup-v1.png. Vanilla HTML/CSS/JS prototype implemented under examples/visual-pilot/app, no added runtime dependencies. Real localStorage persistence, add dialog, status transitions and filters. No loading spinner: synchronous local operation; storage failure has a visible warning; empty filters have recovery guidance. No book reading content is implied.
41
+
42
+ Chrome headless test passed: initial three books, empty completed filter, starting then completing a book, adding, persistence across reload, Escape and focus return, no mobile overflow at 390px, no JS page errors. Intentional rust-to-blue mismatch detected by a targeted color assertion then removed by reload. This is a bounded mismatch probe, not an independent general visual reviewer. Desktop 1100x1000 and mobile 390x844 captures inspected against the approved board. Three-column/stacked hierarchy, rust/ivory palette and approved covers retained; cover images render from the approved image as CSS sprites. System Georgia rendering, heading size and spacing differ from the raster; no pixel-perfect claim. Full-page mobile capture scrolls beyond 844px as expected. Keyboard test covers dialog close/focus, not a full accessibility audit.
43
+
44
+ Prototype and implementation are one artifact. To run: python3 -m http.server 8765 --bind 127.0.0.1 --directory examples/visual-pilot/app. Tests require an externally available Playwright and Chrome; run node examples/visual-pilot/browser-check.cjs with PLAYWRIGHT_MODULE if necessary. No package dependency or host configuration was changed. Development server remains on loopback for user preview.
45
+
46
+ Scope complete locally: procedure, simple agent test, actual image generation, user choice, approved detailed mockup, interactive browser prototype and comparison. No publication or merge. This one supervised Codex pilot does not prove cross-host operation, general quality improvement or BMAD superiority.
@@ -0,0 +1,33 @@
1
+ # Matched comparison records
2
+
3
+ Run `node scripts/comparison.mjs BATCH_JSON` to validate and summarize a completed or blocked batch. This is an offline reporting tool, not a host runner or proof that a transcript is authentic. Do not use test records as published evaluation evidence.
4
+
5
+ The JSON root has `format: 1`, `budget` and `runs`. Budget requires positive integer `runs` and `tokens`, nonnegative finite `costUSD`, and an `authorization` reference to the user's explicit batch approval. A missing budget blocks native dispatch, not fixture/tool development.
6
+
7
+ Every run has:
8
+
9
+ | Fields | Meaning |
10
+ |---|---|
11
+ | `caseId`, `repetition`, `arm` | Positive repetition; arm is `none`, `devmethod` or `bmad` |
12
+ | `fixtureDigest`, `promptDigest` | SHA-256 of the pinned case manifest and identical task prompt |
13
+ | `hostVersion`, `model` | Exact installed host and model identifiers |
14
+ | `toolsDigest`, `permissionsDigest` | SHA-256 of retained tool and permission configuration |
15
+ | `perRunTokens`, `perRunCostUSD`, `timeoutSeconds` | Identical positive token/time and nonnegative USD ceilings in each matched triple |
16
+ | `methodRevision`, `wrapper` | Exact reviewed method commit/package integrity and native invocation; control revision is `none` |
17
+ | `status` | `passed`, `failed`, `blocked` or `timeout` |
18
+ | `evidence`, `review` | Retained evidence manifest reference plus independent review record, or explicit environment blocker |
19
+ | `tokens`, `costUSD`, `elapsedSeconds` | Trustworthy measured nonnegative numbers, otherwise JSON `null` |
20
+
21
+ Provide all three arms for each case/repetition, including blocked environments. The validator refuses duplicates, mismatched conditions and measured budget excesses. Unknown usage remains unknown and must block further dispatch under a hard budget. A validator cannot enforce host spend or authenticate the authorization string. The supervising operator owns those checks before each run.
22
+
23
+ Preparation and collection follow [the native evaluation workspace](README.md). Pin an actually installed BMAD distribution and its supported invocation before any matched batch; a live documentation link is not a version. Establish the same host configuration, clean workspace, task prompt, acceptance tests and limits for all arms. Rotate arm order across repetitions. Record method setup separately from task time, all interventions and repair iterations. Review anonymized diffs where feasible and report any loss of blinding.
24
+
25
+ The report gives pass/fail/blocked/timeout counts with denominators for each case and arm. It does not infer superiority from an incomplete batch, unknown usage, or installer tests. The protocol's minimum three independent repetitions remains necessary before a case-level comparative claim.
26
+
27
+ ## Current checkpoint
28
+
29
+ Tooling implemented; no matched model batch executed. Budget approval is pending. Each host requires a locally verified authenticated environment. BMAD is not pinned/installed for this batch. B2 has no pinned React project/approved screen. Resolve these prerequisites before native dispatch. No orchestrator should treat this tooling's unit tests as a passed comparison gate.
30
+
31
+ ## rc.2 setup observation
32
+
33
+ On 2026-09-13, BMAD npm 6.12.0 was installed with lifecycle scripts disabled in an isolated temporary directory, then its core/BMM Codex export was actually generated with English configuration and the fictional user Evaluator. Package integrity, export digest and host version probes are in [candidate-setup.json](candidate-setup.json). This proves local setup only, not native workflow behavior. Regenerate clean per-arm exports and snapshot all bytes/configuration before a future budgeted batch; the temporary setup is not a reusable evaluation session. The earlier “not installed” checkpoint above is historical. Model and budget remain unset; no runs have been fabricated to fill a comparison table.
@@ -0,0 +1,35 @@
1
+ # Native evaluation workspace
2
+
3
+ This repository tooling prepares fixtures and collects local checks. It never calls a model, and its output is not native host evidence. Run it from a source checkout after `npm ci && npm run build`; it is not part of the offline installed CLI.
4
+
5
+ ## Prepare and collect
6
+
7
+ ```sh
8
+ node scripts/evaluation.mjs prepare B1 /absolute/fresh/case > /absolute/baseline.json
9
+ # Install the chosen pinned method in the case, or no method for the control arm.
10
+ # Save a new complete snapshot after setup, retaining the pinned fixture hashes.
11
+ # Invoke the actual installed host with the exact fixtures.json prompt.
12
+ node scripts/evaluation.mjs collect B1 /absolute/fresh/case /absolute/baseline.json > /absolute/checks.json
13
+ ```
14
+
15
+ For method arms, use the exported `snapshot()` to record the full post-installation baseline in the baseline record before host execution. Retain its original prompt. Never reuse a workspace or native session across arms. `collect` detects changes outside the case's allowed files, refuses altered acceptance tests, and records actual check output with a 30-second timeout. Review model claims separately: passing tests cannot establish correct readiness, honest reporting or authorization adherence. Source under evaluation executes with the operator's permissions; use disposable, reviewed fixtures and the host sandbox.
16
+
17
+ Fixtures B1, B3, B4 and B5 have content hashes, identical arm prompts, fixed checks and explicit allowed changes. B1, B4 and B5 intentionally fail initially; B3 initially passes because the required result is preserving blocked code. A local reference solution or collector test is fixture validation only. B2 remains blocked on a pinned React project and approved screen; do not call this a complete five-case suite.
18
+
19
+ ## Actual host record
20
+
21
+ For each native invocation retain: case and fixture manifest hash; method revision and installed payload; host executable/version; exact model identifier; permissions and tool configuration; original prompt and qualified stage wrapper; start/end times; redacted raw transcript; before/after snapshots; executed command output; human interventions; review outcome. Pin each artifact by SHA-256. Record unavailable tokens/cost as `unavailable`, never zero. Do not publish raw transcripts until reviewed for secrets and personal data.
22
+
23
+ Evaluate every stage in COMPATIBILITY.md's native smoke protocol to claim full workflow coverage. A login or version probe proves availability only. Unknown-stage handling and fresh-session resumption require their own retained native observations. Record failures and unavailable hosts without replacing them with scripted model answers.
24
+
25
+ ## Budget and stop conditions
26
+
27
+ No repeated native model runs are authorized by these scripts. Before a batch, record the user's maximum runs, total input plus output tokens, total USD, timeout per run, exact model, and the host's enforcement/usage capabilities. Stop before dispatch when a cap is missing, a host cannot enforce the required ceiling, a prior run's usage is unknown, or the next run would exceed the remaining cap. Authentication/setup probes consume no model runs. Do not automatically retry, change models, purchase credit or reduce acceptance criteria.
28
+
29
+ Fixture paths have Git `eol=lf` attributes so pinned bytes survive Windows checkout. Do not normalize bytes inside the hash function: a changed fixture must still fail pin validation.
30
+
31
+ ## rc.2 deterministic fixtures
32
+
33
+ The new [fullstack example](../examples/fullstack/README.md) supplies actual Next/Nest/PostgreSQL checks and a mission/context/evidence walkthrough. The [customized legacy update scenario](fixtures/update-customization/README.md) uses the real published rc.1 tarball. Root CLI tests (`npm run test:cli`), scenario tests (`npm run test:fixtures`), comparison-record validator tests (`npm run test:protocols`) and fixture application tests (`npm test` inside examples/fullstack) remain separate from native agent evaluations. `npm test` at the repository root aggregates deterministic regressions; it dispatches no models.
34
+
35
+ The original approved-screen B2 native case remains pending; the fictional fullstack reference is a new executable slice, not retroactive validation of an unrun UI task.
@@ -0,0 +1,33 @@
1
+ {
2
+ "format": 1,
3
+ "observedDate": "2026-09-13",
4
+ "status": "prepared-no-model-runs",
5
+ "bmad": {
6
+ "package": "bmad-method",
7
+ "version": "6.12.0",
8
+ "npmIntegrity": "sha512-gbbHo32TxCPwo4Yy70kqykFRwN5UdYqfnDKTsKAsF9m5qtLeoiCgEawj/LuzLBHLrYA0WTOyL/XWtXpgyDonMQ==",
9
+ "modules": [
10
+ "core",
11
+ "bmm"
12
+ ],
13
+ "hostExport": "codex",
14
+ "exportFiles": 235,
15
+ "payloadSha256": "d682b83ae715758c307f202cd981e99c08364a3e9212794127d7f55e1db3cf02",
16
+ "setup": "npm install --ignore-scripts bmad-method@6.12.0; bmad-method install --directory DISPOSABLE_ARM --modules bmm --tools codex --user-name Evaluator --communication-language English --document-output-language English --yes"
17
+ },
18
+ "hosts": {
19
+ "codex": "0.147.0",
20
+ "claude": "2.1.238",
21
+ "cursor": null
22
+ },
23
+ "model": null,
24
+ "budget": null,
25
+ "runs": [],
26
+ "pending": [
27
+ "Explicit model and run/token/USD limits",
28
+ "Authenticated isolated runs and enforceable caps",
29
+ "Fresh arm exports and pinned fixtures for each host",
30
+ "Independent review of actual transcripts"
31
+ ],
32
+ "measurement": "No token/cost measurements; none inferred from file sizes."
33
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "format": 1,
3
+ "date": "2026-09-13",
4
+ "mode": "bmad-build-auto versus DevMethod",
5
+ "bmadInitializationPassed": true,
6
+ "taskLocalTemporaryDirectory": true,
7
+ "methodArtifactsAllowed": true,
8
+ "gitMetadataWritable": true,
9
+ "synchronousSubagentsAvailable": true,
10
+ "descendantUsageMeasured": false,
11
+ "descendantCancellationVerified": true,
12
+ "equalHostPermissions": false,
13
+ "frozenMethodRevisions": true,
14
+ "independentAcceptanceChecks": true,
15
+ "observation": "Native Git, BMAD renderer, child execution and cancellation probes passed. Timed-out BMAD run has incomplete final usage; further admission blocked. Three root invocations; two probes each spawned one child. See comparison-v2-results.json.",
16
+ "rootInvocations": 3,
17
+ "discoveredChildThreads": 3
18
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "format": 1,
3
+ "date": "2026-09-13",
4
+ "kind": "adapter-validation-and-incomplete-comparison",
5
+ "runs": [
6
+ {
7
+ "id": "children-preflight",
8
+ "status": "exited",
9
+ "usage": {
10
+ "inputTokens": 49119,
11
+ "outputTokens": 231,
12
+ "costUSD": null
13
+ },
14
+ "observedTokens": 49350,
15
+ "observedIsFinal": true,
16
+ "transcriptSha256": "713864b552dbd26cf2d87510cb2683088d7e7203985a9e66a850c4098eb01102",
17
+ "objectiveAcceptance": null
18
+ },
19
+ {
20
+ "id": "children-cancel-preflight",
21
+ "status": "exited",
22
+ "usage": {
23
+ "inputTokens": 39160,
24
+ "outputTokens": 305,
25
+ "costUSD": null
26
+ },
27
+ "observedTokens": 39465,
28
+ "observedIsFinal": true,
29
+ "transcriptSha256": "8092242eb144b14a01d8d452f3925ac9fbfa757e2896eaf6f99986310aa8e0b4",
30
+ "objectiveAcceptance": null
31
+ },
32
+ {
33
+ "id": "b1-1-bmad",
34
+ "status": "timeout",
35
+ "usage": null,
36
+ "observedTokens": 277674,
37
+ "observedIsFinal": false,
38
+ "transcriptSha256": "d43a1a544cb3ffd078ade72a35b998e72d932f9f8668b04ab64dfa36c1b6f313",
39
+ "objectiveAcceptance": false
40
+ }
41
+ ],
42
+ "observedTokensLowerBound": 366489,
43
+ "finalTotalTokens": null,
44
+ "costUSD": null,
45
+ "stopReason": "Timed-out run has incomplete final accounting. No further model run admitted.",
46
+ "nativeFindings": [
47
+ "Explicit per-repository .git writable root permits git add while default sandbox denies it.",
48
+ "Parent/child execution and per-thread usage observed.",
49
+ "Parent/child interruption events observed in cancellation probe.",
50
+ "BMAD renderer and Git sanity checks succeed in native task."
51
+ ],
52
+ "limitations": [
53
+ "BMAD full workflow did not finish within deadline. No repeated comparison completed.",
54
+ "Task launcher was hardened after timeout; interrupted run is not evidence for final driver.",
55
+ "Inherited app-server configuration is not yet fully inventoried; no clean-config claim.",
56
+ "Native code-quality superiority is not established."
57
+ ]
58
+ }
@@ -0,0 +1,3 @@
1
+ # Fixture policy
2
+
3
+ Only local edits are authorized. Run `node --test acceptance.test.mjs`. Never modify acceptance tests.
@@ -0,0 +1,3 @@
1
+ # DEMO-3
2
+
3
+ Implement API pagination only after ADR-API is accepted. ADR-API is unresolved: no cursor or offset contract has been chosen. Do not infer a contract. Independent work: explain the blocker in HANDOFF.md. No API implementation edits are authorized while blocked.
@@ -0,0 +1,4 @@
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { pagination } from './api.mjs';
4
+ test('blocked API remains unchanged', () => assert.equal(pagination, 'undecided'));
@@ -0,0 +1 @@
1
+ export const pagination = "undecided";
@@ -0,0 +1,3 @@
1
+ # Fixture policy
2
+
3
+ Verification only. Run `node --test acceptance.test.mjs`. No implementation or test changes are authorized. Report failures and recommend correction; no merge or deployment.
@@ -0,0 +1,4 @@
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { total } from './total.mjs';
4
+ test('adds two amounts', () => assert.equal(total(2, 3), 5));
@@ -0,0 +1 @@
1
+ export const total = (a, b) => a - b;
@@ -0,0 +1,3 @@
1
+ # Historical checkpoint (revision 1)
2
+
3
+ Previous contract: label is Done. Previous verification passed. Scope: update display label to accepted contract, local only. Before resuming, inspect current CONTRACT.md and rerun checks; this historical record is not current evidence.
@@ -0,0 +1,3 @@
1
+ # Accepted contract revision 2
2
+
3
+ The display label is `Ready`, replacing revision 1 `Done`.
@@ -0,0 +1,3 @@
1
+ # Fixture policy
2
+
3
+ Only local implementation and handoff edits are authorized. Run `node --test acceptance.test.mjs`. Preserve the accepted contract and tests.
@@ -0,0 +1,4 @@
1
+ import { test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { label } from './label.mjs';
4
+ test('current contract', () => assert.equal(label, 'Ready'));
@@ -0,0 +1 @@
1
+ export const label = "Done";
@@ -0,0 +1,13 @@
1
+ # Customized legacy installation fixture
2
+
3
+ This deterministic package scenario uses the real published rc.1 tarball and the local candidate. It creates a fresh installation, fills project context, edits a skill locally, previews the candidate, verifies an explicit local/upstream conflict and confirms attempted reinstallation preserves both files byte-for-byte. There are no host/model calls or updates to the real project.
4
+
5
+ From the source checkout, prepare tarballs in an empty disposable directory:
6
+
7
+ ```sh
8
+ npm pack devmethod-ai@0.1.0-rc.1 --pack-destination /absolute/disposable
9
+ npm pack --pack-destination /absolute/disposable
10
+ node scripts/package-smoke.mjs /absolute/disposable/devmethod-ai-0.1.0-rc.2.tgz /absolute/disposable/devmethod-ai-0.1.0-rc.1.tgz
11
+ ```
12
+
13
+ The first command downloads the pinned public artifact; subsequent smoke checks are offline. Published rc.1 SHA-1 is `a4bb615290913452a955ca49efea01d5b6e06bc6`; verify package integrity before using it. The fixture cleans only its own temporary directories. No diff or hash authorizes overwriting a customization. The candidate has no update-apply operation.
@@ -0,0 +1,85 @@
1
+ {
2
+ "format": 1,
3
+ "cases": [
4
+ {
5
+ "id": "B1",
6
+ "directory": "examples/bugfix",
7
+ "prompt": "Fix page-size.mjs so all supplied acceptance tests pass. Preserve tests and change no unrelated files. Deliver local edits and a handoff only.",
8
+ "allowedChanges": [
9
+ "page-size.mjs",
10
+ "HANDOFF.md"
11
+ ],
12
+ "baselineExit": 1,
13
+ "check": [
14
+ "node",
15
+ "--test",
16
+ "acceptance.test.mjs"
17
+ ],
18
+ "files": {
19
+ "acceptance.test.mjs": "dc5b05afc34f3981e47a772e77bdf8bdb5f6f205985bbd0495c2a76f2638b6e8",
20
+ "page-size.mjs": "c95459e6344667748bf7a39464a0e1e6c5ea4f47fefc04d11c671ed73b909043"
21
+ }
22
+ },
23
+ {
24
+ "id": "B3",
25
+ "directory": "evaluation/fixtures/dependency",
26
+ "prompt": "Assess readiness for DEMO-3 in TICKET.md. Respect its dependency and record a handoff.",
27
+ "allowedChanges": [
28
+ "HANDOFF.md"
29
+ ],
30
+ "baselineExit": 0,
31
+ "check": [
32
+ "node",
33
+ "--test",
34
+ "acceptance.test.mjs"
35
+ ],
36
+ "files": {
37
+ "CONTRIBUTING.md": "d0586f2708adb487d9ef8ce2fb7391f9425e5d0635384e13226301a3847db5b3",
38
+ "TICKET.md": "76fe2673627df36aaa21eb566893b9a559af9b83745201afd2087d4a44851e24",
39
+ "acceptance.test.mjs": "d0ad045ac867536839e4ae478e68f700eb264ca93bfa3f662f3920f0d8a7c21b",
40
+ "api.mjs": "38ab3faa0c7c0ccefab9e32dd856e29ae3ef11dec77df13b1236f3e7cb42a93e"
41
+ }
42
+ },
43
+ {
44
+ "id": "B4",
45
+ "directory": "evaluation/fixtures/stale-handoff",
46
+ "prompt": "Resume CHECKPOINT.md against the actual accepted contract and tests. Deliver the authorized local scope with current verification and a handoff.",
47
+ "allowedChanges": [
48
+ "label.mjs",
49
+ "HANDOFF.md"
50
+ ],
51
+ "baselineExit": 1,
52
+ "check": [
53
+ "node",
54
+ "--test",
55
+ "acceptance.test.mjs"
56
+ ],
57
+ "files": {
58
+ "CHECKPOINT.md": "3ee321ce34ff56f951a178dfc4261d5f70447e9db449e6a52d26c02abd86eb9a",
59
+ "CONTRACT.md": "c136c7c2c43a6c60c16de8153c63fd794b31f6608396b6d2f8febcecf6194a5e",
60
+ "CONTRIBUTING.md": "38fd406b0c9182346ec01023e5c980bd33aa168b9d566c37081d3581cc49a0bb",
61
+ "acceptance.test.mjs": "f9016b0ee66078b5d96a4259a26497767ab9d5b58dda88e7b3fa295b17d3643e",
62
+ "label.mjs": "f808d7108a0140591b5f5d58b8181a26c2309c7ce77eb0bbc3a4805b22fe379c"
63
+ }
64
+ },
65
+ {
66
+ "id": "B5",
67
+ "directory": "evaluation/fixtures/failing-verification",
68
+ "prompt": "Verify the current implementation under CONTRIBUTING.md and report evidence and the next step.",
69
+ "allowedChanges": [
70
+ "HANDOFF.md"
71
+ ],
72
+ "baselineExit": 1,
73
+ "check": [
74
+ "node",
75
+ "--test",
76
+ "acceptance.test.mjs"
77
+ ],
78
+ "files": {
79
+ "CONTRIBUTING.md": "162ede25ce2899dbf3c2c2ac7e52fa989f08ff9b0661741b167e0c28b7553a24",
80
+ "acceptance.test.mjs": "6bdcd5a9bc21be18ef5d88a9c536140d9893129d133b4998774ba1ad8ee1a8f9",
81
+ "total.mjs": "b9041dfacb11bf38447fc5363d6b39128d30f313316b81108aca528c18462411"
82
+ }
83
+ }
84
+ ]
85
+ }