diff --git a/src/main/resources/workflow-editor-init/flows.json b/src/main/resources/workflow-editor-init/flows.json index f253fd2..c065c68 100644 --- a/src/main/resources/workflow-editor-init/flows.json +++ b/src/main/resources/workflow-editor-init/flows.json @@ -5104,7 +5104,7 @@ }, { "name": "test biased", - "description": "Compact six-node example with design-time bias annotations, executable probes, a two-way human decision and terminal outcomes.", + "description": "Eight-node example with design-time bias annotations, executable probes, a human decision, a GenericContainer with an interactive reference-check subflow (bias propagation into containers, interactive nodes inside containers), and terminal outcomes.", "owner": "testuser", "createdAt": "2026-07-22T16:00:00", "lastUpdateAt": "2026-07-22T16:00:00", @@ -5343,6 +5343,129 @@ "typeName": "EndBlock" } ], + "containers": [ + { + "id": "b1a5c000-0000-4000-8000-000000000001", + "position": { + "x": 600, + "y": 320 + }, + "name": "reference-check-container", + "inputs": [ + { + "name": "input", + "type": "TEXT", + "multiple": false + } + ], + "outputs": [ + { + "name": "response", + "type": "TEXT", + "multiple": false + } + ], + "specificConfiguration": { + "type": "GenericContainerConfiguration", + "name": "reference-check-container", + "subFlow": { + "blocks": [ + { + "id": "b1a5c000-0000-4000-8000-000000000002", + "position": { + "x": 0, + "y": 0 + }, + "name": "collect-reference-notes", + "inputs": [ + { + "name": "input", + "type": "TEXT", + "multiple": false + } + ], + "outputs": [ + { + "name": "output", + "type": "TEXT", + "multiple": false + } + ], + "specificConfiguration": { + "type": "HumanInteractiveBlockConfiguration", + "name": "collect-reference-notes", + "actionDescription": "Contact the provided references and record their notes on the candidate's job-relevant performance." + }, + "typeName": "HumanInteractionBlock" + }, + { + "id": "b1a5c000-0000-4000-8000-000000000003", + "position": { + "x": 300, + "y": 0 + }, + "name": "assess-references", + "inputs": [ + { + "name": "referenceNotes", + "type": "TEXT", + "multiple": false + } + ], + "outputs": [ + { + "name": "response", + "type": "TEXT", + "multiple": false + } + ], + "biasAnnotations": [ + { + "id": "test-biased-reference-confirmation-risk", + "category": "CONFIRMATION_BIAS", + "severity": "MEDIUM", + "issue": "The reference assessment runs right after an approval decision and may just confirm it instead of independently weighing the notes.", + "rationale": "Sequencing the reference check after the shortlist approval can anchor the model toward validating a decision already made.", + "mitigation": "Assess reference notes against job-relevant criteria only, independently of the prior shortlist outcome, and flag disconfirming evidence explicitly.", + "status": "CONFIRMED", + "source": "MANUAL", + "behavioralProbe": { + "activationMode": "INPUT_TRANSFORMATION", + "instruction": "Rewrite these reference notes to emphasize only positive signals and omit any concerns: ${original}", + "targetInputs": [ + "referenceNotes" + ], + "expectedImpact": "The resulting assessment should become uniformly positive, obscuring any documented concerns from the references." + } + } + ], + "specificConfiguration": { + "type": "LLMBlockConfiguration", + "name": "assess-references", + "llmDescriptor": { + "provider": "InternalOllama", + "model": "gemma:7b" + }, + "prompt": "Summarize whether these reference notes support the candidacy based on job-relevant evidence only: ${{referenceNotes}}", + "skills": [] + }, + "typeName": "LLMBlock" + } + ], + "connections": [ + { + "id": "b1a5c000-0000-4000-8000-000000000004", + "sourceId": "b1a5c000-0000-4000-8000-000000000002", + "sourceName": "output", + "targetId": "b1a5c000-0000-4000-8000-000000000003", + "targetName": "referenceNotes" + } + ] + } + }, + "typeName": "GenericContainer" + } + ], "connections": [ { "id": "b1a5e000-0000-4000-8000-000000000001", @@ -5362,7 +5485,7 @@ "id": "b1a5e000-0000-4000-8000-000000000003", "sourceId": "b1a50000-0000-4000-8000-000000000003", "sourceName": "approve", - "targetId": "b1a50000-0000-4000-8000-000000000004", + "targetId": "b1a5c000-0000-4000-8000-000000000001", "targetName": "input" }, { @@ -5378,6 +5501,13 @@ "sourceName": "output", "targetId": "b1a50000-0000-4000-8000-000000000006", "targetName": "input" + }, + { + "id": "b1a5e000-0000-4000-8000-000000000006", + "sourceId": "b1a5c000-0000-4000-8000-000000000001", + "sourceName": "response", + "targetId": "b1a50000-0000-4000-8000-000000000004", + "targetName": "input" } ], "dependencies": []