Local MCP Server
在Termux中运行本地MCP服务器,支持Ollama模型的文件读取与命令执行。
自动化管理GitHub项目全生命周期的AI工作流技能。
openclaw skills install @kretkas/github-project-workflow命令、参数、文件名以原文为准
这些是必须遵守的行为规则。在涉及代码、项目或任务的任何情况下都需遵循。
当此技能首次加载时,向用户进行介绍:
如果这是用户第一次创建项目:
gh auth status — 如果未认证,需先运行 gh auth login --webmain 和 develop 分支的保护规则~/workspace/projects/<仓库名>/develop 分支如果用户已有项目:
~/workspace/projects/<仓库名>/当用户返回一个已克隆的项目时 — 在进行任何更改前,执行会话启动检查清单(参见下方代理工作流)。
main 或 develop 分支。gh CLI 进行。在非 git 目录中操作时,始终使用 --repo owner/repo。gh auth login --web 或 GITHUB_TOKEN 环境变量。gh secret set NAME --repo owner/repo(交互式设置,绝不使用 --body)。gh auth status 来验证状态。只读查询。所有写入操作均需用户明确确认 — 参见参考文件中的 ⚠️ 标记。
| 任务 | 命令 |
|---|---|
| 认证状态检查 | gh auth status |
| 列出 PR | gh pr list --repo o/r |
| 创建 PR | gh pr create --repo o/r --title "..." --base develop --head branch |
| 查看 PR 检查项 | gh pr checks <n> --repo o/r |
| 合并(压缩提交) | gh pr merge <n> --squash --delete-branch --repo o/r |
| 失败的 CI 日志 | gh run view <id> --log-failed --repo o/r |
| 重试失败的构建 | gh run rerun <id> --failed-only --repo o/r |
| 创建 Issue | gh issue create --repo o/r --title "..." --body "..." |
| 创建发布 | gh release create vX.Y.Z --repo o/r --title "..." --notes "..." |
| 设置密钥 | gh secret set KEY --repo o/r |
| 分支保护 | gh api --method PUT repos/o/r/branches/main/protection ... |
main ← 生产环境,受保护
develop ← 集成分支
feature/* ← 从 develop 分支创建
fix/* ← 从 develop 分支创建(关联 Issue:fix/123-desc)
hotfix/* ← 从 main 分支创建(紧急修复)
release/* ← 从 develop 分支创建(发布准备)
chore/* ← 从 develop 分支创建(依赖、工具链、CI — 无产品变更)提交规范:feat: 描述 (#42) / fix: 描述 (#42)
PR 合并方式:功能类使用 --squash,发布类使用 --merge。
语义化版本:MAJOR.MINOR.PATCH — 破坏性变更 / 新功能 / 修复。
始终将项目克隆至 ~/workspace/projects/<仓库名>/。不在 /tmp 中工作 — 该目录在会话间不会持久保留。
mkdir -p ~/workspace/projects
gh repo clone owner/repo ~/workspace/projects/repo-name
cd ~/workspace/projects/repo-namegh auth status # 1. 验证认证状态
git checkout develop && git pull # 2. 同步最新代码
git branch # 3. 确认当前所在分支正确
# 4. 打开 work/<issue>-<desc>.md 并阅读 Status.next 内容在开始任何任务前,评估其规模 — 这决定了工作流程的严格程度。
| 规模 | 信号 | 可跳过的步骤 |
|---|---|---|
| 小型 | ≤2 个文件,无后端/认证/基础设施改动,仅外观或配置调整 | Issue、PR、完整工作日志 → 可使用 quick-log.md 替代 |
| 正常 | 3–10 个文件,代码库单一区域改动 | Issue 可选(若明显),PR 仅在风险较高时创建 |
| 重要 | 后端、认证、基础设施、API、数据库、多组件、部署相关 | 无例外 — 必须执行完整工作流程 |
如有疑问 — 按重要任务处理。
在创建 Issue 或分支前,持续提问直至需求清晰:
在获得明确答复前不得开始实现。 小型/正常任务可跳过此步骤,根据上下文推断即可。
小型任务:
1. 从 develop 分支创建新分支 → git checkout -b fix/short-desc
2. 原子化提交 → "fix: 描述"
3. 追加至 quick-log.md → 添加日期和一行变更说明
4. ⚠️ 征得用户确认 — 通过 PR 合并 → gh pr merge --squash --delete-branch常规/重要任务:
1. 创建或查找 Issue → gh issue create / gh issue list
2. 创建工作日志文件 → work/<issue>-<desc>.md(参见下方“工作日志”部分)
3. 从 develop 分支创建新分支 → git checkout -b feature/42-short-desc
4. 进行小而原子化的提交 → 每次提交只包含一个变更
5. 提交信息中引用 Issue → "feat: 描述 (#42)"
6. 在首次提交后打开草稿 PR → gh pr create --draft(尽早表明正在进行中的工作)
7. 监控 CI 状态 → gh run watch
若 CI 失败:
- 下载失败的日志 → gh run view <id> --log-failed
- 在工作日志中记录原因 → Status.blocked 或 Notes
- 修复并提交("fix: 修复 CI 失败"),推送
- 等待通过绿色状态后再继续
8. 前提检查清单(参见下方)
9. 标记为就绪并请求审查 → gh pr ready / gh pr review
10. 审核通过后合并 → gh pr merge --squash --delete-branch
11. 关闭 Issue 并整理工作日志 → gh issue close 42在标记 PR 为就绪前,请确认:
git diff origin/develop — 确保无调试代码、密钥或临时文件gh pr checks <n>)PR 描述模板:
## 什么
对变更的简要描述。
## 为什么
关闭 #<issue>
## 变更
- 变更 1
- 变更 2
## 测试
- [ ] 本地测试通过
- [ ] CI 绿色
- [ ] 手动检查已完成(如涉及 UI)若任务未在会话结束时完成:
git stash push -m "wip: 当前进行中的内容描述"更新工作日志中的 Status 和 next,然后停止。下次会话开始时:先阅读 next,再执行 git stash pop。
当合并或变基过程中出现冲突时:
git status # 查看冲突文件
# 打开每个文件 — 手动解决,保留正确代码
git add <已解决的文件>
git rebase --continue # 或 git merge --continue
# 若冲突过于复杂 — 中止并询问用户
git rebase --abort
git merge --abort规则:
--ours 或 --theirs,必须理解差异在实现过程中发现原 Issue 之外的额外需求:
Notes 部分添加说明紧急修复需从 main 分支创建。合并到 main 后,必须将相同修复合并回 develop — 否则该问题将在下个版本中重现。
1. 从 main 分支创建修复分支 → git checkout main && git pull
git checkout -b hotfix/short-desc
2. 修复并提交 → "fix: 描述"
3. 创建 PR 到 main → gh pr create --base main --head hotfix/...
4. 审核通过后合并到 main → gh pr merge --squash --delete-branch
5. ⚠️ 必须与用户确认 — 也合并到 develop → git checkout develop && git pull
git merge main
git push origin develop
6. 发布版本标签 → gh release create vX.Y.Z --target main
7. 记录在工作日志中 → 说明哪里出错、如何修复、原因绝不能跳过第 5 步 — 未同步的 develop 将导致问题在下次发布时再次出现。
每个任务都应有对应的日志条目。格式根据任务规模决定。
每项目共享一个文件:work/quick-log.md
## 2026-05-08
- 修复列表卡片间距(components/Card.css)
- 更新解析器超时设置(config/parser.yml)
- 修正格鲁吉亚语翻译(locales/ka.json)每项小型任务追加一行。无需结构、状态或决策记录。创建一次,永不压缩。
每个重要任务应拥有独立的日志文件。它是代理的记忆库 — 用于定位、决策和状态追踪。
mkdir -p work
# 每个项目只需执行一次
echo "work/" >> .gitignore文件路径:work/<issue-number>-<short-desc>.md
# 任务: <标题> (#<issue>)
目标: <一句话描述 — “完成”的标准>
## 状态
当前: <代理正在执行的内容>
下一步: <计划中的下一步操作>
阻塞: <阻塞原因或 —>
## 已完成
- [x] 已创建分支 feature/42-user-auth
- [x] 已添加 JWT 中间件(src/auth.js)
- [ ] PR 审查待处理
## 决策
- 使用 HS256 — 本项目无密钥基础设施
- 跳过刷新令牌 — 依据 Issue 评论不在范围内
## 注意事项
- src/auth.js:84 — token 刚好过期的边界情况,需关注
- AUTH_SECRET 环境变量必须在部署前加入 secrets| 事件 | 操作 |
|---|---|
| 会话开始 | 阅读 next,更新 current |
| 创建文件或模块 | 添加至 已完成 |
| 做出决策 | 添加至 决策,附上理由 |
| 发现意外情况 | 添加至 注意事项 |
| 完成步骤 | 勾选 已完成,更新 下一步 |
| 会话结束 | 更新 状态,明确写出 下一步 |
| 任务完成 | 压缩后归档 |
当文件超过约 80 行,或任务完成后,进行压缩:
已完成 — 保留未勾选项 + 最近 3 项已完成,其余删除决策 — 保留全部,永不删除注意事项 — 已解决的删除,保留未解决的状态 — 重写为全新内容next —— 它是重新进入的入口点Decisions —— 它们可防止已解决的问题被重复争论仅加载当前任务所需的文件:
| 任务 | 需要阅读的文件 |
|---|---|
| 新仓库设置、分支保护 | references/repo-setup.md |
| PR、代码审查、合并策略 | references/pull-requests.md |
| CI 运行、GitHub Actions | references/ci-actions.md |
| 发布、版本管理、标签 | references/releases.md |
| 密钥、环境配置 | references/secrets-envs.md |
| JSON 查询、审计、搜索 | references/api-queries.md |
已收录 1 个 Skill