| name | create-issue-from-issue-number |
| description | Re-analyze an existing GitHub Issue using its current title and body as input, refresh the implementation plan against the latest code state, and update the Issue in place. Use this when the user provides an Issue number (numeric, `#`-prefixed, or Issue URL) and wants to regenerate the code analysis via the explore-agent subagent. For reflecting comment-driven updates instead, use update-issue. For creating a brand-new Issue from a natural-language task description, use create-issue. |
| argument-hint | [Issueçªå·] |
| hooks | {"Stop":[{"matcher":"","hooks":[{"type":"command","command":"node \"${CLAUDE_PLUGIN_ROOT}/scripts/stop-servers.mjs\""}]}]} |
Create Issue From Issue Number
åŒæ°ã§åãåã£ãIssueçªå·ãããšã«ã察象Issueã®æ¢åã® title/body ãå
¥åãšããŠå床ã³ãŒãåæãè¡ããdescription ããªãã¬ãã·ã¥ããã¹ãã«ãInstructionsã®é ã«æåŸãŸã§èªåŸçã«å®è¡ããã
èªåŸå®è¡åå: ãŠãŒã¶ãŒãžã®ç¢ºèªã¯è¡ããã倿ã¯ãã¹ãŠæ¬ã¹ãã«å
ã®ã«ãŒã«ã§èªå決å®ãããéäžã§è³ªåããã確èªãããããšã¯æåŸã«Issueãžã®ã³ã¡ã³ããšããŠæ®ããäžææ¡ä»¶ã«è©²åœããå Žåã®ã¿ãçç±ãåºåããŠçµäºããã
å
¥åç¯å²: åŒæ°ã¯ãIssueçªå·ãã®ã¿ïŒæ°å€ã®ã¿ã»#ä»ãæ°å€ã»Issue URLïŒããã以å€ïŒèªç¶èšèªã®ã¿ã¹ã¯èª¬æãªã©ïŒã¯ /create-issue ãæ¡å
ããŠçµäºããã
update-issue ãšã®éã: update-issue ã¯å¯Ÿè±¡Issueã®ã³ã¡ã³ãå
šä»¶ãå
¥åãšããŠæªåæ äºé
ãåæ ãããæ¬ã¹ãã«ã¯æ¢åã® title/body ãã®ãã®ãå
¥åãšã㊠explore-agent ã§ã³ãŒãåæãããçŽããå®è£
ãã©ã³ã»åœ±é¿ç¯å²ã»çŽè¿é¢é£å€æŽãªã©ãææ°ã®ã³ãŒãç¶æ
ã« refresh ãããã³ã¡ã³ããåã蟌ã¿ããå Žå㯠/update-issue ã䜿ãã
責åã®åæ
: æ¬ã¹ãã«ã¯ãæ¢åIssueååŸã»ã¿ã¹ã¯å
容çè§£ã»ã³ãŒãååæã»å
ã®äŸé Œå
容ã®ä¿åãšåæ 確èªããŸã§ãæ
ãããæ¬ææŽåœ¢ã»æçš¿åãã§ãã¯ã»æ¢å倿Žãã°ã® verbatim åæ²ã»äŸé Œå
容æãããã¿ãããã¯ã® verbatim åæ²ã»gh issue edit å®è¡ã㯠post-issue-body ã¹ãã«ãžå§è²ãããæ¬æãã³ãã¬ãŒãã»å€æŽãã°è¿œèšã«ãŒã«ã»æçš¿åãã§ãã¯ãªã¹ãã»heredoc æçš¿ã³ãã³ãã¯ãã¹ãŠ post-issue-body åŽã«éçŽãããŠãããããæ¬ã¹ãã«å
ã§ã¯åèšè¿°ããªãã
ãäŸé Œå
容ãã®ä¿æ: æ¬ã¹ãã«ã¯ explore-agent ååæã§ æŠèŠ èŠä»¶ å®è£
ãã©ã³ ãªã©ãææ°ã®ã³ãŒãç¶æ
ã«åãããŠæžãæããïŒtitle ããªãã¬ãã·ã¥å¯Ÿè±¡ã«ãªãåŸãïŒããã®ãšããå
ã®Issueã«äººãæžãããåæã®äŸé ŒãïŒïŒå®è¡åã® title ãš descriptionïŒã倱ãããªãããã<details><summary>äŸé Œå
容</summary> ã®æãããã¿ãããã¯ãšã㊠verbatim ã§æ®ãïŒIssue ãéããçŽåŸã«èŠããã¹ã㯠explore-agent ååæçµæã§ãåæã¯ããã©ã«ãé衚瀺ã»å±éå¯èœãå®çšçãªããïŒããã§ã«äŸé Œå
容ãããã¯ãååšãã Issue ã§ã¯ããã®äžèº«ã verbatim ã§åæ²ããŠæ¬¡ã®ãªãã¬ãã·ã¥ã«åŒãç¶ãïŒç¹°ãè¿ãå®è¡ãããŠãååã®äŸé ŒåæïŒ title ãš body ã®äž¡æ¹ãåºå®ãããïŒãæ§ãã©ãŒãããïŒè£žã® ## äŸé Œå
容 èŠåºãïŒã®å Žåã post-issue-body åŽãèªã¿èŸŒã¿æã«æãããã¿ãããã¯ãžè©°ãæ¿ãããããæ¬ã¹ãã«ã¯äžèº«ã®æœåºã ããæ
åœããã
Instructions
å®è¡ã¢ãŒãã®å¶çŽ
æ¬ã¹ãã«åºæã®ãªã¹ã¯: æ¬ã¹ãã«ã¯ claude-task-worker ã® create-issue ã¯ãŒã«ãŒïŒcc-triage-scope ã©ãã«ïŒããèªåèµ·åãããã¯ãŒã«ãŒã¯ã¹ãã«ããã»ã¹ã®åæå®äºãæ ¹æ ã«ã©ãã«é·ç§»ïŒäŸ: cc-issue-created ä»äžïŒãé²ãããåŠçãæªå®ã®ãŸãŸã¿ãŒã³ãçµãããšãdescription æŽæ°åã«ã©ãã«ãé·ç§»ã㊠triage ç³»ã¹ãã«ãå€ãç¶æ
ã§èµ·åããããpost-issue-body ã®æçš¿å®äºåã«å¥ã¯ãŒã«ãŒãåãåºãããšãã£ãç¶æ
å£ããèµ·ããã
çæãã description ã®ã¹ã³ãŒããšåé
description ã¯äººéãã¬ãã¥ãŒããåŸç¶ã® exec-issue ãå®è£
ã¹ã³ãŒããšããŠèªãææç©ã§ãããå
ã®äŸé Œã«ããèŠæ±ãææ°ã®ã³ãŒãç¶æ
ãžç¿»èš³ããã®ãæ¬ã¹ãã«ã®ä»äºã§ãããèŠæ±ãå¢ããå Žã§ã¯ãªãã
- äŸé Œã«ç¡ãèŠä»¶ã»ã¿ã¹ã¯ãè¶³ããªã: ååæäžã«æ°ã¥ããå¥ã®æ¹åïŒåšèŸºã®ãªãã¡ã¯ã¿ããã¹ãæŽåãåœåçµ±äžãªã©ïŒãèŠä»¶ãå®è£
ãã©ã³ãžæ··ããªããå®è£
ã¹ã³ãŒããèšãã¿ã
exec-issue ãäŸé Œå€ã®å€æŽãè¡ãèµ·ç¹ã«ãªããæžããšããŠãã確èªäºé
ãã«1è¡ã§æããã«çãã
- å®è£
ãã©ã³ã¯3ã7ã¹ããããç®å®ã«ãåã¹ããã1ã2è¡ã§æžããã³ãŒãæçã®è²Œãä»ãã»éæ¡ã®æé æžåã¯ããªãïŒå®è£
倿ã¯
exec-issue ãšãµããšãŒãžã§ã³ãã®è²¬åïŒ
- åã»ã¯ã·ã§ã³ã¯å
容ãããåã ãæžã: ãæŠèŠãã¯1ã3è¡ãã圱é¿ç¯å²ãã¯äž»èŠãã¡ã€ã«æå€§10ä»¶ããåç
§æ
å ±ããçŽè¿é¢é£å€æŽãã¯è©²åœããããã®ã ããåããããã®ç¡å
容ãªè¡ã»åãå
容ã®èšãæããæžããªã
- 確èªäºé
ã¯æ¬åœã«å€æã§ããªãç¹ã ã: æ¬æã®çµè«ãè£ä»ãçŽãã ãã®ç¢ºèªãEpic PR ã®æªããŒãžãçç±ã«ãã確èªïŒã¹ããã0-3åç
§ïŒã¯èµ·ãããªããå€å®åºæºã¯ã¹ããã3ã®ã確èªäºé
ã®åæšéžæã
- æçµå ±åã¯çµè«ãã1ã3è¡ïŒè©³çްã¯ã5. æçµå ±åãïŒ
ãã§ãŒãº0: åŒæ°å€å®ãšäºåãã§ãã¯
0-1. åŒæ°ã®åŠ¥åœæ§ç¢ºèª
$0 ã以äžã®ããããã«è©²åœããããšã確èªããIssueçªå·ãæœåºãããå€å®ã¯æ©æ¢°çã«è¡ãããŠãŒã¶ãŒãžã®ç¢ºèªã¯äžèŠã
- æ°å€ã®ã¿ïŒäŸ:
123ïŒ
#ä»ãæ°å€ïŒäŸ: #123ïŒ
- GitHubã®Issue URLïŒ
.../issues/<çªå·>ïŒ
該åœããªãå ŽåïŒèªç¶èšèªã®ã¿ã¹ã¯èª¬æãªã©ïŒã¯ãããã®ã¹ãã«ã¯æ¢åIssueã®ååæå°çšã§ããæ°èŠIssueãäœæããã«ã¯ /create-issue <ã¿ã¹ã¯å
容> ã䜿ã£ãŠãã ããããšåºåããŠçµäºããã
åŒæ°ã空ã®å Žåãäžæããã
0-2. äœæ¥ãã£ã¬ã¯ããªã®ç¢ºèª
pwd ãå®è¡ããçµæã«å¿ããŠä»¥äžãå€å®ãããworktreeãæ°ãã«äœæããªãããšã
.claude/worktrees/ é
äžã«ãã â ãã®worktreeå
ã§äœæ¥
- ãã以å€ïŒãªããžããªã®ã«ãŒãçïŒâ ãã®å Žã§äœæ¥
0-3. ãªã¢ãŒãåæãšããŒã¹ãã©ã³ãïŒåæã®ã¿ãŒã²ãããã©ã³ãïŒã®ç¢ºå®
ãŸããªã¢ãŒãåæã詊è¡ããã倱æããŠãäžæããã¹ãããããŠç¶è¡ããïŒæ¬ã¹ãã«ã¯ã³ãŒã倿Žã䌎ããªããããææ°åã«å€±æããŠãäœæ¥ç¶ç¶ã§ããïŒãgit rebase ã git pull ã¯å®è¡ããªãïŒæªã³ããã倿Žã conflict ã«ããäžæãé¿ããããïŒã
次ã«åæã®åºæºãšãªãããŒã¹ãã©ã³ãïŒBASE_BRANCHïŒã確å®ããããµãIssueïŒparent ãæã€IssueïŒã®äœæ¥ãã©ã³ã㯠cc-epic-<parentçªå·> ããæŽŸçããå®è£
PRããããžåããããããã©ã«ããã©ã³ãã§ã¯ãªã epic ãã©ã³ããåæã®ã¿ãŒã²ããã«ãªããããã©ã«ããã©ã³ããã¿ãŒã²ãããšèŠãªããšãepic ãã©ã³ããžããŒãžæžã¿ã®å
åŒãµãIssueã®å€æŽããæªåæ ãã«èŠãããEpic PR ãæªããŒãžã ãã©ãæ±ããããšãã£ãæ¬æ¥äžèŠãªæ€èšäºé
ã»ç¢ºèªäºé
ãæ··å
¥ããïŒexec-issue / create-pr ã®ããŒã¹ãã©ã³ã決å®ãšåã確å®çå°åºãçšããïŒã
git fetch --prune || true
BASE_BRANCH=""
PARENT=$(gh issue view "$0" --json parent --jq '.parent.number // empty') || PARENT="__unresolved__"
if [ "${PARENT}" != "__unresolved__" ] && [ -n "${PARENT}" ] \
&& git rev-parse --verify --quiet "refs/remotes/origin/cc-epic-${PARENT}" >/dev/null; then
BASE_BRANCH="cc-epic-${PARENT}"
fi
if [ -z "${BASE_BRANCH}" ]; then
CURRENT=$(git rev-parse --abbrev-ref HEAD)
UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name '@{upstream}' 2>/dev/null || true)
UPSTREAM=${UPSTREAM#origin/}
if [ -n "${UPSTREAM}" ] && [ "${UPSTREAM}" != "${CURRENT}" ] \
&& git rev-parse --verify --quiet "refs/remotes/origin/${UPSTREAM}" >/dev/null; then
BASE_BRANCH="${UPSTREAM}"
fi
fi
if [ -z "${BASE_BRANCH}" ]; then
BASE_BRANCH=$(git symbolic-ref --short refs/remotes/origin/HEAD | sed 's@^origin/@@')
fi
echo "BASE_BRANCH=${BASE_BRANCH} PARENT=${PARENT}"
以éã®ãã¹ãŠã®ã¹ãããïŒã¹ããã2ã®åèæ
å ±åéã»ã¹ããã3ã®ã³ãŒãåæã»ç¢ºèªäºé
ã®æœåºïŒã¯ BASE_BRANCH ãåæã®ã¿ãŒã²ãããã©ã³ããšããŠæ±ãã
- çŸåšã®äœæ¥ãã£ã¬ã¯ããªã®ã³ãŒãç¶æ
ïŒïŒ
BASE_BRANCH ç±æ¥ïŒãåæå¯Ÿè±¡ãããã®å€æŽã¯ããã©ã«ããã©ã³ãã«ãŸã å
¥ã£ãŠããªããããšãåé¡ãšããŠæ±ããªã
BASE_BRANCH ã cc-epic-<N> ã®å ŽåãEpic PRïŒcc-epic-<N> â ããã©ã«ããã©ã³ãïŒãæªããŒãžã§ããããšã¯ Epic ãããŒã®æ£åžžç¶æ
ããããæ ¹æ ãšãã確èªäºé
ã»ãªã¹ã¯ã»æ€èšäºé
ïŒãå
ã« Epic PR ãããŒãžãã¹ããããããŒãžãããŠããªããã©ãããããçïŒãäžåçæããªã
- epic ãã©ã³ããžããŒãžæžã¿ã®å
åŒãµãIssueã®å€æŽã¯ãæ¢ã«ååšããã³ãŒãããšããŠæ±ããå®è£
ãã©ã³ã§åå®è£
ããªã
gh issue view --json parent ã«å€±æããå ŽåïŒPARENT=__unresolved__ïŒã¯ parent äžæãšããŠç¶è¡ããããæªããŒãžPRãæ ¹æ ãšãã確èªäºé
ã¯çæããªãïŒepic ãããŒã®æ£åžžç¶æ
ã誀ã£ãŠç¢ºèªäºé
åããªãããã®å®å
šåŽã®åãæ¹ïŒããã®æšã¯æçµå ±åã«1è¡æ®ã
å®äºæ¡ä»¶: Issueçªå·ã確å®ããäœæ¥ãã£ã¬ã¯ããªãš BASE_BRANCH ãç¹å®ãããŠããããšã
1. æ¢åIssueã®ååŸ
åŒæ°ããæœåºããIssueçªå·ã§å¯Ÿè±¡IssueãååŸããçŸåšã®å
容ã確èªããã
gh issue view $0 --json number,title,state,labels,body,url
state ã CLOSED ã®å Žåã¯æŽæ°ããããã®æšãå ±åããŠçµäºããã
æ¬æã«ç»åURLãããå Žåãgh-asset ã§ããŠã³ããŒãããŠå
容ãèªããããã¹ãã ãã§ã¯äŒãããªã仿§ïŒUIã®èŠãç®ã»ãšã©ãŒç»é¢ã»å³ãªã©ïŒãåæã®å€æã«å¿
èŠãªããšããããããURLãèŠãŠçµããã«ãããããŠã³ããŒãããç»åãå®éã« Read ã§ç¢ºèªããã
gh-asset download <asset_id> ~/Downloads/
åè: https://github.com/YuitoSato/gh-asset
ãªãã倿Žãã°ã® verbatim åæ²çšã®æ¢åæ¬æååŸã¯ post-issue-body ã mode=edit ã§å床è¡ããããæ¬ã¹ãããã® body ã¯åæçšéã§äœ¿ããpost-issue-body ãžã¯ Issue çªå·ã ããäŒããã°ããã
å®äºæ¡ä»¶: æ¢åã® titleã»bodyã»labels ãååŸã§ããstate ã OPEN ã§ããããšã
1.5. ãäŸé Œå
容ãã®æœåºãšä¿æ
ã¹ããã1ã§ååŸãã title ãš body ãããæ¬¡ã®ãªãã¬ãã·ã¥ã«ãåŒãç¶ããäŸé Œå
容ãïŒåæã® titleïŒdescriptionïŒã確å®ãããããã®å
容ãã¹ããã4ã§ post-issue-body ã® sections.äŸé Œå
容 ã«ãã®ãŸãŸæž¡ããšãæ¬æã®å
é ã« <details><summary>äŸé Œå
容</summary> ã®æãããã¿ãããã¯ãšããŠæç»ãããã
å€å®ããžãã¯ã¯ä»¥äžïŒæ©æ¢°çã«å€å®ãããŠãŒã¶ãŒãžã®ç¢ºèªã¯äžèŠïŒ:
- æ¢åbodyã«
<details><summary>äŸé Œå
容</summary> ãããã¯ãååšããå ŽåïŒå忬ã¹ãã«ãå®è¡æžã¿ãæ°ãã©ãŒãããïŒ
<summary>äŸé Œå
容</summary> ã®éãã¿ã°çŽåŸãã </details> ã®çŽåãŸã§ãäžèº«ã ã verbatim ã§åãåºããããããäŸé Œå
容ããšããïŒã¿ã°èªäœã¯å«ããªããpost-issue-body åŽã§åä»äžãããïŒã
- å
é ã»æ«å°Ÿã®ç©ºè¡1ã€ã¯æ£èŠåããŠããããå
éšã®ç©ºçœè¡ã¯ããªã ããªãïŒåæã®ä¿æãåªå
ïŒã
- ãã®ãããã¯ã«ã¯ååå®è¡æã«ãã¿ã€ãã«ãè¡ãšåæbodyã®çµãæžã蟌ãŸããŠããããããã®ãŸãŸåæ²ããã°ååã® title ã倱ãããªããä»åã®ãªãã¬ãã·ã¥ã§ title ãæžãæããå Žåã§ãããããã¯å
ã®å
ã¿ã€ãã«ã¯è§Šããªãã
- æ¢åbodyã«æ§ãã©ãŒãããã®
## äŸé Œå
容 èŠåºããããå ŽåïŒæ¬ãã©ãŒãããç§»è¡åã® IssueïŒ
## äŸé Œå
容 ã®èŠåºãçŽåŸããæ¬¡ã® ## èŠåºããŸãã¯EOFã®çŽåãŸã§ãäžèº«ã ã verbatim ã§åãåºããããããäŸé Œå
容ããšãããæãããã¿ãããã¯ãžã®è©°ãæ¿ã㯠post-issue-body åŽãè¡ããããäžèº«ãæž¡ãã ãã§ããã
- ã©ã¡ããååšããªãå ŽåïŒååå®è¡ or å®å
šãªæ§ãã©ãŒãããã® IssueïŒ
-
ãå
ã®ã¿ã€ãã«ããšãå
ã®bodyãã®äž¡æ¹ã verbatim ã§çµåãããã®ããäŸé Œå
容ããšããããã©ãŒãããã¯æ¬¡ã®ãšããåºå®ïŒæ¬¡åæœåºæã«äººãåæãå€å¥ãããããããããšãpost-issue-body ã®æçš¿åãã§ãã¯ïŒãã³ãã¬ãŒãå€ã® ## èŠåºãçŠæ¢ïŒã«æµè§Šãããªãããã## ã¯äœ¿ãã倪åã©ãã«ã§è¡šçŸããïŒ:
**å
ã®ã¿ã€ãã«**: <ã¹ããã1ã§ååŸãã title ã verbatim>
<ã¹ããã1ã§ååŸãã bodyïŒæ«å°Ÿã®å€æŽãã°ãããã¯ãããã°é€å€ïŒã verbatim>
- title è¡ãš body ã®éã«ã¯å¿
ã1è¡ã®ç©ºè¡ãå
¥ããïŒMarkdown ã®æ®µèœå¢çã®æç€ºãšãæ¬¡åæœåºæã®ãã¿ã€ãã«è¡ vs body åé ãã®æ··å鲿¢ã®ããïŒã
- bodyæ«å°Ÿã®
<details><summary>倿Žãã°</summary> ... </details> ãããã¯ãããå Žåã¯ãã®ãããã¯ã ããé€å€ããïŒå€æŽãã°ã¯ post-issue-body ãå¥é verbatim åæ²ãããããäºéæ²èŒãé²ãïŒã
- body ã«ä»ã®ã»ã¯ã·ã§ã³èŠåºãïŒ
## æŠèŠ çïŒãæ¢ã«å«ãŸããŠããŠãæ§é ã«ã¯æãå
¥ããã倿Žãã°ãããã¯ä»¥å€ã¯ãã®ãŸãŸå«ãããååã®ã¿ååæçµæãšåæã§ã»ã¯ã·ã§ã³ãéè€ãåŸããã以é㯠1 ã®ãã¹ã«èœã¡ãŠå®å®ããåæã¯ããã©ã«ãæãããã¿ã§é ããã
- æœåºçµæã空æååã«ãªã£ãå ŽåïŒtitle ã空æåã§ãã〠body ã空 or 倿Žãã°ã®ã¿ããšããæ¥µç«¯ãªã±ãŒã¹ïŒâ
sections.äŸé Œå
容 ã¯æž¡ããªãïŒpost-issue-body ã¯è©²åœãããã¯ãæ¬æããçç¥ããïŒãtitle ã空ã§ãªããã°éåžžã¯è©²åœããªãã
æœåºããæååã¯æ¹è¡ãå«ããŠãã®ãŸãŸä¿æããã¹ããã4ã® args YAML ã«åã蟌ãé㯠YAML ã®è€æ°è¡æååïŒ| ãããã¯ã¹ã«ã©ãŒïŒã§æž¡ãã
å®äºæ¡ä»¶: æœåºæžã¿ã®ãäŸé Œå
容ãæååã確å®ããŠããããšïŒç©ºã§ãå¯ïŒãååå®è¡æã¯å
é è¡ã **å
ã®ã¿ã€ãã«**: ã§å§ãŸãããã®åŸã«ç©ºè¡ãæãã§åæbodyãç¶ã圢ã«ãªã£ãŠããããšã
2. ã¿ã¹ã¯ã®åæïŒåèæ
å ±ã®åéïŒ
ã¹ããã1ã§ååŸããæ¢åã® title/body ãã¿ã¹ã¯èª¬æãšããŠæ±ããèæ¯ãçè§£ããããã«ãååšãããã®ã®ã¿ãèªã¿èŸŒããååšããªããã¹ã¯é»ã£ãŠã¹ãããããã
docs/ é
äžã®ããã¥ã¡ã³ããã¡ã€ã«: ls docs/ 2>/dev/null ã§ååšç¢ºèªããäžã§ãã¿ã¹ã¯ã«é¢ä¿ããããªãã¡ã€ã«ãèªã
design/ é
äžã® Pencil ãã¡ã€ã«ïŒ.penïŒ: ls design/ 2>/dev/null ã§ååšç¢ºèªããäžã§ãinspect-pencil-node ã¹ãã«ã§å¯Ÿè±¡Nodeã®å±æ§ããŒã¿ãšã¹ã¯ãªãŒã³ã·ã§ãããååŸããŠå
容ã確èªããïŒ.pen ã¯æå·åãã€ããªã®ãã Read/Grep ã¯äœ¿ããªãïŒã.pen ã®ç·šéãå¿
èŠãšå€æããå Žåã¯æ¬ã¹ãã«å
ã§ã¯ç·šéãããpost-issue-body ãžæž¡ããå®è£
ãã©ã³ãã確èªäºé
ãã«ãpencil-design-updater ãšãŒãžã§ã³ãã§ <察象 .pen> ãæŽæ°ãããæšãæèšããŠåŸç¶ã¿ã¹ã¯ãžå§è²ãã
3. ã³ãŒãã®åæïŒexplore-agent ãµããšãŒãžã§ã³ãã䜿çšïŒ
explore-agent ãµããšãŒãžã§ã³ããèµ·åãã以äžãååŸãããã¹ã³ãŒãã¯ãæ¢åIssueã® title/body ã«èšè¿°ãããŠããå
容ããåºæºã«ããããµããšãŒãžã§ã³ããžã®ããã³ããã«ã¯ã¹ããã0-3ã§ç¢ºå®ãã BASE_BRANCH ãã¿ãŒã²ãããã©ã³ããšããŠæç€ºãããçŸåšã®äœæ¥ãã£ã¬ã¯ããªã®ã³ãŒãç¶æ
ãåºæºã§ãããããã©ã«ããã©ã³ããšã®å·®åã¯è«ç¹ã«ããªããããšãäŒããã
- 圱é¿ç¯å²ãšãªãäž»èŠãã¡ã€ã«ã»ãã£ã¬ã¯ããªïŒæå€§10ä»¶ïŒ
- æ¢åã®é¡äŒŒå®è£
ã®åç
§å
ïŒæå€§5ä»¶ããã¡ã€ã«ãã¹ãšåœ¹å²ã®1è¡èª¬æïŒ
- ã¿ã¹ã¯éæã«å¿
èŠãªå€æŽã®æŠç¥ïŒãã§ãŒãºåãå¯èœãªã3段é以å
ïŒ
- E2Eãã¹ãåºç€ã®æç¡ãšæåšïŒ
playwright.config.* / cypress.config.* / wdio.conf.* / nightwatch.conf.* çã®èšå®ãã¡ã€ã«ãe2e/ / tests/e2e/ / cypress/ çã®ãã£ã¬ã¯ããªãpackage.json ã® test:e2e / e2e ç³» scripts ã®ãããããååšããã°ãããããšå€å®ãé¢é£ããæ¢åE2Eãã¹ãã®ãã¹ãç¹å®ããïŒ
- äžç¢ºå®æ§ã»ç¢ºèªäºé
ã®åè£ãªã¹ãïŒæšæž¬ã§åããªãããã ããã®ãªã¹ãã¯ãã®ãŸãŸ Issue ã«èŒãããåŸè¿°ã®ã確èªäºé
ã®åæšéžæãã§çµã蟌ãïŒ
ãµããšãŒãžã§ã³ããžã®ããã³ããã«ã¯ããŠãŒã¶ãŒã«ã¯è³ªåããã調æ»çµæãè¿åŽããŠçµäºãããããšãšãäžèšã®åºåãã©ãŒããããæç€ºããã
確èªäºé
ã®åæšéžæïŒèªæãªãã®ã¯èŒããªãïŒ
explore-agent ãæããåè£ããã®ãŸãŸ confirmation_items ãžæµããªãã確èªäºé
ã³ã¡ã³ãã¯äººã®åçåŸ
ã¡ïŒcc-answer-issue-questionsïŒãçºçãããããã調æ»ã§çããåºããã®ãæ··ãããšçæãç¡é§ã«æ¢ãŸãã
æçš¿åã«1ä»¶ãã€å€å®ãã以äžã«è©²åœãããã®ã¯ç¢ºèªäºé
ããå€ããå€ããé
ç®ã¯ãçµè«ãšæ ¹æ ã descriptionïŒèŠä»¶ã»å®è£
ãã©ã³ã»åç
§æ
å ±ïŒåŽãžæžãã
- ã³ãŒãã»ããã¥ã¡ã³ãã»gitå±¥æŽã»
gh ã³ãã³ãã§èª¿ã¹ãã°äžæã«æ±ºãŸãïŒæ¢åå®è£
ã»æ¢åãã¿ãŒã³ã»èšå®å€ã»åœåèŠçŽããå°ããïŒ
- æ¬æã®çµè«ãè£ä»ãçŽãã ãã®ç¢ºèªïŒãããšããçè§£ã§åã£ãŠããããããã®æ¹éã§ããããïŒ
- ã©ã¡ããéžãã§ãèŠæ±ãæºããå®è£
倿 â æ¢åå®è£
ã«å£ã£ãå®å
šåŽã®æ¢å®ãéžã³ãéžãã çç±ãå®è£
ãã©ã³ã«1è¡æžã
BASE_BRANCH ã cc-epic-<N> ã®ãšãã® Epic PR æªããŒãžãªã©ããããŒã®æ£åžžç¶æ
ãæ ¹æ ã«ãã確èªïŒã¹ããã0-3åç
§ãããããçæããªãïŒ
æ®ãã®ã¯ãäººã®æææ±ºå®ã§ããæ±ºãŸãããéžææ¬¡ç¬¬ã§ææç©ãå€ãããé
ç®ã ãïŒä»æ§ã®åå²ãã¹ã³ãŒãã®ç·åŒããå€éšèŠå ã®å¯åŠãªã©ïŒãå€å®ã«è¿·ãããã€èª¿æ»ã§çããåºãããªã調ã¹ãŠç¢ºå®ããã確èªäºé
ããã¯å€ãã
çµã蟌ãã çµæ0ä»¶ãªã confirmation_items ãããŒããšçç¥ããïŒç¢ºèªäºé
ã³ã¡ã³ãã¯æçš¿ãããªãïŒã
E2Eãã¹ããååšãããã€Issueã®å
容ããŠãŒã¶ãŒæäœãããŒïŒç»é¢é·ç§»ã»ãã©ãŒã å
¥åã»API飿ºã»CLIã®å
¥åºåãªã©ïŒã«åœ±é¿ããå Žåã¯ãpost-issue-body ã«æž¡ããå®è£
ãã©ã³ãã«ã該åœãããŒã®E2Eãã¹ãã®è¿œå ã»æŽæ°ãã¹ããããå«ããã圱é¿ç¯å²ãã«è©²åœE2Eãã¹ãã®ãã¹ãå«ãããE2Eãã¹ããååšããªãå Žåã¯ãIssueãæç€ºçã«èŠæ±ããªãéãE2Eãã¹ãåºç€ã®æ°èŠå°å
¥ããã©ã³ã«å«ããªãã
çŽè¿é¢é£å€æŽã®ç¢ºèªïŒå¿
é ïŒ
é²è¡äžã»çŽè¿å®äºæžã¿ã®é¢é£äœæ¥ãèŠèœãšããæ¢åå®è£
ãšéè€ãããŽãŒã¹ãã¿ã¹ã¯ãå«ãã Issue ã«æŽæ°ããªããããexplore-agent ãç¹å®ãã察象ãã¡ã€ã«äžèЧã«ã€ããŠçŽè¿ã® commit å±¥æŽãšé¢é£ PR ãå¿
ã確èªããã
-
察象ãã¡ã€ã«ããšã« git log --oneline -10 <file> ãå®è¡ããçŽè¿ commit ã®ãµããªãææ¡ãã
-
æªããŒãžã®é¢é£ PR 㯠base ã BASE_BRANCH ã®ãã®ã ãã察象ã«ãããbase ãç°ãªã PRïŒBASE_BRANCH ã epic ãã©ã³ãã®ãšãã® Epic PR èªèº«ãä» epic é
äžã® PR ãªã©ïŒã¯æ¬Issueã®ããŒãžå
ã«åœ±é¿ããªãããé€å€ãã
gh pr list --search "<file>" --state open --json number,title,baseRefName,headRefName \
--jq ".[] | select(.baseRefName == \"${BASE_BRANCH}\")"
-
çŽè¿ commit ã«å€§èŠæš¡ãªãã¡ã¯ã¿ã»å
±éãã«ããŒè¿œå ãªã©ã®å€§ããªå€æŽãå«ãŸããå Žåããäžèšãã£ã«ã¿ãééããæªããŒãž PR ãããå Žåã¯ããã®å
容ã post-issue-body ã«æž¡ããçŽè¿é¢é£å€æŽãã»ã¯ã·ã§ã³ïŒå¿
èŠã«å¿ããŠãåç
§æ
å ±ãã«ãïŒã«å¿
ãèšèŒããå®è£
ãã©ã³ãæ¢åå®è£
ãšéè€ããŠããªããæ€èšŒãã
-
é€å€ãã PRïŒEpic PR çïŒã¯ãçŽè¿é¢é£å€æŽãã«ãã確èªäºé
ãã«ãæžããªããEpic PR ã®æªããŒãžã¯ Epic ãããŒã®æ£åžžç¶æ
ã§ãããèšèŒãããšåŸç¶ã® answer-issue-questions / exec-issue ãäžèŠãªæ€èšäºé
ãšããŠæ±ã£ãŠããŸã
-
git å±¥æŽã®ãªãæ°èŠæ©èœèŠæ±ãªã©ç¢ºèªãå°é£ãªã±ãŒã¹ã§ã¯ã該åœãªãããšèšèŒããŠã¹ãããããŠãã
å®äºæ¡ä»¶: äžèš5é
ç®ãæãã察象ãã¡ã€ã«ã®çŽè¿é¢é£å€æŽãææ¡ã§ããŠããããšãæããªãå Žåã§ã远å 調æ»ãããäžè¶³åã¯ãäžæããšããŠæ¬¡ã«é²ãã
4. post-issue-body ã¹ãã«ã§ Issue ãæŽæ°
ã¹ããã1ã3ã®åæçµæã 以äžã® YAML ãããã¯ã®åœ¢ã§ãã®ãŸãŸ args ãšã㊠Skill tool ã§ post-issue-body ãèµ·åããïŒpost-issue-body 㯠args ã YAML ãšããŠæ©æ¢°çã«ããŒã¹ããèŠçŽïŒã
mode: edit
issue_number: <ã¹ããã1ã§ç¢ºå®ããçªå·>
title: <æŽæ°åŸã¿ã€ãã« â å€ããªãå Žåã¯ã¹ããã1ã§ååŸããæ¢åã¿ã€ãã«ãåæ²>
sections:
äŸé Œå
容: |
<ã¹ããã1.5ã§æœåºããäŸé Œå
容ïŒåæïŒã verbatimãæœåºçµæã空ãªãããŒããšçç¥>
æŠèŠ: |
ïŒ1-3è¡ãååæçµæãåæ ïŒ
èŠä»¶: |
- ...
ïŒç¡ããã° "ãªã"ïŒ
åç
§æ
å ±: |
- ããã¥ã¡ã³ã: `<path>` â <説æ>
ïŒã¹ããã2ã§èªãã åç
§ãç¡ããã° "ãªã"ïŒ
çŽè¿é¢é£å€æŽ: |
- `<commit hash>` <subject> â <圱é¿>
ïŒã¹ããã3ã§ç¢ºèªããçµæãç¡ããã° "該åœãªã"ïŒ
å®è£
ãã©ã³: |
1. ïŒååæåŸã®ææ°çïŒ
圱é¿ç¯å²: |
- `<path>` â <æŠç¥>
new_changelog_entry: explore-agentååæã§å®è£
ãã©ã³ãšåœ±é¿ç¯å²ãæŽæ°
confirmation_items:
- <äººã®æææ±ºå®ã§ããæ±ºãŸããªãæªç¢ºèªäºé
>
sections.äŸé Œå
容 ã«ã¯ã¹ããã1.5ã§æœåºããæååããã®ãŸãŸæž¡ããæ¹è¡ãã€ã³ãã³ããå«ãå Žå㯠YAML ã® | ãããã¯ã¹ã«ã©ãŒã§è¡šçŸããåæã«æŽåœ¢ã»èŠçŽããªãããšïŒåæã® verbatim ä¿æãç®çïŒã
Skill tool åŒã³åºã㯠Skill(skill='post-issue-body', args=<äžèšYAMLæåå>)ïŒå¿
èŠãªã plugin namespace ä»ãã§ claude-task-worker:post-issue-bodyïŒãargs ã¯æ¹è¡ãå«ãè€æ°è¡æååãšããŠãã®ãŸãŸæž¡ããpost-issue-body ã®è²¬åç¯å²ã¯ä»¥äžã®ãšããã§ãæ¬ã¹ãã«ããéè€ããŠå®è¡ããªãã
gh issue view --json body ã§æ¢åæ¬æãåååŸããŠå€æŽãã°ã verbatim ã§åæ²
- æ¬æãã³ãã¬ãŒãã»æçš¿åãã§ãã¯ãªã¹ãã«åŸã£ãŠæ¬æãçµã¿ç«ãŠã»æ€èšŒ
gh issue edit ã§æŽæ°
- 確èªäºé
ãæž¡ãããŠããã°ã³ã¡ã³ãæçš¿
å®äºåŸãIssue URL ãšç¢ºèªäºé
ã³ã¡ã³ãã®æç¡ãè¿ã£ãŠããã
4.5. ãäŸé Œå
容ãåæ ã®äºåŸæ€èšŒ
post-issue-body ã¯æ¬æå
šäœã heredoc ã§äžæžããããããæŽåœ¢ãã¹ã YAML ããŒã¹æã®è±åã«ãã£ãŠãã¹ããã1.5ã§æœåºãããäŸé Œå
容ããæŽæ°åŸã®Issueã«æ£ããèŒã£ãŠããªãå¯èœæ§ããããåæã倱ãããªããããæçš¿å®äºçŽåŸã«æ€èšŒããã
以äžãæ©æ¢°çã«å®è¡ããïŒãŠãŒã¶ãŒãžã®ç¢ºèªã¯äžèŠïŒ:
gh issue view <issue_number> --json body -q .body ã§æŽæ°åŸã® body ãååŸããã
- ååŸãã body ããäŸé Œå
容ãããã¯ã®äžèº«ãæœåºãã:
<details><summary>äŸé Œå
容</summary> ãã </details> ãŸã§ã®ãããã¯ãç¹å®ãããã®å
åŽïŒ<summary> ã®éãã¿ã°çŽåŸãã </details> ã®çŽåãŸã§ãå
é ã»æ«å°Ÿã®ç©ºè¡1ã€ã¯æ£èŠåããŠããïŒãåãåºããæ¬æäžã« <details> ã¯äŸé Œå
容ãšå€æŽãã°ã®2ã€ååšãåŸãã®ã§ãå¿
ã <summary>äŸé Œå
容</summary> ã§èå¥ããŠããåãåºãã
- ã¹ããã1.5ã§ç¢ºå®ãããäŸé Œå
容ãæååãšãæœåºããäžèº«ãæ¯èŒããã
- ã¹ããã1.5ã§ãäŸé Œå
容ãã空ã ã£ãå Žå â æŽæ°åŸbodyã«
<details><summary>äŸé Œå
容</summary> ãããã¯ãååšããªãããšïŒååšããã°ç°åžžïŒã
- ã¹ããã1.5ã§ãäŸé Œå
容ããé空ã ã£ãå Žå â æœåºããäžèº«ããæž¡ããæååãšæ¹è¡ã»ç©ºçœãŸã§å«ããŠå®å
šäžèŽããããšãååŸã®ç©ºè¡1ã€çšåºŠã®å·®ã¯èš±å®¹ããŠããããå
å®¹ã®æ¬ èœã»æ¹å€ã¯äžå¯ãç¹ã«ååå®è¡æã¯
**å
ã®ã¿ã€ãã«**: <åæã¿ã€ãã«> ã®1è¡ã空è¡ãbodyæ¬äœããã®ãŸãŸäžŠãã§ããããšã確èªããïŒtitle è¡ã®è±èœã¯ãåæã倱ããããã«çžåœããé倧ãªéžè±ãªã®ã§å¿
ãæ€åºããïŒã
- æžãåºããæãããã¿ãããã¯ã«ãªã£ãŠããããš â æŽæ°åŸbodyãæ§ãã©ãŒãããã®è£žã®
## äŸé Œå
容 èŠåºãã®ãŸãŸãªãéžè±ãšããŠæ±ãïŒpost-issue-body ã¯å¿
ãæãããã¿ã§æžãåºãèŠçŽïŒã
- äžèŽããªãå Žåã¯æ¬¡ã®é ã§åŸ©æ§ã詊ã¿ã:
- ããäžåºŠ
post-issue-body ãåã args ã§åŒã³çŽãïŒäžéæ§ã®æçš¿ãšã©ãŒã®å¯èœæ§ïŒã
- åå®è¡åŸãäžèŽããªãå Žåã¯ã
gh issue view --json body ã§ååŸããçŸåšã® body ã«å¯ŸããŠã## æŠèŠ ã®çŽåã« <details>\n<summary>äŸé Œå
容</summary>\n\n<æœåºããåæ>\n\n</details>\n\n ãå·®ã蟌ãã æ¬æããçµã¿ç«ãŠãgh issue edit <issue_number> --body-file - <<'EOF' ... EOF ã§çŽæ¥äžæžããããæ¢åbodyã«æ§ãã©ãŒãããã® ## äŸé Œå
容 èŠåºããå¥ã®äŸé Œå
容ãããã¯ãæ®ã£ãŠããã°ããã®éšåã¯åãé€ããŠããå·®ã蟌ãã
- ã©ã¡ãã§ãè§£æ¶ããªããã°ãIssue URL ãšå€±æçç±ãæçµå ±åã«å«ããŠçµäºããïŒãµã€ã¬ã³ã倱æãããªãïŒã
- æ€èšŒãéãã°ã次ã®ã¹ãããã«é²ãã
å®äºæ¡ä»¶: æŽæ°åŸIssueã® <details><summary>äŸé Œå
容</summary> ãããã¯ã®äžèº«ããã¹ããã1.5ã§ç¢ºå®ããåæãšäžèŽããŠããããšïŒãŸãã¯åæ¹ã空ã§ããããšïŒã
5. æçµå ±å
post-issue-body ããè¿ã£ãŠãã Issue URLã確èªäºé
ã³ã¡ã³ãã®æç¡ãããã³ã¹ããã4.5ã®äŸé Œå
å®¹åæ æ€èšŒçµæïŒäžèŽ / 埩æ§ããŠäžèŽ / æªäžèŽïŒèŠæå確èªïŒ ã®ããããïŒã1-3è¡ã§å ±åããŠçµäºããã
äžææ¡ä»¶
以äžã®ããããã«è©²åœããå Žåã®ã¿ãçç±ãåºåããŠå³äžæããããã以å€ã¯èªåŸçã«å€æããŠç¶è¡ããã
- åŒæ°ã空ããŸã㯠Issue çªå·ãšããŠè§£éã§ããªãïŒèªç¶èšèªã®ã¿ã¹ã¯èª¬æãªã©ïŒâ
/create-issue ãæ¡å
ããŠçµäº
gh issue view ã§å¯Ÿè±¡ Issue ãèŠã€ãããªã
gh issue view ã®çµæã CLOSED
post-issue-body ã倱æããå詊è¡ããŠãè§£æ¶ããªã
- ã¹ããã4.5ã®äŸé Œå
å®¹åæ æ€èšŒã§ã
post-issue-body åå®è¡ãšçŽæ¥ gh issue edit ã«ãããã©ãŒã«ããã¯ã®äž¡æ¹ã«å€±æããå Žå â Issue URLã»å€±æçç±ã»æ³å®ããããäŸé Œå
容ãåæãåºåããŠçµäºïŒãµã€ã¬ã³ãã«çµããããªãïŒ
泚æäºé
- ãã®ã¹ãã«ã¯ã³ãŒããäžå倿ŽããªããIssue ã®æŽæ°ã»ã³ã¡ã³ãã¯åå
post-issue-body çµç±ã§è¡ãïŒæ¬ã¹ãã«å
ã§çŽæ¥ gh issue edit ãåŒã¶ã®ã¯ã¹ããã4.5ã®ãã©ãŒã«ããã¯çšéã«éãïŒ
- éäžã§ãŠãŒã¶ãŒã«è³ªåããªãã確èªãããããšã¯
post-issue-body ãžã確èªäºé
ããšããŠæž¡ããã³ã¡ã³ããšããŠæ®ãããã ãæž¡ãã®ã¯ã確èªäºé
ã®åæšéžæããééããé
ç®ã ãã§ã調æ»ã§èªæã«æ±ºãŸãç¹ã¯ç¢ºèªäºé
ã«ãã description åŽãžçµè«ãæžãïŒ0ä»¶ãªãã³ã¡ã³ãã¯æçš¿ããªãïŒ
- äŸé Œå
容ã¯å¿
ã
<details><summary>äŸé Œå
容</summary> ã®æãããã¿ã§æžãåºãã裞㮠## äŸé Œå
容 èŠåºãã¯äœ¿ããªã
- äŸé Œå
容ãããã¯ã®äžèº«ã¯ãåæã® verbatim ä¿æããç®çãªã®ã§ãèŠçŽãããäœè£ãæŽãããããªããexplore-agent ååæã®çµæã¯å¿
ã
æŠèŠ èŠä»¶ å®è£
ãã©ã³ åŽã«åæ ãã
- äŸé Œå
容ãããã¯ã«ã¯å
ã® title ã
**å
ã®ã¿ã€ãã«**: <åæ> 圢åŒã§å
é ã«å«ããïŒååå®è¡æã«çµã¿ç«ãŠã以é㯠verbatim åæ²ïŒãIssue ã® title èªäœãæžãæããŠãããããã¯å
ã®å
ã¿ã€ãã«è¡ã¯çµ¶å¯Ÿã«æžãæããªãïŒã人ãæåã«æžããäŸé Œãã®ä¿åé åïŒ
- Pencil ãã¡ã€ã«ïŒ
.penïŒã®èªã¿èŸŒã¿ã¯ inspect-pencil-node ã¹ãã«çµç±ã§ã®ã¿è¡ãïŒæå·åãã€ããªã®ãã Read/Grep ã¯äœ¿ããªãïŒ
.pen ã®ç·šéã¯æ¬ã¹ãã«ã§ã¯çµ¶å¯Ÿã«è¡ããªããå¿
èŠãšå€æããå Žå㯠pencil-design-updater ãšãŒãžã§ã³ãã§å¯Ÿå¿ããæšã post-issue-body çµç±ã§ãå®è£
ãã©ã³ããŸãã¯ã確èªäºé
ãã«æèšããŠåŸç¶ã¿ã¹ã¯ãžå§è²ããïŒ.pen ç·šé㯠pencil-design-updater å°ä»»ã»edit-pencil-design ã¹ãã«çµç±ã®éçšã«éçŽãããŠãããæã§ pencil ã³ãã³ããçŽæ¥çµã¿ç«ãŠãã frontend-implementer/general-purpose-assistant çã§ä»£çšãããããªãïŒ
- å
¥åã¯æ¢åã® title/body ã®ã¿ãã³ã¡ã³ãç±æ¥ã®æŽæ°ã¯
/update-issue ã®è²¬åã§ãããæ¬ã¹ãã«ã§ã¯åã蟌ãŸãªã
- åæã®ã¿ãŒã²ãããã©ã³ãã¯åžžã«ã¹ããã0-3ã§ç¢ºå®ãã
BASE_BRANCHããµãIssueã§ããã©ã«ããã©ã³ããã¿ãŒã²ããã«æ®ãããšãepic ãã©ã³ããžããŒãžæžã¿ã®å
åŒãµãIssueã®ææç©ãèŠèœãšãããããEpic PR ãæªããŒãžã ãã©ããããããšããæ¬æ¥äžèŠãªæ€èšäºé
ã descriptionã»ç¢ºèªäºé
ã«æ··å
¥ãã