mcpField
S
start-issue

start-issue

github.com/vkehfdl1开发01.2k 次安装35 周前更新
代码仓库

关于 start-issue

用于在当前仓库开始处理 Marshroom 任务车议题的技能。它会匹配仓库与议题、创建分支,并要求先将议题状态更新为 running 才能继续。

主要功能

  1. 01将任务车议题匹配到当前仓库
  2. 02从匹配项中选择议题
  3. 03更新 main 并创建议题分支
  4. 04将状态设为 running 并核验
  5. 05显示议题详情和分支信息

适用场景

  1. 01开始处理选定的任务车议题
  2. 02准备功能或热修复分支
  3. 03规划前载入议题上下文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/vkehfdl1/marshroom --skill start-issue

安装后在 Claude Code 中输入/start-issue确认已加载。

详细介绍

开始在当前仓库中处理一个 Marshroom 任务车问题。

关键要求

  • 必须更新 state.json。创建分支后,必须将 ${MARSHROOM_STATE:-~/.config/marshroom/state.json} 中的问题状态更新为 running。如果失败,请停止并报告错误——不要默默继续。
  • 如果有 marsh start,请使用;否则回退到直接使用 jq 原子写入(见第 10 步)。

步骤

  1. 读取 ${MARSHROOM_STATE:-~/.config/marshroom/state.json} 并解析 JSON
  2. 提取 cart 数组。如果任务车为空,告诉用户在 Marshroom 应用中添加问题
  3. 运行 git remote get-url origin 获取当前仓库的远程 URL
  4. 从远程 URL 中提取 owner/repo(兼容 HTTPS 和 SSH 格式)
  5. 筛选任务车条目:repoCloneURL(HTTPS)或 repoSSHURL(SSH)与当前远程匹配。比较时,从两者中提取 owner/repo
  6. 如果没有匹配的任务车条目,告诉用户此仓库没有任务车问题
  7. 如果 $ARGUMENTS 包含问题编号,则查找对应条目;否则,如果有多个匹配项,列出它们并请用户选择一个
  8. 运行 git checkout main && git pull origin main,确保 main 已是最新
  9. 创建并切换到分支:git checkout -b {branchName}。分支名应为 Feature/#N 或 HotFix/#N。N 是问题编号。
  10. 更新问题状态(必须):
    • 首先尝试:marsh start #{issueNumber}
    • 如果 PATH 中找不到 marsh,则回退到直接原子更新:
      STATE_FILE="${MARSHROOM_STATE:-~/.config/marshroom/state.json}"
      TMP="$(mktemp "${STATE_FILE}.XXXXXX")"
      jq --argjson n ISSUE_NUMBER '.cart |= map(if .issueNumber == $n then .status = "running" else . end)' \
        "$STATE_FILE" > "$TMP" && mv -f "$TMP" "$STATE_FILE"
      
    • 读取 state.json 并确认状态为 running,验证更新是否成功
  11. 注入问题上下文:
    • 读取匹配的任务车条目中的 issueBody 字段
    • 如果不为 null,则在“## 问题详情”标题下显示该字段内容
    • 这将为 Agent 提供需要处理事项的完整上下文
  12. 确认分支已创建,并显示:
    • 问题:#{issueNumber} {issueTitle}
    • 分支:{branchName}
    • 仓库:{repoFullName}
    • 状态:running
  13. 询问用户是否允许开始规划问题解决方案。如果用户同意,则使用 /plan 模式开始规划。

评论

支持 Markdown