About start-issue
A skill for starting work on a Marshroom cart issue in the current repository. It matches the repository to a cart entry, creates an issue branch, and requires the issue status to be updated to running before continuing.
Key features
- 01Match cart issues to the current repository
- 02Select an issue from matching entries
- 03Update main and create an issue branch
- 04Set and verify status as running
- 05Display issue details and branch context
Use cases
- 01Begin work on a selected cart issue
- 02Prepare a feature or hotfix branch
- 03Load issue context before planning
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ vkehfdl1/ marshroom --skill start-issueAfter installing, type/start-issuein Claude Code to confirm it loaded.
Details
From the project READMEStart 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
runningin${MARSHROOM_STATE:-~/.config/marshroom/state.json}. If this fails, stop and report the error — do NOT silently continue. - Use
marsh startif available; otherwise fall back to directjqatomic write (see step 10).
Steps
- Read
${MARSHROOM_STATE:-~/.config/marshroom/state.json}and parse the JSON - Extract the
cartarray. If the cart is empty, tell the user to add issues in the Marshroom app - Run
git remote get-url originto get the current repo's remote URL - Extract
owner/repofrom the remote URL (handle both HTTPS and SSH formats) - Filter cart entries where
repoCloneURL(HTTPS) orrepoSSHURL(SSH) matches the current remote. Compare by extractingowner/repofrom each - If no matching cart entries, tell the user this repo has no cart issues
- If
$ARGUMENTScontains an issue number, find that entry; otherwise if multiple matches, list them and ask the user to pick one - Run
git checkout main && git pull origin mainto ensure main is up to date - Create and checkout the branch:
git checkout -b {branchName}The branch name should beFeature/#NorHotFix/#N.Nis issue number. - Update issue status (MANDATORY):
- First try:
marsh start #{issueNumber} - If
marshis not found in PATH, fall back to direct atomic update: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
- First try:
- Inject issue context:
- Read the
issueBodyfield 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
- Read the
- Confirm the branch was created and display:
- Issue: #{issueNumber} {issueTitle}
- Branch: {branchName}
- Repository: {repoFullName}
- Status: running
- Ask the user permission to start planning to resolve issue. If the user allows it, starts planning using /plan mode.
Comments
Markdown supported