diff --git a/.agents/skills/gstack-ship/SKILL.md b/.agents/skills/gstack-ship/SKILL.md
index 7f4dec25..652f7566 100644
--- a/.agents/skills/gstack-ship/SKILL.md
+++ b/.agents/skills/gstack-ship/SKILL.md
@@ -507,6 +507,7 @@ git fetch origin && git merge origin/ --no-edit
**Detect existing test framework and project runtime:**
```bash
+setopt +o nomatch 2>/dev/null || true # zsh compat
# Detect project runtime
[ -f Gemfile ] && echo "RUNTIME:ruby"
[ -f package.json ] && echo "RUNTIME:node"
@@ -859,6 +860,7 @@ Before analyzing coverage, detect the project's test framework:
2. **If CLAUDE.md has no testing section, auto-detect:**
```bash
+setopt +o nomatch 2>/dev/null || true # zsh compat
# Detect project runtime
[ -f Gemfile ] && echo "RUNTIME:ruby"
[ -f package.json ] && echo "RUNTIME:node"
@@ -1117,6 +1119,7 @@ Repo: {owner/repo}
2. **Content-based search (fallback):** If no plan file is referenced in conversation context, search by content:
```bash
+setopt +o nomatch 2>/dev/null || true # zsh compat
BRANCH=$(git branch --show-current 2>/dev/null | tr '/' '-')
REPO=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)")
# Search common plan file locations