cmd-fix-internal-requests

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/fix-internal-requests

/fix-internal-requests

Agent skill wrapper for the Claude command
/fix-internal-requests
.
When the original command text references
{{INPUT}}
,
$1
, or named arguments, map them from the user's current request.
Claude命令
/fix-internal-requests
的Agent skill封装。
当原始命令文本引用
{{INPUT}}
$1
或命名参数时,从用户当前请求中映射这些参数。

Command Instructions

命令说明

Fix Internal Request Issues

修复内部请求问题

Fix all open GitHub issues labeled
internal request
in isolated worktrees, then open PRs.
在独立工作树中修复所有标记为
internal request
的GitHub未解决问题,然后提交PR。

Setup (once)

初始化设置(仅需一次)

bash
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
REPO_ROOT=$(git rev-parse --show-toplevel)
BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
mkdir -p .trees
gh label create "internal request fixed" --color "0e8a16" --force 2>/dev/null
gh label create "unable to resolve" --color "e4e669" --force 2>/dev/null
bash
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
REPO_ROOT=$(git rev-parse --show-toplevel)
BASE_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
mkdir -p .trees
gh label create "internal request fixed" --color "0e8a16" --force 2>/dev/null
gh label create "unable to resolve" --color "e4e669" --force 2>/dev/null

1. List Issues

1. 列出问题

Fetch open issues labeled
internal request
via GitHub MCP using
$REPO
. Post-fetch, exclude any with
unable to resolve
label or that already have an open PR targeting
fix/issue-{number}
.
If none remain, report "No open internal request issues" and stop.
Print summary table: number, title, labels.
通过GitHub MCP使用
$REPO
获取标记为
internal request
的未解决问题。获取后,排除带有
unable to resolve
标签或已有针对
fix/issue-{number}
的开放PR的问题。
如果没有剩余问题,报告"无开放的内部请求问题"并停止。
打印汇总表格:编号、标题、标签。

2. Per-Issue Loop

2. 逐个处理问题

For each issue, sequentially:
针对每个问题,依次执行以下步骤:

Branch & Worktree

创建分支与工作树

bash
git worktree remove .trees/issue-{number} 2>/dev/null; git branch -D fix/issue-{number} 2>/dev/null
git worktree add .trees/issue-{number} -b fix/issue-{number} "$BASE_BRANCH"
bash
git worktree remove .trees/issue-{number} 2>/dev/null; git branch -D fix/issue-{number} 2>/dev/null
git worktree add .trees/issue-{number} -b fix/issue-{number} "$BASE_BRANCH"

Fix

修复问题

Work only inside
.trees/issue-{number}/
:
  1. Read the issue body — identify affected files, expected behavior, repro steps
  2. Implement minimum viable fix (add tests if warranted)
  3. Verify the fix builds and tests pass
仅在
.trees/issue-{number}/
目录内操作:
  1. 阅读问题内容——确定受影响的文件、预期行为、复现步骤
  2. 实现最小可行修复(如有必要添加测试)
  3. 验证修复可构建且测试通过

Commit & PR

提交代码并创建PR

bash
cd .trees/issue-{number}
git add -A && git commit -m "fix: {description} (fixes #{number})"
git push -u origin fix/issue-{number}
gh pr create --base "$BASE_BRANCH" --head fix/issue-{number} \
  --title "fix: {description}" \
  --label "internal request fixed" \
  --body $'## Summary\n- {bullets}\n\nFixes #{number}'
bash
cd .trees/issue-{number}
git add -A && git commit -m "fix: {description} (fixes #{number})"
git push -u origin fix/issue-{number}
gh pr create --base "$BASE_BRANCH" --head fix/issue-{number} \
  --title "fix: {description}" \
  --label "internal request fixed" \
  --body $'## Summary\n- {bullets}\n\nFixes #{number}'

Cleanup

清理工作

bash
cd "$REPO_ROOT"
git worktree remove .trees/issue-{number}
bash
cd "$REPO_ROOT"
git worktree remove .trees/issue-{number}

On Failure

处理失败情况

If the issue can't be fixed (ambiguous scope, missing info, design decisions needed):
  1. gh issue edit {number} --add-label "unable to resolve"
  2. gh issue comment {number} --body "Automated fix not possible: {reason}"
  3. Clean up worktree/branch, mark as skipped
如果问题无法修复(范围模糊、信息缺失、需要设计决策):
  1. gh issue edit {number} --add-label "unable to resolve"
  2. gh issue comment {number} --body "Automated fix not possible: {reason}"
  3. 清理工作树/分支,标记为已跳过

3. Summary

3. 汇总报告

Repo: $REPO
Internal Request Issues Processed:
  #{n} — {title} → PR #{pr} (fix/issue-{n})
  #{m} — {title} → Skipped: {reason}

Created: X | Skipped: Y | Failed: Z
Repo: $REPO
Internal Request Issues Processed:
  #{n} — {title} → PR #{pr} (fix/issue-{n})
  #{m} — {title} → Skipped: {reason}

Created: X | Skipped: Y | Failed: Z

Constraints

约束条件

  • Never modify main working directory — worktrees only
  • Never push code that fails build or tests
  • Use
    fixes #{number}
    in commit message for auto-close on merge
  • Build/test commands are repo-specific — read from project config or CLAUDE.md
  • 绝不修改主工作目录——仅使用工作树
  • 绝不推送构建或测试失败的代码
  • 在提交信息中使用
    fixes #{number}
    以便合并时自动关闭问题
  • 构建/测试命令因仓库而异——从项目配置或CLAUDE.md中读取