Release plan
The end-to-end scenarios replayed on a release build of r-io suite before each release, with their checkpoints in order. The latest result of each scenario is in the Release table of the home 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 Generated_By("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
A solution deduced with inserted move and wait tasks, carried out on a phone with r-io4U, then in the r-ioga to-do list. r-iosemit answers the accepted simulated tasks with field values through the task events; a task whose On box is unchecked is real. Guided walkthrough: Tasks on the field.
| # | Action | Expected result |
|---|---|---|
| 0 | r-ioga: Projects workspace → IMT Albi Crisis → Load | Project in Project List, launchers for r-iosemit and r-iota |
| 1 | r-iosemit: TIMELINE: mute the social message and the two Iomega actualities | "4 dates · 8 DATA steps · 3 muted" |
| 2 | r-iosemit: Next step twice | The gas sensor crosses its threshold, the CEP rule raises the alert |
| 3 | r-iota: Open r-iota | 1 SURE ALERTS, FIND SOLUTION(S) enabled |
| 4 | r-iota: FIND SOLUTION(S): Crisis, Insert move tasks and Insert wait tasks = YES → Find | Solution deployed and supervised: 16 tasks, including 4 moves and 1 wait |
| 5 | r-iosemit: TASKS tab | Every task with its actor, status, expected and simulated values; tooltip on On |
| 6 | r-iosemit: Output of Confirm gas leak → "Yes and repairable"; move of Emily → another path, ×8 | Edited value kept; move expected 613 m / 446 s, simulated 891 m / 646 s |
| 7 | r-io4U: Move to Confirm gas leak → Accept | Expected path and ghost; the position is followed live |
| 8 | r-io4U: Arrival → Done | Path replayed; field values 652 s / 809 m in red (more than 20 % above) |
| 9 | r-io4U: Confirm gas leak → Accept → Done | Field values on the task, output filled with "Yes and repairable"; repair branch taken |
| 10 | r-io4U: Cut off the local gas valve → Accept, sheet open | The values arrive in the open sheet, Done becomes enabled |
| 11 | r-ioga: To-do list | Same tasks with their actor; a 470 s wait of Alice, on the branch not taken |
| 12 | r-ioga: Grab the toolbox → Accept → Done | Field values received through the task events |
| 13 | r-iosemit / r-ioga: Uncheck On on Report the damage; Accept in r-ioga | Duration measured, the remaining value typed; Done enabled once filled |
| 14 | r-ioga: Event report to the center team → Accept → Done | The process ends; every task of the branch is Done |
| 15 | r-iota / backend: Check r-iota and the log | "No alert detected"; no ERROR |
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: 2L rules driven by sensor values
Checkpoints, in order (wait 10 s after each step, the time of the walk; r-ioplay and r-iota stay open without reloading from point 2 to point 13):
| # | Check | Expected |
|---|---|---|
| 0 | start-up with Barbecue | the project appears in « Project List »; its APPLICATIONS column opens r-iosemit, r-ioplay and r-iota in the project context |
| 1 | r-iosemit, select the « Henri barbecue story » scenario | 9 dates from 10:05 to 10:45, each with a sensor value card (value or GPS coordinates); Previous step, Next step, Restart buttons; no error when opening |
| 2 | r-iota; r-ioplay 2D; r-ioplay 3D (second tab), Camera menu → 3rd on Henri | r-iota No alert detected, green status; r-ioplay: Henri on the other side of the house, no danger area; Camera · 3rd person button, camera behind Henri from the start, before any walk (not from the side) |
| 2b | follow camera, in 3rd then 1st: MOVE / LOOK / ALT / ZOOM panel, then mouse (left drag, right drag, wheel), then ⌂ | the view reacts in both modes: LOOK ↺ ↻ and left drag rotate the camera around Henri (3rd) or turn the gaze (1st), ˄ ˅ tilt it; ZOOM and wheel move closer / further (3rd) or move the viewpoint forward / back (1st); MOVE, ALT and right drag shift the target; ⌂ (or H) restores the default follow view; the setting is kept during the walks of the next steps and reset when the mode changes |
| 3 | step 1 (water level 1) | Submersion ACTIVE; r-ioplay: 10 m area centred on the pool, drawn live; r-iota 0 alert |
| 4 | step 2 (thermal 60) | High Temperature ACTIVE; 6 m area around the barbecue; r-iota 0 alert |
| 5 | step 3 (Henri 5.5 m from the barbecue) | Henri walks, then Henri risks getting burned appears on arrival, probability 0.11, with Prevent Henri risks getting burned ACTIVE; label « ⚠ 11 % » in r-ioplay 2D and r-iota, risk marker at Henri's feet in 3D; r-iota 1 SURE ALERTS; Henri's watch and heart sensor are at his position |
| 6 | step 4 (Henri at 3 m) | probability 0.67, label « ⚠ 67 % »; r-iota 1 SURE ALERTS |
| 7 | step 5 (Henri at 1 m) | Henri burns ACTIVE, the burn risk and its Prevent objective FREEZE, Treat Henri burns ACTIVE with a Created at equal to the step time; r-iota 1 SURE ALERTS (Treat Henri burns), no more risk label; red beacon on Henri in 3D |
| 8 | step 6 (edge of the pool area, 9.7 m) | Henri is in danger of drowning ACTIVE, probability 0.10, and Prevent Henri is in danger of drowning ACTIVE; label « ⚠ 10 % »; r-iota 2 SURE ALERTS |
| 9 | step 7 (8.35 m from the pool) | probability 0.55, label « ⚠ 55 % »; r-iota 2 SURE ALERTS |
| 10 | step 8 (Henri in the water, altitude −1.5 m) | in 3D, Henri sinks steadily down to −1.5 m during the walk; Henri drowns and Treat Henri drowns ACTIVE, the drowning risk FREEZE, Henri burns FREEZE; r-iota 1 SURE ALERTS; the « ⚠ 55 % » label disappears (no orphan label: document.querySelectorAll('.leaflet-tooltip.rio-marker-label').length = 0) |
| 11 | step 9 (heart rate 0) | Henri is dead and Bradycardia detected on Watch of Henri Martinez ACTIVE, both on the pool (≈ 43.90900 / 2.14913); Henri FREEZE, Henry's corpse ACTIVE; r-iota 3 SURE ALERTS, no pulsar at (0,0) |
| 12 | Previous step, then white slider dragged to 10:20 | Henri reappears in the water (r-iota 1 SURE ALERTS), then comes back up and walks his path backwards (2D and 3D); at 10:20: burn risk at 67 %, no burn or drowning alert, r-iota 1 SURE ALERTS |
| 13 | Restart | Henri back on the other side of the house, on the ground; no danger area left; r-iota No alert detected (counter at 0); the story plays again without restarting |
| 14 | backend log | 0 [2L-FIXPOINT] rule failed, 0 oscillation on node, 0 not converged |
