swiftui-design-consultationlisted
Install: claude install-skill Paretofilm/superpowers-gstack
# /superpowers-gstack:swiftui-design-consultation
Apple-canon design system consultation for SwiftUI projects. Output:
`DESIGN.md` + `DesignSystem/` Swift Package + `DESIGN.html` (via htmlify).
## Phase 0 — Setup
### Step 0.0: Initialize gstack helpers (set $SLUG)
This skill writes per-project state under `~/.gstack/projects/$SLUG/`,
so `$SLUG` (the gstack project identifier derived from the git remote)
must be set before any other Phase reads or writes it.
```bash
# Pull gstack-slug into the current shell. Sets $SLUG = repo-slug
# from `git remote get-url origin` per gstack convention.
#
# CAREFUL: `eval "$(... 2>/dev/null)" || fallback` does NOT work — if
# gstack-slug is missing, command substitution returns empty, `eval ""`
# succeeds (exit 0), and the fallback never runs. Capture output first
# and check non-empty explicitly.
SLUG_OUTPUT=$(~/.claude/skills/gstack/bin/gstack-slug 2>/dev/null)
if [ -n "$SLUG_OUTPUT" ]; then
eval "$SLUG_OUTPUT"
fi
if [ -z "${SLUG:-}" ]; then
# Fallback: derive slug from git toplevel basename, or pwd basename
# if not in a git repo.
SLUG="$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")"
export SLUG
fi
if [ -z "$SLUG" ] || [ "$SLUG" = "/" ]; then
echo "FATAL: could not derive SLUG. Aborting." >&2
exit 1
fi
mkdir -p ~/.gstack/projects/"$SLUG"
echo "SLUG: $SLUG"
```
`$SLUG` is referenced throughout subsequent phases for state-file paths
(`~/.gstack/projects/$SLUG/design-proposal-{ts}.md`,
`~/.gstack/project