引言
Y Combinator 首席执行官 Garry Tan 最近在 SXSW 大会上分享了他与 AI 智能体工作的狂热状态——他称之为”网络精神病”(cyber psychosis)。每天只睡 4 小时,却精力充沛地同时推进三个不同项目。秘诀是什么?他开源的 Claude Code gstack 技能系统。
2026 年 3 月 12 日,Tan 在 GitHub 上公开了他的 gstack 配置,短短几天内收获了近 20,000 颗星和 2,200 次 fork。这套包含 13 个可复用技能(skills)的系统,让开发者能够模拟完整的工程团队结构,而非简单地”构建这个功能”。
本文将深入解析 gstack 的核心理念,并提供 6 个实战技巧,帮助你在自己的开发工作流中应用类似的 AI 技能系统。
Claude Code Skills 是存储在特殊 skill.md 文件中的可复用提示词(prompts),它们指示 AI 在特定角色或任务中如何行为。每个技能文件定义了一个专门的工作模式,例如:
- CEO 技能:评估创业想法或功能的商业价值
- 工程师技能:编写高质量代码实现功能
- 代码审查技能:检查 bug 和安全问题
- 设计师技能:优化用户体验和界面
- 文档技能:生成清晰的技术文档
gstack 的核心洞察是:AI 编程在模拟工程团队结构时效果最佳。与其让 AI 一次性完成所有工作,不如让它分角色、分步骤地协作。
技巧一:建立角色分离的工作流
gstack 最强大的设计原则是角色分离。每个技能专注于单一职责,避免 AI 同时扮演多个角色导致的注意力分散。
实施步骤
- 创建技能目录结构
mkdir -p ~/.claude-code/skills/
mkdir -p ~/.claude-code/skills/ceo
mkdir -p ~/.claude-code/skills/engineer
mkdir -p ~/.claude-code/skills/reviewer
mkdir -p ~/.claude-code/skills/designer
- 定义 CEO 技能(
ceo/skill.md)
# Role: CEO
你是一位经验丰富的科技公司 CEO,擅长评估产品想法的商业价值。
## 职责
- 评估功能的商业可行性和市场价值
- 分析用户需求和痛点
- 确定优先级和 MVP 范围
- 考虑竞争格局和差异化
## 输出格式
1. 商业价值评分(1-10)
2. 目标用户群体
3. 核心价值主张
4. 建议的 MVP 功能列表
5. 潜在风险和挑战
- 定义工程师技能(
engineer/skill.md)
# Role: Senior Engineer
你是一位资深软件工程师,擅长编写高质量、可维护的代码。
## 职责
- 根据需求设计技术方案
- 编写清晰、高效的代码
- 遵循最佳实践和设计模式
- 编写单元测试和集成测试
## 代码标准
- 使用 TypeScript/Python(根据项目)
- 遵循 SOLID 原则
- 添加完整的类型注解
- 包含详细的注释和文档字符串
## 输出格式
1. 技术方案概述
2. 文件结构和修改列表
3. 完整代码实现
4. 测试用例
5. 部署注意事项
工作流程示例
# 第一步:用 CEO 技能评估想法
cc --skill=ceo "我想做一个 AI 驱动的代码审查工具,帮助小团队发现安全问题"
# 第二步:用工程师技能实现
cc --skill=engineer "根据 CEO 的评估,实现一个基础的代码审查功能"
# 第三步:用审查技能检查
cc --skill=reviewer "审查刚才实现的代码,找出潜在的安全问题"
技巧二:设计可组合的技能链
gstack 的真正威力在于技能之间的组合。通过定义清晰的输入输出格式,你可以让一个技能的输出成为下一个技能的输入。
技能链接模式
# 技能链:想法 → 评估 → 实现 → 审查 → 部署
1. CEO 技能输出 → 工程师技能输入
- CEO 的"MVP 功能列表"成为工程师的"需求规格"
2. 工程师技能输出 → 审查技能输入
- 工程师的"完整代码实现"成为审查的"待审查代码"
3. 审查技能输出 → 工程师技能输入(迭代)
- 审查发现的"问题列表"成为工程师的"修复任务"
自动化脚本示例
创建一个简单的 shell 脚本来自动化技能链:
#!/bin/bash
# run-skill-chain.sh
IDEA="$1"
echo " 步骤 1: CEO 评估..."
CEO_OUTPUT=$(cc --skill=ceo "$IDEA" --json)
echo " 步骤 2: 工程师实现..."
ENGINEER_OUTPUT=$(cc --skill=engineer "$CEO_OUTPUT" --json)
echo " 步骤 3: 代码审查..."
REVIEW_OUTPUT=$(cc --skill=reviewer "$ENGINEER_OUTPUT" --json)
echo " 完成!审查结果:"
echo "$REVIEW_OUTPUT"
技巧三:定义明确的输出格式
每个技能都应该有严格的输出格式要求,这使得技能之间的数据传递更加可靠。
JSON 输出格式
## 输出格式(JSON)
```json
{
"status": "success|warning|error",
"summary": "简要概述",
"details": {
"key_points": ["要点 1", "要点 2"],
"recommendations": ["建议 1", "建议 2"],
"risks": ["风险 1", "风险 2"]
},
"next_steps": ["下一步 1", "下一步 2"],
"confidence_score": 0.85
}
### 结构化输出优势
- **可解析**:可以轻松提取特定字段供下游技能使用
- **一致性**:确保每次输出的格式相同
- **可追踪**:便于记录和分析 AI 决策过程
## 技巧四:创建领域专用技能
除了通用的角色技能,gstack 还鼓励创建针对特定技术栈或业务领域的专用技能。
### 示例:前端 React 技能
```markdown
# Role: React Frontend Engineer
你是一位专注 React 生态的前端工程师。
## 技术栈
- React 19+ with Hooks
- TypeScript 5+
- Tailwind CSS
- React Query for data fetching
- Zod for validation
## 组件标准
1. 使用函数组件和 Hooks
2. 所有 props 必须有 TypeScript 类型定义
3. 使用 Tailwind 工具类进行样式设计
4. 实现响应式设计(mobile-first)
5. 包含加载状态和错误处理
## 性能要求
- 使用 React.memo 优化重渲染
- 实现虚拟滚动处理大数据列表
- 使用 Suspense 进行代码分割
- 避免不必要的 useEffect 依赖
## 输出模板
1. 组件设计思路
2. Props 接口定义
3. 完整组件代码
4. 使用示例
5. 性能优化说明
示例:API 安全技能
# Role: API Security Specialist
你是一位专注于 API 安全的工程师。
## 检查清单
- [ ] 身份验证和授权机制
- [ ] 输入验证和清理
- [ ] SQL 注入防护
- [ ] XSS 防护
- [ ] CSRF 令牌
- [ ] 速率限制
- [ ] 敏感数据加密
- [ ] 错误信息不泄露内部细节
## 输出格式
1. 发现的安全问题(按严重程度排序)
2. 每个问题的详细说明
3. 修复建议和代码示例
4. 优先级评分(Critical/High/Medium/Low)
技巧五:建立技能版本控制
随着你的技能系统逐渐成熟,版本控制变得至关重要。
技能版本管理
# 技能目录结构
~/.claude-code/skills/
├── v1/
│ ├── ceo/
│ ├── engineer/
│ └── reviewer/
├── v2/
│ ├── ceo/
│ ├── engineer/
│ └── reviewer/
└── current -> v2/ # 符号链接指向当前版本
技能变更日志
# CEO Skill Changelog
## v2.1.0 (2026-03-15)
- 添加了竞争分析部分
- 改进了风险评估模板
- 增加了市场时机评估
## v2.0.0 (2026-03-10)
- 重构输出格式为 JSON
- 添加了置信度评分
- 分离了 MVP 定义逻辑
## v1.0.0 (2026-03-01)
- 初始版本
技巧六:团队技能共享与协作
gstack 的设计初衷之一是团队共享。通过合理的配置,整个团队可以使用统一的技能系统。
项目级技能配置
在项目根目录创建 .claude-code/ 目录:
your-project/
├── .claude-code/
│ └── skills/
│ ├── product/
│ ├── backend/
│ └── frontend/
├── src/
└── package.json
团队技能同步脚本
#!/bin/bash
# sync-skills.sh
SKILLS_REPO="git@github.com:your-team/team-skills.git"
LOCAL_SKILLS_DIR="./.claude-code/skills"
echo " 同步团队技能..."
git clone $SKILLS_REPO /tmp/team-skills
cp -r /tmp/team-skills/* $LOCAL_SKILLS_DIR/
rm -rf /tmp/team-skills
echo " 技能同步完成!"
echo " 可用技能:"
ls -1 $LOCAL_SKILLS_DIR
团队技能规范文档
创建 SKILLS_GUIDE.md 供团队成员参考:
# 团队技能使用指南
## 快速开始
```bash
# 安装团队技能
./scripts/install-skills.sh
# 使用技能
cc --skill=backend "实现用户认证 API"
cc --skill=frontend "创建登录页面组件"
可用技能列表
| 技能 | 用途 | 负责人 |
|---|---|---|
| backend | 后端 API 开发 | @tech-lead |
| frontend | 前端组件开发 | @ui-lead |
| reviewer | 代码审查 | @all |
| security | 安全检查 | @security-team |
贡献新技能
- 在
skills/目录创建新技能文件夹 - 编写
skill.md定义角色和职责 - 添加测试用例验证技能效果
- 提交 PR 供团队审查
## 争议与反思:gstack 真的是"上帝模式"吗?
gstack 发布后引发了两极分化的反应。一方面,支持者称之为"上帝模式",声称它能立即发现团队未曾意识到的安全漏洞。另一方面,批评者认为这不过是"一堆提示词",有经验的 Claude Code 用户早已在使用类似方法。
真相可能介于两者之间:
**gstack 的价值不在于魔法,而在于结构化**。它将隐式的最佳实践显式化,将个人经验转化为可复用的系统。对于 AI 编程新手,它提供了快速上手的模板;对于资深用户,它提供了优化和扩展的基础。
正如 ChatGPT 的评价:"gstack 是'相当复杂的提示工作流,但并不神奇'。真正的洞察是:AI 编程在模拟工程团队结构时效果最佳。"
## 实战案例:用 gstack 思维开发一个功能
让我们通过一个完整案例演示如何应用这些技巧。
### 场景:为电商网站添加"智能推荐"功能
**步骤 1:CEO 评估**
```bash
cc --skill=ceo "为我们的电商网站添加 AI 驱动的商品推荐功能"
输出要点:
- 商业价值评分:8/10
- 目标用户:浏览未购买的用户
- 核心价值:提升转化率 15-25%
- MVP 范围:基于浏览历史的简单推荐
步骤 2:工程师实现
cc --skill=backend "实现推荐 API:接收用户 ID,返回推荐商品列表"
输出:
- 技术方案:协同过滤 + 热门商品兜底
- 文件结构:
/api/recommendations.ts,/lib/recommendation-engine.ts - 完整代码实现
- 单元测试
步骤 3:安全审查
cc --skill=security "审查推荐 API 的安全问题"
输出:
步骤 4:迭代修复
cc --skill=backend "根据安全审查结果修复问题"
总结与行动建议
Garry Tan 的 gstack 系统提供了一个宝贵的框架,但真正的价值在于理解其背后的原则:
- 角色分离:让 AI 专注于单一职责
- 技能组合:构建可链接的工作流
- 格式规范:定义清晰的输入输出
- 领域专用:创建针对特定场景的技能
- 版本控制:管理技能的演进
- 团队共享:将个人经验转化为团队资产
立即行动
- 从 gstack GitHub 仓库克隆基础技能:https://github.com/garrytan/gstack
- 选择 1-2 个最相关的技能开始使用
- 根据你的技术栈调整技能定义
- 记录使用效果并持续优化
- 与团队分享你的定制技能
AI 编程的真正力量不在于替代人类,而在于放大人类的能力。gstack 这样的系统,正是放大器的设计蓝图。