diff --git a/ROADMAP.md b/ROADMAP.md index 014808d..f1af068 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -261,10 +261,14 @@ Option B: per-shader only - [x] Package workflows converted to n8n nodes (`seed`, `gui`, `soundboard`, `quake3`, `engine_tester`). - [x] Workflow steps implemented: `frame.bullet_physics`, `frame.camera`, `validation.tour.checkpoint`, `soundboard.catalog.scan`, `soundboard.gui`, `soundboard.audio`. - [x] Render coordinator supports workflow-supplied GUI command overrides (bypass Lua GUI path). +- [~] Generic step library started (`value.copy`, `value.default`, `number.add`, `list.filter.equals`, `list.map.add`, `list.reduce.sum`). ### Next Steps - [ ] Publish gameplay workflow templates (FPS/passive camera variants, bullet physics, validation/teleport checks). - [ ] Expand JSON-driven GUI steps beyond soundboard (replace Lua GUI scripts in demo packages). +- [ ] Build out generic "software building blocks" step coverage (strings, math, comparisons, branching, fan-out, list transforms). +- [ ] Add generic game workflow steps (camera controls, teleport/waypoints, audio cues, model spawn/despawn, animation toggles). +- [ ] Publish a workflow step catalog with example JSON snippets for each generic step. - [ ] Add workflow step analytics (probe events with JSON path + node id). ## Feature Matrix (What You Get, When You Get It) diff --git a/docs/N8N_WORKFLOWS.md b/docs/N8N_WORKFLOWS.md index 7706dcc..eebcd82 100644 --- a/docs/N8N_WORKFLOWS.md +++ b/docs/N8N_WORKFLOWS.md @@ -29,3 +29,13 @@ Connections Shape Templates - `config/workflows/templates/boot_default.json` and `config/workflows/templates/frame_default.json` are n8n-style now. - `config/workflows/templates/n8n_skeleton.json` is a minimal starting point. + +Generic Steps +- Implementations live in `src/services/impl/workflow_generic_steps/`. +- Current generic plugins: + - `value.copy` (inputs: `value`, outputs: `value`) + - `value.default` (inputs: `primary`, `fallback`, outputs: `value`) + - `number.add` (inputs: `left`, `right`, outputs: `value`) + - `list.filter.equals` (inputs: `list`, `value`, outputs: `list`) + - `list.map.add` (inputs: `list`, `value`, outputs: `list`) + - `list.reduce.sum` (inputs: `list`, outputs: `value`) diff --git a/src/services/impl/workflow_generic_steps/workflow_list_filter_equals_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_equals_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_filter_equals_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_equals_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_list_filter_equals_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_equals_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_filter_equals_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_filter_equals_step.hpp diff --git a/src/services/impl/workflow_generic_steps/workflow_list_map_add_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_map_add_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_map_add_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_map_add_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_list_map_add_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_map_add_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_map_add_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_map_add_step.hpp diff --git a/src/services/impl/workflow_generic_steps/workflow_list_reduce_sum_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_sum_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_reduce_sum_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_sum_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_list_reduce_sum_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_sum_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_list_reduce_sum_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_list_reduce_sum_step.hpp diff --git a/src/services/impl/workflow_generic_steps/workflow_number_add_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_number_add_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_number_add_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_number_add_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_number_add_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_number_add_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_number_add_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_number_add_step.hpp diff --git a/src/services/impl/workflow_generic_steps/workflow_value_copy_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_value_copy_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_value_copy_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_value_copy_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_value_copy_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_value_copy_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_value_copy_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_value_copy_step.hpp diff --git a/src/services/impl/workflow_generic_steps/workflow_value_default_step.cpp b/src/services/impl/workflow/workflow_generic_steps/workflow_value_default_step.cpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_value_default_step.cpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_value_default_step.cpp diff --git a/src/services/impl/workflow_generic_steps/workflow_value_default_step.hpp b/src/services/impl/workflow/workflow_generic_steps/workflow_value_default_step.hpp similarity index 100% rename from src/services/impl/workflow_generic_steps/workflow_value_default_step.hpp rename to src/services/impl/workflow/workflow_generic_steps/workflow_value_default_step.hpp