Project management

How this portfolio is run: Scrum (backlog, sprints, reviews, metrics), risk management and the GenAI workflow.

Sprints 1 to 145 done; the rest is a forecast, in the order agreed with Charles on 6 October 2026. Two-week sprints in the plan; actual dates are those of the commits.

Roadmap

Sprints123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. S1 Kick-off, showcase, multi-OS CI, Docker done
  2. S2-S3 C library, project pages, WebAssembly done
  3. S4-S5 C++ topology, Three.js viewer done
  4. S6-S7 STL, FastAPI service, Docker done
  5. S8 ML: data, models, MLflow, DVC done
  6. S9 Ada and SPARK proof done
  7. S10 SQL benchmark database done
  8. S11-S12 Toy language: Flex/Bison, OCaml done
  9. S13-S14 LaTeX editor done
  10. S15 G-maps mini-course done
  11. S16 ML: ONNX, classification in the API done
  12. S17-S25 Games: Othello, battleship, adventure, War, tic-tac-toe, roguelike done
  13. S26-S27 Qt/OpenGL viewer done
  14. S28-S29 Parallel computing done
  15. S30-S32 React and Angular done
  16. S33-S34 Ray tracer, final release done
  17. S35 Finishing touches: Ada interface, review done
  18. S36 Topology: height and critical points done
  19. S37 Topology: persistence diagrams done
  20. S38 Topology: Reeb graph done
  21. S39 Topology: persistence rethought done
  22. S40 Computing times, G-maps course, figures and burndown up to date done
  23. S41 Topology: extended persistence done
  24. S42 lib-c: edge counting by radix sort done
  25. S43 Topology: orientation gizmo done
  26. S44 Showcase: each project in plain words done
  27. S45 Tactical RPG: combat rules in C# done
  28. S46 Tactical RPG: isometric combat in Godot done
  29. S47 Tactical RPG: accounts and characters (ASP.NET Core) done
  30. S48 Tactical RPG: character creation done
  31. S49 Tactical RPG: starting town and NPCs done
  32. S50 Tactical RPG: Rust launcher and executables done
  33. S51 Osmose: launcher redone (sign-in, sign-up, automatic update) done
  34. S52 Osmose: server choice and character list done
  35. S53 Osmose: character creation screen done
  36. S54 Osmose: elements and effects done
  37. S55 Osmose: summons, spell ranks and characteristics done
  38. S56 Osmose: the three classes redone done
  39. S57 Osmose: a readable fight done
  40. S58 Osmose: experience, levels and points done
  41. S59 Osmose: equipment and inventory done
  42. S60 Osmose: large zones done
  43. S61 Documentation assistant: finding the right passage done
  44. S62 Documentation assistant: cited answers done
  45. S63 Showcase: an architecture diagram on each project page done
  46. S64 Osmose: the character and its characteristics done
  47. S65 Osmose: spells and inventory done
  48. S66 Osmose: elements and characteristics done
  49. S67 Osmose: twenty-four spells per class done
  50. S68 Osmose: the spell deck done
  51. S69 Osmose: menus, sounds and free movement done
  52. S70 Osmose: the world in maps done
  53. S71 Osmose: the world map seen from the sky done
  54. S72 Osmose: monsters and boars done
  55. S73 Osmose: wolves done
  56. S74 Osmose: the mouldy woods done
  57. S75 Osmose: the lake done
  58. S76 Osmose: the fields done
  59. S77 Osmose: larger maps done
  60. S78 Osmose: the fight's order and the right click done
  61. S79 Osmose: feedback from a try done
  62. S80 Osmose: the dungeons done
  63. S81 Osmose: the locksmith's trade done
  64. S82 Osmose: the deck done
  65. S83 Osmose: from one map to the next done
  66. S84 Osmose: the proximity chat done
  67. S85 Osmose: clearer maps done
  68. S86 Osmose: real dungeons done
  69. S87 Osmose: the end of the fight done
  70. S88 Osmose: the quests done
  71. S89 Osmose: the first quests done
  72. S90 Osmose: the family engine done
  73. S91 Osmose: the Woods' families done
  74. S92 Osmose: the Mouldy Woods' families done
  75. S93 Osmose: the Lake's families done
  76. S94 Osmose: the Fields' families done
  77. S95 Osmose: the Wallow unblocked, loot and initiative (Woods, Mouldy Woods) done
  78. S96 Osmose: the Lake's and Fields' sets done
  79. S97 Osmose: Shards are worth something done
  80. S98 Osmose: item icons done
  81. S99 Osmose: gathering done
  82. S100 Osmose: the trades window done
  83. S101 Osmose: life that carries over done
  84. S102 Osmose: the new Clairval done
  85. S103 Osmose: the harvest one can see done
  86. S104 Osmose: a real village done
  87. S105 Osmose: the quest engine done
  88. S106 Osmose: following a quest done
  89. S107 Osmose: Clairval's tutorial done
  90. S108 Osmose: the minimap done
  91. S109 Osmose: smith and tailor done
  92. S110 Osmose: jeweller and cobbler done
  93. S111 Osmose: the alchemist and the baker done
  94. S112 Osmose: the Woods' and Mouldy Woods' quests done
  95. S113 Osmose: the Lake's and Fields' quests done
  96. S114 Osmose: the Disjoint done
  97. S115 Osmose: consumables out of fights, a livelier village done
  98. S116 Osmose: the quest journal done
  99. S117 Osmose: item cards and the right click done
  100. S118 Osmose: seeing each other on the map done
  101. S119 Osmose: the party and trading done
  102. S120 Osmose: fighting together, rules and server done
  103. S121 Osmose: fighting together, client and dungeons done
  104. S122 Osmose: a hero AI that plays as a team done
  105. S123 Osmose: the party's balance tuned done
  106. S124 Osmose: the turn timer, the absent, a party that holds done
  107. S125 Osmose: a fight that survives the server, a party playtest done
  108. S126 Osmose: friends and private messages done
  109. S127 Osmose: the recall scroll and the waystones done
  110. S128 Osmose: the groundwork after level 30 done
  111. S129 Osmose: Quatre-Chemins and its blocked roads done
  112. S130 Osmose: the glyph engine done
  113. S131 Osmose: the Forest of Forebears done
  114. S132 Osmose: the Sylvecerfs done
  115. S133 Osmose: the Mossy Keepers done
  116. S134 Osmose: the Forest's two dungeons done
  117. S135 Osmose: the level 40 and 45 recipes done
  118. S136 Osmose: the Forest's quests, a playtest done
  119. S137 Osmose: the talent tree, a vertical slice done
  120. S138 Osmose: compound elements, Lightning done
  121. S139 Osmose: Lightning for every class done
  122. S140 Osmose: the “My path” window and reactions done
  123. S141 Osmose: the Range and Rhythm branches done
  124. S142 Osmose: the Terrain branch and Afterglow done
  125. S143 Osmose: the Support branch done
  126. S144 Osmose: the tree's balance, a playtest done
  127. S145 Osmose: guilds done
  128. S146 Osmose: the trunk, the points and Lightning settled in progress
  129. S147 Osmose: the tree becomes a graph planned
  130. S148 Osmose: the tree's window planned
  131. S149 Osmose: the tree explained planned
  132. S150 Osmose: the spells' window and the fight planned
  133. S151 Osmose: planning, sharing, a playtest of the tree planned
  134. S152 Osmose: measure before tuning planned
  135. S153 Osmose: the contracts board planned
  136. S154 Osmose: the bestiary planned
  137. S155 Osmose: achievements and titles planned
  138. S156 Osmose: a guild that serves, a playtest of the loop planned
  139. S157 Osmose: the graphic groundwork and the icons planned
  140. S158 Osmose: the achievements window planned
  141. S159 Osmose: rewards, quest chains and dungeons planned
  142. S160 Osmose: the guild window planned
  143. S161 Osmose: the 45-60 groundwork planned
  144. S162 Osmose: diminishing element returns planned
  145. S163 Osmose: spells in relief planned
  146. S164 Osmose: trades in relief, a calmer tree planned
  147. S165 Osmose: the folding panels, the illustrated quests planned
  148. S166 Osmose: items in relief planned
  149. S167 Osmose: the quest sheet, the atlas planned
  150. S168 Osmose: the finished map, the hunting log planned
  151. S169 Osmose: the photographed map planned
  152. S170 Osmose: the painted sea planned
  153. S171 Osmose: the bestiary as a table planned
  154. S172 Osmose: the bestiary's portraits planned
  155. S173 Osmose: a complete Plop and names on hover planned
  156. S174 Osmose: the sheet without scrolling, zones with natural shapes planned
  157. S175 Osmose: the bestiary searched and linked planned
  158. S176 Osmose: the tree without crossings planned
  159. S177 Osmose: the tree one walks planned
  160. S178 Osmose: a softer world planned
  161. S179 Osmose: relief, waters, the mount planned
  162. S180 Osmose: natural borders planned
  163. S181 Osmose: a sorted inventory, a pet that follows planned
  164. S182 Osmose: the core of the elements planned
  165. S183 Osmose: the Elements page planned
  166. S184 Osmose: the five element pairs planned
  167. S185 Osmose: the four element trios planned
  168. S186 Osmose: the paths engine planned
  169. S187 Osmose: compounds consume their parents planned
  170. S188 Osmose: twelve spells per trio planned
  171. S189 Osmose: the new Elements page planned
  172. S190 Osmose: the specialisation tree planned
  173. S191 Osmose: the Specialisation page, the Sentinel planned
  174. S192 Osmose: the Guard's specialisations planned
  175. S193 Osmose: framing the ten classes, the measuring bench planned
  176. S194 Osmose: the AI, the four-rank engine planned
  177. S195 Osmose: the end of the engine, the heroes' conversion planned
  178. S196 Osmose: the page with twelve final classes, the story planned
  179. S197 Osmose: the Warrior planned
  180. S198 Osmose: the Archer planned
  181. S199 Osmose: the Mage, time planned
  182. S200 Osmose: the Mage, illusions planned
  183. S201 Osmose: the Priest, healing planned
  184. S202 Osmose: the Priest, the three branches planned
  185. S203 Osmose: milestone 1, four classes planned
  186. S204 Osmose: the Thief, stealth planned
  187. S205 Osmose: the Thief, poisons planned
  188. S206 Osmose: the Berserker, blood planned
  189. S207 Osmose: the Berserker, the branches planned
  190. S208 Osmose: the Paladin, the kit planned
  191. S209 Osmose: the Paladin, the branches planned
  192. S210 Osmose: milestone 2, seven classes planned
  193. S211 Osmose: the Summoner, orders planned
  194. S212 Osmose: the Summoner, familiars planned
  195. S213 Osmose: the Summoner, pacts planned
  196. S214 Osmose: the Necromancer, corpses planned
  197. S215 Osmose: the Necromancer, the branches planned
  198. S216 Osmose: the Druid, the kit planned
  199. S217 Osmose: the Druid, shapes planned
  200. S218 Osmose: the Druid, the Shaman planned
  201. S219 Osmose: milestone 3, ten classes planned

