CtrlK
BlogDocsLog inGet started
Tessl Logo

pantheon-ai/bash-script-toolkit

Complete bash-script toolkit with generation and validation capabilities

97

Quality

97%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Overview
Quality
Evals
Security
Files

criteria.jsongenerator/evals/scenario-3/

{
  "context": "Tests whether the agent chooses appropriate text-processing tools (awk for structured log parsing with calculations, grep/sort/uniq for filtering), avoids useless cat and ls|grep anti-patterns, uses a single awk pass where multiple metrics can be gathered at once, and correctly quotes variables including file path arguments.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "awk for structured parsing",
      "description": "Script uses awk (not grep or sed alone) to parse the structured log fields (status code, URL, IP) from the access log",
      "max_score": 12
    },
    {
      "name": "Single-pass awk for multiple stats",
      "description": "Status code counts (2xx, 3xx, 4xx, 5xx) are computed in a single awk invocation rather than separate passes over the file",
      "max_score": 12
    },
    {
      "name": "No useless cat",
      "description": "Script does NOT use `cat file | awk` or `cat file | grep` patterns — passes the file directly as an argument to awk/grep/sort",
      "max_score": 10
    },
    {
      "name": "No ls pipe to grep",
      "description": "Script does NOT use `ls | grep` to filter files",
      "max_score": 8
    },
    {
      "name": "Quoted file path variable",
      "description": "The log file path variable is quoted when used in commands (e.g. awk '...' \"${log_file}\") to handle paths with spaces",
      "max_score": 10
    },
    {
      "name": "validate_file or equivalent",
      "description": "Script checks that the input file exists and is readable before attempting to process it",
      "max_score": 8
    },
    {
      "name": "Strict mode present",
      "description": "Script includes `set -euo pipefail`",
      "max_score": 8
    },
    {
      "name": "Env shebang",
      "description": "Shebang uses `#!/usr/bin/env bash`",
      "max_score": 8
    },
    {
      "name": "Correct output produced",
      "description": "Running the script against the provided inputs/access.log produces output that includes a total request count and at least one status class breakdown",
      "max_score": 12
    },
    {
      "name": "Usage function present",
      "description": "Script defines a usage() or help() function invoked when the file argument is missing",
      "max_score": 12
    }
  ]
}

generator

SKILL.md

tile.json