关于 start-issue
用于在当前仓库开始处理 Marshroom 任务车议题的技能。它会匹配仓库与议题、创建分支,并要求先将议题状态更新为 running 才能继续。
主要功能
- 01将任务车议题匹配到当前仓库
- 02从匹配项中选择议题
- 03更新 main 并创建议题分支
- 04将状态设为 running 并核验
- 05显示议题详情和分支信息
适用场景
- 01开始处理选定的任务车议题
- 02准备功能或热修复分支
- 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 步)。
步骤
- 读取
${MARSHROOM_STATE:-~/.config/marshroom/state.json}并解析 JSON - 提取
cart数组。如果任务车为空,告诉用户在 Marshroom 应用中添加问题 - 运行
git remote get-url origin获取当前仓库的远程 URL - 从远程 URL 中提取
owner/repo(兼容 HTTPS 和 SSH 格式) - 筛选任务车条目:
repoCloneURL(HTTPS)或repoSSHURL(SSH)与当前远程匹配。比较时,从两者中提取owner/repo - 如果没有匹配的任务车条目,告诉用户此仓库没有任务车问题
- 如果
$ARGUMENTS包含问题编号,则查找对应条目;否则,如果有多个匹配项,列出它们并请用户选择一个 - 运行
git checkout main && git pull origin main,确保 main 已是最新 - 创建并切换到分支:
git checkout -b {branchName}。分支名应为Feature/#N或HotFix/#N。N是问题编号。 - 更新问题状态(必须):
- 首先尝试:
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,验证更新是否成功
- 首先尝试:
- 注入问题上下文:
- 读取匹配的任务车条目中的
issueBody字段 - 如果不为 null,则在“## 问题详情”标题下显示该字段内容
- 这将为 Agent 提供需要处理事项的完整上下文
- 读取匹配的任务车条目中的
- 确认分支已创建,并显示:
- 问题:#{issueNumber} {issueTitle}
- 分支:{branchName}
- 仓库:{repoFullName}
- 状态:running
- 询问用户是否允许开始规划问题解决方案。如果用户同意,则使用 /plan 模式开始规划。
评论
支持 Markdown