shell-scripting — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited shell-scripting (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- target: tokens_target above. Run python tools/render_readme_table.py to update README. -->
Purpose: Prevent silent failures, portability bugs, and security holes in shell scripts by enforcing safe defaults, clean structure, and ShellCheck compliance.
set -euo pipefail so that unset variables, failed commands, and pipeline errors abort execution immediately. Reference: ERR-2026-021trap 'cleanup' EXIT function to remove temp files and release locks even when the script exits early due to an error.exit 1 for usage errors, exit 2 for dependency missing); never exit with 0 on failure.eval to construct or execute dynamic commands; prefer arrays or explicit argument lists to avoid injection vulnerabilities."$var", "$@") to prevent word-splitting and glob expansion on values containing spaces or special characters.local to prevent accidental global namespace pollution.readonly for values that must not change after assignment (e.g., readonly SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)").#!/usr/bin/env bash (or #!/bin/sh for strict POSIX); never rely on /bin/bash being present at a fixed path on all target systems.[ ] over [[ ]], $(...) over backticks) when the script must run under /bin/sh; use Bash-specific features only when the shebang explicitly targets Bash.shellcheck -S warning with zero warnings before committing; treat ShellCheck output as mandatory, not advisory.main entry point called at the bottom; avoid top-level imperative code scattered throughout the file.getopts for option parsing in scripts that accept flags; never parse $1, $2 manually for flag-style arguments.mktemp and store the path in a variable cleaned up by the EXIT trap; never hard-code paths like /tmp/myfile.log() helper that prefixes output with a timestamp and level (INFO, WARN, ERROR) and routes errors to stderr (>&2); never mix diagnostic output into stdout used for data.[ -d "$dir" ] || mkdir -p "$dir" and command -v tool >/dev/null 2>&1 || install_tool before acting.<<'EOF' ... EOF) over concatenated echo calls for multi-line output or embedded config; use the quoted form (<<'EOF') to suppress variable expansion when the content is literal.skills/code-quality/SKILL.mdskills/error-log/SKILL.md~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.