name: sharing-skills description: 当您开发了一个广泛有用的技能并希望通过拉取请求将其贡献到上游时使用 - 指导分支、提交、推送和创建 PR 的过程,以将技能贡献回上游仓库
分享技能
概述
将技能从本地分支贡献回上游仓库。
工作流程: 分支 → 编辑/创建技能 → 提交 → 推送 → PR
何时分享
分享当:
- 技能广泛适用(非项目特定)
- 模式/技术他人会受益
- 经过充分测试和文档化
- 遵循 writing-skills 指南
保持个人当:
- 项目特定或组织特定
- 实验性或不稳定
- 包含敏感信息
- 过于狭窄/小众,不适合一般使用
先决条件
ghCLI 已安装并认证- 工作目录是
~/.config/superpowers/skills/(您的本地克隆) - 必需: 技能已使用 writing-skills TDD 过程进行测试
分享工作流程
1. 确保您在 Main 分支并同步
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main # 推送到您的分支
2. 创建功能分支
# 分支名称: add-skillname-skill
skill_name="your-skill-name"
git checkout -b "add-${skill_name}-skill"
3. 创建或编辑技能
# 在 skills/ 中处理您的技能
# 创建新技能或编辑现有技能
# 技能应在 skills/类别/技能名称/SKILL.md
4. 提交更改
# 添加并提交
git add skills/your-skill-name/
git commit -m "Add ${skill_name} skill
$(cat <<'EOF'
简要描述该技能的作用及其为什么有用。
测试于: [描述测试方法]
EOF
)"
5. 推送到您的分支
git push -u origin "add-${skill_name}-skill"
6. 创建拉取请求
# 使用 gh CLI 创建 PR 到上游
gh pr create \
--repo upstream-org/upstream-repo \
--title "Add ${skill_name} skill" \
--body "$(cat <<'EOF'
## 总结
简要描述该技能及其解决的问题。
## 测试
描述您如何测试该技能(压力场景、基线测试等)。
## 上下文
关于为什么需要该技能以及如何使用它的任何额外上下文。
EOF
)"
完整示例
这是一个分享名为 “async-patterns” 技能的完整示例:
# 1. 与上游同步
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main
# 2. 创建分支
git checkout -b "add-async-patterns-skill"
# 3. 创建/编辑技能
# (在 skills/async-patterns/SKILL.md 中工作)
# 4. 提交
git add skills/async-patterns/
git commit -m "Add async-patterns skill
处理测试和应用程序代码中异步操作的模式。
测试于: 多个压力场景测试代理合规性。"
# 5. 推送
git push -u origin "add-async-patterns-skill"
# 6. 创建 PR
gh pr create \
--repo upstream-org/upstream-repo \
--title "Add async-patterns skill" \
--body "## 总结
正确处理测试和应用程序代码中异步操作的模式。
## 测试
使用多个应用场景进行测试。代理成功将模式应用于新代码。
## 上下文
解决常见的异步陷阱,如竞争条件、不当错误处理和时间问题。"
PR 合并后
一旦您的 PR 合并:
- 同步本地 main 分支:
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main
- 删除功能分支:
git branch -d "add-${skill_name}-skill"
git push origin --delete "add-${skill_name}-skill"
故障排除
“gh: command not found”
- 安装 GitHub CLI: https://cli.github.com/
- 认证:
gh auth login
“Permission denied (publickey)”
- 检查 SSH 密钥:
gh auth status - 设置 SSH: https://docs.github.com/en/authentication
“技能已存在”
- 您正在创建修改版本
- 考虑不同的技能名称或与技能维护者协调
PR 合并冲突
- 在最新上游上变基:
git fetch upstream && git rebase upstream/main - 解决冲突
- 强制推送:
git push -f origin your-branch
多技能贡献
不要在一个 PR 中批处理多个技能。
每个技能应:
- 拥有自己的功能分支
- 拥有自己的 PR
- 可独立审查
为什么? 单个技能可以独立审查、迭代和合并。
相关技能
- writing-skills - 必需: 如何在分享前创建经过充分测试的技能