From e28d0f7951b3eab4e0fbd0d5fc52165132d4263e Mon Sep 17 00:00:00 2001 From: "kevin.wu" Date: Fri, 27 Mar 2026 14:33:27 +0800 Subject: [PATCH] fix: CI shellcheck and markdownlint exclude node_modules - Scope shellcheck to scripts/ and start.sh (skip node_modules) - Add !**/node_modules/** to markdownlint globs - Fix SC2086 in start.sh: use array for CHANNEL_ARGS --- .github/workflows/ci.yml | 5 +++-- start.sh | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 102698c..b2cd6f8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,11 @@ jobs: - name: Markdown lint uses: DavidAnson/markdownlint-cli2-action@v19 with: - globs: "**/*.md" + globs: "**/*.md !**/node_modules/**" - name: ShellCheck uses: ludeeus/action-shellcheck@2.0.0 with: - scandir: "." + scandir: "scripts" severity: warning + additional_files: "start.sh" diff --git a/start.sh b/start.sh index 1729c5e..b11142b 100644 --- a/start.sh +++ b/start.sh @@ -91,7 +91,7 @@ for ch in "${CHANNELS[@]}"; do done # Otherwise, use Claude Code --channels -CHANNEL_ARGS="" +CHANNEL_ARGS=() for ch in "${CHANNELS[@]}"; do plugin="${CHANNEL_PLUGINS[$ch]:-}" if [[ -z "$plugin" ]]; then @@ -100,7 +100,7 @@ for ch in "${CHANNELS[@]}"; do exit 1 fi export "${ch^^}_STATE_DIR=$PROJECT_DIR/.claude/channels/$ch" - CHANNEL_ARGS+=" --channels $plugin" + CHANNEL_ARGS+=(--channels "$plugin") # Symlink plugin cache → local fork. # Claude Code re-extracts official plugins on startup, overwriting the cache. @@ -140,4 +140,4 @@ for ch in "${CHANNELS[@]}"; do done echo "Starting Claude Code with channel(s): ${CHANNELS[*]}" -exec claude $CHANNEL_ARGS +exec claude "${CHANNEL_ARGS[@]}"