Features

Anonymous

RoboRewsty: Instructions for creating tasks that can just be copy pasted from output.
So if RoboRewsty is prompted to create the task, after referencing the input to match the request to the relevant pack and then subsequent action within the pack. It will do it if prompted but it can forget stuff like transitionIDs etc which lead to errors when pasting to Canvas From using the copy feature for a task in canvas then pasting it into IDE, the structure of tasks which can be pasted appears to be wrapped lilke below: {"type": "TASK","data": {}} There's a bit more to this I have as cursor rules, with some of it being speculation - such as just assuming taskIDs are stripped GUIDs, I usually just generate a noop to get a valid taskID then use that ID in place but this is very manual. Here are the rules for context, I've never interacted with GQL much so you might have to infer a bit from speculation... --- Rule 2: Task ID Format Task IDs MUST be GUID format with stripped dashes Examples: "0195957959017e998b8d3dae7b7" NEVER use task names as IDs NEVER use placeholder or empty IDs Rule 3: Action ID Requirements data.action.id MUST be a real action ID from actions.json data.actionId field MUST be present in main task body with same value as data.action.id Always reference the correct pack's action ID Rule 4: Transition Structure Transitions MUST follow this exact format: "publish": [{"key": "variable_name","value": "{ { CTX.variable_value } }"}] Transition ID must be GUID with stripped dashes do should be empty array [] for publish transitions # This is just to stop errors while I use it in cursor, I'm sure there's a better way of understanding the next task with workflow context but from my position/use I just leave it empty then use the canvas to join the tasks Use proper Jinja2 syntax for values Rule 5: Variable Naming publishResultAs should be a simple variable name (no CTX. prefix, no Jinja syntax) Examples: "user_data" , "ticket_info" , "api_response" Server-side automatically handles CTX prefixing Rule 6: Required Fields Every task MUST include: actionId : Same value as action.id workflowId : If unknown, ask user explicitly __typename : Must be "WorkflowTask" join : Always integer (usually 0) Rule 7: Action Object Structure Action objects MUST include: "action": {"__typename": "Action","id": "real-action-id-from-actions.json",// other action properties} Rule 8: Copy-Paste Compatibility For workflow canvas compatibility: All required fields must be present Use exact action IDs from actions.json Include complete action objects with pack references Follow proper nesting structure Validation Checklist Before generating any workflow task: [ ] Task wrapped in {"type": "TASK", "data": {...}} [ ] Task ID is GUID with stripped dashes [ ] Action ID exists in actions.json [ ] actionId field present in main body [ ] workflowId field present (ask if unknown) [ ] \_\_typename is "WorkflowTask" [ ] Action has \_\_typename "Action" [ ] Transitions use proper publish array format [ ] publishResultAs uses simple variable names [ ] join is integer (usually 0) --- The inline markdown is expanded for readability; the rewst canvas copy pastes tasks as json string / compressed. Standard Task Template {"type":"TASK","data": {"id": "01959579-5901-7e99-8b8d-3dae7b73a955","name": "Task Name","description": "Task description","input": {},"metadata": {"x": 100, "y": 100},"publishResultAs": "result_variable","runAsOrgId": null,"securitySchema": {"redact": {"input": [], "result": []}},"timeout": 600,"with": null,"isMocked": false,"mockInput": {},"transitionMode": "FOLLOW_ALL","humanSecondsSaved": 0,"join": 0,"packOverrides": [],"actionId": "01959579-5901-7e99-8b8d-3dae7b73a955","workflowId": "workflow-guid-here","__typename": "WorkflowTask","action": { "__typename": "Action", "id": "01959579-5901-7e99-8b8d-3dae7b73a955", "name": "Action Name", "description": "Action description", "pack": { "id": "pack-id", "name": "Pack Name", "ref": "pack_ref" }},"next": [ { "id": "01959579-5901-7e99-8b8d-3dae7b73a956", "do": [], "when": "{ { SUCCEEDED } }","label": "Success","publish": [{"key": "result_variable", "value": "{ { CTX.task_result } }"}]}]}} Transition Patterns Success Transition {"id":"guid-with-stripped-dashes","do":[],"when":"{{SUCCEEDED}}","label":"Success Path","publish"[{"key":"variable_name","value":"{{CTX.some_value}}"}]}
5
Load More