CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/reclaim-tripit-sync

Syncs TripIt travel itineraries to Reclaim.ai timezone segments and Google Calendar OOO blocks.

91

1.31x
Quality

97%

Does it follow best practices?

Impact

80%

1.31x

Average score across 4 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-4/

{
  "context": "Tests whether the agent correctly implements the sync library installation check, uses the exact prescribed download URL and user-space install path, runs the sync with the required output flag, and captures both stdout and exit code as specified in the skill.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Existence check before install",
      "description": "Script checks whether $HOME/.tripit-reclaim/sync.mjs exists before attempting installation",
      "max_score": 10
    },
    {
      "name": "Correct download URL",
      "description": "Installation uses the exact GitHub tarball URL: https://github.com/jbaruch/reclaim-tripit-timezones-sync/archive/refs/heads/main.tar.gz",
      "max_score": 12
    },
    {
      "name": "User-space install path",
      "description": "Downloaded archive is extracted to $HOME/.tripit-reclaim (user-space, not /opt/ or other system paths)",
      "max_score": 10
    },
    {
      "name": "npm ci with --omit=dev",
      "description": "Dependencies are installed using `npm ci --omit=dev` (not `npm install` or `npm ci` without --omit=dev)",
      "max_score": 10
    },
    {
      "name": "Post-install verification",
      "description": "After the download and npm ci steps complete, the script verifies sync.mjs exists before proceeding to run it (a separate check from the initial existence check — this catches download/extract failures)",
      "max_score": 10
    },
    {
      "name": "Install failure aborts",
      "description": "Script exits with non-zero code if sync.mjs does not exist after install attempt (does not silently continue to the sync step)",
      "max_score": 10
    },
    {
      "name": "Correct sync command",
      "description": "Sync is run with sync subcommand and --output=json flag (not dry-run)",
      "max_score": 12
    },
    {
      "name": "JSON output captured to file",
      "description": "Script captures stdout from the sync command and writes it to sync-output.json",
      "max_score": 10
    },
    {
      "name": "Exit code propagation",
      "description": "Script captures the sync command's exit code and uses it to determine its own exit code",
      "max_score": 8
    },
    {
      "name": "Non-zero exit on sync failure",
      "description": "Script exits with non-zero code when the sync command fails (exit code 1)",
      "max_score": 8
    }
  ]
}

evals

README.md

tile.json