Product backlog

What is left to do, in sprint order. Each project is estimated in points (3, 5, 8 or 13) before being split into stories at the start of its sprint.

ProjectEstimatePlanned sprintsState
Osmose, a tactical RPG 728 S45-S60+S64-S219 In progress
Documentation assistant (RAG) 10 S61-S62 In progress

Open stories: 121 story points left out of 956 planned.

Sprints: goals and reviews

Each sprint starts with a goal and ends with a review: what was delivered, the tests, what was found along the way. The full report is in the sprint's file (in French).

  1. Sprint 219 0 points delivered out of 6

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 219
  2. Sprint 218 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 218
  3. Sprint 217 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 217
  4. Sprint 216 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 216
  5. Sprint 215 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 215
Sprints 1 to 214
  1. Sprint 214 0 points delivered out of 6

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 214
  2. Sprint 213 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 213
  3. Sprint 212 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 212
  4. Sprint 211 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 211
  5. Sprint 210 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 210
  6. Sprint 209 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 209
  7. Sprint 208 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 208
  8. Sprint 207 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 207
  9. Sprint 206 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 206
  10. Sprint 205 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 205
  11. Sprint 204 0 points delivered out of 6

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 204
  12. Sprint 203 0 points delivered out of 3

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 203
  13. Sprint 202 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 202
  14. Sprint 201 0 points delivered out of 6

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 201
  15. Sprint 200 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 200
  16. Sprint 199 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 199
  17. Sprint 198 0 points delivered out of 6

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 198
  18. Sprint 197 0 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 197
  19. Sprint 196 0 points delivered out of 4

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 196
  20. Sprint 195 7 points delivered out of 7

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 195
  21. Sprint 194 5 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 194
  22. Sprint 193 5 points delivered out of 5

    Ten classes replace the Mage, the Guard and the Sentinel: 220 classes in all, 3 choices at 30, 2 at 50, 2 at 100, delivered in waves of 4, 7 and 10 classes (D96).

    Report of sprint 193
  23. Sprint 192 4 points delivered out of 4

    the Talents tab becomes Specialisation, a tree read from left to right that divides: 3 choices at 30, 2 choices each at 50, a last evolution at 100 (D95).

    Report of sprint 192
  24. Sprint 191 7 points delivered out of 7

    the Talents tab becomes Specialisation, a tree read from left to right that divides: 3 choices at 30, 2 choices each at 50, a last evolution at 100 (D95).

    Report of sprint 191
  25. Sprint 190 5 points delivered out of 5

    the Talents tab becomes Specialisation, a tree read from left to right that divides: 3 choices at 30, 2 choices each at 50, a last evolution at 100 (D95).

    Report of sprint 190
  26. Sprint 189 4 points delivered out of 4

    compounds consume their parents, on Charles's decision of 2 November 2026 (D94).

    Report of sprint 189
  27. Sprint 188 3 points delivered out of 4

    compounds consume their parents, on Charles's decision of 2 November 2026 (D94).

    Report of sprint 188
  28. Sprint 187 4 points delivered out of 5

    compounds consume their parents, on Charles's decision of 2 November 2026 (D94).

    Report of sprint 187
  29. Sprint 186 5 points delivered out of 5

    the Elements and Path pages in place of the Talents page, designed by the game designer (projects/rpg/docs/elements-specialisations.md, v3) and approved by Charles: three tiers at 30, 50 and 100 (D93).

    Report of sprint 186
  30. Sprint 185 4 points delivered out of 5

    the Elements and Path pages in place of the Talents page, designed by the game designer (projects/rpg/docs/elements-specialisations.md, v3) and approved by Charles: three tiers at 30, 50 and 100 (D93).

    Report of sprint 185
  31. Sprint 184 4 points delivered out of 4

    the Elements and Path pages in place of the Talents page, designed by the game designer (projects/rpg/docs/elements-specialisations.md, v3) and approved by Charles: three tiers at 30, 50 and 100 (D93).

    Report of sprint 184
  32. Sprint 183 5 points delivered out of 5

    the Elements and Path pages in place of the Talents page, designed by the game designer (projects/rpg/docs/elements-specialisations.md, v3) and approved by Charles: three tiers at 30, 50 and 100 (D93).

    Report of sprint 183
  33. Sprint 182 5 points delivered out of 5

    the Elements and Path pages in place of the Talents page, designed by the game designer (projects/rpg/docs/elements-specialisations.md, v3) and approved by Charles: three tiers at 30, 50 and 100 (D93).

    Report of sprint 182
  34. Sprint 181 5 points delivered out of 5

    Charles's feedback on 1.0.176 (1 November), quick wins before the Elements and Specialisation pages: an inventory one can read and sort, an item picked from its slot, a pet one can see (D92).

    Report of sprint 181
  35. Sprint 180 4 points delivered out of 4

    Charles's feedback on 1.0.157 (30 October), before the specialisations: moving from one map to the next is no longer marked by a wall of trees (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 180
  36. Sprint 179 9 points delivered out of 9

    Charles's feedback on 1.0.172 (31 October): the forest is no longer flat, the puddles look good, the rings on the maps' edges are gone (D90).

    Report of sprint 179
  37. Sprint 178 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the world loses its chequerboard look (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 178
  38. Sprint 177 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the tree is walked with buttons, touchpad and keyboard, and its window gets its frame (D87; projects/rpg/docs/arbre-lisible.md §7, projects/rpg/docs/graphisme/s164-arbre-maquette.md).

    Report of sprint 177
  39. Sprint 176 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the talent tree unfolds in full, with no crossing link, and zooms (D87; projects/rpg/docs/arbre-lisible.md §7, projects/rpg/docs/graphisme/s164-arbre-maquette.md).

    Report of sprint 176
  40. Sprint 175 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the bestiary can be searched, points to the map, the items and my spells, and tells its families' story (D87, D88; projects/rpg/docs/bestiaire-encyclopedie.md).

    Report of sprint 175
  41. Sprint 174 5 points delivered out of 5

    Charles's feedback on 1.0.165 (31 October): the Characteristics tab fits its window without scrolling, and the world map's regions take natural shapes, true to their maps (D89).

    Report of sprint 174
  42. Sprint 173 4 points delivered out of 4

    Charles's feedback on 1.0.165 (31 October): a test character that has everything, to test everything, and players' names only on hovering them, the guild above the name (D89).

    Report of sprint 173
  43. Sprint 172 5 points delivered out of 5

    Charles's feedback on 1.0.157 (30 October), before the specialisations: each monster has its portrait rendered from its model, shown large on its sheet (D87, D88; projects/rpg/docs/graphisme/s165-retours-30-oct.md, projects/rpg/docs/bestiaire-encyclopedie.md).

    Report of sprint 172
  44. Sprint 171 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the bestiary gives structured data in a three-column window (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md, projects/rpg/docs/bestiaire-encyclopedie.md).

    Report of sprint 171
  45. Sprint 170 4 points delivered out of 4

    Charles's feedback on 1.0.162 (30 October), before the specialisations: the world map's sea comes alive (D88; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 170
  46. Sprint 169 4 points delivered out of 4

    Charles's feedback on 1.0.162 (30 October), before the specialisations: the world map shows each map's real scenery, photographed in the game (D88; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 169
  47. Sprint 168 5 points delivered out of 5

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the world map gets its landmarks and legend, and the bestiary unfolds in five tiers (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md, projects/rpg/docs/bestiaire-encyclopedie.md).

    Report of sprint 168
  48. Sprint 167 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the quest sheet reads at a glance and the world map becomes an atlas (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 167
  49. Sprint 166 6 points delivered out of 6

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the 211 items, recipes included, become tiles in relief (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 166
  50. Sprint 165 4 points delivered out of 4

    Charles's feedback on 1.0.157 (30 October), before the specialisations: the quest tracker and the Menus panel fold away, the quest log gets its icons (D87; projects/rpg/docs/graphisme/s165-retours-30-oct.md).

    Report of sprint 165
  51. Sprint 164 6 points delivered out of 6

    the graphic overhaul Charles asked for on 30 October, before the specialisations: the trades get their icons and the talent tree loses its noise (D86; the graphic designer's mock-ups in projects/rpg/docs/graphisme/s163-icones-arbre.md and s164-arbre-maquette.md, the game designer's structure of the tree in projects/rpg/docs/arbre-lisible.md).

    Report of sprint 164
  52. Sprint 163 4 points delivered out of 4

    the graphic overhaul Charles asked for on 30 October, before the specialisations: every spell has its icon in relief, readable in each of its states (D86; the graphic designer's mock-ups in projects/rpg/docs/graphisme/s163-icones-arbre.md and s164-arbre-maquette.md, the game designer's structure of the tree in projects/rpg/docs/arbre-lisible.md).

    Report of sprint 163
  53. Sprint 162 5 points delivered out of 5

    a hero of a single element no longer clears hordes alone, before the specialisations are tuned on top of it (D85, the game designer's decision in projects/rpg/docs/suite-apres-d69.md, §12).

    Report of sprint 162
  54. Sprint 161 3 points delivered out of 3

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 161
  55. Sprint 160 6 points delivered out of 6

    a graphic overhaul of Osmose's interface asked for by Charles after S156, slipped in before the 45-60 groundwork (D84).

    Report of sprint 160
  56. Sprint 159 5 points delivered out of 5

    a graphic overhaul of Osmose's interface asked for by Charles after S156, slipped in before the 45-60 groundwork (D84).

    Report of sprint 159
  57. Sprint 158 5 points delivered out of 5

    a graphic overhaul of Osmose's interface asked for by Charles after S156, slipped in before the 45-60 groundwork (D84).

    Report of sprint 158
  58. Sprint 157 5 points delivered out of 5

    a graphic overhaul of Osmose's interface asked for by Charles after S156, slipped in before the 45-60 groundwork (D84).

    Report of sprint 157
  59. Sprint 156 4 points delivered out of 5

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 156
  60. Sprint 155 5 points delivered out of 5

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 155
  61. Sprint 154 3 points delivered out of 3

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 154
  62. Sprint 153 5 points delivered out of 5

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 153
  63. Sprint 152 3 points delivered out of 3

    Osmose after S151, designed by the game designer (v8 of projects/rpg/docs/suite-apres-d69.md, §12) and taken with its recommendations (D83).

    Report of sprint 152
  64. Sprint 151 2 points delivered out of 4

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 151
  65. Sprint 150 4 points delivered out of 4

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 150
  66. Sprint 149 5 points delivered out of 5

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 149
  67. Sprint 148 5 points delivered out of 5

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 148
  68. Sprint 147 5 points delivered out of 5

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 147
  69. Sprint 146 5 points delivered out of 6

    the talent tree as a real tree (trunk, element pairs, play styles), from Charles's answers to the questionnaire and the game designer's rulings (projects/rpg/docs/talents-arbre-questions.md, D82).

    Report of sprint 146
  70. Sprint 145 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 145
  71. Sprint 144 5 points delivered out of 5

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 144
  72. Sprint 143 4 points delivered out of 4

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 143
  73. Sprint 142 4 points delivered out of 4

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 142
  74. Sprint 141 3 points delivered out of 3

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 141
  75. Sprint 140 5 points delivered out of 5

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 140
  76. Sprint 139 3 points delivered out of 3

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 139
  77. Sprint 138 5 points delivered out of 5

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 138
  78. Sprint 137 5 points delivered out of 5

    the talent tree shared by all classes, designed by the game designer (v3 of projects/rpg/docs/talents-arbre.md and projects/rpg/docs/elements.md) and approved by Charles (D80).

    Report of sprint 137
  79. Sprint 136 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 136
  80. Sprint 135 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 135
  81. Sprint 134 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 134
  82. Sprint 133 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 133
  83. Sprint 132 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 132
  84. Sprint 131 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 131
  85. Sprint 130 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 130
  86. Sprint 129 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 129
  87. Sprint 128 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 128
  88. Sprint 127 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 127
  89. Sprint 126 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 126
  90. Sprint 125 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 125
  91. Sprint 124 5 points delivered out of 5

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 124
  92. Sprint 123 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 123
  93. Sprint 122 3 points delivered out of 3

    Osmose after S121, designed by the game designer (v7 of projects/rpg/docs/suite-apres-d69.md, §11) and approved by Charles (D79).

    Report of sprint 122
  94. Sprint 121 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 121
  95. Sprint 120 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 120
  96. Sprint 119 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 119
  97. Sprint 118 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 118
  98. Sprint 117 5 points delivered out of 5

    Charles's feedback after trying build 1.0.92 (D77).

    Report of sprint 117
  99. Sprint 116 5 points delivered out of 5

    Charles's feedback after trying build 1.0.92 (D77).

    Report of sprint 116
  100. Sprint 115 4 points delivered out of 4

    Charles's feedback after trying build 1.0.92 (D77, D78).

    Report of sprint 115
  101. Sprint 114 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 114
  102. Sprint 113 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 113
  103. Sprint 112 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 112
  104. Sprint 111 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 111
  105. Sprint 110 3 points delivered out of 3

    a trade for every piece of equipment, designed by the game designer (v6 of projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D76).

    Report of sprint 110
  106. Sprint 109 5 points delivered out of 5

    a trade for every piece of equipment, designed by the game designer (v6 of projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D76).

    Report of sprint 109
  107. Sprint 108 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 108
  108. Sprint 107 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 107
  109. Sprint 106 3 points delivered out of 3

    Charles's feedback after trying sprint 102 (D75).

    Report of sprint 106
  110. Sprint 105 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 105
  111. Sprint 104 5 points delivered out of 5

    Charles's feedback after trying sprint 102 (D75).

    Report of sprint 104
  112. Sprint 103 3 points delivered out of 3

    Charles's feedback after trying sprint 102 (D75).

    Report of sprint 103
  113. Sprint 102 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D74).

    Report of sprint 102
  114. Sprint 101 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71 to D73).

    Report of sprint 101
  115. Sprint 100 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71, D72).

    Report of sprint 100
  116. Sprint 99 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71, D72).

    Report of sprint 99
  117. Sprint 98 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71, D72).

    Report of sprint 98
  118. Sprint 97 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71).

    Report of sprint 97
  119. Sprint 96 3 points delivered out of 3

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71).

    Report of sprint 96
  120. Sprint 95 5 points delivered out of 5

    Osmose after D69, designed by the game designer (projects/rpg/docs/suite-apres-d69.md) and approved by Charles (D71).

    Report of sprint 95
  121. Sprint 94 5 points delivered out of 5

    the game designer's design, started by Charles (D69): the bees and the moles, each with its lesson.

    Report of sprint 94
  122. Sprint 93 3 points delivered out of 3

    the game designer's design, started by Charles (D69): the frogs and the crabs, each with its lesson.

    Report of sprint 93
  123. Sprint 92 3 points delivered out of 3

    the game designer's design, started by Charles (D69): the mushrooms and the zombies, each with its lesson.

    Report of sprint 92
  124. Sprint 91 3 points delivered out of 3

    the game designer's design, started by Charles (D69): the boars and the wolves, each with its lesson.

    Report of sprint 91
  125. Sprint 90 5 points delivered out of 5

    the game designer's design, started by Charles (D69): a passive, leap and swap engine so that each family plays differently.

    Report of sprint 90
  126. Sprint 89 3 points delivered out of 3

    Charles's request (D65): the start of the main quest and side quests in every zone.

    Report of sprint 89
  127. Sprint 88 3 points delivered out of 3

    Charles's request (D65): quests and their journal.

    Report of sprint 88
  128. Sprint 87 3 points delivered out of 3

    Charles's request (D68): an end-of-fight window as in the games of the genre, and money earned.

    Report of sprint 87
  129. Sprint 86 5 points delivered out of 5

    Charles's feedback (D67): rooms one stands in, and a building at the way in.

    Report of sprint 86
  130. Sprint 85 4 points delivered out of 4

    Charles's feedback (D67): seeing the maps on the world map, changing maps without aiming, lighter maps.

    Report of sprint 85
  131. Sprint 84 3 points delivered out of 3

    Charles's request (D65): talking to the players of the same map.

    Report of sprint 84
  132. Sprint 83 3 points delivered out of 3

    Charles's feedback (D66): changing maps as in the games of the genre.

    Report of sprint 83
  133. Sprint 82 5 points delivered out of 5

    Charles's feedback (D66): a deck that saves, is built with the mouse and is shared.

    Report of sprint 82
  134. Sprint 81 3 points delivered out of 3

    Charles's request (D65): keys made by a trade, or dropped rarely.

    Report of sprint 81
  135. Sprint 80 5 points delivered out of 5

    Charles's request (D65): a dungeon per family, three rooms, entered with a key.

    Report of sprint 80
  136. Sprint 79 3 points delivered out of 3

    Charles's feedback (D65): remembered sign-in, the fallen leave the board, the round counter.

    Report of sprint 79
  137. Sprint 78 3 points delivered out of 3

    Charles's request (D64): a timeline showing the current round, a fight started with a right click, no offline play for the player.

    Report of sprint 78
  138. Sprint 77 3 points delivered out of 3

    Charles's request (D64): zone maps of 48 × 32 cells, ways without compass points.

    Report of sprint 77
  139. Sprint 76 3 points delivered out of 3

    Charles's request (D63): a fields zone of 5 × 5 maps, with bees and moles.

    Report of sprint 76
  140. Sprint 75 3 points delivered out of 3

    Charles's request (D63): a lake zone of 5 × 5 maps, with frogs and crabs.

    Report of sprint 75
  141. Sprint 74 3 points delivered out of 3

    Charles's request (D63): a second zone of 5 × 5 maps, the mouldy woods, with mushrooms and zombies.

    Report of sprint 74
  142. Sprint 73 3 points delivered out of 3

    Charles's request (D63): the woods' second family: wolves, all five roles.

    Report of sprint 73
  143. Sprint 72 3 points delivered out of 3

    Charles's request (D63): monsters arrive: visible groups that wander, a fight on a click, and the boar family.

    Report of sprint 72
  144. Sprint 71 3 points delivered out of 3

    Charles's request (D63): a world map showing the world seen from the sky, as one big map.

    Report of sprint 71
  145. Sprint 70 3 points delivered out of 3

    Charles's request (D63): a world made of linked maps: a zone is a grid of 5 × 5 maps, the woods first.

    Report of sprint 70
  146. Sprint 69 3 points delivered out of 3

    Charles's request (D62): an Escape menu, a discreet side bar of icons, windows opened by their keys, sounds, and freer movement outside fights.

    Report of sprint 69
  147. Sprint 68 3 points delivered out of 3

    Charles's request (D62): twelve spells chosen to play with, in two numbered rows, with their keys.

    Report of sprint 68
  148. Sprint 67 3 points delivered out of 3

    Charles's request (D62): each class has four spells per element and eight neutral ones, five at level 1 then one every five levels, each with its icon.

    Report of sprint 67
  149. Sprint 66 3 points delivered out of 3

    Charles's request (D62): characteristics named after their element, one colour and one effect each, common base numbers, and the freedom to spend one's points again.

    Report of sprint 66
  150. Sprint 65 3 points delivered out of 3

    Charles's request (D61): a readable spells screen (element colour, normal and critical damage ranges, a card on hover) and an inventory as in the games of the genre (the character surrounded by its slots, tabs, a grid of items).

    Report of sprint 65
  151. Sprint 64 3 points delivered out of 3

    Charles's request (D61), after trying the game: characteristics that count as in the games of the genre (10 points = +2 damage in their element), critical hits, a spell about every five levels, and a full characteristics sheet.

    Report of sprint 64
  152. Sprint 63 5 points delivered out of 5

    Charles's request (D57): on each project page, a "How the pieces fit together" diagram, like Osmose's, when the project has at least three pieces that talk to each other.

    Report of sprint 63
  153. Sprint 62 5 points delivered out of 5

    Charles's request (D58): answer from the retrieved passages, each sentence cited down to the file and line, and say when the sources hold no answer.

    Report of sprint 62
  154. Sprint 61 5 points delivered out of 5

    Charles's request (D58): find, in technical documentation, the passages that answer a question, and measure how well they are found.

    Report of sprint 61
  155. Sprint 60 3 points delivered out of 3

    Large linked zones, a camera that follows the player, and the world map.

    Report of sprint 60
  156. Sprint 59 3 points delivered out of 3

    The 14 equipment slots, items and sets, the inventory in pages and loot from fights.

    Report of sprint 59
  157. Sprint 58 3 points delivered out of 3

    Experience and levels 1 to 100, and the spending of characteristic and spell points, checked by the server.

    Report of sprint 58
  158. Sprint 57 3 points delivered out of 3

    Hovering a fighter or a spell tells everything, the turn order is a timeline, and each element has its visual effects.

    Report of sprint 57
  159. Sprint 56 3 points delivered out of 3

    The Sentinel, the Guard and the Mage with about twenty spells each, on at least two elements, balanced by simulation.

    Report of sprint 56
  160. Sprint 55 3 points delivered out of 3

    Summons, spells with ranks unlocked by level, and characteristics in the damage formula.

    Report of sprint 55
  161. Sprint 54 3 points delivered out of 3

    Four elements and their resistances, and spell effects: heal, shield, push and pull, effects over time, areas.

    Report of sprint 54
  162. Sprint 53 3 points delivered out of 3

    a full-screen creation screen, with several colours and build, and the choice of a free pack of separable parts.

    Report of sprint 53
  163. Sprint 52 3 points delivered out of 3

    when it opens, the game shows the server choice then a visual list of characters, as in Dofus.

    Report of sprint 52
  164. Sprint 51 3 points delivered out of 3

    a launcher that comes down to signing in: it updates the game by itself, remembers the account, lets the player sign up, and starts the game.

    Report of sprint 51
  165. Sprint 50 5 points delivered out of 5

    a Rust (Tauri) launcher that logs the player in, updates the game by downloading only the changed files, then starts it; the executables for the three systems; the project page.

    Report of sprint 50
  166. Sprint 49 3 points delivered out of 3

    a first welcome map with no monsters, where you walk around and talk to three NPCs.

    Report of sprint 49
  167. Sprint 48 3 points delivered out of 3

    a customisable character creation screen, validated and saved by the server.

    Report of sprint 48
  168. Sprint 47 5 points delivered out of 5

    the ASP.NET Core server for accounts and characters, and the game's login screen.

    Report of sprint 47
  169. Sprint 46 5 points delivered out of 5

    the sprint 45 combat playable in a Godot 4 C# client, on an isometric map made of Kenney's free sprites, exported for the three systems.

    Report of sprint 46
  170. Sprint 45 5 points delivered out of 5

    first of the six tactical RPG sprints (D54): the combat rules in a deterministic C# library, later shared by the Godot client and the server, tested without an engine.

    Report of sprint 45
  171. Sprint 44 2 points delivered out of 2

    Charles's request (D53): on each project page, a summary for someone who is not a developer (an HR person, for instance): what the project is, what it is for, what it shows of Charles's skills, in three short sentences, in a collapsible box at the top of the page.

    Report of sprint 44
  172. Sprint 43 1 points delivered out of 1

    Charles's request (D52): a small orientation gizmo in the topology viewer, x in red, y in green and z in blue, turning with the camera, to know where one is looking and relate it to the height axis.

    Report of sprint 43
  173. Sprint 42 2 points delivered out of 2

    Charles's decision (D51): fix the bottleneck that the SQL project's measurements revealed. lib-c counts edges by sorting three keys per triangle with qsort, an indirect call per comparison: 45 ms of sorting for 24 ms of reading on 262,144 triangles. A linear-time radix sort, measured before and after, without changing a single result.

    Report of sprint 42
  174. Sprint 41 5 points delivered out of 5

    Charles's review (D50): on the standing torus, the Reeb graph's loop is born at one saddle and closes at the other, while the persistence diagram keeps its two loops up to infinity. Both are right but look at different things (sublevel sets, level sets). Compute extended persistence, which pairs the classes that never die too, and show on the project page the saddle-to-saddle pair of the Reeb graph's loop.

    Report of sprint 41
  175. Sprint 40 6 points delivered out of 6

    Charles's requests (D49): the computing times of persistence and of the Reeb graph, with what a GPU would bring, and the 32 MB file limit explained; the G-maps course corrected; the number of projects and points up to date everywhere, and a burndown counted in delivered stories.

    Report of sprint 40
  176. Sprint 39 3 points delivered out of 3

    Charles's review (D49): the persistence diagram is not clear. Make it readable without knowing persistence: a barcode beside the scatter plot, each pair tied to its two vertices on the mesh, and a guided explanation that follows the height threshold.

    Report of sprint 39
  177. Sprint 38 4 points delivered out of 4

    Charles's request (D48): on the topology viewer, the Reeb graph of the height, computed by the C++ code: each component of each level set shrunk to a point, nodes at the critical points, as many loops as the genus on a closed orientable surface, drawn inside the mesh and flat.

    Report of sprint 38
  178. Sprint 37 4 points delivered out of 4

    Charles's request (D48): on the topology viewer, the persistence diagram of the height, computed by the C++ code: every component, handle or cavity is born at one critical point and dies at another, and the distance to the diagonal tells real features from noise.

    Report of sprint 37
  179. Sprint 36 4 points delivered out of 4

    Charles's request: on the topology viewer, a filtration by height, like ParaView's Elevation filter, and the critical points of the height (minima, saddles, maxima), computed by the C++ code with discrete Morse theory.

    Report of sprint 36
  180. Sprint 35 5 points delivered out of 5

    finishing touches Charles asked for after sprint 34: an interface for the Ada crossroads whose logic stays the Ada program's, what each technology does on every project page, and project management pages that say the portfolio is delivered.

    Report of sprint 35
  181. Sprint 34 3 points delivered out of 3

    second ray tracer sprint (D45): visitors render their own mesh, the work is spread over every core, they adjust the light and the materials and save the image.

    Report of sprint 34
  182. Sprint 33 5 points delivered out of 5

    first of the two ray tracer sprints (D45): a tested C++ engine that renders the common-thread meshes, compiled to WebAssembly and usable online on the project page.

    Report of sprint 33
  183. Sprint 32 8 points delivered out of 8

    two views of the dashboard (Projects and Results) in Angular, on the same JSON API as the React dashboard, tested with Jest and Cypress, and a measured comparison of both frameworks on the project page.

    Report of sprint 32
  184. Sprint 31 6 points delivered out of 6

    second sprint of the react project: a 3D viewer in the dashboard, colouring the common-thread meshes by their Gaussian curvature computed by the topologie C++ code in WebAssembly, then the project page with its screenshots.

    Report of sprint 31
  185. Sprint 30 7 points delivered out of 7

    first of the two sprints of the react project: a React and TypeScript dashboard reading a static JSON API produced by the site build (projects, sprints, measured results), in French and English, in the site's colours, published with the site.

    Report of sprint 30
  186. Sprint 29 7 points delivered out of 7

    second sprint of the parallele project: the same curvature in CUDA on the GeForce GTX 1660, in double precision (within 1e-12 of sequential) and in single precision (error measured), then rigorous benchmarks of every version, shown on the project page.

    Report of sprint 29
  187. Sprint 28 6 points delivered out of 6

    first of the two sprints of the parallele project: the Gaussian curvature of a mesh (angle defect and mixed Voronoi area) computed in sequential C++, with OpenMP on every core and with OpenCL on the graphics card or the processor, with results identical to those of the topologie project.

    Report of sprint 28
  188. Sprint 27 7 points delivered out of 7

    second sprint of the viewer (qt project): pick a vertex or a face to read its local properties, save the view as an image, and ship the application ready to install on Windows, Linux and macOS.

    Report of sprint 27
  189. Sprint 26 6 points delivered out of 6

    first of the two viewer sprints (qt project): a Qt 6 desktop application in C++ that opens a mesh with the portfolio's C library, shows it in OpenGL and displays its topology computed by the topologie project; Windows, Linux and macOS.

    Report of sprint 26
  190. Sprint 25 3 points delivered out of 3

    last of the three roguelike sprints (D32): the game in a Godot 4 window in C#, on the same rules library, with ranked runs on the score API; Windows, Linux and macOS builds by the CI, screenshots on the project page.

    Report of sprint 25
  191. Sprint 24 5 points delivered out of 5

    second of the three roguelike sprints (D32): an ASP.NET Core score API, with accounts and JWT tokens, EF Core and PostgreSQL, which draws the seed of each ranked run (R6) and computes the score itself by replaying the run with the rules library.

    Report of sprint 24
  192. Sprint 23 5 points delivered out of 5

    first of the three roguelike sprints (D32): the game rules in a deterministic C# library, later shared by the Godot client and the score API, playable now in the terminal; a run is recorded (seed and actions) and replays identically, the basis of score checking in sprint 24.

    Report of sprint 23
  193. Sprint 22 3 points delivered out of 3

    the morpion project rewrites a game from my studies: tic-tac-toe against an AI that never loses (minimax), in Python, playable in the terminal then on the project page; the tests prove the AI unbeatable by trying every possible game.

    Report of sprint 22
  194. Sprint 21 3 points delivered out of 3

    the bataille project rewrites a game from my studies: the card game War, in Ada, with types that rule out impossible cards and contract-checked piles; the project page shows what 100,000 simulated games say.

    Report of sprint 21
  195. Sprint 20 5 points delivered out of 5

    the aventure project rewrites from scratch a game from my studies (the original, written by two, is not reused): “The lab at night”, a text adventure in which a PhD student locked in the lab must find the USB stick holding the thesis and get out, in French or English, playable in the terminal then in the browser.

    Report of sprint 20
  196. Sprint 19 5 points delivered out of 5

    the naval project rewrites a game from my studies: battleship against the computer, with its model in plain, tested Java and its interface in JavaFX; the project page shows screenshots, made headless by the application itself.

    Report of sprint 19
  197. Sprint 18 3 points delivered out of 3

    on the othello project page, the visitor plays against the AI: the C engine and AI of sprint 17, compiled to WebAssembly, behind a board usable with the mouse, touch and keyboard.

    Report of sprint 18
  198. Sprint 17 5 points delivered out of 5

    the othello project rewrites a game from my studies: an exact and fast engine in C (the board in two 64-bit integers), validated by counting the possible games, and an alpha-beta minimax AI, playable in the terminal; sprint 18 will bring it to the browser.

    Report of sprint 17
  199. Sprint 16 7 points delivered out of 7

    the ml project's PointNet leaves training: exported to ONNX and checked identical to the PyTorch model, it classifies the meshes sent to the API (POST /v1/mesh/classify, without PyTorch in the image), and its results are shown on the project page.

    Report of sprint 16
  200. Sprint 15 5 points delivered out of 5

    the gcartes project explains generalised maps, the subject of my thesis: a small library builds and checks 2D G-maps, and the project page becomes a short course, with an unfolded cube whose darts, links and orbits can be walked, then a quiz.

    Report of sprint 15
  201. Sprint 14 3 points delivered out of 3

    on the latex project page, the visitor edits an article presenting this portfolio and sees the rendering update while typing, as in Overleaf; diagnostics and the outline lead to the right line.

    Report of sprint 14
  202. Sprint 13 5 points delivered out of 5

    the latex project reads a useful subset of LaTeX (structure, lists, tables, mathematics, references, citations, notes) into a tree whose every node knows its line and column, and renders it as safe HTML, formulas by KaTeX; errors become located diagnostics rather than a failure.

    Report of sprint 13
  203. Sprint 12 3 points delivered out of 3

    Maille handles meshes (torus, sphere, cylinder) and computes their topological invariants; on the project page, the visitor writes a program and sees its syntax tree, type and value, computed in the browser.

    Report of sprint 12
  204. Sprint 11 5 points delivered out of 5

    the langage project defines “Maille”, a small functional language: a Flex/Bison parser in C produces the syntax tree, an OCaml interpreter infers its types (Hindley-Milner) and evaluates it. Meshes enter the language in sprint 12, with the demo on the site.

    Report of sprint 11
  205. Sprint 10 5 points delivered out of 5

    the sql project stores in PostgreSQL real performance measurements of the portfolio's libraries (lib-c and topologie, in WebAssembly), analyses them with views, window functions and justified indexes, and the same database can be queried in the browser.

    Report of sprint 10
  206. Sprint 9 5 points delivered out of 5

    the ada project simulates a traffic-light crossroads whose dangerous states cannot be written: typing rules them out, contracts and the SPARK proof guarantee the rest.

    Report of sprint 9
  207. Sprint 8 6 points delivered out of 6

    the ml project trains, on 3D shapes generated by the code, a baseline model (scikit-learn) and a PointNet (PyTorch), tracked in MLflow, reproducible with DVC, and the CI fails if the accuracy falls below the threshold.

    Report of sprint 8
  208. Sprint 7 5 points delivered out of 5

    the fastapi project runs in Docker next to the site (docker compose up) and also returns the topological invariants computed in C++.

    Report of sprint 7
  209. Sprint 6 5 points delivered out of 5

    lib-c reads STL, so that 3D-printing models can be dropped into the demos; the fastapi project starts and serves lib-c over HTTP.

    Report of sprint 6
  210. Sprint 5 5 points delivered out of 5

    on the 3D topology page, a visitor turns a mesh coloured by its curvature and reads its invariants, computed by the C++ code compiled to WebAssembly.

    Report of sprint 5
  211. Sprint 4 8 points delivered out of 8

    projects/topologie/ computes in C++ the invariants of a mesh (components, boundaries, orientability, genus) and its discrete curvature, reusing lib-c's reader.

    Report of sprint 4
  212. Sprint 3 5 points delivered out of 6

    lib-c reads OBJ and PLY without memory leaks, and a visitor tries it on the project page, compiled to WebAssembly.

    Report of sprint 3
  213. Sprint 2 5 points delivered out of 5

    a recruiter opens the page of any project; the C library has its skeleton tested on three operating systems.

    Report of sprint 2
  214. Sprint 1 8 points delivered out of 8

    the portfolio is online, bilingual, tested and deployed automatically.

    Report of sprint 1

