ShellCheck

SKILL.md

ShellCheck - Shell Script Static Analysis

Auto-routes when user mentions shellcheck, shell linting, bash script analysis, or SC error codes.

Overview

ShellCheck is a GPLv3-licensed static analysis tool that identifies bugs in bash/sh shell scripts. It detects:

  • Syntax errors and parsing issues
  • Semantic problems causing unexpected behavior
  • Quoting issues and word splitting bugs
  • POSIX compatibility warnings
  • Style and best practice violations

Voice Notification

When executing a workflow, do BOTH:

  1. Send voice notification:

    curl -s -X POST http://localhost:8888/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the WORKFLOWNAME workflow from the ShellCheck skill"}' \
      > /dev/null 2>&1 &
    
  2. Output text notification:

    Running the **WorkflowName** workflow from the **ShellCheck** skill...
    

Workflow Routing

Workflow Trigger File
Analyze "shellcheck this", "lint script", "check shell" Workflows/Analyze.md
Fix "fix shell errors", "apply shellcheck fixes" Workflows/Fix.md
Setup "setup shellcheck", "configure shellcheck" Workflows/Setup.md
Explain "explain SC2086", "what is SC code" Workflows/Explain.md

Quick Reference

Basic Usage

# Check a script
shellcheck myscript.sh

# Specify shell dialect
shellcheck -s bash myscript.sh

# Exclude specific codes
shellcheck -e SC2086,SC2046 myscript.sh

# Output formats
shellcheck -f gcc myscript.sh      # Editor integration
shellcheck -f json myscript.sh     # Machine readable
shellcheck -f diff myscript.sh     # Auto-fix patches

Common SC Codes

Code Issue Fix
SC2086 Unquoted variable "$var"
SC2046 Unquoted command substitution "$(cmd)"
SC2034 Unused variable Remove or export
SC2154 Unassigned variable Assign or disable
SC2155 Declare and assign separately Split declaration

Inline Directives

# Disable for next command
# shellcheck disable=SC2086
echo $var

# Disable for entire file (after shebang)
#!/bin/bash
# shellcheck disable=SC2086,SC2046

Full Documentation

  • Error Codes: SkillSearch('shellcheck error codes') -> loads ErrorCodes.md
  • Configuration: SkillSearch('shellcheck config') -> loads Configuration.md
  • CI/CD Integration: SkillSearch('shellcheck ci') -> loads Integration.md
  • Best Practices: SkillSearch('shellcheck practices') -> loads BestPractices.md

Examples

Example 1: Analyze a script

User: "shellcheck my deploy script"
-> Invokes Analyze workflow
-> Runs shellcheck with JSON output
-> Presents findings grouped by severity
-> Suggests fixes with wiki links

Example 2: Fix common issues

User: "fix the shellcheck errors in scripts/"
-> Invokes Fix workflow
-> Generates diff output
-> Applies fixes interactively
-> Re-runs validation

Example 3: Setup for project

User: "setup shellcheck for this repo"
-> Invokes Setup workflow
-> Creates .shellcheckrc
-> Adds pre-commit hook
-> Configures CI workflow

Example 4: Explain an error code

User: "what does SC2086 mean?"
-> Invokes Explain workflow
-> Fetches wiki documentation
-> Shows examples and fixes
-> Provides context-specific guidance
Weekly Installs
20
GitHub Stars
33
First Seen
Feb 5, 2026
Installed on
cursor20
github-copilot19
codex19
gemini-cli19
kimi-cli18
opencode18