--- name: gstack preamble-tier: 1 version: 1.2.0 description: | Router for the gstack skill suite. Sends any gstack request to the right skill (planning, review, QA, shipping, debugging, docs, security, design). For browser/QA and dogfooding it points you at /browse. Use when you invoke gstack without a specific skill, or ask "which gstack skill fits this?". (gstack) allowed-tools: - Bash - Read - AskUserQuestion triggers: - gstack - which gstack skill - route this with gstack --- {{PREAMBLE}} ## Route first This is the gstack router. Its one job is to send the request to the right skill. 1. If the request is about a browser, QA, dogfooding, screenshots, or inspecting a page (open a site, test a deploy, take a screenshot, check a flow visually) → invoke `/browse`. 2. Otherwise, route by the rules below. If nothing matches, answer directly. Best-effort, record which way you routed (never block on it). Set `ROUTE_OUTCOME` to `browse` (sent to /browse), `routed` (sent to another skill), or `direct` (answered directly, no skill matched): ```bash ~/.claude/skills/gstack/bin/gstack-telemetry-log --event-type route --skill gstack --outcome ROUTE_OUTCOME --session-id "$_SESSION_ID" 2>/dev/null || true ``` If `PROACTIVE` is `false`: do NOT proactively invoke or suggest other gstack skills during this session. Only run skills the user explicitly invokes. This preference persists across sessions via `gstack-config`. If `PROACTIVE` is `true` (default): **invoke the Skill tool** when the user's request matches a skill's purpose. Do NOT answer directly when a skill exists for the task. Use the Skill tool to invoke it. The skill has specialized workflows, checklists, and quality gates that produce better results than answering inline. **Routing rules — when you see these patterns, INVOKE the skill via the Skill tool:** - User describes a new idea, asks "is this worth building", brainstorms, pitches a concept → invoke `/office-hours` - User asks to spec something out, file an issue, write up a ticket, "turn this into a GitHub issue", "backlog item" → invoke `/spec` - User asks about strategy, scope, ambition, "think bigger", "what should we build" → invoke `/plan-ceo-review` - User asks to review architecture, lock in the plan, "does this design make sense" → invoke `/plan-eng-review` - User asks about design system, brand, visual identity, "how should this look" → invoke `/design-consultation` - User asks to review design of a plan → invoke `/plan-design-review` - User asks about developer experience of a plan, API/CLI/SDK design → invoke `/plan-devex-review` - User wants all reviews done automatically, "review everything" → invoke `/autoplan` - User reports a bug, error, broken behavior, "why is this broken", "this doesn't work", "wtf", "something's wrong" → invoke `/investigate` - User asks to test the site, find bugs, QA, "does this work", "check the deploy" → invoke `/qa` - User asks to just report bugs without fixing → invoke `/qa-only` - User asks to review code, check the diff, pre-landing review, "look at my changes" → invoke `/review` - User asks about visual polish, design audit of a live site, "this looks off" → invoke `/design-review` - User asks to audit the live developer experience, time-to-hello-world → invoke `/devex-review` - User asks to ship, deploy, push, create a PR, "let's land this", "send it" → invoke `/ship` - User asks to merge + deploy + verify as one flow → invoke `/land-and-deploy` - User asks to configure deployment for the project → invoke `/setup-deploy` - User asks to monitor prod after shipping, post-deploy checks → invoke `/canary` - User asks to update docs after shipping → invoke `/document-release` - User asks to write docs from scratch, generate documentation, "document this feature/module" → invoke `/document-generate` - User asks for a weekly retro, what did we ship, "how'd we do" → invoke `/retro` - User asks for a second opinion, codex review → invoke `/codex` - User asks for safety mode, careful mode → invoke `/careful` or `/guard` - User asks to restrict edits to a directory → invoke `/freeze` or `/unfreeze` - User asks to upgrade gstack → invoke `/gstack-upgrade` - User asks to save progress, checkpoint, "save my work" → invoke `/context-save` - User asks to resume, restore, "where was I" → invoke `/context-restore` - User asks about security, OWASP, vulnerabilities, "is this secure" → invoke `/cso` - User asks to make a PDF, document, publication → invoke `/make-pdf` - User asks to launch a real browser for QA, "open the browser" → invoke `/open-gstack-browser` - User asks to import cookies for authenticated testing → invoke `/setup-browser-cookies` - User asks about page speed, performance regression, benchmarks → invoke `/benchmark` - User asks what gstack has learned, "show learnings" → invoke `/learn` - User asks to tune question sensitivity, "stop asking me that" → invoke `/plan-tune` - User asks for code quality dashboard, "health check" → invoke `/health` **When in doubt, invoke the skill.** A false positive (invoking a skill that wasn't needed) is cheaper than a false negative (answering ad-hoc when a structured workflow exists). The skill provides multi-step workflows, checklists, and quality gates that always produce better results than an ad-hoc answer. If no skill matches, answer directly as usual. If the user opts out of suggestions, run `gstack-config set proactive false`. If they opt back in, run `gstack-config set proactive true`.