Metrics

Velocity

Story points delivered in each sprint; the dashed line is the average.

0 2 4 6 8 10 Sprint 1: 8 points delivered out of 8 committed Sprint 2: 5 points delivered out of 5 committed Sprint 3: 5 points delivered out of 6 committed Sprint 4: 8 points delivered out of 8 committed Sprint 5: 5 points delivered out of 5 committed Sprint 6: 5 points delivered out of 5 committed Sprint 7: 5 points delivered out of 5 committed Sprint 8: 6 points delivered out of 6 committed Sprint 9: 5 points delivered out of 5 committed Sprint 10: 5 points delivered out of 5 committed Sprint 11: 5 points delivered out of 5 committed Sprint 12: 3 points delivered out of 3 committed Sprint 13: 5 points delivered out of 5 committed Sprint 14: 3 points delivered out of 3 committed Sprint 15: 5 points delivered out of 5 committed Sprint 16: 7 points delivered out of 7 committed Sprint 17: 5 points delivered out of 5 committed Sprint 18: 3 points delivered out of 3 committed Sprint 19: 5 points delivered out of 5 committed Sprint 20: 5 points delivered out of 5 committed Sprint 21: 3 points delivered out of 3 committed Sprint 22: 3 points delivered out of 3 committed Sprint 23: 5 points delivered out of 5 committed Sprint 24: 5 points delivered out of 5 committed Sprint 25: 3 points delivered out of 3 committed Sprint 26: 6 points delivered out of 6 committed Sprint 27: 7 points delivered out of 7 committed Sprint 28: 6 points delivered out of 6 committed Sprint 29: 7 points delivered out of 7 committed Sprint 30: 7 points delivered out of 7 committed Sprint 31: 6 points delivered out of 6 committed Sprint 32: 8 points delivered out of 8 committed Sprint 33: 5 points delivered out of 5 committed Sprint 34: 3 points delivered out of 3 committed Sprint 35: 5 points delivered out of 5 committed Sprint 36: 4 points delivered out of 4 committed Sprint 37: 4 points delivered out of 4 committed Sprint 38: 4 points delivered out of 4 committed Sprint 39: 3 points delivered out of 3 committed Sprint 40: 6 points delivered out of 6 committed Sprint 41: 5 points delivered out of 5 committed Sprint 42: 2 points delivered out of 2 committed Sprint 43: 1 points delivered out of 1 committed Sprint 44: 2 points delivered out of 2 committed Sprint 45: 5 points delivered out of 5 committed Sprint 46: 5 points delivered out of 5 committed Sprint 47: 5 points delivered out of 5 committed Sprint 48: 3 points delivered out of 3 committed Sprint 49: 3 points delivered out of 3 committed Sprint 50: 5 points delivered out of 5 committed Sprint 51: 3 points delivered out of 3 committed Sprint 52: 3 points delivered out of 3 committed Sprint 53: 3 points delivered out of 3 committed Sprint 54: 3 points delivered out of 3 committed Sprint 55: 3 points delivered out of 3 committed Sprint 56: 3 points delivered out of 3 committed Sprint 57: 3 points delivered out of 3 committed Sprint 58: 3 points delivered out of 3 committed Sprint 59: 3 points delivered out of 3 committed Sprint 60: 3 points delivered out of 3 committed Sprint 61: 5 points delivered out of 5 committed Sprint 62: 5 points delivered out of 5 committed Sprint 63: 5 points delivered out of 5 committed Sprint 64: 3 points delivered out of 3 committed Sprint 65: 3 points delivered out of 3 committed Sprint 66: 3 points delivered out of 3 committed Sprint 67: 3 points delivered out of 3 committed Sprint 68: 3 points delivered out of 3 committed Sprint 69: 3 points delivered out of 3 committed Sprint 70: 3 points delivered out of 3 committed Sprint 71: 3 points delivered out of 3 committed Sprint 72: 3 points delivered out of 3 committed Sprint 73: 3 points delivered out of 3 committed Sprint 74: 3 points delivered out of 3 committed Sprint 75: 3 points delivered out of 3 committed Sprint 76: 3 points delivered out of 3 committed Sprint 77: 3 points delivered out of 3 committed Sprint 78: 3 points delivered out of 3 committed Sprint 79: 3 points delivered out of 3 committed Sprint 80: 5 points delivered out of 5 committed Sprint 81: 3 points delivered out of 3 committed Sprint 82: 5 points delivered out of 5 committed Sprint 83: 3 points delivered out of 3 committed Sprint 84: 3 points delivered out of 3 committed Sprint 85: 4 points delivered out of 4 committed Sprint 86: 5 points delivered out of 5 committed Sprint 87: 3 points delivered out of 3 committed Sprint 88: 3 points delivered out of 3 committed Sprint 89: 3 points delivered out of 3 committed Sprint 90: 5 points delivered out of 5 committed Sprint 91: 3 points delivered out of 3 committed Sprint 92: 3 points delivered out of 3 committed Sprint 93: 3 points delivered out of 3 committed Sprint 94: 5 points delivered out of 5 committed Sprint 95: 5 points delivered out of 5 committed Sprint 96: 3 points delivered out of 3 committed Sprint 97: 3 points delivered out of 3 committed Sprint 98: 3 points delivered out of 3 committed Sprint 99: 5 points delivered out of 5 committed Sprint 100: 3 points delivered out of 3 committed Sprint 101: 5 points delivered out of 5 committed Sprint 102: 5 points delivered out of 5 committed Sprint 103: 3 points delivered out of 3 committed Sprint 104: 5 points delivered out of 5 committed Sprint 105: 5 points delivered out of 5 committed Sprint 106: 3 points delivered out of 3 committed Sprint 107: 3 points delivered out of 3 committed Sprint 108: 3 points delivered out of 3 committed Sprint 109: 5 points delivered out of 5 committed Sprint 110: 3 points delivered out of 3 committed Sprint 111: 5 points delivered out of 5 committed Sprint 112: 3 points delivered out of 3 committed Sprint 113: 3 points delivered out of 3 committed Sprint 114: 3 points delivered out of 3 committed Sprint 115: 4 points delivered out of 4 committed Sprint 116: 5 points delivered out of 5 committed Sprint 117: 5 points delivered out of 5 committed Sprint 118: 3 points delivered out of 3 committed Sprint 119: 5 points delivered out of 5 committed Sprint 120: 5 points delivered out of 5 committed Sprint 121: 5 points delivered out of 5 committed Sprint 122: 3 points delivered out of 3 committed Sprint 123: 3 points delivered out of 3 committed Sprint 124: 5 points delivered out of 5 committed Sprint 125: 3 points delivered out of 3 committed Sprint 126: 3 points delivered out of 3 committed Sprint 127: 3 points delivered out of 3 committed Sprint 128: 3 points delivered out of 3 committed Sprint 129: 5 points delivered out of 5 committed Sprint 130: 5 points delivered out of 5 committed Sprint 131: 5 points delivered out of 5 committed Sprint 132: 3 points delivered out of 3 committed Sprint 133: 3 points delivered out of 3 committed Sprint 134: 5 points delivered out of 5 committed Sprint 135: 3 points delivered out of 3 committed Sprint 136: 5 points delivered out of 5 committed Sprint 137: 5 points delivered out of 5 committed Sprint 138: 5 points delivered out of 5 committed Sprint 139: 3 points delivered out of 3 committed Sprint 140: 5 points delivered out of 5 committed Sprint 141: 3 points delivered out of 3 committed Sprint 142: 4 points delivered out of 4 committed Sprint 143: 4 points delivered out of 4 committed Sprint 144: 5 points delivered out of 5 committed Sprint 145: 5 points delivered out of 5 committed Sprint 146: 5 points delivered out of 6 committed Sprint 147: 5 points delivered out of 5 committed Sprint 148: 5 points delivered out of 5 committed Sprint 149: 5 points delivered out of 5 committed Sprint 150: 4 points delivered out of 4 committed Sprint 151: 2 points delivered out of 4 committed Sprint 152: 3 points delivered out of 3 committed Sprint 153: 5 points delivered out of 5 committed Sprint 154: 3 points delivered out of 3 committed Sprint 155: 5 points delivered out of 5 committed Sprint 156: 4 points delivered out of 5 committed Sprint 157: 5 points delivered out of 5 committed Sprint 158: 5 points delivered out of 5 committed Sprint 159: 5 points delivered out of 5 committed Sprint 160: 6 points delivered out of 6 committed Sprint 161: 3 points delivered out of 3 committed Sprint 162: 5 points delivered out of 5 committed Sprint 163: 4 points delivered out of 4 committed Sprint 164: 6 points delivered out of 6 committed Sprint 165: 4 points delivered out of 4 committed Sprint 166: 6 points delivered out of 6 committed Sprint 167: 6 points delivered out of 6 committed Sprint 168: 5 points delivered out of 5 committed Sprint 169: 4 points delivered out of 4 committed Sprint 170: 4 points delivered out of 4 committed Sprint 171: 6 points delivered out of 6 committed Sprint 172: 5 points delivered out of 5 committed Sprint 173: 4 points delivered out of 4 committed Sprint 174: 5 points delivered out of 5 committed Sprint 175: 6 points delivered out of 6 committed Sprint 176: 6 points delivered out of 6 committed Sprint 177: 6 points delivered out of 6 committed Sprint 178: 6 points delivered out of 6 committed Sprint 179: 9 points delivered out of 9 committed Sprint 180: 4 points delivered out of 4 committed Sprint 181: 5 points delivered out of 5 committed Sprint 182: 5 points delivered out of 5 committed Sprint 183: 5 points delivered out of 5 committed Sprint 184: 4 points delivered out of 4 committed Sprint 185: 4 points delivered out of 5 committed Sprint 186: 5 points delivered out of 5 committed Sprint 187: 4 points delivered out of 5 committed Sprint 188: 3 points delivered out of 4 committed Sprint 189: 4 points delivered out of 4 committed Sprint 190: 5 points delivered out of 5 committed Sprint 191: 7 points delivered out of 7 committed Sprint 192: 4 points delivered out of 4 committed Sprint 193: 5 points delivered out of 5 committed Sprint 194: 5 points delivered out of 5 committed Sprint 195: 7 points delivered out of 7 committed Sprint 196: 0 points delivered out of 4 committed Sprint 197: 0 points delivered out of 5 committed Sprint 198: 0 points delivered out of 6 committed Sprint 199: 0 points delivered out of 5 committed Sprint 200: 0 points delivered out of 5 committed Sprint 201: 0 points delivered out of 6 committed Sprint 202: 0 points delivered out of 5 committed Sprint 203: 0 points delivered out of 3 committed Sprint 204: 0 points delivered out of 6 committed Sprint 205: 0 points delivered out of 5 committed Sprint 206: 0 points delivered out of 5 committed Sprint 207: 0 points delivered out of 4 committed Sprint 208: 0 points delivered out of 5 committed Sprint 209: 0 points delivered out of 4 committed Sprint 210: 0 points delivered out of 4 committed Sprint 211: 0 points delivered out of 5 committed Sprint 212: 0 points delivered out of 4 committed Sprint 213: 0 points delivered out of 4 committed Sprint 214: 0 points delivered out of 6 committed Sprint 215: 0 points delivered out of 5 committed Sprint 216: 0 points delivered out of 4 committed Sprint 217: 0 points delivered out of 4 committed Sprint 218: 0 points delivered out of 4 committed Sprint 219: 0 points delivered out of 6 committed average 4.1 15101520253035404550556065707580859095100105110115120125130135140145150155160165170175180185190195200205210215219
Show the data
SprintCommittedDelivered
188
255
365
488
555
655
755
866
955
1055
1155
1233
1355
1433
1555
1677
1755
1833
1955
2055
2133
2233
2355
2455
2533
2666
2777
2866
2977
3077
3166
3288
3355
3433
3555
3644
3744
3844
3933
4066
4155
4222
4311
4422
4555
4655
4755
4833
4933
5055
5133
5233
5333
5433
5533
5633
5733
5833
5933
6033
6155
6255
6355
6433
6533
6633
6733
6833
6933
7033
7133
7233
7333
7433
7533
7633
7733
7833
7933
8055
8133
8255
8333
8433
8544
8655
8733
8833
8933
9055
9133
9233
9333
9455
9555
9633
9733
9833
9955
10033
10155
10255
10333
10455
10555
10633
10733
10833
10955
11033
11155
11233
11333
11433
11544
11655
11755
11833
11955
12055
12155
12233
12333
12455
12533
12633
12733
12833
12955
13055
13155
13233
13333
13455
13533
13655
13755
13855
13933
14055
14133
14244
14344
14455
14555
14665
14755
14855
14955
15044
15142
15233
15355
15433
15555
15654
15755
15855
15955
16066
16133
16255
16344
16466
16544
16666
16766
16855
16944
17044
17166
17255
17344
17455
17566
17666
17766
17866
17999
18044
18155
18255
18355
18444
18554
18655
18754
18843
18944
19055
19177
19244
19355
19455
19577
19640
19750
19860
19950
20050
20160
20250
20330
20460
20550
20650
20740
20850
20940
21040
21150
21240
21340
21460
21550
21640
21740
21840
21960

Burndown

Story points left to deliver after each sprint, from the sprint files: a story counts for the sprint that delivers it, history does not move. The curve starts at 177 points; each scope added after delivery (D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D58, D61, D62, D63, D64, D65, D66, D67, D68, D69, D70, D71, D72, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D89, D90, D91, D92, D93, D94, D95, D96) is a step at the sprint where it arrives, up to today's 956 points. Every change of scope (D25, D31, D32, D45, D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D58, D59, D61, D62, D63, D64, D65, D66, D67, D68, D69, D70, D71, D72, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D89, D90, D91, D92, D93, D94, D95, D96, D97) is told by risk R2.

  • Actually left
  • Pace planned at the start
  • +9 points after sprint 34 (D46, D47)
  • +8 points after sprint 36 (D48)
  • +9 points after sprint 38 (D49)
  • +5 points after sprint 40 (D50)
  • +2 points after sprint 41 (D51)
  • +1 points after sprint 42 (D52)
  • +2 points after sprint 43 (D53)
  • +26 points after sprint 44 (D54)
  • +9 points after sprint 50 (D55)
  • +24 points after sprint 53 (D56)
  • +5 points after sprint 55 (D57)
  • +10 points after sprint 60 (D58)
  • +6 points after sprint 63 (D61)
  • +12 points after sprint 65 (D62)
  • +18 points after sprint 69 (D63)
  • +6 points after sprint 76 (D64)
  • +20 points after sprint 78 (D65)
  • +8 points after sprint 81 (D66)
  • +9 points after sprint 84 (D67)
  • +3 points after sprint 85 (D68)
  • +19 points after sprint 89 (D69, D70)
  • +54 points after sprint 94 (D71)
  • +8 points after sprint 97 (D72)
  • +5 points after sprint 100 (D73)
  • +9 points after sprint 101 (D74)
  • +14 points after sprint 102 (D75)
  • +3 points after sprint 108 (D76)
  • +15 points after sprint 114 (D77, D78)
  • +62 points after sprint 121 (D79)
  • +34 points after sprint 134 (D80, D81)
  • +29 points after sprint 144 (D82)
  • +24 points after sprint 151 (D83)
  • +21 points after sprint 156 (D84)
  • +5 points after sprint 160 (D85)
  • +10 points after sprint 162 (D86)
  • +60 points after sprint 164 (D87)
  • +8 points after sprint 167 (D88)
  • +9 points after sprint 172 (D89)
  • +9 points after sprint 178 (D90, D91)
  • +5 points after sprint 180 (D92)
  • +24 points after sprint 181 (D93)
  • +13 points after sprint 186 (D94)
  • +21 points after sprint 187 (D95)
  • +126 points after sprint 192 (D96)
0 50 100 150 200 +9 points after sprint 34 (D46, D47)+8 points after sprint 36 (D48)+9 points after sprint 38 (D49)+5 points after sprint 40 (D50)+2 points after sprint 41 (D51)+1 points after sprint 42 (D52)+2 points after sprint 43 (D53)+26 points after sprint 44 (D54)+9 points after sprint 50 (D55)+24 points after sprint 53 (D56)+5 points after sprint 55 (D57)+10 points after sprint 60 (D58)+6 points after sprint 63 (D61)+12 points after sprint 65 (D62)+18 points after sprint 69 (D63)+6 points after sprint 76 (D64)+20 points after sprint 78 (D65)+8 points after sprint 81 (D66)+9 points after sprint 84 (D67)+3 points after sprint 85 (D68)+19 points after sprint 89 (D69, D70)+54 points after sprint 94 (D71)+8 points after sprint 97 (D72)+5 points after sprint 100 (D73)+9 points after sprint 101 (D74)+14 points after sprint 102 (D75)+3 points after sprint 108 (D76)+15 points after sprint 114 (D77, D78)+62 points after sprint 121 (D79)+34 points after sprint 134 (D80, D81)+29 points after sprint 144 (D82)+24 points after sprint 151 (D83)+21 points after sprint 156 (D84)+5 points after sprint 160 (D85)+10 points after sprint 162 (D86)+60 points after sprint 164 (D87)+8 points after sprint 167 (D88)+9 points after sprint 172 (D89)+9 points after sprint 178 (D90, D91)+5 points after sprint 180 (D92)+24 points after sprint 181 (D93)+13 points after sprint 186 (D94)+21 points after sprint 187 (D95)+126 points after sprint 192 (D96) 121 left After sprint 0: 177 points left After sprint 1: 169 points left After sprint 2: 164 points left After sprint 3: 159 points left After sprint 4: 151 points left After sprint 5: 146 points left After sprint 6: 141 points left After sprint 7: 136 points left After sprint 8: 130 points left After sprint 9: 125 points left After sprint 10: 120 points left After sprint 11: 115 points left After sprint 12: 112 points left After sprint 13: 107 points left After sprint 14: 104 points left After sprint 15: 99 points left After sprint 16: 92 points left After sprint 17: 87 points left After sprint 18: 84 points left After sprint 19: 79 points left After sprint 20: 74 points left After sprint 21: 71 points left After sprint 22: 68 points left After sprint 23: 63 points left After sprint 24: 58 points left After sprint 25: 55 points left After sprint 26: 49 points left After sprint 27: 42 points left After sprint 28: 36 points left After sprint 29: 29 points left After sprint 30: 22 points left After sprint 31: 16 points left After sprint 32: 8 points left After sprint 33: 3 points left After sprint 34: 9 points left After sprint 35: 4 points left After sprint 36: 8 points left After sprint 37: 4 points left After sprint 38: 9 points left After sprint 39: 6 points left After sprint 40: 5 points left After sprint 41: 2 points left After sprint 42: 1 points left After sprint 43: 2 points left After sprint 44: 26 points left After sprint 45: 21 points left After sprint 46: 16 points left After sprint 47: 11 points left After sprint 48: 8 points left After sprint 49: 5 points left After sprint 50: 9 points left After sprint 51: 6 points left After sprint 52: 3 points left After sprint 53: 24 points left After sprint 54: 21 points left After sprint 55: 23 points left After sprint 56: 20 points left After sprint 57: 17 points left After sprint 58: 14 points left After sprint 59: 11 points left After sprint 60: 18 points left After sprint 61: 13 points left After sprint 62: 8 points left After sprint 63: 9 points left After sprint 64: 6 points left After sprint 65: 15 points left After sprint 66: 12 points left After sprint 67: 9 points left After sprint 68: 6 points left After sprint 69: 21 points left After sprint 70: 18 points left After sprint 71: 15 points left After sprint 72: 12 points left After sprint 73: 9 points left After sprint 74: 6 points left After sprint 75: 3 points left After sprint 76: 6 points left After sprint 77: 3 points left After sprint 78: 20 points left After sprint 79: 17 points left After sprint 80: 12 points left After sprint 81: 17 points left After sprint 82: 12 points left After sprint 83: 9 points left After sprint 84: 15 points left After sprint 85: 14 points left After sprint 86: 9 points left After sprint 87: 6 points left After sprint 88: 3 points left After sprint 89: 19 points left After sprint 90: 14 points left After sprint 91: 11 points left After sprint 92: 8 points left After sprint 93: 5 points left After sprint 94: 54 points left After sprint 95: 49 points left After sprint 96: 46 points left After sprint 97: 51 points left After sprint 98: 48 points left After sprint 99: 43 points left After sprint 100: 45 points left After sprint 101: 49 points left After sprint 102: 58 points left After sprint 103: 55 points left After sprint 104: 50 points left After sprint 105: 45 points left After sprint 106: 42 points left After sprint 107: 39 points left After sprint 108: 39 points left After sprint 109: 34 points left After sprint 110: 31 points left After sprint 111: 26 points left After sprint 112: 23 points left After sprint 113: 20 points left After sprint 114: 32 points left After sprint 115: 28 points left After sprint 116: 23 points left After sprint 117: 18 points left After sprint 118: 15 points left After sprint 119: 10 points left After sprint 120: 5 points left After sprint 121: 62 points left After sprint 122: 59 points left After sprint 123: 56 points left After sprint 124: 51 points left After sprint 125: 48 points left After sprint 126: 45 points left After sprint 127: 42 points left After sprint 128: 39 points left After sprint 129: 34 points left After sprint 130: 29 points left After sprint 131: 24 points left After sprint 132: 21 points left After sprint 133: 18 points left After sprint 134: 47 points left After sprint 135: 44 points left After sprint 136: 39 points left After sprint 137: 34 points left After sprint 138: 29 points left After sprint 139: 26 points left After sprint 140: 21 points left After sprint 141: 18 points left After sprint 142: 14 points left After sprint 143: 10 points left After sprint 144: 34 points left After sprint 145: 29 points left After sprint 146: 24 points left After sprint 147: 19 points left After sprint 148: 14 points left After sprint 149: 9 points left After sprint 150: 5 points left After sprint 151: 27 points left After sprint 152: 24 points left After sprint 153: 19 points left After sprint 154: 16 points left After sprint 155: 11 points left After sprint 156: 28 points left After sprint 157: 23 points left After sprint 158: 18 points left After sprint 159: 13 points left After sprint 160: 12 points left After sprint 161: 9 points left After sprint 162: 14 points left After sprint 163: 10 points left After sprint 164: 64 points left After sprint 165: 60 points left After sprint 166: 54 points left After sprint 167: 56 points left After sprint 168: 51 points left After sprint 169: 47 points left After sprint 170: 43 points left After sprint 171: 37 points left After sprint 172: 41 points left After sprint 173: 37 points left After sprint 174: 32 points left After sprint 175: 26 points left After sprint 176: 20 points left After sprint 177: 14 points left After sprint 178: 17 points left After sprint 179: 8 points left After sprint 180: 9 points left After sprint 181: 28 points left After sprint 182: 23 points left After sprint 183: 18 points left After sprint 184: 14 points left After sprint 185: 10 points left After sprint 186: 18 points left After sprint 187: 35 points left After sprint 188: 32 points left After sprint 189: 28 points left After sprint 190: 23 points left After sprint 191: 16 points left After sprint 192: 138 points left After sprint 193: 133 points left After sprint 194: 128 points left After sprint 195: 121 points left 05101520253035404550556065707580859095100105110115120125130135140145150155160165170175180185190195200205210215219
Show the data
SprintLeft
0177
1169
2164
3159
4151
5146
6141
7136
8130
9125
10120
11115
12112
13107
14104
1599
1692
1787
1884
1979
2074
2171
2268
2363
2458
2555
2649
2742
2836
2929
3022
3116
328
333
349
354
368
374
389
396
405
412
421
432
4426
4521
4616
4711
488
495
509
516
523
5324
5421
5523
5620
5717
5814
5911
6018
6113
628
639
646
6515
6612
679
686
6921
7018
7115
7212
739
746
753
766
773
7820
7917
8012
8117
8212
839
8415
8514
869
876
883
8919
9014
9111
928
935
9454
9549
9646
9751
9848
9943
10045
10149
10258
10355
10450
10545
10642
10739
10839
10934
11031
11126
11223
11320
11432
11528
11623
11718
11815
11910
1205
12162
12259
12356
12451
12548
12645
12742
12839
12934
13029
13124
13221
13318
13447
13544
13639
13734
13829
13926
14021
14118
14214
14310
14434
14529
14624
14719
14814
1499
1505
15127
15224
15319
15416
15511
15628
15723
15818
15913
16012
1619
16214
16310
16464
16560
16654
16756
16851
16947
17043
17137
17241
17337
17432
17526
17620
17714
17817
1798
1809
18128
18223
18318
18414
18510
18618
18735
18832
18928
19023
19116
192138
193133
194128
195121

