Start Issue

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

by vkehfdl16dabba42757a5d39217043103391e59b4337c43dNo licenseListed Oct 9, 2026Updated Oct 9, 2026

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

AI-generated overview

Starts work on a Marshroom cart issue: creates a git branch, marks the issue running, and injects its context.

What it does
Reads the Marshroom state file, matches cart entries to the current repository's git remote, and picks an issue by number or user choice. It updates main, creates a Feature/#N or HotFix/#N branch, and sets the issue status to running in state.json. It then displays the issue body as context and asks permission to begin planning.
When to use it
Use when beginning work on an issue tracked in the Marshroom cart for the current repository. It suits developers who want the branch, status update, and issue context prepared before planning.
Requirements
A git repository with an origin remote, a Marshroom state.json file (path from MARSHROOM_STATE or ~/.config/marshroom/state.json), and either the marsh CLI or jq for the atomic status update. Instructions only; no scripts are shipped.

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.

Source and attribution

Source:vkehfdl1/Marshroominmarshroom-skills/skills/start-issueat commit6dabba4

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal