Development plan
The end-to-end scenarios as they are played today on the development branch, with their checkpoints in order. This page follows the plan and changes with it; the Scenario sheets give the last result of each one. The plan of a published release stays on the Release plan page.
IMT Crisis default game scenario
Game scenario: « Default Game Scenario », 4 dates · 8 DATA steps, 22 planned sensors; one r-iosemit Next step moves the whole scenario forward by one date and sends 8 launchDataSetOnTopic (r-iota has no step button). The 4 dates are played:
| Date | Timeline item | Moving values |
|---|---|---|
| 20:48:48 | message « Energy company social media » (Margaret Parker): Due to high electricity demand, there is a risk of power outages in your area. | Rapsodee gas 113.9 |
| 20:59:57 | planned actuality « Analyze the gas leak at Rapsodee » | Rapsodee gas 643.5 → 656.5 (threshold 650) → CEP rule R1 of the gas sensor |
| 21:09:04 | actuality « Presence detected at Iomega » | Main Entrance intrusion → true → CEP rule R1 of the intrusion sensor |
| 21:27:02 | actuality « Alert detected at Iomega » | Iomega radar → true → reflex event, drone photo analysed by the LLM |
Checkpoints, in order:
| # | Action | Expected result |
|---|---|---|
| 0 | start-up: Projects workspace → IMT Albi Crisis → Load → « create a specific collaboration ? » No → OK | « Use-case successfully loaded !!! »; « Project List »: IMT Albi Crisis, 12 launchers |
| 0b | r-ioga « Edit project », read only, Cancel | IA Provider Albert, IA Model Mistral-small-3-2-24b-instruct-2506 |
| 1 | r-ioda (launcher), Context And Partners tab | Active filter only; 69 active nodes: Albi, École des mines and its buildings (Gymnase, Rapsodee, ICA, Incubator, Iomega, Main Building), 25 people (Emily Hernandez and Oliver Taylor with phone, watch, GPS, temperature, heart rate), dogs Rocky and Tyson, SDIS 81, Police station Albi, sensors, Gas boiler, 4 cameras, 3 pedestrian networks; the diagram is larger than the screen |
| 2 | r-ioplay (launcher) | World map, satellite view centred on the École: green footprint, coloured buildings, triangular purple area to the south-east; 42 markers; view lock padlock |
| 3 | r-iosemit (launcher), STORY tab | « Default Game Scenario »; Story settings: Current timeline, 23/09/2026 20:44:44 → 21:44:44, French; Story guidance « Burglars try to create a diversion… Rapsodee… Iomega… IT equipment »; 1 social message; Invented story present; Story narrator (FR) |
| 4 | r-iosemit TIMELINE → Next step (date 1) | log: 8 launchDataSetOnTopic, 2 calls to albert.api.etalab.gouv.fr in HTTP 200 |
| 5 | r-iota | live: 1 ALERTS TO VALIDATE, FIND SOLUTION(S) greyed out, yellow status rgb(255, 238, 50) |
| 6 | OPEN DETAILS | « Problems found », 1 item: Power outages / Risk / « Prevents Power outages »; SIMILAR TYPE Risk; NEAREST INSTANCE « Risk of power outage (near: 0.95) »; Delete / Validate |
| 7 | Validate → Save | 1 SURE ALERTS, FIND SOLUTION(S) enabled, red status; risk « ⚠ 70 % » south-west of the site |
| 8 | r-iosemit Next step (date 2), then r-iota | log: 8 launchDataSetOnTopic, CEP rule R1 of the gas sensor (node …_rule_R1_…, edges Impacts Rapsodee and Near); r-iota live: 2 SURE ALERTS |
| 9 | OPEN DETAILS | as expected: 2 items, Delete only — Power outages / Risk / « Prevents Power outages » / « The sentence explicitly states that due to high electricity demand… »; Analyze the gas leak at Rapsodee / Toxic_Gas_Alert / « Treats Analyze the gas leak »; then Save (state unchanged) |
| 10 | r-iosemit Next step (date 3), then r-iota | log: 8 launchDataSetOnTopic, no LLM; r-iota live: 5 SURE ALERTS, « Reflex Events Detected !!! », Cameras panel « None camera » (camera off: expected); 5 red pulsars rgb(231, 30, 30): Prevents Power outages, Treats Analyze the gas leak, Contact the center manager, Treats Presence detected, Secured the site |
| 11 | OPEN DETAILS | as expected: 5 items, Delete only — Power outages / Risk; Analyze the gas leak at Rapsodee / Toxic_Gas_Alert; Presence detected at Iomega / Intrusion_Alert × 3 (Contact the center manager, Treats Presence detected, Secured the site); close without change (name « Presence detected » before the RIOSUITE-1232 fix) |
| 12 | r-iosemit Next step (date 4), then r-iota | r-iosemit: end of the timeline, Next step greyed out; log: 8 launchDataSetOnTopic, 2 Albert calls in 200; r-iota: 6 SURE ALERTS, drone photo thumbnail « Wait picture analysis (IA from ALBERT)... » |
| 13 | wait for the end of the analysis (1 to 2 min) | 5 SURE ALERTS + 2 ALERTS TO VALIDATE; thumbnail: Retry and « 2 problems found !!! »; yellow circle in the green area |
| 14 | click the number « 2 » of the thumbnail | « Problems to resolve from 'Alert detected at Iomega' » (photo, Open button), 2 items Risk produced by the LLM (names vary): Drone Collision (NEAREST « None (near: 0) ») and Loss of Control (NEAREST « Risk of power outage (near: 0.75) ») |
| 15 | Drone Collision: PROBLEM TYPE pencil → « Edit Type » → Actuality → Save | PROBLEM TYPE Actuality; SIMILAR TYPE Intrusion_Alert (Damage); NEAREST INSTANCE « Unidentified flying object (near: 0.85) » |
| 16 | Validate on Drone Collision, Delete on the other problem, Save | 6 SURE ALERTS; thumbnail « 1 problems found !!! »; 6th red pulsar « Treats Drone Collision »; Drone Collision marker in the green area |
| 17 | OPEN DETAILS, then Save | as expected: 6 items, Delete only — the 5 of step 11 + Drone Collision / Intrusion_Alert / « Treats Drone Collision » with the photo and « The image shows a drone in flight… » |
| 18 | FIND SOLUTION(S) → Advanced options strategy = YES → Find | preselected strategy Drools - Crisis Satisfaction Strategy, « Deduce and run » at YES |
| 19 | advanced options window: scroll through it entirely | as expected, as is: title « Drools - Simple Satisfaction Strategy »; FIRST_GOOD_SOLUTION, max 30; Actualities: Analyze the gas leak at Rapsodee → Confirm gas leak; Presence detected → Contact the center manager, Secured the site, Arrest the suspects, Arrest the suspects with the surveillance dog (all checked); Potentialities: Power outages (Emerging Risk), Preventive and Corrective → Relieve the electricity grid (Electric vehicle charging circuit breaker), Activate another power source (Circuit breaker for all circuits except IT and communications, Start the generator); 5 objectives not prioritized (Treats Analyze the gas leak, Contact the center manager, Secured the site, Treats Presence detected, Relieve the electricity grid); Implementation Potentiality empty; PERSON_FIRST; Insert move tasks NO; Default solver; Drone Collision absent |
| 20 | Deduce | the deduction starts (« At least one actor provides each functions for each plans ») |
| 21 | — | OK since 2026-10-15 (RIOSUITE-1232 fixed): no « Error » dialog, straight to « Starting supervision... » (~50 s after Deduce). Behaviour before the fix, to be treated as a failure if it comes back: « Error » dialog « … have no 'Impacts' relationship to any resource: Presence detected (objective(s): 'Contact the center manager', 'Treats Presence detected', 'Secured the site') » — the CEP intrusion actuality only has Near, not Impacts → Iomega. Workaround: add the edge by hand, redo steps 18 to 20 |
| 22 | wait for the supervision (~20 s) | log: deduceSolutionASync, deploySolution, selectSolution, superviseSolution in 200, 0 ERROR; Event_Flow condition Creates("Power outages"); cockpit « Supervision active », blue status, objectives 0/6, « 0 achieved tasks on 23 expected (total: 25) »; « Started at » = time of the day (a transient « 1970-01-01 » display is not a failure) |
| 23 | r-iota, Process tab (since 2026-10-15 the tabs are only icons: Process = account_tree, cockpit = speed) | Start → Nominal SubTask #f5b041 → CE flow → corrective « Circuit breaker for all circuits except IT and communications » neutral → End |
| 24 | r-iosemit: TIMELINE, then DATA | TIMELINE at the end of the timeline; DATA → Sensors: 22 sensors, « Connected » |
| 25 | DATA → Potentialities Management → refresh | before refresh: « No active emerging or intrinsic potentiality »; after: Power outages (EMERGING) at 70 %, actuality to activate « Power outage » |
| 26 | Power outages slider to 100 % | « 100 % », « Power outage » activated; log [EVENT-FLOW] Nominal SubTask_… : rule fired, launching recovery Circuit breaker for all circuits… |
| 27 | r-iota, without reloading | graph: the corrective turns orange #f5b041; map: as expected, the 100 % risk became an actuality — Power outages risk frozen and no longer drawn, « Power outage » actuality (red beacon) with « Treats Power outage » and its blue pulsar rgb(50, 101, 255); the remaining « ⚠ 60 % » label is the probability of Drone Collision |
| 28 | backend log, over the whole run | 0 Impossible to find scope, 0 TEMP-DEBUG, 0 hexString can not be null; only ERROR allowed: getRiopiotContext (camera off) |
IMT Crisis conditions scenario: mute, deletion and exclusive conditions
Game scenario: « Default Game Scenario » modified without saving it (no click on the floppy disk); the mute and the deletions only apply to the playback session.
| # | Action | Expected result |
|---|---|---|
| 0 | start-up with IMT Albi Crisis | « Use-case successfully loaded !!! »; « Project List »: IMT Albi Crisis |
| 1 | r-iosemit (launcher), TIMELINE tab | Default Game Scenario, 23/09/2026 20:44:44 → 21:44:44, header « 4 dates · 8 DATA steps »; 4 cards: message Energy company social media (20:48:48), Analyze the gas leak at Rapsodee (20:59:57), Presence detected at Iomega (21:09:04), Alert detected at Iomega (21:27:02) |
| 2 | 🔈 icon (aria-label="Mute") of the Energy company social media card | card greyed out and struck through (class muted), 🔇 icon « Muted: kept on the timeline but not played », hollow dot on the timeline; « 4 dates · 8 DATA steps · 1 muted » |
| 3 | click Presence detected at Iomega → « Planned actuality » dialog (Activation, « Actualities produced by the same CEP rule are scheduled and removed together ») → Remove scheduled transition | card removed; « 3 dates · 6 DATA steps · 1 muted » |
| 4 | same for Alert detected at Iomega (the dialog also shows the reflex photo « Photo-Cam-Radar-iomega ») | card removed; « 2 dates · 4 DATA steps · 1 muted »; no refusal |
| 5 | Next step (date 1, muted message) | log: [PLAYBACK] checkpoint … before step 0, 4 launchDataSetOnTopic in 200, no LLM call (neither Albert, OpenAI nor Mistral), no trace of the message text, 0 ERROR; the only ML lines are WARN ChatGPTPredictEngine: Not implemented !!! (ordinary sensor events) |
| 6 | Next step (date 2) | log: 4 launchDataSetOnTopic in 200, CEP rule R1 of the gas sensor (…_rule_R1_…, edges Near and Impacts to Rapsodee), 0 ERROR; r-iosemit: Next step greyed out (end of the timeline) |
| 7 | r-iota (launcher) | bundle ng-version 22.x; 1 SURE ALERTS, FIND SOLUTION(S) enabled, red status; a single pulsar « Treats Analyze the gas leak »; neither Power outages nor Iomega alert |
| 8 | OPEN DETAILS → Save | « Problems found », 1 item: Analyze the gas leak at Rapsodee / Toxic_Gas_Alert / « Treats Analyze the gas leak »; state unchanged after Save |
| 9 | FIND SOLUTION(S), default settings → Find | Drools - Crisis Satisfaction Strategy, entries at NO (Prioritize objectives, Include forecast, Advanced options, Insert move tasks), Deduce and run at YES; log: deduceSolutionASync, deploySolution, selectSolution, superviseSolution in 200; 0 ERROR, 0 ConcurrentModificationException, 0 hexString; « Deduction, deployment and supervision completed »; cockpit « Supervision active », 0/1, 11 tasks |
| 10 | r-iota, Process tab, zoom out twice | Start → Confirm gas leak → two CE flows to Cut off the local gas valve and Cut off the school gas supply (never chained), two otherwise flows Confirm gas leak → End, no __bypass__ flow. Local valve branch: Grab the toolbox, Report the damage, Event report to the center team → End (order varies from one deduction to the next; on 2026-10-16: Grab → Report → Event report → End). School supply branch: Secure equipment → Repair gas installation → End; Retrieve information about the event → Validate the message… → Send a message to colleagues → End. No join between the two branches (Report the damage only depends on the local valve branch, since the fix of defect no. 2, checked on 2026-10-16) |
| 11 | r-ioga to-do list | 11 tasks; Confirm gas leak started (orange); the two cut-offs planned on the same slot |
| 12 | Confirm gas leak → Accept → CONFIRMED GAS LEAK = Yes and repairable → Done | log: [SEQUENCE-FLOW-CONDITION] Confirm gas leak → local gas valve true, → school gas supply false, → End (otherwise) true and false; engine: enter in node: Cut off the local gas valve, no enter in node: Cut off the school gas supply; to-do list: Confirm gas leak green, local valve orange, school supply grey; r-iota: Confirm gas leak node green #31964e, local valve orange #f5b041, objectives 0/1, blue pulsar rgb(50, 101, 255) (an objective is only reached once its whole task graph is done, since 2026-10-15; « 1/1, orange pulsar » at this point would be a regression) |
| 13 | validate in the to-do list every started task (Accept → Done) | the 4 tasks of the local valve branch done (order set by the deduction, on 2026-10-16: Cut off the local gas valve, Grab the toolbox, Report the damage, Event report to the center team); the 6 tasks of the school supply branch never started; engine End of join, end of execution; 0 ERROR; r-iota « No alert detected !!! », green status, RESOLVED / TARGET 1 / 1, orange pulsar rgb(245, 176, 65) |
| 14 | r-iota → Delete positive deviations (add_circle) → Delete → refresh | a single « Positive Deviation Analysis » dialog: OBJECTIVES Treats Analyze the gas leak and ACTUALITIES Analyze the gas leak at Rapsodee, both at YES; deleteModels 200; log supervision of … ended: processes ended and no ACTIVE objective left (~10 s); after refresh: no pulsar, no add_circle button, « No alert detected », green status |
| 15 | r-ioda (launcher), Objectives tab | Active filter: only « Default Objectives Manager »; with Freeze: only the frozen nodes of the use case (« Load new configuration », « Equipment signal off »); neither the gas objective nor the gas actuality, active or frozen |
IMT Crisis: tasks on the field, real or simulated (r-io4U, r-ioga, Move, Wait)
Game scenario: « Default Game Scenario » modified without saving it; the changes of the TASKS tab, however, are saved in the open scenario (simulations).
| # | Action | Expected result |
|---|---|---|
| 0 | start-up with IMT Albi Crisis | « Project List »: IMT Albi Crisis, r-iosemit and r-iota launchers |
| 1 | r-iosemit, TIMELINE tab: mute the Energy company social media message, Presence detected at Iomega and Alert detected at Iomega | « 4 dates · 8 DATA steps · 3 muted » |
| 2 | Next step × 2 | gas CEP rule R1; 0 ERROR |
| 3 | r-iota | 1 SURE ALERTS, FIND SOLUTION(S) enabled |
| 4 | FIND SOLUTION(S): Crisis, Insert move tasks = YES, Insert wait tasks = YES → Find | « Deduction, deployment and supervision completed »; 16 tasks, including 4 Move and 1 Wait; log Simulated moves … 4 generated |
| 5 | r-iosemit, TASKS tab | 16 rows: actor with its icon, status (Not started, Waiting for acceptance…), Expected / Simulated sub-tables with KPIL icons; Simulated = middle of the expected interval; tooltip on On |
| 6 | output of Confirm gas leak → Yes and repairable; Move of Emily → another path, ×8 | value kept (edited); Move: expected 613 m / 446 s, simulated 891 m / 646 s |
| 7 | r-io4U: Move to Confirm gas leak → Accept | 2D/3D preview of the path and the ghost; after Accept, position followed live (ahead/late, on/off the path) |
| 8 | arrival | real path replayed, field values 652 s / 809 m in red (> +20 %), Done enabled → Done |
| 9 | r-io4U: Confirm gas leak → Accept | expected values before, field values after, output filled with Yes and repairable; Done → repair branch |
| 10 | r-io4U: Cut off the local gas valve → Accept, sheet open | Done greyed out, then the values arrive in the open sheet (~0.5 s) and Done becomes enabled → Done |
| 11 | r-ioga to-do list | same tasks, actor (person, good or group) with photo and tooltip; Wait of 470 s of Alice before Send a message to colleagues (branch not taken: stays planned) |
| 12 | r-ioga: Grab the toolbox → Accept | no call to r-iosemit from r-ioga; field values received by event; Done enabled → Done |
| 13 | r-iosemit TASKS: uncheck On on Report the damage; r-ioga: Accept | no simulated value; duration measured, remaining value to type; Done enabled once typed → Done |
| 14 | Event report to the center team → Accept → Done | end of the process; TASKS: every task of the branch Done |
| 15 | r-iota + log | « No alert detected », green status; 0 ERROR (except PhilipsHue) |
Exception_Flow on an implementation risk
Checkpoints, in order (wait 15 to 25 s after each step before reading r-ioda, r-iota or r-ioga):
| # | Check | Expected |
|---|---|---|
| 0 | start-up | IMT Albi Healthcare in « Project List », 12 launchers |
| 1 | r-iocal | « Treat Routine checkup of James Miller » Planned in « My default planning » |
| 2 | r-ioda, Objectives tab (Active filter only); r-iota | « Treat Routine checkup of James Miller », « Routine checkup of James Miller -impacts: Iomega- », « My default planning »; r-iota: 1 SURE ALERTS |
| 3 | r-iosemit, 1 step (« sensor not started » → Yes); r-ioda | « Danger of Electrical Failure » and 3 risks at probability: 0 appear: « Risk of software unavailability », « … for Blood Test Request Function », « … for Preparation of equipment Function » |
| 4 | 2nd step; r-ioda | the 3 risks at 0.33. The parent risk is renamed by the rule « Risk of software unavailability at École des mines d'Albi-Carmaux » |
| 5 | 3rd step; r-ioda; log | the 3 risks at 0.66; exactly 3 POST launchDataSetOnTopic, 0 ERROR |
| 6 | r-iota FIND SOLUTION(S), preselected strategy, Deduce and run = YES | strategy Drools - Healthcare Satisfaction Strategy; « total: 8 »; 1 POST selectSolution; 3 edge_exception_flow_* edges published; graph: Blood test Request in #f5b041, the 3 correctives neutral |
| 7 | r-ioga, to-do list | Total tasks 8; Blood test Request orange rgb(236, 131, 47), the 7 others grey rgb(122, 117, 117) |
| 8 | 4th step; r-ioda | the risks disappear (frozen); « Sofware unavailable », « Healthcare software unavailability for Blood Test Request Function », « Healthcare sofware unavailability for Preparation of equipment Function » appear |
| 9 | r-iota map | 2 blue pulsars rgb(50, 101, 255): « Treat Routine checkup of James Miller » and « Sofware unavailable » |
| 10 | r-iota graph, without reloading | Blood test Request #d50000; Paper Record and White Board Centralisation #f5b041; Edition by Handwritten note neutral |
| 11 | r-ioga, to-do list | Blood test Request red rgb(218, 45, 45); Paper Record and White Board Centralisation orange rgb(236, 131, 47), started (-> ???); the 5 others grey |
| 12 | backend log | [EXCEPTION-FLOW] Blood test Request … 2 rule(s) became true while running; Impossible to find scope 0; TEMP-DEBUG 0; a single ERROR allowed: HumantaskSOAPImpl « Nominal task replaced by recovery » (the normal replacement of the task, logged as an error) |
Crisis Event Show Parc des Princes: three successive incidents
Checkpoints, in order (wait ~15 s after each Next step before reading r-iota):
| # | Check | Expected |
|---|---|---|
| 0 | start-up | Crisis Event Show Parc des Princes in « Project List », Collaborative/Crisis domains, 9 extensions, 12 launchers |
| 1 | r-ioda, Context And Partners tab | the diagram shows Stade du Parc des Princes, Parc des Princes, Paris and the staff with their roles (Marc Dubois, Camille Leroy, Lucas Bernard…) |
| 2 | r-ioplay, MAP → World, then the stadium 3D view (last entry of the selector, « Stade du Parc des Princes › 3D view ») | r-ioplay opens on the « Parc des Princes » plan; World: Paris, stadium to the south-west; 3D: the stadium model (WebGL canvas) and the MOVE / LOOK / ALT / ZOOM panel |
| 3 | r-iota | No alert detected !!!, green status rgb(59, 180, 46) |
| 4 | r-iosemit: Full Scenario, 3 dates · 6 DATA steps; Next step | r-iota 2 SURE ALERTS, red status; 2 red pulsars rgb(231, 30, 30) on Gate B, titles Treats Door Breakdown and Treats Crowd Orientation; OPEN DETAILS: 2 items Door Breakdown on Gate B (Alert) with these two objectives |
| 5 | FIND SOLUTION(S), preselected strategy Drools - Crisis Satisfaction Strategy, Find | « Deduction, deployment and supervision completed. »; total: 10; blue status and pulsars rgb(50, 101, 255); graph: 5 tasks #f5b041 in parallel (Identify the fault, Ask an agent to check if an IT problem…, Check the status of the ticketing system, Ask an agent to check the technique on door, Request door closure) |
| 6 | r-ioga To Do List | Total tasks 10; each started task (orange) is clickable: « To accept » dialog → Accept → « Accepted » → Done; after Confirm door closure, the 4 reorientation tasks turn orange; r-iota graph live (green #31964e / orange) |
| 7 | r-iota after the 10 tasks | orange pulsars rgb(245, 176, 65) on Gate B (the status dot is green), « RESOLVED / TARGET 2 / 2 », « 10 achieved tasks on 10 expected »; Delete positive deviations button present |
| 8 | Delete positive deviations → Delete → Refresh | objectives deleted, pulsars and button gone; log supervision of … ended: processes ended and no ACTIVE objective left |
| 9 | r-ioda, Objectives tab, Active filter (after reloading) | no more Door Breakdown on Gate B actuality; only Default Objectives Manager nodes remain (one per deduction played: expected) |
| 10 | Next step (16:17:44) | r-iota 2 SURE ALERTS: Broken Seat number 11 with Treats Spectateur and with Treats Broken Seat; red pulsars in the centre of the stadium |
| 11 | FIND SOLUTION(S) → Find; to-do list | total: 7 = 7 new tasks (Total tasks 17); all completed; orange pulsars |
| 12 | Delete positive deviations | objectives deleted, and Broken Seat number 11 deleted |
| 13 | Next step (16:36:02) | r-iota 1 SURE ALERTS: Metro line breakdown at Aera 2 with Treats Metro line breakdown |
| 14 | FIND SOLUTION(S) → Find; to-do list; Delete positive deviations | total: 6 (Total tasks 23); orange pulsar; the dialog lists the objective and the actuality; after Delete: « No alert detected », r-ioda without any of the three actualities (three Default Objectives Manager, one per deduction: expected) |
| 15 | backend log | 0 ERROR; 3 POST selectSolution; 0 hexString can not be null |
Generate a use case from a document (Tarbes Crisis)
Checkpoints, in order:
| # | Check | Expected |
|---|---|---|
| 0 | start-up | « Use-case successfully loaded !!! »; Tarbes Crisis in « Project List », 12 launchers; log EmbeddingStoreIngestor « Finished storing 5 text segments » |
| 1 | r-ioga « Edit project » → IA & RAG Knowledge documents, then Cancel | IA Provider Openai, IA Model Gpt-5.5; RAG base: Tarbes_Crisis_Case_Study_Context_Form.pdf (506.9 KB); note with the here link to /r-ioga/webjars/app/share/assets/docs/Template_Case_Study_Context_Form.pdf |
| 2 | forms (reading, outside the r-io suite applications) | blank: 3 pages (city, sites, goods, sensors, roles; context; contacts); Tarbes: TARBES, Town Hall site, Main Building and Parking P1 (GeoJSON), SS_MB_1 SMOKE sensor fixed on Main Building, Alice Johnson (Security agent) and Emma Thomson (Town hall secretary) acting on the Town Hall |
| 3 | r-ioda Context And Partners | empty model |
| 4 | AI Creator Assistant | sentence « Your RAG is activated… here » |
| 5 | here → Find Context and Partners | checked by default: Sensor, Territory, Person, Role, Building; « Use Web Research For Unknown Roles » at NO |
| 6 | Find | « LLM Reasoning » Completed in less than 60 s, 11 agents DONE; summary: Sensor 1, Person 2, Building 1, Territory 2, Role 2, Function ≥ 3, Model nodes 13; api.openai.com calls all in 200; ModelController COMPLETE (file log) |
| 7 | preview | 13 nodes, 12 edges: SS_MB_1 Fixed_Onto Main Building Fixed_Onto Town Hall Fixed_Onto TARBES; Alice Johnson and Emma Thomson Acts_On Town Hall, Has Security agent / Town hall secretary; Town hall secretary Provides its functions (names vary) |
| 8 | Push (ACTIVE) → « Recommandation » → Yes | synchronisations in 200, 0 ERROR, no « Could not find source or target territory »; Active: 6 nodes, 5 edges, labels « Role: Security agent » / « Role: Town hall secretary » under the people; Freeze: Town hall secretary and its functions |
| 9 | r-iosemit | « No game scenario yet »; Create a scenario « Smoke in the Town Hall » → Save |
| 10 | TIMELINE → Add an actuality or a message… | Sensor actualities 1: Fire detected at Main Building, 📍 Main Building, 📡 SS_MB_1, SS_MB_1 R1 · false → true; date 13:00 → Save → « 1 dates · 2 DATA steps »; save the scenario (save icon) |
| 11 | DATA tab | SS_MB_1, DEDICATED - SMOKE, Connected, CREATED, dataset smoke_in_the_town_hall_ss_mb_1 |
| 12 | Next step | startSensor and 2 launchDataSetOnTopic in 200; « events received 2 »; log [DEDUCTION-PUBLISH] of an actuality …_rule_R1_… Near the clone of node_5918a7c4… |
| 13 | r-iota | 1 SURE ALERTS, red status rgb(248, 7, 7), red pulsar rgb(231, 30, 30) « Treats Fire detected », fire on Main Building; OPEN DETAILS: Fire detected at Main Building / Fire_Alert / Treats Fire detected → Cancel (validate nothing) |
| 14 | r-iota FIND SOLUTION(S), preselected strategy Drools - Crisis Satisfaction Strategy, Find | « Deduction, deployment and supervision completed. » in ~10 s; total: 2; blue status and pulsar rgb(50, 101, 255) « Treats Fire detected »; graph Start → Activate fire alarm → Use a fire extinguisher on the fire → End |
| 15 | deduction log | [DEBUG-ACTOR-ELIGIBILITY] task='Activate fire alarm' requiredActorTypes=[Security agent] → afterRanker=[Alice Johnson]; actingResourceIds = the two people of the document |
| 16 | r-ioga To Do List | Total tasks 2; Activate fire alarm (2 min) then Use a fire extinguisher on the fire (5 min), actor Alice Johnson [Security agent]; each one: click → Accept → Done; the second starts when the first is done |
| 17 | r-iota after the 2 tasks | orange pulsar rgb(245, 176, 65) « Treats Fire detected », green status dot; dashboard « RESOLVED / TARGET 1 / 1 »; graph: both tasks green |
| 18 | capture of the final process | export of the SVG of the r-iota graph (app-solution-graph) on a dark background, readable labels, two green tasks |
| 19 | backend log | 0 ERROR |
Hello world: create a use case from scratch (Fire at Albi Cathedral)
Checkpoints, in order:
| # | Check | Expected |
|---|---|---|
| 0 | r-ioga, Create project → Crisis, name Fire at Albi Cathedral, Clear all references, valid AI provider | the project appears in « Project List », empty REFERENCES column, 12 launchers. In edit mode, the name field is read only |
| 1 | r-ioda Context And Partners, AI Creator Territory « Albi » (City), then Building « Albi Cathedral » | 2 nodes with their photo (no empty icon); building « Sainte-Cecile Cathedral of Albi » |
| 2 | right click on the cathedral → Fixed_Onto → Albi | edge created; log [DEDUCTION-PUBLISH] create edge … Fixed_Onto … created=true |
| 2b | r-ioplay, launched from « Project List » | the map opens on the outline of the Albi municipality; zooming on the old town (bank of the Tarn), the cathedral footprint matches the building of the satellite view (shape colours change from one run to the next) (≈ 43.9283 / 2.1426) |
| 3 | AI Creator Role « Firefighter », Push, Freeze recommendation → Yes | Freeze filter only: Firefighter and ~6 functions, including Extinguish fires; no 500 on inventRoles |
| 4 | Provides → Function « Confirm Fire », Radio output Fire Confirmed (Yes/No); right click on Extinguish fires → Needs to Confirm Fire, with the short condition @Fire Confirmed[Confirm Fire] == "Yes" (expression only, without boolean …;) | @ autocompletion offers @Fire Confirmed[Confirm Fire] output · radio; the condition is read back unchanged when the edge is reopened; the edge carries a CE badge and hovering it shows the code |
| 5 | AI Creator Person, 1 person, Firefighter role, located in Albi; open the person, rename it Owen Hartley for a man, Olivia Hartley for a woman (same login); the dialog title follows the new name, REQUIRED INFORMATION → ACTIONS → Generate corresponding user → Save, then Save the person | 1 active person; « Register … as user » dialog: login ohartley, default password displayed; the person has an Assigned_To edge to a User node (checkable in Neo4j); the Generate button is then disabled |
| 6 | Objectives tab, Freeze only, Fire_Alert palette « Fire in Albi Cathedral », Generate associated objective | frozen objective « Treats Fire in Albi Cathedral », linked by Treats; no « Refactore 2026 » exception |
| 7 | objective → Broken relations Satisfies → Add → Extinguish fires | the Extinguish fires line is present when reopened |
| 8 | AI Creator Sensor Dedicated / Smoke / event type « Fire In Albi Cathedral » / Fixed Onto Asset cathedral; renamed « Smoke sensor of Albi Cathedral » | CONFIGURATION: MAX threshold referencing « Fire in Albi Cathedral (FREEZE, Fire_Alert) »; push in 200 (no SensorModelsPopulateInterceptor NPE) |
| 9 | r-iota | No alert detected, green status |
| 10 | r-iosemit Start sensor, then 4 × Play selected dataset step by step | values 0, 0, 0, 1; r-iota: 1 SURE ALERTS, red pulsar rgb(231, 30, 30) |
| 11 | r-iota FIND SOLUTION(S), preselected strategy, Find | strategy Drools - Crisis Satisfaction Strategy; banner « Deduction, deployment and supervision completed. »; blue status, objective 0/1, « total: 2 »; graph Start → Confirm Fire → Extinguish fires → End and an otherwise flow Confirm Fire → End; no « Not implemented » at deployment |
| 11b | r-iota execution graph (2nd tab), hover the CE badges of the two flows leaving Confirm Fire | flow to Extinguish fires: @Fire Confirmed[Confirm Fire] == "Yes" (copied as is); …__otherwise flow to End: comment // otherwise: … (property releasesObjectives): followed by // - Treats Fire in Albi Cathedral, then boolean __condition_result__c = @Fire Confirmed[Confirm Fire] == "Yes"; boolean condition = __condition_result__c; boolean otherwise = !condition; otherwise; |
| 12 | r-io4U (web, signed in as ohartley) → menu → Tasks; empty before the deduction; after point 11, the tasks arrive live (without refreshing) → check Confirm Fire → form titled « Confirm Fire » (subtitle « Output data of the task », explanatory note), Fire Confirmed = Yes, Done | Confirm Fire (orange) and Extinguish fires (grey) assigned to Owen/Olivia; POST …/humantask/updateTask in 200; log [SEQUENCE-FLOW-CONDITION] … Extinguish fires : true and … EndEvent : false; Extinguish fires turns orange live |
| 13 | r-io4U: check Extinguish fires (no output) → « Process Ended!!! Thanks For your help !!! »; r-iota | both tasks green; r-iota No alert detected, green status; the fire area (ACTIVE objective and alert, FIRE effect of Fire_Alert) stays drawn on the cathedral: expected, the EXPECTED clone of the objective is gone but the active objective waits for the expert validation |
| 13b | r-iota, toolbar → Delete positive deviations (add_circle icon, visible while positive markers remain) → Delete → Refresh | the « Positive Deviation Analysis » dialog lists Objectives: Treats Fire in Albi Cathedral and Actualities: Fire in Albi Cathedral at Sainte-Cecile Cathedral of Albi, both at YES; after Delete + Refresh: no more path.area-fire, the cathedral is drawn again as a building, the button disappears; log supervision of <solution> ended: processes ended and no ACTIVE objective left (at the end of the process, before the validation: goes on: 1 ACTIVE objective(s) left); solution selected=false, no EXPECTED_FREEZE node; the frozen alert and objective stay FREEZE |
| 13c | r-iosemit Stop selected dataset then 4 steps → r-iota FIND SOLUTION(S) → r-ioga to-do list (administrator; the new task also arrives live in r-io4U): new Confirm Fire = No, dialog titled with the task name and an explanatory note → r-iota → Delete positive deviations | new sure alert (red pulsar); second solution deployed; [SEQUENCE-FLOW-CONDITION] Confirm Fire -> Extinguish fires : false and to EndEvent: true; [OTHERWISE-RELEASE] … expected twin released: ['Treats Fire in Albi Cathedral', 'Fire in Albi Cathedral at …']; the second Extinguish fires stays grey; r-iota « No alert detected », orange pulsar; after the validation, supervision closed as in 13b |
| 14 | r-ioga « Project List » → Export project (.zip) → Yes | archive Fire at Albi Cathedral.zip (~1.9 MB, 17 entries): 7 models (project, 3 active, 3 freezed_*), CEP rule of the sensor, game scenario and dataset, distance/time matrix, photos |
| 15 | restart (empty base), Import ZIP of the archive | POST …/projects/importProject in 200; log « project freeze models loaded: 3 » and « project active models loaded: 3 »; the project reappears in « Project List » with 12 launchers; r-ioda Context And Partners: Albi, the cathedral, the 2 firefighters, the sensor. A WARN « CEP rules not generated while the project is loaded » is normal. The import restores the state at export time (active alert if exported at the end of the scenario) |
Henri at the barbecue: a forking scenario, three endings
Checkpoints, in order. r-iosemit and r-iota stay open without reloading. The times are those of the reference runs, within a few seconds.
| # | Check | Expected |
|---|---|---|
| 0 | start-up with Barbecue | the project appears in « Project List »; its APPLICATIONS column opens r-iosemit and r-iota in the project context |
| 1 | r-iosemit, « Henri Barbecue Story » scenario, TIMELINE mode | timeline from 08:59:28 to 09:05:53; nested forks Martinez barbecue state, Martinez swimming pool state, Henri may have bradycardia, and their tracks; RUNS shows the three delivered runs; no error when opening |
| 2 | RUNS: delete all runs; Restart; r-iota, radar button, Supervision off, Save; r-iosemit Play with Continuous, ×1440, Deduction and deployment time = Given 10 s, Simulated actors do their tasks on their own, and the name of run 1 | 08:59:48 Martinez swimming pool Open; 09:00:19 Martinez barbecue On; 6 m and 10 m areas in the scene; Paul at the back of the garden at 09:00:55 |
| 3 | run 1 goes on | 09:02:54 Henri burns ACTIVE, Henri On fire; 09:02:55 fork → Martinez barbecue On; 09:03:12 Henri may drown 99 %, Henri Normal; 09:03:13 fork → Martinez swimming pool Open |
| 4 | run 1 goes on | 09:03:22 Henri drowns, Henri Wet; Henri may have bradycardia 20 % at 09:03:53, fork → Henri may have bradycardia at 09:03:54, 80 % at 09:04:03; 09:04:13 Henri has bradycardia, Henri Bradycardia |
| 5 | end of run 1 | 09:04:53 Henri may die 90 %; 09:05:23 Henri dies, Henri Dead; no deduction, no task; run recorded with 18 moments |
| 6 | Restart; r-iota Supervision on, Auto mode on (move and wait tasks, consolidation, forecasts checked), Extrapolate the trajectories to anticipate the dangers unchecked, Save; Play with the name of run 2 | no reaction before the contact: without extrapolation, the burn risk is only seen at 1.5 m; 09:02:54 Henri burns; fork → Martinez barbecue On; 09:03:02 deduction Henri burns + Henri may drown |
| 7 | run 2 goes on | 09:03:22 Solution_1_FIRST deployed, Move to Martinez swimming pool by Julie (not Paul); 09:03:22 Henri drowns; 09:03:29 new deduction, 09:03:43 adapted solution, Close a pool Ignored |
| 8 | run 2 goes on | 09:03:56 Julie at the edge of the pool; Rescue a child from drowning accepted at 09:04:00; the bradycardia may come before the rescue (09:04:13 Henri has bradycardia); 09:04:29 Rescue done, Henri out of the water, Henri drowns GONE; fork → Otherwise |
| 9 | end of run 2 | Perform a cardiac massage accepted at 09:04:33; 09:05:35 massage done, rate at 77.8, Henri Normal, Henri has bradycardia GONE; Henri alive at the end, barbecue On |
| 10 | Restart; r-iota Extrapolate the trajectories to anticipate the dangers checked, Save; Play with the name of run 3 | 09:01:34 Henri may burn 66 %, Henri outside the area; 09:01:42 deduction; 09:01:54 solution deployed, Move to Martinez barbecue by Paul |
| 11 | run 3 goes on | 09:02:28 Paul at the barbecue; Extinguish a barbecue done at 09:02:37; barbecue Off, risk gone, solution GONE, before the burn of 09:02:54 |
| 12 | end of run 3 | 09:02:55 fork → Otherwise; Henri burns never active, no drowning; end: Henri ACTIVE, barbecue Off |
| 13 | RUNS mode | the three runs, under their original names, with their settings as badges (Supervision, Extrapolation, Auto, Moves), their moments, the Deduction column (Given 10 s) |
| 14 | Compare on run 3 (A) and run 1 (B) | two lanes of moments and a table by date; Solution_1_FIRST and the barbecue tasks in A only, Henri burns at 09:02:54 in B only, in bold; filters by kind of moment and Differences only |
| 15 | Replay on a run with different settings | red warning, Setting / Now / In this run table, Cancel (nothing changes) and Change the settings and replay (settings written, the story starts from zero, new run « (replay) ») buttons |
| 16 | Restart | Henri back in the house, no alert, the story plays again without a restart of the server |
| 17 | backend log | 0 without collaboration, 0 sensor_node is null, 0 oscillation on node, 0 not converged |
Orleans Flood Crisis: Loire flood at the George-V bridge (without forecast, with forecasts, adapting the running process)
Checkpoints, in order. The profile is restarted and the use case loaded again before each act:
| # | Check | Expected |
|---|---|---|
| 0 | start-up | « Use-case successfully loaded !!! »; Orleans Flood Crisis in « Project List », 12 launchers; r-iosemit: « Loire Flood At Orleans » scenario, 20 dates · 40 DATA steps, Forecasts on · 4 |
| Act 1 | without forecast | |
| 1 | r-iosemit: click 📉 Forecasts on · 4 → « Forecasts off · 4 », « 4 muted »; timeline up to 18:00 (step 6); r-iota, Forecast tab « No forecast published yet », OPEN DETAILS → Cancel | 1 SURE ALERTS, red status; problem George-V bridge flood risk at George-V bridge (Risk), objective Prevent the George-V bridge flood risk; danger zone around the bridge |
| 2 | FIND SOLUTION(S): Include forecast NO, Advanced options strategy YES → Find; the strategy box keeps its Include forecast at NO, Preventive and Corrective checked → Deduce (without the advanced options, Find is enough) | « Solution found » 27 task(s): Start → Nominal SubTask → End, Event_Flow (CE) → Secure the surroundings of a threatened bridge |
| 3 | Deploy and supervise | « Deduction, deployment and supervision completed. », total: 27, 0 / 2, blue status |
| 4 | r-iosemit, TASKS tab, AUTO box of the header | Stop a tram line then Close a bridge to traffic (2 h 30) run on their own, the clock passes 19:00 and 20:00 |
| 5 | switch at 20:00 | log [EVENT-FLOW] … rule fired then [TAKEOVER]; r-iota « Objective 'Prevent the George-V bridge flood risk' replaced by 'Secure the George-V bridge threatened by the flood': the risk became the actuality », 0 / 1; to-do list: preventive tasks not started « Abandoned · », orange waits « not yet known (projected) » |
| 6 | timeline up to 16/11 00:00 (step 18) | Inspect 00:00 → 02:00, Reopen → 03:00, Announce → 03:30; r-iota 1 / 1, « 2 achieved tasks on 2 expected (total: 27) + 17 corrective », No alert detected, green status |
| Act 2 | with forecasts (profile restarted, use case loaded again) | |
| 7 | timeline up to 18:00; r-iota, Forecast tab | « Loire flood at George-V bridge may appear (100 % of the forecasts) » at 14/11 20:00; « Time available before … 2 h » |
| 8 | FIND SOLUTION(S), Include forecast YES (default), Find (~2 min) | « Incomplete process. … the preventive procedure would end its main task at 14/11 20:47, after the projected appearance at 14/11 20:00. Only the corrective procedure is possible. »; « 17 task(s), 14/11 20:00 → 15/11 21:30 » |
| 9 | Deploy and supervise | « Solution deployed and supervised. », total: 17, 0 / 1 |
| 10 | AUTO; timeline up to 15/11 06:00 (step 12); r-ioga to-do list | Wait until the flood has receded « 21:00 -> 15/11 22:00 (projected) »; Wait until a bridge can be inspected « -> 15/11 23:30 (projected) » |
| 11 | timeline up to 16/11 00:00 | end 16/11 03:30; 1 / 1, « 17 achieved tasks on 17 expected (total: 17) », No alert detected |
| Act 3 | adapting the running process (profile restarted, use case loaded again) | |
| 12 | timeline up to 06:00 (step 2); r-iota | « No alert detected », « 1 watched risk · below 80 % » (5 %), Foreseen by the forecasts card « 14/11 21:00 · George-V bridge flood risk ↑ 80 % » |
| 13 | Find solution(s) on the forecast, Advanced options YES → Find; strategy: Corrective unchecked → Deduce; Deploy and supervise; AUTO unchecked | « The deadlines projected by the forecasts are held. … (10 task(s), 14/11 06:02 → 14/11 18:17) »; total: 10, 0 / 1 |
| 14 | timeline up to 12:00 (step 4) | Foreseen solution box: « Actuality « Loire flood at George-V bridge » foreseen … from 2026-11-14 20:00 …, not treated by the supervised solution (urgency 0.67: it appears after the end of the plan) » |
| 15 | Modify the running process → Apply | « Changes to the running process »: « 10 task(s) unchanged. Secure the surroundings of a threatened bridge: added as a sub-process, started by its trigger (Event_Flow) only. », Added (70), Removed (1) |
| 16 | Apply to the running process; reload r-iota | log [HOT-MODIFY] … accepted=true; total: 27, 0 / 2 |
| 17 | AUTO checked; timeline up to 16/11 00:00 | at the flood: [EVENT-FLOW] … rule fired, [TAKEOVER] objective 'Prevent …' replaced by [Secure …], « Stop a tram line … already done by the preventive procedure, marked done »; end 16/11 05:30, 1 / 1, « 5 achieved tasks on 4 expected (total: 27) + 16 corrective », No alert detected |
| 18 | backend log | 0 ERROR |
