CtrlK
BlogDocsLog inGet started
Tessl Logo

hefgi/shortcut

Interact with Shortcut - view, search, update, and create stories, epics, objectives, iterations, docs, labels, and teams using the short CLI. IMPORTANT - When you see URLs matching `app.shortcut.com/*`, use this skill instead of WebFetch.

91

1.88x
Quality

99%

Does it follow best practices?

Impact

81%

1.88x

Average score across 5 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-1/

{
  "context": "Tests whether the agent correctly routes different argument patterns when interacting with Shortcut — including Shortcut app URLs, bare numeric IDs, and the 'my' shortcut — using the CLI instead of WebFetch and following the correct routing priority.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Prerequisite check command",
      "description": "Runs `which short && short --version` (or equivalent two-command check) before issuing any operational command",
      "max_score": 8
    },
    {
      "name": "Story URL extraction",
      "description": "For a URL like `app.shortcut.com/org/story/12345`, extracts the numeric ID and calls `short story 12345` rather than using WebFetch or curl on the URL",
      "max_score": 10
    },
    {
      "name": "Epic URL extraction",
      "description": "For a URL like `app.shortcut.com/org/epic/67890`, extracts the numeric ID and calls `short epic view 67890` rather than using WebFetch or curl on the URL",
      "max_score": 10
    },
    {
      "name": "No WebFetch on Shortcut URLs",
      "description": "Does NOT use WebFetch, curl, or browser-fetch calls on any app.shortcut.com URL",
      "max_score": 10
    },
    {
      "name": "Numeric ID routing",
      "description": "A bare numeric argument (e.g. `42`) is treated as a story ID and passed to `short story 42`",
      "max_score": 8
    },
    {
      "name": "My stories routing",
      "description": "The argument `my` is routed to `short search -o me`",
      "max_score": 8
    },
    {
      "name": "Story details fields",
      "description": "Story/epic output includes all of: ID, title, state, owner, description, and URL",
      "max_score": 10
    },
    {
      "name": "Follow-up suggestions",
      "description": "After presenting results, the response includes at least one relevant follow-up action suggestion",
      "max_score": 8
    },
    {
      "name": "List output routing",
      "description": "The `list` argument is routed to `short search` with no filters",
      "max_score": 8
    },
    {
      "name": "Search text routing",
      "description": "A `search <text>` argument is routed to `short search -t \"<text>\"`",
      "max_score": 8
    },
    {
      "name": "Correct CLI tool used",
      "description": "All Shortcut data retrieval uses the `short` CLI, not the Shortcut REST API directly via curl/fetch without the CLI",
      "max_score": 12
    }
  ]
}

evals

scenario-1

criteria.json

task.md

SKILL.md

tile.json