如何用 Claude Code Skills 提升开发效率?Garry Tan gstack 的 6 个实战技巧
引言
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?
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/ # 符号链接指向当前版本
技能变更日志
在每个技能目录中维护 CHANGELOG.md:
# 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 的安全问题"
输出:
- ⚠️ 中等风险:用户 ID 未验证
- ⚠️ 低风险:推荐结果未缓存可能导致性能问题
- 修复建议代码
步骤 4:迭代修复
cc --skill=backend "根据安全审查结果修复问题"
总结与行动建议
Garry Tan 的 gstack 系统提供了一个宝贵的框架,但真正的价值在于理解其背后的原则:
- 角色分离:让 AI 专注于单一职责
- 技能组合:构建可链接的工作流
- 格式规范:定义清晰的输入输出
- 领域专用:创建针对特定场景的技能
- 版本控制:管理技能的演进
- 团队共享:将个人经验转化为团队资产
立即行动
- 从 gstack GitHub 仓库克隆基础技能:https://github.com/garrytan/gstack
- 选择 1-2 个最相关的技能开始使用
- 根据你的技术栈调整技能定义
- 记录使用效果并持续优化
- 与团队分享你的定制技能
AI 编程的真正力量不在于替代人类,而在于放大人类的能力。gstack 这样的系统,正是放大器的设计蓝图。
参考资料
效率工具,一站直达
常用工具都在这里,打开即用 www.tinyash.com/tool