design-consultation
“Design consultation: understands your product, researches the landscape, proposes a complete design system (aesthetic, typography, color, layout, spacing, motion), and generates font+color preview... (gstack)”
aipkg.jsonLICENSE.txtREADME.mdSKILL.mdSKILL.md.tmpl- 01SSD-485%MEDIUM
SKILL.md:163
detailhide
The skill implements a multi-stage permission escalation pattern disguised as onboarding. Early prompts (telemetry, routing, learnings) normalize user acceptance of data collection, file writes, and behavior logging. Later phases (design system creation) escalate to persistent state manipulation and external service calls. Users gradually accept each step without understanding cumulative permission scope.
161162If output shows `JUST_UPGRADED <from> <to>`: print "Running gstack v{to} (just updated!)". If `SPAWNED_SESSION` is true, skip feature discovery.163164Feature discovery, max one prompt per session:165- Missing `~/.claude/skills/gstack/.feature-prompted-continuous-checkpoint`: AskUserQuestion for Continuous checkpoint auto-commits. If accepted, run `~/.claude/skills/gstack/bin/gstack-config set checkpoint_mode continuous`. Always touch marker.fix Consolidate all permission requests into a single, explicit upfront disclosure. Show the user exactly what data will be collected, where it will be stored, and what external services will be contacted before running ANY preamble code. Use explicit opt-in (not opt-out) for telemetry. Remove the gradual narrative framing.
- 02SSD-380%MEDIUM
SKILL.md:89
detailhide
Telemetry and analytics logging runs unconditionally on every skill invocation, appending to ~/.gstack/analytics/skill-usage.jsonl without per-session re-consent. Users may have toggled telemetry off once, but the code checks a single config file that could be stale or overridden. Repository metadata (via `basename git rev-parse --show-toplevel`) is logged with user consent only at first setup, not on every run.
87echo "QUESTION_TUNING: $_QUESTION_TUNING"88mkdir -p ~/.gstack/analytics89if [ "$_TEL" != "off" ]; then90echo '{"skill":"design-consultation","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","repo":"'$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null || echo "unknown")'"}' >> ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null || true91fifix Before logging ANY telemetry: (1) explicitly read the current telemetry setting from config, (2) re-prompt the user if the setting is unset, (3) log only the specific data type the user consented to (never repo name without explicit consent), (4) honor 'off' with zero logging, no fallback defaults.
- 03SSD-188%MEDIUM
SKILL.md:152
detailhide
The preamble states 'the skill takes precedence over generic plan mode behavior' and instructs treating 'the skill file as executable instructions, not reference.' This framing pressures the LLM to execute skill steps even when plan-mode safety gates would normally block them. The instruction 'Do not continue the workflow or call ExitPlanMode' at STOP points creates a false equivalence between workflow completion and safety compliance, potentially allowing dangerous operations to proceed unchecked in plan mode.
150In plan mode, allowed because they inform the plan: `$B`, `$D`, `codex exec`/`codex review`, writes to `~/.gstack/`, writes to the plan file, and `open` for generated artifacts.151152## Skill Invocation During Plan Mode153154If the user invokes a skill in plan mode, the skill takes precedence over generic plan mode behavior. **Treat the skill file as executable instructions, not reference.** Follow it step by step starting from Step 0; the first AskUserQuestion is the workflow entering plan mode, not a violation of it. AskUserQuestion (any variant — `mcp__*__AskUserQuestion` or native; see "AskUserQuestion Format → Tool resolution") satisfies plan mode's end-of-turn requirement. If no variant is callable, the skill is BLOCKED — stop and report `BLOCKED — AskUserQuestion unavailable` per the AskUserQuestion Format rule. At a STOP point, stop immediately. Do not continue the workflow or call ExitPlanMode there. Commands marked "PLAN MODE EXCEPTION — ALWAYS RUN" execute. Call ExitPlanMode only after the skill workflow completes, or if the user tells you to cancel the skill or leave plan mode.fix Remove the 'skill takes precedence' framing. Replace with: 'Plan-mode safety gates always apply. If a skill instruction conflicts with plan-mode rules, escalate to the user via AskUserQuestion before proceeding.' Add explicit STOP checkpoints that verify the plan file state before ExitPlanMode is called.
- 04SSD-272%LOW
SKILL.md:1528
detailhide
The skill instructs writing 'learnings' (user behavior observations) to ~/.gstack/analytics/eureka.jsonl and learnings-log with minimal guardrails. These are framed as 'operational insights' but actually log design choices, product reasoning, and user preferences. The learnings are searchable cross-project, creating a persistent behavior profile without explicit consent. No mechanism prevents learnings from containing sensitive product strategy or user PII.
1526---15271528## Capture Learnings15291530If you discovered a non-obvious pattern, pitfall, or architectural insight duringfix Require explicit user consent before logging any learning. Show the user exactly what will be logged before writing. Implement content filters to prevent logging of email addresses, API keys, or business-sensitive information. Mark learnings with a clear retention policy (e.g., delete after 90 days) and allow users to inspect/delete their own learnings.