Start Issue

vkehfdl1/Marshroom/marshroom-skills/skills/start-issue

作者 vkehfdl16dabba42757a5d39217043103391e59b4337c43d無授權條款收錄於 2026年10月9日更新於 2026年10月9日

Start working on a Marshroom cart issue — creates branch, injects context, updates status to running

AI 產生的概覽

開始處理 Marshroom 購物車中的 issue:建立 git 分支、將狀態標記為 running 並注入上下文。

功能
讀取 Marshroom 狀態檔案,將購物車項目與目前儲存庫的 git 遠端位址比對,並依編號或使用者選擇決定 issue。它會更新 main、建立 Feature/#N 或 HotFix/#N 分支,並在 state.json 中將該 issue 狀態設為 running。接著顯示 issue 內容作為上下文,並詢問是否開始規劃。
適用情境
適用於開始處理目前儲存庫在 Marshroom 購物車中追蹤的 issue 時。適合希望在規劃前先備妥分支、狀態更新與 issue 上下文的開發者。
執行需求
需要帶有 origin 遠端位址的 git 儲存庫、Marshroom 的 state.json 檔案(路徑來自 MARSHROOM_STATE 或 ~/.config/marshroom/state.json),以及 marsh 命令列工具或 jq 來進行原子狀態更新。僅為指令,未附帶指令碼。

Start working on a Marshroom cart issue in the current repository.

Critical Requirements

  • state.json update is MANDATORY. After creating the branch, you MUST update the issue status to running in ${MARSHROOM_STATE:-~/.config/marshroom/state.json}. If this fails, stop and report the error — do NOT silently continue.
  • Use marsh start if available; otherwise fall back to direct jq atomic write (see step 10).

Steps

  1. Read ${MARSHROOM_STATE:-~/.config/marshroom/state.json} and parse the JSON
  2. Extract the cart array. If the cart is empty, tell the user to add issues in the Marshroom app
  3. Run git remote get-url origin to get the current repo's remote URL
  4. Extract owner/repo from the remote URL (handle both HTTPS and SSH formats)
  5. Filter cart entries where repoCloneURL (HTTPS) or repoSSHURL (SSH) matches the current remote. Compare by extracting owner/repo from each
  6. If no matching cart entries, tell the user this repo has no cart issues
  7. If $ARGUMENTS contains an issue number, find that entry; otherwise if multiple matches, list them and ask the user to pick one
  8. Run git checkout main && git pull origin main to ensure main is up to date
  9. Create and checkout the branch: git checkout -b {branchName} The branch name should be Feature/#N or HotFix/#N. N is issue number.
  10. Update issue status (MANDATORY):
    • First try: marsh start #{issueNumber}
    • If marsh is not found in PATH, fall back to direct atomic update:
      bash
      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"
    • Verify the update succeeded by reading state.json and confirming status is running
  11. Inject issue context:
    • Read the issueBody field from the matched cart entry
    • If non-null, display it under a "## Issue Details" header
    • This gives the agent full context about what needs to be done
  12. Confirm the branch was created and display:
    • Issue: #{issueNumber} {issueTitle}
    • Branch: {branchName}
    • Repository: {repoFullName}
    • Status: running
  13. Ask the user permission to start planning to resolve issue. If the user allows it, starts planning using /plan mode.

來源與署名

來源:vkehfdl1/Marshroom位於marshroom-skills/skills/start-issue提交6dabba4

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架