name: 分享技能 description: 当你开发了一个广泛有用的技能并希望通过拉取请求贡献到上游时使用 - 指导分支、提交、推送和创建PR以将技能贡献回上游仓库的过程
分享技能
概述
将技能从你的本地分支贡献回上游仓库。
工作流程: 分支 → 编辑/创建技能 → 提交 → 推送 → PR
何时分享
分享时机:
- 技能具有广泛适用性(非项目特定)
- 他人可受益的模式/技术
- 经过充分测试和文档化
- 遵循写作技能指南
保持个人使用时机:
- 项目特定或组织特定
- 实验性或不稳定
- 包含敏感信息
- 过于狭窄/利基,不适合一般使用
前提条件
ghCLI已安装并认证- 工作目录为
~/.config/superpowers/skills/(你的本地克隆) - 必需: 已使用写作技能TDD流程测试过技能
分享工作流程
1. 确保在主分支并同步
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被合并:
- 同步本地主分支:
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 - 必需: 在分享前如何创建经过良好测试的技能