What is gstack? Garry Tan's Claude Code Skill Pack Explained
Purpose
I saw a Reddit thread about Garry Tan’s Claude Code configuration. The post claimed he ships 10k-20k lines of production code per day with a “structured virtual team” approach. The comments were polarized - some called it revolutionary, others mocked the “5M+ lines per year” math. I wanted to understand what gstack actually does and whether the role-based prompting approach has merit.
What is gstack?
gstack is an open-source skill pack for Claude Code created by Y Combinator CEO Garry Tan. It transforms Claude Code from a generic AI assistant into a structured virtual development team by assigning distinct roles through custom slash commands.
The core idea: instead of one monolithic prompt, gstack gives Claude specific personas for each task. Each role operates within a defined workflow phase.
Role Assignment via Slash Commands:
/ceo - Strategic decisions, priorities, trade-offs/pm - Product requirements, user stories, acceptance criteria/designer - UI/UX decisions, component structure, user flows/em - Engineering management, task breakdown, sprint planning/qalead - Testing strategy, quality gates, bug triage/security - Security review, vulnerability assessment, compliance/release - Deployment, versioning, release notes/reflect - Retrospective, lessons learned, process improvementThe Workflow Phases
gstack groups software delivery into distinct modes rather than one continuous session:
Think → Plan → Build → Review → Test → Ship → Reflect
Each phase has a dedicated role:- Think: /ceo (strategic direction)- Plan: /pm + /em (requirements + breakdown)- Build: /em (implementation oversight)- Review: /qalead (quality check)- Test: /qalead (automated testing)- Ship: /release (deployment)- Reflect: /reflect (process improvement)This structure prevents the context dilution problem I discussed in my previous post about Claude Code workflows. By switching roles, Claude gets fresh context for each phase.
The Browser Automation Component
What makes gstack different from other skill packs is the persistent browser runtime. The /qatest skill uses Playwright to run real browser tests:
/qatest command:
1. Launches Playwright browser session2. Executes test scenarios against running app3. Captures screenshots and console logs4. Reports failures with detailed context5. Suggests fixes based on observed behavior
This is actual E2E testing, not simulated tests.I tried similar browser automation with other Claude Code setups. The difference here is the persistent runtime - the browser stays alive across multiple test runs, reducing startup overhead.
How Role-Based Prompting Works
The key innovation in gstack is role assignment. Let me explain what this means technically.
Each slash command injects a specific persona into Claude’s context:
When you type /ceo:
Context injection:"You are the CEO making strategic decisions. Your priorities:- User value over technical elegance- Speed over perfection- Clear communication over comprehensive documentation- Ship fast, iterate faster
Current decision needed: [user's request]"
Claude responds with CEO-level thinking, not engineer-level implementation details.This is different from giving Claude a single comprehensive instruction. The role switch forces Claude to adopt a specific perspective for each phase.
I tested this approach in my own workflow. When I use /pm, Claude asks about user stories and acceptance criteria. When I use /em, Claude focuses on task breakdown and technical feasibility. Same model, different output because of different context framing.
The Claims vs Reality
The Reddit thread sparked debate about gstack’s claims. Let me break down what’s real and what’s hype:
CLAIMED: 10k-20k lines of production code per dayREALITY: This depends entirely on project complexity and Claude's token limits
CLAIMED: Structured virtual teamREALITY: It's role-based prompting, not actual team collaboration
CLAIMED: MIT licensed, fully open-sourceREALITY: Yes, available on GitHub
CLAIMED: Sprint-as-a-processREALITY: Useful framing for workflow organizationThe top Reddit comment pointed out:
“So 5M+ lines of code per year! As we all know, more code is always better so it must be really good.”
This sarcasm highlights a valid concern. Code volume isn’t a success metric. The real question is whether role-based prompting improves code quality and workflow efficiency.
What I Found Useful
After examining the approach, I identified three aspects worth adopting:
1. Role Switching Prevents Context Dilution
When I use Claude Code for a long session, it forgets earlier decisions. By switching roles with slash commands, each phase starts fresh with focused context. This addresses the context dilution problem I described in my workflow guide.
2. Browser Testing Integration
The Playwright integration for /qatest provides actual E2E testing. This is more reliable than asking Claude to “think about test scenarios.” Real browser execution catches real bugs.
3. Explicit Phase Separation
The Think → Plan → Build → Review → Test → Ship → Reflect flow matches what I already recommend for Claude Code workflows. gstack just makes it explicit with dedicated commands.
What I Question
Three aspects concern me:
1. Role Overhead
Switching between 8 roles adds friction. For small tasks, this overhead might slow development more than it helps. I would use this for complex multi-day projects, not quick fixes.
2. “CEO” Role in Software Development
The /ceo role makes strategic decisions. But I’m the CEO of my own projects. Having Claude pretend to be CEO feels like unnecessary theater. I would skip this role and make decisions myself.
3. Line Count Metrics
The focus on “lines of code shipped” is counterproductive. Good software minimizes code, not maximizes it. I judge success by functionality, not volume.
How to Try gstack
If you want to test this approach:
# Clone the repositorygit clone https://github.com/garrytan/gstack.git
# Copy skills to your Claude configurationcp -r gstack/skills ~/.claude/skills/
# Restart Claude CodeclaudeThen use slash commands during your workflow:
# Strategic decision/ceo Should we use PostgreSQL or MongoDB for this project?
# Requirements/pm Define user stories for the authentication feature
# Implementation/em Break down the auth implementation into tasks
# Testing/qatest Run browser tests on the login flow
# Deployment/release Prepare version 1.0.0 release notes
# Reflection/reflect What went wrong in this sprint?When This Approach Fits
gstack-style role prompting works best for:
GOOD FIT:- Complex projects spanning multiple days- Team-sized complexity (many moving parts)- Projects needing formal QA process- Teams with defined roles (mirrors real structure)
POOR FIT:- Quick fixes and small tasks- Single-feature additions- Prototypes and experiments- Solo developers on simple projectsFor solo developers, I recommend a simplified version: use /plan, /build, /review phases without all eight roles. The overhead reduction makes the workflow more practical.
The Broader Context
TechCrunch reported that Garry Tan described having “cyber psychosis” from AI agent excitement, sleeping only 4 hours a night. This suggests the claims come from genuine enthusiasm, not calculated marketing.
The thousands of developers trying gstack reflect a real demand: developers want structured workflows for AI coding assistants. The role-based approach addresses the “magic genie” problem where Claude generates code without clear direction.
MarkTechPost noted gstack packages Claude Code into “8 opinionated workflow skills” backed by a persistent browser runtime. The opinionated nature means some decisions are pre-made for you - both a benefit (less thinking) and a drawback (less flexibility).
Summary
In this post, I explained what gstack is and how it works with Claude Code. The key points:
- Role-based prompting: Slash commands assign specific personas (CEO, PM, EM, QA Lead, etc.) for each workflow phase
- Workflow phases: Think → Plan → Build → Review → Test → Ship → Reflect provides structured progression
- Browser automation: Playwright integration enables real E2E testing
- MIT licensed: Open-source and available on GitHub
- Practical value: Role switching addresses context dilution; explicit phases prevent ad-hoc development
The approach has merit for complex projects. For simple tasks, the overhead may outweigh benefits. I recommend a simplified version: adopt the phase structure without all eight roles.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
- 👨💻 Reddit: Garry Tan's gstack Claude Code Configuration
- 👨💻 TechCrunch: Garry Tan's AI Agent Obsession
- 👨💻 MarkTechPost: gstack Claude Code Skills
- 👨💻 gstack GitHub Repository
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments