sota-shell-scripting SKILL.md skillB

sota-shell-scripting from martinholovsky/sota-skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add martinholovsky/sota-skills/sota-shell-scripting@git:20261030.4fb4c58

Pins git:20261030.4fb4c58 in mdr.lock. Pin the fingerprint instead.

Audit grade
B, 16 of 17 checks passed
Kind
SKILL.md skill
Repository
martinholovsky/sota-skills
Path
skills/sota-shell-scripting/SKILL.md
Versions recorded
30
Latest version
git:20261030.4fb4c58, committed Oct 30, 2026
First version recorded
Jun 17, 2026
Size
15,219 bytes
Repository stars
26
License
CC-BY-4.0

State-of-the-art shell scripting (bash and PowerShell, defensive) for writing and auditing shell scripts, CI scripts, init/deploy scripts, container entrypoints, and Makefile recipes — and equally for the ad-hoc commands you run yourself: a grep/find/rg sweep whose result you are about to report, a one-liner pasted from a checklist, a pipeline whose exit status or empty output you are about to believe. Use when creating, modifying, reviewing or hardening shell code, AND before trusting any…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

# SOTA Shell Scripting

## Purpose

Produce shell scripts that survive contact with reality — unusual filenames, missing
commands, partial failures, hostile input, signals, and concurrent invocation — and audit
existing scripts for the defect classes that cause most production shell incidents:
unquoted expansions, silent error swallowing, injection, secret leakage, and temp-file races.

Bash-focused (written for bash 5.x; macOS ships bash 3.2 and defaults to zsh — see portability
rules). POSIX `sh` only when the target demands it (busybox/dash containers, init systems).

## First decision: should this be shell at all?

**Do NOT use shell when any of these hold.** Recommend Python/Go (or the project's primary
language) instead, and say so explicitly in BUILD and AUDIT output:

- Script exceeds ~100 lines of actual logic (not counting boilerplate/usage text).
- Needs real data structures (nested maps, JSON manipulation beyond a `jq` one-liner, sets).
- Needs granular error handling (retry *this* step, distinguish error kinds, partial rollback).
- Does arithmetic beyond integers, date math, or float comparison.
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add martinholovsky/sota-skills/sota-shell-scripting@sha256:a9d2532f85552b60