Estimation and capacity

Two scales: projects in points (3, 5, 8 or 13, revised when the scope changes, as the roguelike went from 8 to 13 points), stories in points from 1 to 4. Observed capacity: 4.1 story points per sprint on average, from 1 to 8; each sprint's commitment follows that capacity, and 592 of the 593 committed points were delivered. At the planned pace, the 121 points left fit in sprints 146 to 219.

Retrospectives

At the end of each sprint, three questions: what worked, what the AI got wrong, what to change in the next sprint. Charles writes the answers in the sprint's file, and the decisions they lead to go to DECISIONS.md. The sprint files

Risk register

Risk register, sortable by number, probability, impact or score
Risk Matrix Mitigation Outcome
R1 Claude quota too low 3 2 6 Short sessions, precise CLAUDE.md, temporary upgrade to Max Did not happen badly enough to block: every sprint was delivered; each session resumes from the sprint and decision files.
R2 Scope creep 3 3 9 MoSCoW prioritisation, project order revised with Charles (6 October), Spring and ASP.NET dropped from scope, "Could" projects can be dropped Happened, and was steered: Spring and ASP.NET dropped (D25), two games added (D31, D32), Bootstrap replaced by the ray tracer (D45), then, after delivery, the Ada crossroads interface, the technology roles and the topology height (D46, D47: 9 more points, from 170 to 179), then persistence and the Reeb graph (D48: 8 more points, 187 in all), then the persistence review, the computing times and the G-maps course (D49: 9 more points, 196 in all), then extended persistence (D50: 5 more points, 201 in all), then lib-c's edge counting (D51: 2 more points, 203 in all), then the viewer's orientation gizmo (D52: 1 more point, 204 in all), then the plain-language summaries (D53: 2 more points, 206 in all), then a tactical RPG in the style of Dofus (D54: 26 more points, 232 in all, six sprints), then, after Charles tried the game, the launcher, the server choice and character creation redone (D55: 9 more points, 241 in all, three sprints), then, after a second questionnaire, elements, effects, classes, progression, equipment and world (D56: 24 more points, 265 in all, eight sprints), then an architecture diagram on each project page (D57: 5 more points, 270 in all, one sprint), then a documentation assistant with RAG, Osmose paused for it (D58: 10 more points, 280 in all, two sprints), then the diagrams moved ahead of Osmose's return (D59, no extra points), then, after Charles tried the game, characteristics, spells and inventory redone (D61: 6 more points, 286 in all, two sprints), then, after a second try, elements, spells, deck, menus and movement (D62: 12 more points, 298 in all, four sprints), then a world in zones of 5 × 5 maps, a map seen from the sky and eight monster families (D63: 18 more points, 316 in all, six sprints), then, after Charles tried the world, larger maps, the current round's timeline and the right-click fight (D64: 6 more points, 322 in all, two sprints), then, after a try of sprint 78, the feedback, dungeons, the locksmith's trade, the proximity chat and quests (D65: 20 more points, 342 in all, six sprints), then, after a try of sprint 80, the deck and moving from one map to the next (D66: 8 more points, 350 in all, two sprints), then clearer maps and real dungeons (D67: 8 more points, 358 in all, two sprints), then the icons, a discreet chat, movable windows and the end of the fight (D68: 4 more points, 362 in all, one sprint), then monster families that each play differently, with passives, leaps, swaps and weaknesses (D69: 17 more points, 379 in all, five sprints), then, after a try of sprint 93, character names, the test account and the windows in a fight (D70: 2 more points, 381 in all, within sprint 94), then the sequel designed by the game designer: loot and initiative, Shards, gathering and crafting trades, playing together and the end of chapter 1 (D71: 52 more points, 433 in all, fourteen sprints), then item icons, the trades window and a resource every 5 levels (D72: 6 more points, 439 in all, two sprints), then life carried between fights and the baker (D73: 7 more points, 446 in all, one sprint), then a thread through the quests, Clairval on twelve maps, the tutorial and a minimap (D74: 13 more points, 459 in all, three sprints), then, after trying sprint 102, a harvest one can see, a real living village and following a quest on screen (D75: 11 more points, 470 in all, three sprints), then a trade for every piece of equipment, with the jeweller and the cobbler (D76: 5 more points, 475 in all, one sprint), then, after a try of build 1.0.92, consumables out of fights only, a livelier village, the quest journal and item cards with their right click (D77: 13 more points, 488 in all, three sprints), then life in a heart and the turns left on the spells (D78: 1 more point, 489 in all, within sprint 115), then the sequel designed by the game designer after playing together: finishing multiplayer, friends and travel, a slice of chapter 2 and guilds (D79: 62 more points, 551 in all, sixteen sprints), then the talent tree shared by all classes, with compound elements, Light and Darkness, support and the glyph left by a missed spell (D80: 32 more points, 583 in all, eight sprints), then, after the playtest of sprint 144, a friends window and a menus panel in the style of Dofus and Lightning taken out of the spells' filter without its talent (D81: 2 more points, 585 in all, within sprint 144), then the talent tree as a real tree, from Charles's answers to the game designer's questionnaire: a trunk, element pairs, play styles, its window and its explanations (D82: 29 more points, 614 in all, six sprints), then what follows S151, designed by the game designer: contracts, a bestiary, achievements, a guild that serves, the 45-60 groundwork, specialisations and the Ice braid (D83: 40 more points, 654 in all, ten sprints), then, after S156, a graphic overhaul of the interface: a theme and icons with depth, the achievements and guild windows with the guild's applications, achievements that reward, in quest chains and in dungeons (D84: 21 more points, 675 in all, four sprints), then, after measuring the 45-60 groundwork, diminishing returns on element points before the specialisations (D85: 5 more points, 680 in all, one sprint), then, at Charles's request, spell and trade icons in relief and a talent tree that reads like a tree (D86: 20 more points, 700 in all, four sprints), then, after playing 1.0.157, items and quests in relief, an illustrated world map, a bestiary as a hunting log, a zoomable tree and a less blocky world (D87: 48 more points, 748 in all, eleven sprints instead of two), then, after 1.0.162, a world map photographed in the game and monsters' portraits (D88: 10 more points, 758 in all, two sprints), then, after 1.0.165, a complete test character, players' names on hover, the Characteristics tab without scrolling and regions with natural shapes (D89: 9 more points, 767 in all, two sprints), then, after 1.0.172, relief in the forests, nicer puddles and map edges without rings (D90: 6 more points, 773 in all, one sprint), then, in the same sprint, a mount seen and faster, and no healing at full life (D91: 3 more points, 776 in all, no extra sprint), then, after 1.0.176, readable inventory tabs, sorting, picking an item from its slot and a pet that follows (D92: 5 more points, 781 in all, one sprint), then the Elements and Path pages in place of the Talents page, with three tiers at 30, 50 and 100, element pairs and trios one creates and a path per class, replacing D83's specialisations and Ice braid (D93: 21 more points, 802 in all, three sprints), each time with Charles and in sprints of their own, delaying nothing but guilds, moved from S137 to S145 (D80), and what D83 planned, moved from S157-S161 to S161-S165 (D84), then from S162-S165 to S163-S166 (D85), then from S163-S166 to S167-S170 (D86), then from S167-S170 to S176-S179 (D87), then from S176-S179 to S178-S181 (D88), then from S178-S181 to S180-S183 (D89), then from S179-S183 to S180-S184 (D90), then from S181-S184 to S182-S185 (D92), before D93 replaced those four sprints with seven, S182-S188. Then, after 1.0.183, compounds that consume their parents, twelve spells per trio and a new Elements page (D94: 13 more points, 815 in all, three sprints), moving the paths from S187-S188 to S190-S191. Then a specialisation tree that divides, 3 choices at 30, 2 at 50 and an evolution at 100, instead of 3 straight lines (D95: 8 more points, 823 in all, two sprints), turning the paths into S190-S193. Then ten classes instead of three, 220 in all and a last rank that divides, in three waves with a decision by Charles at 4, 7 and 10 classes (D96: 123 more points, 946 in all, 26 sprints, and 15 points of margin left unplanned), replacing the Mage planned in S193. Then 3 points in S195 to bring the Core suite down to 20,000 fights, which S193 did not hold (D97: 949 in all, no new sprint, 12 points of margin).
R3 Incorrect or unsafe AI code 3 3 9 Tests first, check that a test fails when the code is broken, fuzzing, SPARK proof, blocking CI, REVIEW.md Happened in every sprint, without reaching the site: the defects found by tests and reviews are in the REVIEW.md files, with their fixes.
R4 No GPU available 2 2 4 OpenCL and CPU versions, precomputed results Partly happened: no NVIDIA OpenCL under WSL (PoCL instead), CUDA through Docker on the GTX 1660, measurements committed for the GPU-less CI.
R5 Free hosting offers change 2 2 4 Static demos, optional back ends Did not happen: the site is static on GitHub Pages; the APIs only run locally with Docker Compose.
R6 Personal data or secrets published 1 3 3 Automatic CI scan, environment variables The scan blocked a deployment over a public npm maintainer's address in a package-lock; no private data was published.
R7 Build failure on one OS 2 2 4 Linux, Windows, macOS CI matrix from the first commit Happened several times (MSVC, Qt on Windows, Clang on macOS), always caught by the matrix before going live.
R8 Lack of time or burnout 2 3 6 Two buffer sprints, one project in progress at a time Did not happen: the two spare sprints were not needed. Sprints 35 to 219 are not delays: they are requests added after delivery, estimated and planned like the others (D46, D47, D48, D49, D50, D51, D52, D53, D54, D55, D56, D57, D58, D59, D61, D62, D63, D64, D65, D66, D67, D68, D69, D70, D71, D72, D73, D74, D75, D76, D77, D78, D79, D80, D81, D82, D83, D84, D85, D86, D87, D88, D89, D90, D91, D92, D93, D94, D95, D96, D97).
R9 3D models without distribution rights 2 3 6 Synthetic meshes generated by code; third-party models shown locally only Avoided: only meshes generated by code are published; models found online stay in local demos.

Matrix: probability from left to right, impact from bottom to top; the circled cell is the risk's. Click a header (No., probability, impact, score) to sort, again to reverse.

GenAI workflow

  1. Specification
  2. Reviewed architecture plan
  3. Tests first, generation in small steps
  4. Check that a test fails when the code is broken
  5. Review of every diff
  6. Green CI on Linux, Windows and macOS before merge
  7. REVIEW.md and DECISIONS.md updated

Definition of Done

  • Code reviewed, diff by diff
  • Unit and integration tests green
  • Green CI on Linux, Windows and macOS when compiled
  • README, REVIEW.md and DECISIONS.md up to date
  • Texts in French and English
  • Demo deployed and tested on mobile