mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-17 13:07:22 +02:00
fix: resolve merge conflicts — rebase onto main v0.13.10.0
CHANGELOG: keep both main's entries (0.13.10.0 Office Hours, 0.13.9.0 Composable Skills) and our sidebar inspector entry, re-versioned to 0.13.11.0 since our features land after main's 0.13.10.0. VERSION: 0.13.9.0 (ours) vs 0.13.10.0 (main) → 0.13.11.0 (combined). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -68,6 +68,14 @@ if [ -f "$_LEARN_FILE" ]; then
|
||||
else
|
||||
echo "LEARNINGS: 0"
|
||||
fi
|
||||
# Check if CLAUDE.md has routing rules
|
||||
_HAS_ROUTING="no"
|
||||
if [ -f CLAUDE.md ] && grep -q "## Skill routing" CLAUDE.md 2>/dev/null; then
|
||||
_HAS_ROUTING="yes"
|
||||
fi
|
||||
_ROUTING_DECLINED=$(~/.claude/skills/gstack/bin/gstack-config get routing_declined 2>/dev/null || echo "false")
|
||||
echo "HAS_ROUTING: $_HAS_ROUTING"
|
||||
echo "ROUTING_DECLINED: $_ROUTING_DECLINED"
|
||||
```
|
||||
|
||||
If `PROACTIVE` is `"false"`, do not proactively suggest gstack skills AND do not
|
||||
@@ -149,6 +157,49 @@ touch ~/.gstack/.proactive-prompted
|
||||
|
||||
This only happens once. If `PROACTIVE_PROMPTED` is `yes`, skip this entirely.
|
||||
|
||||
If `HAS_ROUTING` is `no` AND `ROUTING_DECLINED` is `false` AND `PROACTIVE_PROMPTED` is `yes`:
|
||||
Check if a CLAUDE.md file exists in the project root. If it does not exist, create it.
|
||||
|
||||
Use AskUserQuestion:
|
||||
|
||||
> gstack works best when your project's CLAUDE.md includes skill routing rules.
|
||||
> This tells Claude to use specialized workflows (like /ship, /investigate, /qa)
|
||||
> instead of answering directly. It's a one-time addition, about 15 lines.
|
||||
|
||||
Options:
|
||||
- A) Add routing rules to CLAUDE.md (recommended)
|
||||
- B) No thanks, I'll invoke skills manually
|
||||
|
||||
If A: Append this section to the end of CLAUDE.md:
|
||||
|
||||
```markdown
|
||||
|
||||
## Skill routing
|
||||
|
||||
When the user's request matches an available skill, ALWAYS invoke it using the Skill
|
||||
tool as your FIRST action. Do NOT answer directly, do NOT use other tools first.
|
||||
The skill has specialized workflows that produce better results than ad-hoc answers.
|
||||
|
||||
Key routing rules:
|
||||
- Product ideas, "is this worth building", brainstorming → invoke office-hours
|
||||
- Bugs, errors, "why is this broken", 500 errors → invoke investigate
|
||||
- Ship, deploy, push, create PR → invoke ship
|
||||
- QA, test the site, find bugs → invoke qa
|
||||
- Code review, check my diff → invoke review
|
||||
- Update docs after shipping → invoke document-release
|
||||
- Weekly retro → invoke retro
|
||||
- Design system, brand → invoke design-consultation
|
||||
- Visual audit, design polish → invoke design-review
|
||||
- Architecture review → invoke plan-eng-review
|
||||
```
|
||||
|
||||
Then commit the change: `git add CLAUDE.md && git commit -m "chore: add gstack skill routing rules to CLAUDE.md"`
|
||||
|
||||
If B: run `~/.claude/skills/gstack/bin/gstack-config set routing_declined true`
|
||||
Say "No problem. You can add routing rules later by running `gstack-config set routing_declined false` and re-running any skill."
|
||||
|
||||
This only happens once per project. If `HAS_ROUTING` is `yes` or `ROUTING_DECLINED` is `true`, skip this entirely.
|
||||
|
||||
## Voice
|
||||
|
||||
**Tone:** direct, concrete, sharp, never corporate, never academic. Sound like a builder, not a consultant. Name the file, the function, the command. No filler, no throat-clearing.
|
||||
@@ -271,28 +322,37 @@ Then write a `## GSTACK REVIEW REPORT` section to the end of the plan file:
|
||||
file you are allowed to edit in plan mode. The plan file review report is part of the
|
||||
plan's living status.
|
||||
|
||||
If `PROACTIVE` is `false`: do NOT proactively 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 `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): suggest adjacent gstack skills when relevant to the
|
||||
user's workflow stage:
|
||||
- Brainstorming → /office-hours
|
||||
- Strategy → /plan-ceo-review
|
||||
- Architecture → /plan-eng-review
|
||||
- Design → /plan-design-review or /design-consultation
|
||||
- Auto-review → /autoplan
|
||||
- Debugging → /investigate
|
||||
- QA → /qa
|
||||
- Code review → /review
|
||||
- Visual audit → /design-review
|
||||
- Shipping → /ship
|
||||
- Docs → /document-release
|
||||
- Retro → /retro
|
||||
- Second opinion → /codex
|
||||
- Prod safety → /careful or /guard
|
||||
- Scoped edits → /freeze or /unfreeze
|
||||
- Upgrades → /gstack-upgrade
|
||||
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", wants to brainstorm → invoke `/office-hours`
|
||||
- User asks about strategy, scope, ambition, "think bigger" → invoke `/plan-ceo-review`
|
||||
- User asks to review architecture, lock in the plan → invoke `/plan-eng-review`
|
||||
- User asks about design system, brand, visual identity → invoke `/design-consultation`
|
||||
- User asks to review design of a plan → invoke `/plan-design-review`
|
||||
- User wants all reviews done automatically → invoke `/autoplan`
|
||||
- User reports a bug, error, broken behavior, asks "why is this broken" → invoke `/investigate`
|
||||
- User asks to test the site, find bugs, QA → invoke `/qa`
|
||||
- User asks to review code, check the diff, pre-landing review → invoke `/review`
|
||||
- User asks about visual polish, design audit of a live site → invoke `/design-review`
|
||||
- User asks to ship, deploy, push, create a PR → invoke `/ship`
|
||||
- User asks to update docs after shipping → invoke `/document-release`
|
||||
- User asks for a weekly retro, what did we ship → 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`
|
||||
|
||||
**Do NOT answer the user's question directly when a matching skill exists.** The skill
|
||||
provides a structured, multi-step workflow that is always better than an ad-hoc answer.
|
||||
Invoke the skill first. 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`.
|
||||
|
||||
Reference in New Issue
Block a user