The line at the top of this page pins the label git:20261030.4fb4c58, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_ev6gd7p2ikqqqffy.svg)](https://markdownregistry.com/a/art_ev6gd7p2ikqqqffy)

3 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 30 versions of this file, between Jun 17, 2026 and Oct 30, 2026, about one every 5 days.

versioncommittedcommitsizeaudit
git:20261030.4fb4c58 latest2026-10-30 4fb4c58 15,219 BB view · diff
git:20261028.da12e082026-10-28 da12e08 15,086 BB view · diff
git:20261027.0f834402026-10-27 0f83440 15,083 BB view · diff
git:20261027.e012ef12026-10-27 e012ef1 15,003 BB view · diff
git:20261026.808c3402026-10-26 808c340 14,990 BB view · diff
git:20261025.ee367c32026-10-25 ee367c3 14,844 BB view · diff
git:20261025.c05557f2026-10-25 c05557f 14,687 BB view · diff
git:20261020.4ac7a802026-10-20 4ac7a80 13,693 BB view · diff
git:20261018.f1ef90d2026-10-18 f1ef90d 13,447 BB view · diff
git:20261014.73ef7692026-10-14 73ef769 13,355 BB view · diff
git:20261012.ae1b29b2026-10-12 ae1b29b 13,234 BB view · diff
git:20261001.7f1c0622026-10-01 7f1c062 12,977 BB view · diff
git:20260927.fe83fea2026-09-27 fe83fea 12,956 BB view · diff
git:20260926.9bf04752026-09-26 9bf0475 12,899 BB view · diff
git:20260926.e89beb12026-09-26 e89beb1 12,812 BB view · diff
git:20260925.9af12262026-09-25 9af1226 12,808 BB view · diff
git:20260924.cfe6bcb2026-09-24 cfe6bcb 12,591 BB view · diff
git:20260923.3ae13cf2026-09-23 3ae13cf 12,516 BB view · diff
git:20260918.ab69f802026-09-18 ab69f80 12,374 BB view · diff
git:20260915.81b437a2026-09-15 81b437a 11,553 BB view · diff
git:20260914.32094b92026-09-14 32094b9 10,839 BB view · diff
git:20260911.2045e872026-09-11 2045e87 9,985 BB view · diff
git:20260910.ec46a932026-09-10 ec46a93 9,457 BB view · diff
git:20260910.1a411a82026-09-10 1a411a8 9,225 BB view · diff
git:20260908.d3295732026-09-08 d329573 9,094 BB view · diff
git:20260908.b22c9112026-09-08 b22c911 8,541 BB view · diff
git:20260908.1f82c862026-09-08 1f82c86 8,256 BB view · diff
git:20260903.a8b1a1f2026-09-03 a8b1a1f 7,736 BB view · diff
git:20260701.1c5bd882026-07-01 1c5bd88 7,563 BB view · diff
git:20260617.c5d2c7b2026-06-17 c5d2c7b 7,520 BB view

Audit of the latest version

B  16 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • fail: No curl or wget piped into a shell (matched: curl\|bash)
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (15219 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Starting a new one? Use a template for SKILL.md on mdpantry, which passes every one of these checks and says what to change in it.

Source

GitHub

martinholovsky/sota-skills · 26 stars · license CC-BY-4.0 · pushed 2026-11-05 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_ev6gd7p2ikqqqffy
GET https://markdownregistry.com/api/v1/resolve?ref=martinholovsky/sota-skills/sota-shell-scripting
GET https://markdownregistry.com/api/v1/blob/a9d2532f85552b601bf828fa10b5a02c594e57672aad7782e3e64f0e22539d93

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from martinholovsky/sota-skills

AGENTS.md AGENTS.md file
martinholovsky/sota-skills · AGENTS.md
git:20261101.b77a8aa · audit A · 26 stars
CLAUDE.md CLAUDE.md file
martinholovsky/sota-skills · CLAUDE.md
git:20260703.aaa9f67 · audit B · 26 stars
sota-api-design SKILL.md skill
martinholovsky/sota-skills · skills/sota-api-design/SKILL.md · State-of-the-art API design and audit guidance (2026) covering REST/HTTP, GraphQL, gRPC, WebSockets/SSE/realtime…
git:20261024.8dd2b0a · audit A · 26 stars
sota-architecture SKILL.md skill
martinholovsky/sota-skills · skills/sota-architecture/SKILL.md · State-of-the-art software and system architecture rules (2026) for both building and auditing. Use when designing…
git:20261026.808c340 · audit A · 26 stars
sota-async-concurrency SKILL.md skill
martinholovsky/sota-skills · skills/sota-async-concurrency/SKILL.md · State-of-the-art rules for writing and auditing asynchronous and concurrent code across runtimes (Python asyncio…
git:20261026.2b6f6f7 · audit A · 26 stars
sota-c-cpp SKILL.md skill
martinholovsky/sota-skills · skills/sota-c-cpp/SKILL.md · State-of-the-art C and C++ engineering rules that Claude applies when writing or auditing C/C++. Covers modern idioms…
git:20261026.808c340 · audit A · 26 stars
sota-cli-ux SKILL.md skill
martinholovsky/sota-skills · skills/sota-cli-ux/SKILL.md · State-of-the-art CLI and developer-tool UX guidance (2026) covering command and flag design, output and interaction…
git:20261024.8dd2b0a · audit A · 26 stars
sota-cloud-infrastructure SKILL.md skill
martinholovsky/sota-skills · skills/sota-cloud-infrastructure/SKILL.md · State-of-the-art cloud infrastructure architecture (2026). Applies when designing, building, or auditing cloud…
git:20261026.2b6f6f7 · audit A · 26 stars
sota-code-security SKILL.md skill
martinholovsky/sota-skills · skills/sota-code-security/SKILL.md · Secure coding and security auditing rules. Use whenever BUILDING or modifying code that crosses a trust boundary —…
git:20261027.7641696 · audit A · 26 stars
sota-confidential-computing SKILL.md skill
martinholovsky/sota-skills · skills/sota-confidential-computing/SKILL.md · State-of-the-art confidential computing and cryptographic PETs (2026) for BUILDING and AUDITING systems that protect…
git:20261026.ca2a1f1 · audit A · 26 stars
sota-copywriting SKILL.md skill
martinholovsky/sota-skills · skills/sota-copywriting/SKILL.md · State-of-the-art marketing copywriting and content guidance (2026) covering positioning and value propositions…
git:20261024.8dd2b0a · audit A · 26 stars
sota-data-engineering SKILL.md skill
martinholovsky/sota-skills · skills/sota-data-engineering/SKILL.md · State-of-the-art data engineering rules (2026) for building and auditing data pipelines and analytics infrastructure…
git:20261028.da12e08 · audit A · 26 stars

Every file in martinholovsky/sota-skills

Browse by kind, by grade B, or by owner.