Skip to main content

carbon-pr

Post the development footprint of the current branch as a sticky PR comment

Install this skill

or
93/100

Security score

The carbon-pr skill was audited on Sep 16, 2026 and we found 7 security issues across 1 threat category. Review the findings below before installing.

Categories Tested

Security Issues

low line 22

Command substitution pattern

SourceSKILL.md
20 esac
21}
22CFG="$(ccp "${CLAUDE_CONFIG_DIR:-$HOME/.claude}")"
23REPO_DIR=""
24if command -v jq >/dev/null 2>&1 && [ -f "$CFG/settings.json" ]; then
low line 25

Command substitution pattern

SourceSKILL.md
23REPO_DIR=""
24if command -v jq >/dev/null 2>&1 && [ -f "$CFG/settings.json" ]; then
25 SL_CMD="$(jq -r '.statusLine.command // empty' "$CFG/settings.json" 2>/dev/null)"
26 # statusLine.command stores a shell-escaped path: expand ~ and unescape spaces
27 SL_CMD="${SL_CMD//\\ / }"; SL_CMD="${SL_CMD/#\~/$HOME}"; SL_CMD="$(ccp "$SL_CMD")"
low line 27

Command substitution pattern

SourceSKILL.md
25 SL_CMD="$(jq -r '.statusLine.command // empty' "$CFG/settings.json" 2>/dev/null)"
26 # statusLine.command stores a shell-escaped path: expand ~ and unescape spaces
27 SL_CMD="${SL_CMD//\\ / }"; SL_CMD="${SL_CMD/#\~/$HOME}"; SL_CMD="$(ccp "$SL_CMD")"
28 [ -n "$SL_CMD" ] && [ -f "$SL_CMD" ] && REPO_DIR="$(cd "$(dirname "$SL_CMD")/.." 2>/dev/null && pwd)"
29fi
low line 28

Command substitution pattern

SourceSKILL.md
26 # statusLine.command stores a shell-escaped path: expand ~ and unescape spaces
27 SL_CMD="${SL_CMD//\\ / }"; SL_CMD="${SL_CMD/#\~/$HOME}"; SL_CMD="$(ccp "$SL_CMD")"
28 [ -n "$SL_CMD" ] && [ -f "$SL_CMD" ] && REPO_DIR="$(cd "$(dirname "$SL_CMD")/.." 2>/dev/null && pwd)"
29fi
30[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && REPO_DIR="$(ccp "$CLAUDE_PLUGIN_ROOT")"
low line 30

Command substitution pattern

SourceSKILL.md
28 [ -n "$SL_CMD" ] && [ -f "$SL_CMD" ] && REPO_DIR="$(cd "$(dirname "$SL_CMD")/.." 2>/dev/null && pwd)"
29fi
30[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && REPO_DIR="$(ccp "$CLAUDE_PLUGIN_ROOT")"
31[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_CARBON_DIR:-}" ] && REPO_DIR="$(ccp "$CLAUDE_CARBON_DIR")"
32if [ -z "$REPO_DIR" ]; then
low line 31

Command substitution pattern

SourceSKILL.md
29fi
30[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && REPO_DIR="$(ccp "$CLAUDE_PLUGIN_ROOT")"
31[ -z "$REPO_DIR" ] && [ -n "${CLAUDE_CARBON_DIR:-}" ] && REPO_DIR="$(ccp "$CLAUDE_CARBON_DIR")"
32if [ -z "$REPO_DIR" ]; then
33 # Pure marketplace installs reach here: no statusLine.command in settings.json and
low line 39

Command substitution pattern

SourceSKILL.md
37 for D in "$CFG/plugins/cache"/*/claude-carbon/*/; do
38 [ -f "${D}scripts/generate-pr-report.sh" ] || continue
39 if [ -z "$CACHE_LATEST" ] || [ "$(printf '%s\n%s\n' "$CACHE_LATEST" "$D" | sort -V | tail -1)" = "$D" ]; then
40 CACHE_LATEST="$D"
41 fi
Scanned on Sep 16, 2026
View Security Dashboard
Installation guide →
GitHub Stars 194
Rate this skill
Categorydevelopment
UpdatedSeptember 27, 2026
gwittebolle/claude-carbon