gstack-industrial
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 8 GitHub stars
Code Fail
- spawnSync — Synchronous process spawning in hooks/skill-router-before-message.ts
- execSync — Synchronous shell command execution in skill-router/context-extractor.ts
- process.env — Environment variable access in skill-router/gen-skill-docs.ts
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is an enhancement layer for the "gstack" Claude Code ecosystem. It automatically scans installed skills and suggests the most relevant one based on your current task and project state.
Security Assessment
Overall Risk: Medium. The repository explicitly claims "No telemetry. No network calls," and does not request dangerous permissions. However, the codebase contains two critical security failures: synchronous shell command execution (`execSync`) and synchronous process spawning (`spawnSync`) in its core routing and hook scripts. The tool also accesses environment variables (`process.env`). Because it automatically installs background hooks that trigger on user actions, the presence of shell executions means any future malicious update or code injection could compromise your system.
Quality Assessment
The project is very new and currently has low community visibility with only 8 GitHub stars. On the positive side, it is licensed under the standard MIT license, has a clear description, and is actively maintained with repository pushes happening as recently as today.
Verdict
Use with caution — while it promises offline-only convenience, developers should carefully review the synchronous shell executions in the hook scripts before installing.
Workflow system for Claude Code with automated templates, intelligent routing, and staged execution.
gstack-industrial
Auto-suggest the right Claude Code skill for your task
Enhancement layer on top of gstack — not a replacement.
What is this?
You have hundreds of Claude Code skills installed but can never remember which one to use?
gstack-industrial solves this:
- Auto-Discovery — Scans all installed SKILL.md files and builds routing rules automatically
- Auto-Suggest — Recommends the best skill based on your message and project state
- Usage feedback — Learns from what you accept vs dismiss, boosts/penalizes priority
- Pair learning — Reads gstack's timeline, predicts next skill after you accept one
- Repo-mode aware — Lower threshold for solo devs, higher for collaborative (via gstack)
- Zero Interruption — Only suggests when truly helpful, won't spam you
All state is local-only. No telemetry. No network calls.
Relationship with gstack
gstack-industrial is a layer on top of gstack, not a replacement. It reuses gstack's infrastructure:
| What gstack provides | What gstack-industrial adds |
|---|---|
| 36+ skills (ship, review, qa, brainstorming, etc.) | Auto-suggest any installed skill based on your message |
gstack-repo-mode binary (solo/collaborative detection) |
Repo-mode aware thresholds (reads gstack's output) |
timeline.jsonl (skill completion tracking) |
Pair learning (reads gstack's timeline to predict next skill) |
Manual skill invocation (/ship, /review, etc.) |
Proactive suggestions via UserPromptSubmit hook |
gstack is required — install gstack first, then gstack-industrial.
Quick Start
Installation (2 minutes)
# 1. Clone
git clone https://github.com/kevintseng/gstack-industrial.git
cd gstack-industrial
# 2. Auto-install
bun install
The installer automatically:
- Copies skill-router to
~/.claude/skills/templates/skill-router/ - Copies hooks to
~/.claude/hooks/ - Scans all installed skills and builds routing rules
- Registers UserPromptSubmit hook (auto-suggest)
- Registers SessionStart hook (auto-discovery)
- Creates default config
Installation is idempotent — running it again won't create duplicate hooks.
Usage
Auto mode (recommended): Do nothing, Claude will auto-suggest at the right time
You say: "I need to think about how to implement this feature"
Claude auto-responds:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Suggestion: Use @brainstorming
Organize ideas with structured thinking
(Say "yes" to run, or "stop suggesting" to disable)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Manual testing:
cd ~/.claude/skills/templates/skill-router
bun run test-cli.ts "I need to review my code" --debug
Auto-Discovery (v1.1.0)
On every Claude Code session start, auto-discover scans all SKILL.md files under ~/.claude/skills/:
- Parse frontmatter — Reads
nameanddescriptionfields - Extract keywords — Pulls trigger words from descriptions (quoted phrases, slash commands, key terms)
- Infer phase — Determines applicable development phase (think/plan/build/review/test/ship)
- Merge into matchers.json — New skills are added automatically; manually-written rules are never overwritten
Features:
- Deduplication: when the same skill exists in multiple sources, priority is gstack > plugin > standalone
- Idempotent: running repeatedly won't create duplicate entries
- Manual rule protection:
autoDiscovered: trueflag distinguishes auto vs manual rules - 1-hour cooldown: avoids re-scanning on every session resume
Manual trigger:
# Scan and update
bun run discover
# Preview (no write)
bun run discover:dry
How does it know what to suggest?
Smart Router analyzes:
- Your words — "brainstorm" -> suggests brainstorming skill
- Project state — Uncommitted files -> suggests code review
- Development phase — "ready to merge" -> suggests finishing-branch skill
- Repo mode — Lower threshold for solo devs (60), higher for collaborative (85)
- Your history — Boosts skills you often accept, penalizes ones you dismiss
- Skill patterns — Predicts next skill based on your past sequences (via gstack timeline)
Anti-spam mechanisms:
- Cooldown: no repeat suggestions within 5 minutes
- Session cap: 500 suggestions max per session (visible warning when hit, not silent)
- Same skill won't be suggested 3 times in a row
- Feedback-based: skills you dismiss get lower priority over time
Advanced Configuration (Optional)
Works out of the box, but you can customize:
Disable suggestions for certain skills:
Edit ~/.claude/config/skill-router.json:
{
"disabledSkills": ["skill-judge"]
}
Set quiet hours (no interruptions at night):
{
"quietHours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}
Boost priority for specific skills:
{
"priorityBoosts": {
"brainstorming": 20,
"systematic-debugging": 15
}
}
Tune repo-mode thresholds:
{
"repoModeThresholds": {
"solo": 60,
"collaborative": 85,
"unknown": 80
}
}
Tune feedback sensitivity:
{
"feedbackBoost": 20,
"feedbackPenalty": 30,
"showLimitWarnings": true
}
Details: INSTALL.md
File Structure
gstack-industrial/
├── skill-router/
│ ├── auto-discover.ts # Scans SKILL.md -> matchers.json
│ ├── matchers.json # Routing rules (manual + auto)
│ ├── matcher-engine.ts # Scoring engine
│ ├── context-extractor.ts # Context extraction
│ ├── types.ts # Type definitions
│ ├── index.ts # Router entry point
│ ├── gen-skill-docs.ts # Template generator
│ ├── suggestion-formatter.ts # Suggestion formatter
│ └── test-cli.ts # CLI test tool
├── hooks/
│ ├── skill-router-before-message.ts # UserPromptSubmit hook
│ └── skill-discovery-session-start.sh # SessionStart hook
├── standard-sections/ # Shared template sections
├── install.ts # Install script
├── package.json
└── README.md
Uninstall
# Remove installed files
rm -rf ~/.claude/skills/templates/skill-router
rm ~/.claude/skills/templates/*-section.md
rm ~/.claude/hooks/skill-router-before-message.ts
rm ~/.claude/hooks/skill-discovery-session-start.sh
rm ~/.claude/config/skill-router.json
rm ~/.claude/sessions/skill-router-state.json
rm ~/.claude/sessions/skill-router-feedback.json
rm ~/.claude/state/skill-discovery-last-run
# Manually edit ~/.claude/settings.json to remove related hooks
Contributing
PRs welcome! Process:
- Fork this repo
- Create a feature branch
- Test your changes
- Submit PR
See CONTRIBUTING.md
License
MIT License - see LICENSE
Acknowledgments
- Garry Tan — Original gstack philosophy
- Claude Code — Integration platform
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found