CtrlK
BlogDocsLog inGet started
Tessl Logo

finkel/tasker-xml-authoring

Author and edit Android Tasker XML (tasks, profiles, projects, scenes) for import into the Tasker app — node skeleton, action codes, and per-arg encoding.

97

1.31x
Quality

97%

Does it follow best practices?

Impact

97%

1.31x

Average score across 4 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "Tests whether the agent correctly authors a Tasker Widget v2 (code 461) push of a Custom layout, using the confirmed 6.7.5 arg layout: arg1=widget name, arg2=\"Custom\", and crucially arg13 (NOT arg3) for the layout JSON. Also tests the Widget v2 custom-layout JSON element schema (Column with scrolling, Button with text/task/taskVariables — text NOT label). A naive agent will guess code 461 is 'Notification', put the JSON in arg3 next to the Custom selector, or use 'label' instead of 'text' on buttons.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Correct file suffix",
      "description": "The output file has the .tsk.xml suffix (not .xml, .task.xml, or another variant)",
      "max_score": 8
    },
    {
      "name": "TaskerData skeleton",
      "description": "The root element is <TaskerData> with sr=\"\", dvi=\"1\", and a tv attribute present",
      "max_score": 6
    },
    {
      "name": "Task sr naming",
      "description": "The Task node's sr attribute is task<id> format matching its <id> value",
      "max_score": 6
    },
    {
      "name": "Widget v2 action code",
      "description": "The widget push action uses <code>461</code> (the Widget v2 action in Tasker 6.7+), not a guessed code",
      "max_score": 12
    },
    {
      "name": "Layout selector is Custom",
      "description": "The Widget v2 action sets arg2 to the string \"Custom\" (the Layout selector)",
      "max_score": 10
    },
    {
      "name": "Layout JSON in arg13",
      "description": "The Custom layout JSON (or the variable holding it, e.g. %layout) is placed in <Str sr=\"arg13\">, NOT in arg3. Putting it in arg3 is the key failure mode this scenario checks.",
      "max_score": 16
    },
    {
      "name": "Widget name in arg1",
      "description": "The target widget name (\"Status\") is in <Str sr=\"arg1\">",
      "max_score": 8
    },
    {
      "name": "Scrolling Column root",
      "description": "The layout JSON root is an object with \"type\":\"Column\" and \"scrolling\":true, with a \"children\" array",
      "max_score": 10
    },
    {
      "name": "Button uses text key",
      "description": "Each Button object uses the \"text\" key for its label (NOT \"label\"), with \"type\":\"Button\"",
      "max_score": 10
    },
    {
      "name": "Button runs task with taskVariables",
      "description": "Each Button has \"task\":\"Run Section\" and a \"taskVariables\" object carrying the section name",
      "max_score": 8
    },
    {
      "name": "Str value as text content",
      "description": "Str elements hold their values as element text content, not in attributes",
      "max_score": 6
    }
  ]
}

tile.json