start-issue について
現在のリポジトリでMarshroomのカート内Issueに着手するスキルです。リポジトリとIssueを照合してブランチを作成し、続行前にステータスをrunningへ更新する手順を必須とします。
主な機能
- 01カート内Issueをリポジトリと照合
- 02候補からIssueを選択
- 03mainを更新してIssueブランチを作成
- 04ステータスをrunningに設定して確認
- 05Issue詳細とブランチ情報を表示
活用シーン
- 01選んだカート内Issueの作業を開始
- 02機能またはホットフィックス用ブランチを準備
- 03計画前にIssueのコンテキストを読み込む
インストール
コマンドをコピーしてターミナルで実行します。
$
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} marshが PATH に見つからない場合は、次の方法で直接アトミック更新を行います: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 でない場合は、"## Issue Details" ヘッダーの下に表示します
- これにより、エージェントは対応すべき内容をすべて把握できます
- 一致したカート項目から
- ブランチが作成されたことを確認し、次の情報を表示します:
- 課題:#{issueNumber} {issueTitle}
- ブランチ:{branchName}
- リポジトリ:{repoFullName}
- ステータス:running
- 課題解決の計画を開始してよいか、ユーザーに許可を求めます。ユーザーが許可した場合は、/plan モードを使って計画を開始します。
コメント
Markdown 対応