Complete bash-script toolkit with generation and validation capabilities
97
97%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Risky
Do not use without reviewing
{
"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
validator