{"id":"c9fa1faf-5a77-44e3-8743-3d30b56d8e64","shortId":"LuKDVW","kind":"skill","title":"shellcheck-configuration","tagline":"Master ShellCheck static analysis configuration and usage for shell script quality. Use when setting up linting infrastructure, fixing code issues, or ensuring script portability.","description":"# ShellCheck Configuration and Static Analysis\n\nComprehensive guidance for configuring and using ShellCheck to improve shell script quality, catch common pitfalls, and enforce best practices through static code analysis.\n\n## Do not use this skill when\n\n- The task is unrelated to shellcheck configuration and static analysis\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources/implementation-playbook.md`.\n\n## Use this skill when\n\n- Setting up linting for shell scripts in CI/CD pipelines\n- Analyzing existing shell scripts for issues\n- Understanding ShellCheck error codes and warnings\n- Configuring ShellCheck for specific project requirements\n- Integrating ShellCheck into development workflows\n- Suppressing false positives and configuring rule sets\n- Enforcing consistent code quality standards\n- Migrating scripts to meet quality gates\n\n## ShellCheck Fundamentals\n\n### What is ShellCheck?\n\nShellCheck is a static analysis tool that analyzes shell scripts and detects problematic patterns. It supports:\n- Bash, sh, dash, ksh, and other POSIX shells\n- Over 100 different warnings and errors\n- Configuration for target shell and flags\n- Integration with editors and CI/CD systems\n\n### Installation\n\n```bash\n# macOS with Homebrew\nbrew install shellcheck\n\n# Ubuntu/Debian\napt-get install shellcheck\n\n# From source\ngit clone https://github.com/koalaman/shellcheck.git\ncd shellcheck\nmake build\nmake install\n\n# Verify installation\nshellcheck --version\n```\n\n## Configuration Files\n\n### .shellcheckrc (Project Level)\n\nCreate `.shellcheckrc` in your project root:\n\n```\n# Specify target shell\nshell=bash\n\n# Enable optional checks\nenable=avoid-nullary-conditions\nenable=require-variable-braces\n\n# Disable specific warnings\ndisable=SC1091\ndisable=SC2086\n```\n\n### Environment Variables\n\n```bash\n# Set default shell target\nexport SHELLCHECK_SHELL=bash\n\n# Enable strict mode\nexport SHELLCHECK_STRICT=true\n\n# Specify configuration file location\nexport SHELLCHECK_CONFIG=~/.shellcheckrc\n```\n\n## Common ShellCheck Error Codes\n\n### SC1000-1099: Parser Errors\n```bash\n# SC1004: Backslash continuation not followed by newline\necho hello\\\nworld  # Error - needs line continuation\n\n# SC1008: Invalid data for operator `=='\nif [[ $var =  \"value\" ]]; then  # Space before ==\n    true\nfi\n```\n\n### SC2000-2099: Shell Issues\n\n```bash\n# SC2009: Consider using pgrep or pidof instead of grep|grep\nps aux | grep -v grep | grep myprocess  # Use pgrep instead\n\n# SC2012: Use `ls` only for viewing. Use `find` for reliable output\nfor file in $(ls -la)  # Better: use find or globbing\n\n# SC2015: Avoid using && and || instead of if-then-else\n[[ -f \"$file\" ]] && echo \"found\" || echo \"not found\"  # Less clear\n\n# SC2016: Expressions don't expand in single quotes\necho '$VAR'  # Literal $VAR, not variable expansion\n\n# SC2026: This word is non-standard. Set POSIXLY_CORRECT\n# when using with scripts for other shells\n```\n\n### SC2100-2199: Quoting Issues\n\n```bash\n# SC2086: Double quote to prevent globbing and word splitting\nfor i in $list; do  # Should be: for i in $list or for i in \"$list\"\n    echo \"$i\"\ndone\n\n# SC2115: Literal tilde in path not expanded. Use $HOME instead\n~/.bashrc  # In strings, use \"$HOME/.bashrc\"\n\n# SC2181: Check exit code directly with `if`, not indirectly in a list\nsome_command\nif [ $? -eq 0 ]; then  # Better: if some_command; then\n\n# SC2206: Quote to prevent word splitting or set IFS\narray=( $items )  # Should use: array=( $items )\n```\n\n### SC3000-3999: POSIX Compliance Issues\n\n```bash\n# SC3010: In POSIX sh, use 'case' instead of 'cond && foo'\n[[ $var == \"value\" ]] && do_something  # Not POSIX\n\n# SC3043: In POSIX sh, use 'local' is undefined\nfunction my_func() {\n    local var=value  # Not POSIX in some shells\n}\n```\n\n## Practical Configuration Examples\n\n### Minimal Configuration (Strict POSIX)\n\n```bash\n#!/bin/bash\n# Configure for maximum portability\n\nshellcheck \\\n  --shell=sh \\\n  --external-sources \\\n  --check-sourced \\\n  script.sh\n```\n\n### Development Configuration (Bash with Relaxed Rules)\n\n```bash\n#!/bin/bash\n# Configure for Bash development\n\nshellcheck \\\n  --shell=bash \\\n  --exclude=SC1091,SC2119 \\\n  --enable=all \\\n  script.sh\n```\n\n### CI/CD Integration Configuration\n\n```bash\n#!/bin/bash\nset -Eeuo pipefail\n\n# Analyze all shell scripts and fail on issues\nfind . -type f -name \"*.sh\" | while read -r script; do\n    echo \"Checking: $script\"\n    shellcheck \\\n        --shell=bash \\\n        --format=gcc \\\n        --exclude=SC1091 \\\n        \"$script\" || exit 1\ndone\n```\n\n### .shellcheckrc for Project\n\n```\n# Shell dialect to analyze against\nshell=bash\n\n# Enable optional checks\nenable=avoid-nullary-conditions,require-variable-braces,check-unassigned-uppercase\n\n# Disable specific warnings\n# SC1091: Not following sourced files (many false positives)\ndisable=SC1091\n\n# SC2119: Use function_name instead of function_name -- (arguments)\ndisable=SC2119\n\n# External files to source for context\nexternal-sources=true\n```\n\n## Integration Patterns\n\n### Pre-commit Hook Configuration\n\n```bash\n#!/bin/bash\n# .git/hooks/pre-commit\n\n#!/bin/bash\nset -e\n\n# Find all shell scripts changed in this commit\ngit diff --cached --name-only | grep '\\.sh$' | while read -r script; do\n    echo \"Linting: $script\"\n\n    if ! shellcheck \"$script\"; then\n        echo \"ShellCheck failed on $script\"\n        exit 1\n    fi\ndone\n```\n\n### GitHub Actions Workflow\n\n```yaml\nname: ShellCheck\n\non: [push, pull_request]\n\njobs:\n  shellcheck:\n    runs-on: ubuntu-latest\n\n    steps:\n      - uses: actions/checkout@v3\n\n      - name: Run ShellCheck\n        run: |\n          sudo apt-get install shellcheck\n          find . -type f -name \"*.sh\" -exec shellcheck {} \\;\n```\n\n### GitLab CI Pipeline\n\n```yaml\nshellcheck:\n  stage: lint\n  image: koalaman/shellcheck-alpine\n  script:\n    - find . -type f -name \"*.sh\" -exec shellcheck {} \\;\n  allow_failure: false\n```\n\n## Handling ShellCheck Violations\n\n### Suppressing Specific Warnings\n\n```bash\n#!/bin/bash\n\n# Disable warning for entire line\n# shellcheck disable=SC2086\nfor file in $(ls -la); do\n    echo \"$file\"\ndone\n\n# Disable for entire script\n# shellcheck disable=SC1091,SC2119\n\n# Disable multiple warnings (format varies)\ncommand_that_fails() {\n    # shellcheck disable=SC2015\n    [ -f \"$1\" ] && echo \"found\" || echo \"not found\"\n}\n\n# Disable specific check for source directive\n# shellcheck source=./helper.sh\nsource helper.sh\n```\n\n### Common Violations and Fixes\n\n#### SC2086: Double quote to prevent word splitting\n\n```bash\n# Problem\nfor i in $list; do done\n\n# Solution\nfor i in $list; do done  # If $list is already quoted, or\nfor i in \"${list[@]}\"; do done  # If list is an array\n```\n\n#### SC2181: Check exit code directly\n\n```bash\n# Problem\nsome_command\nif [ $? -eq 0 ]; then\n    echo \"success\"\nfi\n\n# Solution\nif some_command; then\n    echo \"success\"\nfi\n```\n\n#### SC2015: Use if-then instead of && ||\n\n```bash\n# Problem\n[ -f \"$file\" ] && echo \"exists\" || echo \"not found\"\n\n# Solution - clearer intent\nif [ -f \"$file\" ]; then\n    echo \"exists\"\nelse\n    echo \"not found\"\nfi\n```\n\n#### SC2016: Expressions don't expand in single quotes\n\n```bash\n# Problem\necho 'Variable value: $VAR'\n\n# Solution\necho \"Variable value: $VAR\"\n```\n\n#### SC2009: Use pgrep instead of grep\n\n```bash\n# Problem\nps aux | grep -v grep | grep myprocess\n\n# Solution\npgrep -f myprocess\n```\n\n## Performance Optimization\n\n### Checking Multiple Files\n\n```bash\n#!/bin/bash\n\n# Sequential checking\nfor script in *.sh; do\n    shellcheck \"$script\"\ndone\n\n# Parallel checking (faster)\nfind . -name \"*.sh\" -print0 | \\\n    xargs -0 -P 4 -n 1 shellcheck\n```\n\n### Caching Results\n\n```bash\n#!/bin/bash\n\nCACHE_DIR=\".shellcheck_cache\"\nmkdir -p \"$CACHE_DIR\"\n\ncheck_script() {\n    local script=\"$1\"\n    local hash\n    local cache_file\n\n    hash=$(sha256sum \"$script\" | cut -d' ' -f1)\n    cache_file=\"$CACHE_DIR/$hash\"\n\n    if [[ ! -f \"$cache_file\" ]]; then\n        if shellcheck \"$script\" > \"$cache_file\" 2>&1; then\n            touch \"$cache_file.ok\"\n        else\n            return 1\n        fi\n    fi\n\n    [[ -f \"$cache_file.ok\" ]]\n}\n\nfind . -name \"*.sh\" | while read -r script; do\n    check_script \"$script\" || exit 1\ndone\n```\n\n## Output Formats\n\n### Default Format\n\n```bash\nshellcheck script.sh\n\n# Output:\n# script.sh:1:3: warning: foo is referenced but not assigned. [SC2154]\n```\n\n### GCC Format (for CI/CD)\n\n```bash\nshellcheck --format=gcc script.sh\n\n# Output:\n# script.sh:1:3: warning: foo is referenced but not assigned.\n```\n\n### JSON Format (for parsing)\n\n```bash\nshellcheck --format=json script.sh\n\n# Output:\n# [{\"file\": \"script.sh\", \"line\": 1, \"column\": 3, \"level\": \"warning\", \"code\": 2154, \"message\": \"...\"}]\n```\n\n### Quiet Format\n\n```bash\nshellcheck --format=quiet script.sh\n\n# Returns non-zero if issues found, no output otherwise\n```\n\n## Best Practices\n\n1. **Run ShellCheck in CI/CD** - Catch issues before merging\n2. **Configure for your target shell** - Don't analyze bash as sh\n3. **Document exclusions** - Explain why violations are suppressed\n4. **Address violations** - Don't just disable warnings\n5. **Enable strict mode** - Use `--enable=all` with careful exclusions\n6. **Update regularly** - Keep ShellCheck current for new checks\n7. **Use pre-commit hooks** - Catch issues locally before pushing\n8. **Integrate with editors** - Get real-time feedback during development\n\n## Resources\n\n- **ShellCheck GitHub**: https://github.com/koalaman/shellcheck\n- **ShellCheck Wiki**: https://www.shellcheck.net/wiki/\n- **Error Code Reference**: https://www.shellcheck.net/\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["shellcheck","configuration","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-shellcheck-configuration","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/shellcheck-configuration","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34515 github stars · SKILL.md body (10,004 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:51:45.666Z","embedding":null,"createdAt":"2026-04-18T21:44:49.107Z","updatedAt":"2026-04-22T12:51:45.666Z","lastSeenAt":"2026-04-22T12:51:45.666Z","tsv":"'-0':1037 '-1099':307 '-2099':339 '-2199':436 '-3999':522 '/.bashrc':478 '/.shellcheckrc':301 '/bin/bash':570,592,610,714,716,822,1018,1046 '/helper.sh':874 '/koalaman/shellcheck':1272 '/koalaman/shellcheck.git':229 '/wiki/':1277 '0':499,931 '1':644,753,860,1041,1059,1087,1093,1110,1162,1189 '100':192 '2':1086,1198 '2154':1168 '3':1121,1141,1164,1210 '4':1039,1218 '5':1226 '6':1236 '7':1245 '8':1256 'action':97,757 'actions/checkout':776 'address':1219 'allow':812 'alreadi':906 'analysi':7,32,55,71,171 'analyz':121,174,614,652,1206 'appli':89 'apt':219,784 'apt-get':218,783 'argument':693 'array':515,519,919 'ask':1315 'assign':1128,1148 'aux':354,1002 'avoid':261,385,661 'avoid-nullary-condit':260,660 'backslash':312 'bash':183,210,255,278,286,310,342,439,526,569,587,591,595,599,609,637,655,713,821,888,925,951,982,999,1017,1045,1116,1134,1153,1172,1207 'best':50,91,1187 'better':379,501 'boundari':1323 'brace':268,667 'brew':214 'build':233 'cach':729,1043,1047,1050,1053,1063,1071,1073,1078,1084 'cache_file.ok':1090,1097 'care':1234 'case':532 'catch':45,1194,1251 'cd':230 'chang':723 'check':258,484,582,633,658,669,868,921,1014,1020,1030,1055,1106,1244 'check-sourc':581 'check-unassigned-uppercas':668 'ci':796 'ci/cd':119,207,606,1133,1193 'clarif':1317 'clarifi':83 'clear':402,1290 'clearer':961 'clone':226 'code':22,54,130,153,305,486,923,1167,1279 'column':1163 'command':496,504,853,928,939 'commit':710,726,1249 'common':46,302,877 'complianc':524 'comprehens':33 'cond':535 'condit':263,663 'config':300 'configur':3,8,29,36,68,133,148,197,240,295,563,566,571,586,593,608,712,1199 'consid':344 'consist':152 'constraint':85 'context':701 'continu':313,324 'correct':427 'creat':245 'criteria':1326 'current':1241 'cut':1068 'd':1069 'dash':185 'data':327 'default':280,1114 'describ':1294 'detail':102 'detect':178 'develop':142,585,596,1266 'dialect':650 'diff':728 'differ':75,193 'dir':1048,1054,1074 'direct':487,871,924 'disabl':269,272,274,672,683,694,823,829,840,845,848,857,866,1224 'document':1211 'domain':76 'done':467,645,755,839,895,902,914,1028,1111 'doubl':441,882 'e':718 'echo':318,396,398,411,465,632,740,747,837,861,863,933,941,955,957,967,970,984,989 'editor':205,1259 'eeuo':612 'els':393,969,1091 'enabl':256,259,264,287,603,656,659,1227,1231 'enforc':49,151 'ensur':25 'entir':826,842 'environ':276,1306 'environment-specif':1305 'eq':498,930 'error':129,196,304,309,321,1278 'exampl':103,564 'exclud':600,640 'exclus':1212,1235 'exec':793,810 'exist':122,956,968 'exit':485,643,752,922,1109 'expand':407,474,978 'expans':417 'expert':1311 'explain':1213 'export':283,290,298 'express':404,975 'extern':579,696,703 'external-sourc':578,702 'f':394,624,790,807,859,953,964,1010,1077,1096 'f1':1070 'fail':619,749,855 'failur':813 'fals':145,681,814 'faster':1031 'feedback':1264 'fi':337,754,935,943,973,1094,1095 'file':241,296,375,395,679,697,832,838,954,965,1016,1064,1072,1079,1085,1159 'find':370,381,622,719,788,805,1032,1098 'fix':21,880 'flag':202 'follow':315,677 'foo':536,1123,1143 'format':638,851,1113,1115,1131,1136,1150,1155,1171,1174 'found':397,400,862,865,959,972,1183 'func':553 'function':551,687,691 'fundament':163 'gate':161 'gcc':639,1130,1137 'get':220,785,1260 'git':225,727 'git/hooks/pre-commit':715 'github':756,1269 'github.com':228,1271 'github.com/koalaman/shellcheck':1270 'github.com/koalaman/shellcheck.git':227 'gitlab':795 'glob':383,445 'goal':84 'grep':351,352,355,357,358,733,998,1003,1005,1006 'guidanc':34 'handl':815 'hash':1061,1065,1075 'hello':319 'helper.sh':876 'home':476 'home/.bashrc':482 'homebrew':213 'hook':711,1250 'if':514 'if-then':946 'if-then-els':390 'imag':802 'improv':41 'indirect':491 'infrastructur':20 'input':88,1320 'instal':209,215,221,235,237,786 'instead':349,362,388,477,533,689,949,996 'instruct':82 'integr':139,203,607,706,1257 'intent':962 'invalid':326 'issu':23,126,341,438,525,621,1182,1195,1252 'item':516,520 'job':766 'json':1149,1156 'keep':1239 'koalaman/shellcheck-alpine':803 'ksh':186 'la':378,835 'latest':773 'less':401 'level':244,1165 'limit':1282 'line':323,827,1161 'lint':19,114,741,801 'list':452,459,464,494,893,900,904,912,916 'liter':413,469 'local':548,554,1057,1060,1062,1253 'locat':297 'ls':365,377,834 'maco':211 'make':232,234 'mani':680 'master':4 'match':1291 'maximum':573 'meet':159 'merg':1197 'messag':1169 'migrat':156 'minim':565 'miss':1328 'mkdir':1051 'mode':289,1229 'multipl':849,1015 'myprocess':359,1007,1011 'n':1040 'name':625,688,692,731,760,778,791,808,1033,1099 'name-on':730 'need':73,322 'new':1243 'newlin':317 'non':423,1179 'non-standard':422 'non-zero':1178 'nullari':262,662 'open':106 'oper':329 'optim':1013 'option':257,657 'otherwis':1186 'outcom':95 'output':373,1112,1119,1139,1158,1185,1300 'outsid':79 'p':1038,1052 'parallel':1029 'pars':1152 'parser':308 'path':472 'pattern':180,707 'perform':1012 'permiss':1321 'pgrep':346,361,995,1009 'pidof':348 'pipefail':613 'pipelin':120,797 'pitfal':47 'portabl':27,574 'posit':146,682 'posix':189,523,529,542,545,558,568 'posixli':426 'practic':51,92,562,1188 'pre':709,1248 'pre-commit':708,1247 'prevent':444,509,885 'print0':1035 'problem':889,926,952,983,1000 'problemat':179 'project':137,243,249,648 'provid':96 'ps':353,1001 'pull':764 'push':763,1255 'qualiti':14,44,154,160 'quiet':1170,1175 'quot':410,437,442,507,883,907,981 'r':629,737,1103 'read':628,736,1102 'real':1262 'real-tim':1261 'refer':1280 'referenc':1125,1145 'regular':1238 'relax':589 'relev':90 'reliabl':372 'request':765 'requir':87,105,138,266,665,1319 'require-variable-brac':265,664 'resourc':1267 'resources/implementation-playbook.md':107 'result':1044 'return':1092,1177 'review':1312 'root':250 'rule':149,590 'run':769,779,781,1190 'runs-on':768 'safeti':1322 'sc1000':306 'sc1004':311 'sc1008':325 'sc1091':273,601,641,675,684,846 'sc2000':338 'sc2009':343,993 'sc2012':363 'sc2015':384,858,944 'sc2016':403,974 'sc2026':418 'sc2086':275,440,830,881 'sc2100':435 'sc2115':468 'sc2119':602,685,695,847 'sc2154':1129 'sc2181':483,920 'sc2206':506 'sc3000':521 'sc3010':527 'sc3043':543 'scope':81,1293 'script':13,26,43,117,124,157,176,431,617,630,634,642,722,738,742,745,751,804,843,1022,1027,1056,1058,1067,1083,1104,1107,1108 'script.sh':584,605,1118,1138,1157,1160,1176 'script.sh:1':1120,1140 'sequenti':1019 'set':17,112,150,279,425,513,611,717 'sh':184,530,546,577,626,734,792,809,1024,1034,1100,1209 'sha256sum':1066 'shell':12,42,116,123,175,190,200,253,254,281,285,340,434,561,576,598,616,636,649,654,721,1203 'shellcheck':2,5,28,39,67,128,134,140,162,166,167,216,222,231,238,284,291,299,303,575,597,635,744,748,761,767,780,787,794,799,811,816,828,844,856,872,1026,1042,1049,1082,1117,1135,1154,1173,1191,1240,1268,1273 'shellcheck-configur':1 'shellcheckrc':242,246,646 'singl':409,980 'skill':60,110,1285 'skill-shellcheck-configuration' 'solut':896,936,960,988,1008 'someth':540 'sourc':224,580,583,678,699,704,870,873,875 'source-sickn33' 'space':334 'specif':136,270,673,819,867,1307 'specifi':251,294 'split':448,511,887 'stage':800 'standard':155,424 'static':6,31,53,70,170 'step':98,774 'stop':1313 'strict':288,292,567,1228 'string':480 'substitut':1303 'success':934,942,1325 'sudo':782 'support':182 'suppress':144,818,1217 'system':208 'target':199,252,282,1202 'task':63,1289 'test':1309 'tild':470 'time':1263 'tool':78,172 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'touch':1089 'treat':1298 'true':293,336,705 'type':623,789,806 'ubuntu':772 'ubuntu-latest':771 'ubuntu/debian':217 'unassign':670 'undefin':550 'understand':127 'unrel':65 'updat':1237 'uppercas':671 'usag':10 'use':15,38,58,108,345,360,364,369,380,386,429,475,481,518,531,547,686,775,945,994,1230,1246,1283 'v':356,1004 'v3':777 'valid':94,1308 'valu':332,538,556,986,991 'var':331,412,414,537,555,987,992 'vari':852 'variabl':267,277,416,666,985,990 'verif':100 'verifi':236 'version':239 'view':368 'violat':817,878,1215,1220 'warn':132,194,271,674,820,824,850,1122,1142,1166,1225 'wiki':1274 'word':420,447,510,886 'workflow':143,758 'world':320 'www.shellcheck.net':1276,1281 'www.shellcheck.net/wiki/':1275 'xarg':1036 'yaml':759,798 'zero':1180","prices":[{"id":"aa5ecd07-4815-4313-a2f0-ba63da25c7e0","listingId":"c9fa1faf-5a77-44e3-8743-3d30b56d8e64","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:44:49.107Z"}],"sources":[{"listingId":"c9fa1faf-5a77-44e3-8743-3d30b56d8e64","source":"github","sourceId":"sickn33/antigravity-awesome-skills/shellcheck-configuration","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/shellcheck-configuration","isPrimary":false,"firstSeenAt":"2026-04-18T21:44:49.107Z","lastSeenAt":"2026-04-22T12:51:45.666Z"}],"details":{"listingId":"c9fa1faf-5a77-44e3-8743-3d30b56d8e64","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"shellcheck-configuration","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34515,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"8c5012e19e68b2c217e5d164a6d2b5189fc5ef35","skill_md_path":"skills/shellcheck-configuration/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/shellcheck-configuration"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"shellcheck-configuration","description":"Master ShellCheck static analysis configuration and usage for shell script quality. Use when setting up linting infrastructure, fixing code issues, or ensuring script portability."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/shellcheck-configuration"},"updatedAt":"2026-04-22T12:51:45.666Z"}}