code-notify: Skill for Claude Code

.claude/skills/shell-scripting/SKILL.md

shell-scripting is a skill for Claude Code from mylee04/code-notify. It costs 13 tokens per session (911 once invoked), scanned A, original, MIT.

Guidelines for writing shell scripts that work across macOS, Linux, Windows, and related environments.

In plain words
What is it for?
Use it when creating, refactoring, or extending shell scripts, including scripts that detect the operating system or send desktop notifications.
Why use it?
It reduces common scripting problems such as unsafe variable handling, missing error checks, and platform-specific failures.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: positional $N argument.

This is mylee04/code-notify's own configuration. It tells Claude Code how to work on code-notify itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything code-notify configures →

Reuse

Borrowing it

Nothing to install: this file belongs to mylee04/code-notify. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/mylee04/code-notify/main/.claude/skills/shell-scripting/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/mylee04/code-notify

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for shell-scripting

README.md
[![agentmods](https://agentmods.dev/badge/skills/mylee04/code-notify/shell-scripting/github.svg)](https://agentmods.dev/skills/mylee04/code-notify/shell-scripting)
Your own site
<a href="https://agentmods.dev/skills/mylee04/code-notify/shell-scripting"><img src="https://agentmods.dev/badge/skills/mylee04/code-notify/shell-scripting/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for shell-scripting

Your own site · 80×15
<a href="https://agentmods.dev/skills/mylee04/code-notify/shell-scripting"><img src="https://agentmods.dev/badge/skills/mylee04/code-notify/shell-scripting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 13 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 911 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 1 finding, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Anti-Refusal · line 211
    Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.
    Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00013 $0.00911
Opus 5.5 $0.00005 $0.00364
Sonnet 5.5 $0.00003 $0.00182
Haiku 4.5 $0.00001 $0.00091

Measured 1mo ago against content hash 51d95f7f4b17, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

shell-scripting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

.claude/skills/shell-scripting/SKILL.md · 216 lines

How it starts

The opening of the file, as written. The whole thing — 216 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Shell Scripting Standards

When to Use

  • Writing new shell scripts
  • Refactoring existing scripts
  • Adding new functions

Script Structure

1. File Header

#!/bin/bash

# Script description
# https://github.com/mylee04/code-notify

set -e  # Exit on error

2. Constants (UPPER_CASE)

VERSION="1.2.0"
CONFIG_DIR="$HOME/.claude"
DEFAULT_SOUND="Glass"

3. Functions (snake_case)

# Description of function
# Arguments: $1 = name, $2 = optional value
function_name() {
    local name="$1"
    local value="${2:-default}"

    # Function body
}

4. Main Logic

# Main execution
main() {
    validate_args "$@"
    do_work
    cleanup
}

main "$@"

Best Practices

Variable Handling

# Good - quoted variables
echo "$message"
path="$HOME/.config"

# Bad - unquoted
echo $message
path=$HOME/.config

Conditionals

# Good - double brackets
if [[ -n "$var" ]]; then
    echo "not empty"
fi

# Bad - single brackets
if [ -n "$var" ]; then
    echo "not empty"
fi

Command Existence Check

# Good
if command -v terminal-notifier &> /dev/null; then
    terminal-notifier -message "Hello"
fi

# Bad
if which terminal-notifier; then
    terminal-notifier -message "Hello"
fi

Error Handling

# Good - explicit error handling
if ! some_command; then
    echo "Error: command failed" >&2
    exit 1
fi

# Good - trap for cleanup
cleanup() {
    rm -f "$temp_file"
}
trap cleanup EXIT

Local Variables in Functions

# Good
my_function() {
    local input="$1"
    local result
    result=$(process "$input")
    echo "$result"
}

# Bad - pollutes global scope
my_function() {
    input="$1"
    result=$(process "$input")
    echo "$result"
}

Common Patterns

OS Detection

detect_os() {
    case "$(uname -s)" in
        Darwin*)    echo "macos" ;;
        Linux*)     echo "linux" ;;
        CYGWIN*|MINGW*|MSYS*) echo "windows" ;;
        *)          echo "unknown" ;;
    esac
}

Read the full file on GitHub · 216 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 216 lines · 13 tokens per session scan A 51d95f7f4b17

Subscribe to this mod's changes

shell-scripting is a skill published in the GitHub repository mylee04/code-notify (289 stars, last pushed 1mo ago), licensed MIT. It adds 13 tokens to every session and 911 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

warpctrl

Control and inspect the currently running local Warp application with the warpctrl CLI. Use this skill whenever the user asks the agent to manipulate Warp's own windows, tabs, panes, sessions, input buffer, themes, or UI surfaces; open a file in Warp; inspect local Warp state; or explain how to invoke Warp Control…

warpdotdev/warp · 69 tokens

change-keybinding

Customize Warp keyboard shortcuts (keybindings, keymappings) by editing the user's keybindings.yaml file. Use when the user asks to remap a key combination, rebind an action, change a shortcut, or remove a default keybinding (e.g. "change ctrl+space to ctrl+s", "rebind the command palette to cmd+p", "remove the…

warpdotdev/warp · 82 tokens

create-tab-config

Create new Warp tab config TOML files from natural-language requests. Use when the user wants a new tab config, a new tab layout, or asks for a slash command to generate a tab config.

warpdotdev/warp · 44 tokens

save

Use when the user signals end-of-session — "save handoff", "pick this up later", "continue in a new session", "I'll come back to this". Captures the session's intent so the next session can resume it. Slash form /handoff:save is the explicit fallback.

ApurvBazari/claude-plugins · 62 tokens

google

Google Workspace integration — Gmail, Drive, Calendar, Contacts, Tasks, and Sheets via gogcli.

thewolffish/wolffish-app · 21 tokens

notion

Read, create, update, and manage Notion pages, databases, and blocks.

thewolffish/wolffish-app · 19 tokens