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-2/

{
  "context": "Tests whether the agent correctly generates a Tasker project XML file with a time-triggered profile using the proper sr naming conventions, cdate field, id-based task linking, and the correct file suffix. A naive agent is likely to omit cdate, use the wrong sr value on the Project node, reference the task by name rather than id, or use the wrong file extension.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Correct file suffix",
      "description": "The output file has the .prj.xml extension (not .xml, .tsk.xml, .prf.xml, or any other variant)",
      "max_score": 10
    },
    {
      "name": "TaskerData root node",
      "description": "The XML root element is <TaskerData> with sr=\"\", dvi, and tv attributes present",
      "max_score": 8
    },
    {
      "name": "Project sr=\"proj0\"",
      "description": "The Project node has sr=\"proj0\" (not sr=\"proj1\" or any other value)",
      "max_score": 12
    },
    {
      "name": "Project has cdate",
      "description": "The Project node contains a <cdate> element with a numeric (epoch millis) value",
      "max_score": 10
    },
    {
      "name": "Profile sr naming",
      "description": "The Profile node has sr=\"prof0\" (positional naming: prof0, prof1, …)",
      "max_score": 8
    },
    {
      "name": "Task sr naming",
      "description": "The Task node has sr=\"task<id>\" where <id> matches the Task's <id> element (e.g. sr=\"task10\" with <id>10</id>)",
      "max_score": 8
    },
    {
      "name": "Profile links task by id",
      "description": "The Profile uses <mid0> containing the Task's numeric id — NOT a task name string",
      "max_score": 12
    },
    {
      "name": "Project pids contains numeric id",
      "description": "The Project <pids> element contains the Profile's numeric id (not a name)",
      "max_score": 8
    },
    {
      "name": "Project tids contains numeric id",
      "description": "The Project <tids> element contains the Task's numeric id (not a name)",
      "max_score": 8
    },
    {
      "name": "Internally consistent ids",
      "description": "The id referenced in <mid0> matches the <id> of the Task node; the id in <pids> matches the Profile's <id>; the id in <tids> matches the Task's <id>",
      "max_score": 8
    },
    {
      "name": "Time context present",
      "description": "The Profile contains a Time context node (e.g. <Time sr=\"con0\" ...>) for the 07:00 trigger",
      "max_score": 8
    }
  ]
}

tile.json