| name | update-issue |
| description | Update an existing GitHub Issue's description based on the issue number. Reads all issue comments and reflects any items not yet captured in the description. After refreshing the description, reviews it for remaining ambiguities or unclear requirements and posts any open questions as a follow-up 確èªäºé
comment. |
| argument-hint | [Issueçªå·] |
| hooks | {"Stop":[{"matcher":"","hooks":[{"type":"command","command":"node \"${CLAUDE_PLUGIN_ROOT}/scripts/stop-servers.mjs\""}]}]} |
Update Issue
åŒæ°ã§åãåã£ãIssueçªå·ãããšã«ãIssueã®ã³ã¡ã³ããå
šä»¶èªã¿åã£ãŠæèãææ¡ãããŸã descriptionã«åæ ãããŠããªãäºé
ãåæ ããã¹ãã«ãInstructionsã«åŸããIssueã®å
容ãšã³ã¡ã³ãã®ç¢ºèªãã³ãŒãã®åæãdescriptionã®æŽæ°ãè¡ãã
責åã®åæ
: æ¬ã¹ãã«ã¯ãæ¢åIssueãšã³ã¡ã³ãååŸã»æªåæ äºé
ã®æœåºã»ã³ãŒãåæã»ã³ã¡ã³ã/åæã§å€æããäŸåé¢ä¿ã®æ¢åIssueãžã® relationships åæ ã»æ¢åãäŸé Œå
容ããããã¯ãä¿æãããããšã®äºåŸç¢ºèªããŸã§ãæ
ãããæ¬ææŽåœ¢ã»æçš¿åãã§ãã¯ã»æ¢å倿Žãã°ã® verbatim åæ²ã»æ¢åäŸé Œå
容ãããã¯ã® verbatim åæ²ã»gh issue edit å®è¡ã㯠post-issue-body ã¹ãã«ãžå§è²ãããæ¬æãã³ãã¬ãŒãã»å€æŽãã°è¿œèšã«ãŒã«ã»æçš¿åãã§ãã¯ãªã¹ãã»heredoc æçš¿ã³ãã³ãã¯ãã¹ãŠ post-issue-body åŽã«éçŽãããŠãããããæ¬ã¹ãã«å
ã§ã¯åèšè¿°ããªãã
ãäŸé Œå
容ãã®æ±ã: æ¬ã¹ãã«ã®åœ¹å²ã¯ãã³ã¡ã³ãããæŸã£ãæªåæ äºé
ã®åæ ãã§ãããäŸé Œå
容ãããã¯ïŒ<details><summary>äŸé Œå
容</summary>ïŒãæ°èŠäœæããªããæ¢åbodyãäžžããšäŸé Œå
容ãšããŠè€åãããšãæŽæ°åŸ description ã§å
æ¬æãšåæ åŸæ¬æãäºéã«æ®ããããã人ãæåã«æžããåæããæ®ãçšé㯠create-issue-from-issue-number ã®è²¬åã§ãããæ¬ã¹ãã«ã¯ããã«è§Šããªãããã ãããã§ã«äŸé Œå
容ãããã¯ãååšãã IssueïŒæ§ãã©ãŒãããã®è£žã® ## äŸé Œå
容 èŠåºããå«ãïŒã«å¯ŸããŠã¯ããã®äžèº«ã verbatim ã§åæ²ããŠå€±ããªãããåŒãç¶ãïŒæ§ãã©ãŒããã㯠post-issue-body åŽãæãããã¿ãããã¯ãžè©°ãæ¿ããïŒãã³ã¡ã³ãã§äŸé Œå
容ãã®ãã®ã®æžãæãèŠæãæ¥ãŠãäŸé Œå
容ãããã¯ã¯æžãæãããã³ã¡ã³ãç±æ¥ã®å€æŽã¯ æŠèŠ èŠä»¶ å®è£
ãã©ã³ åŽã§åæ ããã
Instructions
å®è¡ã¢ãŒãã®å¶çŽ
æ¬ã¹ãã«åºæã®ãªã¹ã¯: æ¬ã¹ãã«ã¯ claude-task-worker ã® cc-update-issue ã©ãã«ãããªã¬ãŒã«èªåèµ·åãããã¯ãŒã«ãŒã¯ã¹ãã«ããã»ã¹ã®åæå®äºãæ ¹æ ã« cc-update-issue ãå€ããåŠçãæªå®ã®ãŸãŸã¿ãŒã³ãçµãããšãåŸç¶ã® answer-issue-questions / triage-created-issue / exec-issue ãªã©ãå€ã description ãåæã«èµ·åãããŠããŸãã
å®è¡ã¹ããã
1. äœæ¥ãã£ã¬ã¯ããªã®ç¢ºèªãšããŒã¹ãã©ã³ãïŒåæã®ã¿ãŒã²ãããã©ã³ãïŒã®ç¢ºå®
pwd ã§çŸåšå°ã確èªããã.claude/worktrees/ é
äžã«ããã°ãã®worktreeå
ã§ããã以å€ïŒãªããžããªã®ã«ãŒãçïŒã§ã¯ãã®å Žã§äœæ¥ãããworktreeãæ°ãã«äœæããªãããšã
ãªã¢ãŒãåæã¯ä»¥äžã詊è¡ãã倱æããŠãäžæããã¹ãããããŠç¶è¡ããïŒæ¬ã¹ãã«ã¯ã³ãŒãã倿ŽããªãããïŒã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 "<Issueçªå·>" --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}"
以éã®ãã¹ãŠã®ã¹ãããïŒã¹ããã3ã®æªåæ äºé
ã®æœåºã»ã¹ããã4ã®ã³ãŒãåæã»ã¹ããã4.5ã®ç¢ºèªäºé
ã®æŽãåºãïŒã¯ 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è¡æ®ã
2. æ¢åIssueã®ååŸ
åŒæ°ããå
é ã®Issueçªå·ãåãåºãããã®IssueãååŸããŠçŸåšã®å
容ã確èªããã
gh issue view <Issueçªå·> --json number,title,state,labels,body,url
ãªãã倿Žãã°ã® verbatim åæ²çšã®æ¢åæ¬æååŸã¯ post-issue-body ã mode=edit ã§å床è¡ããããæ¬ã¹ãããã® body ã¯åæçšéïŒå·®åæ€åºïŒã§äœ¿ããpost-issue-body ãžã¯ Issue çªå·ã ããäŒããã°ããã
ã³ã¡ã³ãã®ååŸïŒå¿
é ïŒ
ã³ã¡ã³ãå
šä»¶ãæŽæ°ã®å¯äžã®å
¥åã«ãªããããå¿
ã䜵ããŠååŸããã
gh issue view <Issueçªå·> --comments
æ¬æã»ã³ã¡ã³ãã«ç»åURLãããå Žåãgh-asset ã§ããŠã³ããŒãããŠå
容ãèªããããã¹ãã ãã§ã¯äŒãããªã仿§ïŒUIã®èŠãç®ã»ãšã©ãŒç»é¢ã»å³ãªã©ïŒãdescriptionæŽæ°ã®å€æã«å¿
èŠãªããšããããããURLãèŠãŠçµããã«ãããããŠã³ããŒãããç»åãå®éã« Read ã§ç¢ºèªããã
gh-asset download <asset_id> ~/Downloads/
åè: https://github.com/YuitoSato/gh-asset
2.5. æ¢åãäŸé Œå
容ããããã¯ã®æ€åºïŒæ°èŠäœæã¯ããªãïŒ
ã¹ããã2ã§ååŸãã body ã«ãæ¢ã«äŸé Œå
容ãããã¯ããããã©ããã ãã確èªãããããå Žåã¯ãã®ååšãšäžèº«ãèšé²ããç¡ãå Žåã¯ãç¡ãããšããŠæ±ããæ¬ã¹ãã«ã¯äŸé Œå
容ãããã¯ãæ°èŠäœæããªãã
- æ¢åbodyã«
<details><summary>äŸé Œå
容</summary> ãããã¯ãååšããå ŽåïŒcreate-issue-from-issue-number ãæžã蟌ãã ãã®ïŒ
- verbatim åæ²ã¯
post-issue-body åŽãæ
åœããïŒargs.sections.äŸé Œå
容 ãæªæå®ã«ããŠåŒã¹ã°ãmode=edit ã§æ¢åbodyã®äžèº«ã verbatim åæ²ãããèŠçŽïŒããããã£ãŠæ¬ã¹ãã«ãã㯠äŸé Œå
容 ãæž¡ããªãã
- ã¹ããã5.5ã®äºåŸæ€èšŒçšã«ãåãåºããäžèº«ïŒ
<summary>äŸé Œå
容</summary> ã®éãã¿ã°çŽåŸãã </details> ã®çŽåãŸã§ãã¿ã°ã¯å«ããªããå
é ã»æ«å°Ÿã®ç©ºè¡1ã€ã¯æ£èŠåããŠããïŒããæåŸ
å€ããšããŠä¿æããŠããã
- æ¢åbodyã«æ§ãã©ãŒãããã®
## äŸé Œå
容 èŠåºããããå ŽåïŒæ¬ãã©ãŒãããç§»è¡åã® IssueïŒ
- åããæ¬ã¹ãã«ããã¯
äŸé Œå
容 ãæž¡ããªãïŒpost-issue-body åŽãæ§ãã©ãŒããããæ€åºããŠæãããã¿ãããã¯ãžè©°ãæ¿ããïŒãã¹ããã5.5ã®æåŸ
å€ã¯ãèŠåºãçŽåŸããæ¬¡ã® ## èŠåºãïŒã¹ããŒã¹ãç¶ãèŠåºãèšæ³ïŒãŸãã¯EOFçŽåãŸã§ã®äžèº«ãåãåºããŠä¿æããã
- ã©ã¡ããç¡ãå Žå â äœãããªããäŸé Œå
容ãããã¯ã¯ç¡ããŸãŸã«ããïŒæŽæ°åŸ description ã¯
## æŠèŠ ããå§ãŸãåºæ¬ã®6ã»ã¯ã·ã§ã³æ§æã«ãªãïŒã
å®äºæ¡ä»¶: æ¢åã®æãããã¿ãããã¯ïŒæ°åœ¢åŒïŒãŸãã¯æ§åœ¢åŒ ## äŸé Œå
容 èŠåºããååšããå Žåã¯ããã®å
容㚠<details><summary>äŸé Œå
容</summary> 圢åŒãžã®å€æãä¿æãããŠããããšã確èªãããã©ã¡ããååšããªãå Žåã¯ãäŸé Œå
容ãããã¯ãç¡ãããšïŒdescription ã ## æŠèŠ ããå§ãŸãåºæ¬6ã»ã¯ã·ã§ã³æ§æã§ããããšïŒã確èªããã
3. ã¿ã¹ã¯ã®åæ
ã¹ããã2ã§ååŸããã³ã¡ã³ãå
šä»¶ãå
¥åãšããŠæ±ããåã³ã¡ã³ããæç³»åã§èªã¿ã確èªäºé
ãžã®åçã»ä»æ§å€æŽã»è¿œå èŠæãªã©ãæŽãåºããããã§ãæ¢ådescriptionãšçªãåããããŸã åæ ãããŠããªãäºé
ãä»åã®æŽæ°å¯Ÿè±¡ãšããã
- æ¢ã«descriptionãžåæ æžã¿ã®å
å®¹ã¯æ¬æã»å€æŽãã°ãšãã«åæ²ã®ã¿ãšããéè€ãã倿Žãå ããªã
- ã³ã¡ã³ããæ¬æãšççŸããå Žåã¯ãããæ°ãã人éã®åæïŒäŸé Œè
ã»ã¬ãã¥ã¢ãŒã«ããæç€ºã»æ¿èªã»ç¢ºèªäºé
ãžã®äººæåçãªã©ã®èªç±èšè¿°ã³ã¡ã³ãïŒãåªå
ãã
- AIçæã³ã¡ã³ãã¯æ¬æã®ç¢ºå®æ¹éãèŠãæ ¹æ ã«ããªããã¹ãã«ãæçš¿ã»ç·šéããå®åã³ã¡ã³ãïŒ
## 確èªäºé
ã»## åçã»ããªã¢ãŒãžå€å®èšé²ãªã©ãanswer-issue-questions / post-issue-body / triage-created-issue ç±æ¥ã®ãã®ïŒã¯AIçæã³ã¡ã³ããšããŠæ±ããã¯ãŒã«ãŒã¯äººéã®ã¢ã«ãŠã³ãã§æçš¿ãããããæçš¿è
åã§ã¯ãªãã³ã¡ã³ãã®å
容ã»åœ¢åŒã§å€å¥ãããAIçæã³ã¡ã³ãã«å«ãŸããäºå®æ
å ±ïŒã³ãŒãåŒçšã»è¡çªå·ã»èª¿æ»çµæïŒã¯ãåç
§æ
å ±ãã圱é¿ç¯å²ãçãžåæ ããŠããããæ¬æã®ç¢ºå®æ¹éïŒçµ±åå
ã»æ¡çšã¢ãããŒãã»å¯Ÿè±¡ç¯å²ãªã©ãäŸé ŒãæäžãšããŠç€ºãã倿ïŒãšççŸããçµè«ã»æšå¥šãå«ãŸããŠããŠãæ¹éã¯æ¬æåŽãç¶æããççŸããäºå®ã¯äºå®ãšããŠæ³šèšããã«çãããå®è£
ãã©ã³ããæ¹é確å®åŸ
ã¡ããåæãšããè€æ°æ¡ïŒAæ¡/Bæ¡çïŒã®åå²åœ¢åŒã«æžãæããªã
- åæ ãã¹ãæªåæ äºé
ã1ä»¶ãç¡ãå Žåã¯ãdescriptionãæŽæ°ããïŒã¹ããã5ã®
post-issue-body èµ·åãã¹ãããïŒããã®å€æããŠãŒã¶ãŒã«å ±åããŠçµäºãã
å ããŠãã¿ã¹ã¯ã®å
容ãçè§£ããããã«ãèŠä»¶å®çŸ©ããã¥ã¡ã³ãããã¶ã€ã³ãã¡ã€ã«ïŒPencilãã¡ã€ã«ïŒãèªã¿èŸŒã¿ãã¿ã¹ã¯ã®èæ¯ã»ç®çã»é¢é£ãã仿§ãææ¡ãããPencilãã¡ã€ã«ïŒ.penïŒã¯ inspect-pencil-node ã¹ãã«ã§å¯Ÿè±¡Nodeã®å±æ§ããŒã¿ãšã¹ã¯ãªãŒã³ã·ã§ãããååŸããŠå
容ã確èªããããšïŒ.pen ã¯æå·åãã€ããªã§ Read/Grep ã¯äœ¿ããªãïŒã.pen ã®ç·šéãå¿
èŠãšå€æããå Žåã¯æ¬ã¹ãã«å
ã§ã¯ç·šéãããpost-issue-body ãžæž¡ããå®è£
ãã©ã³ãã確èªäºé
ãã«ãpencil-design-updater ãšãŒãžã§ã³ãã§ <察象 .pen> ãæŽæ°ãããæšãæèšããŠåŸç¶ã¿ã¹ã¯ãžå§è²ããã
4. ã³ãŒãã®åæ
explore-agent ãµããšãŒãžã§ã³ãã§æªåæ äºé
ã«åºã¥ããã³ãŒãããŒã¹ãã§ããã ã詳现ã«åæããããµããšãŒãžã§ã³ããžã®ããã³ããã«ã¯ã¹ããã1ã§ç¢ºå®ãã BASE_BRANCH ãã¿ãŒã²ãããã©ã³ããšããŠæç€ºãããçŸåšã®äœæ¥ãã£ã¬ã¯ããªã®ã³ãŒãç¶æ
ãåºæºã§ãããããã©ã«ããã©ã³ããšã®å·®åã¯è«ç¹ã«ããªããããšãäŒããã
ãŠãŒã¶ãŒãžã®ç¢ºèªãå¿
èŠãªäºé
ããã£ãŠãéäžã§è³ªåãããIssue ãžç¢ºèªäºé
ãšããŠæ®ãïŒpost-issue-body ãžã確èªäºé
ããšããŠæž¡ãã°ã³ã¡ã³ããšããŠæçš¿ãããïŒã
çŽè¿é¢é£å€æŽã®ç¢ºèªïŒå¿
é ïŒ
é²è¡äžã»çŽè¿å®äºæžã¿ã®é¢é£äœæ¥ãèŠèœãšããæ¢åå®è£
ãšéè€ãããŽãŒã¹ãã¿ã¹ã¯ãå«ãã Issue ã«æŽæ°ããªãããã察象ãã¡ã€ã«äžèЧã«ã€ããŠçŽè¿ã® 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 å±¥æŽã®ãªãæ°èŠæ©èœèŠæ±ãªã©ç¢ºèªãå°é£ãªã±ãŒã¹ã§ã¯ã該åœãªãããšèšèŒããŠã¹ãããããŠãã
4.5. åæ åŸ description ã®ææ§ç¹ã¬ãã¥ãŒïŒç¢ºèªäºé
ã®è£åŒ·ïŒ
ã¹ããã3ã4ã§åæ å
å®¹ïŒæŽæ°åŸã® æŠèŠ èŠä»¶ å®è£
ãã©ã³ ãªã©ïŒãåºãŸã£ããããã®å
容ããå®è£
è
ããã®ãŸãŸçæã§ããè§£å床ã«ãªã£ãŠãããããšãã芳ç¹ã§èªã¿çŽããã³ã¡ã³ããåæ ããŠããªããèŠä»¶ãææ§ã»åæãæªç¢ºå®ã»è€æ°ã®è§£éãæ®ãç®æãããã°ãããã確èªäºé
ãšããŠæŽãåºãã
descriptionã¯å®è£
è
ãåŸç¶ã¹ãã«ïŒexec-issue ãªã©ïŒãçææã®å¯äžã®å
¥åã«ãªããããææ§ãªãŸãŸæŽæ°ãããšæ°ã¥ããããã®ãŸãŸææ»ãã«ãªããåæ ã§åããããªãã£ãäžæç¹ããã®å Žã§è³ªåã«å€æããŠã³ã¡ã³ãã«æ®ããŠããã°ãçæåã«äººãçããããç¶æ
ãäœãããããããã®ã¹ãããã®çãã§ãdescriptionããæŽæ°ããŠçµãããã«ãããæŽæ°ããå
容ã®ç©Žãçªããããšã«äŸ¡å€ãããã
æŽãåºã芳ç¹ã®äŸ:
- èŠä»¶ã®åãå
¥ãæ¡ä»¶ïŒã©ããªãã°å®äºãšèšãããïŒãæ¬æãã倿ã§ããªã
- 人éã®ã³ã¡ã³ãå士ããŸãã¯äººéã®ã³ã¡ã³ããšæ¢åæ¬æã§çµè«ãé£ãéããã©ã¡ããæ¡ãã確å®ã§ããªãïŒAIçæã³ã¡ã³ããšæ¬æã®é£ãéãã¯å¯Ÿè±¡å€ â ã¹ããã3ã®ãšããæ¬æã®ç¢ºå®æ¹éãç¶æãã確èªäºé
åããŠäººéã®æææ±ºå®ãžå·®ãæ»ããªãïŒ
- å®è£
ãã©ã³ã®åå²ïŒå¯Ÿè±¡ç¯å²ã»é察å¿ã±ãŒã¹ã»æ¢åæåãšã®æŽåïŒã仿§ãšããŠæªç¢ºå®
- ã¹ããã4ã®ã³ãŒãåæã§åæãšæ¢åå®è£
ãé£ãéããæå³ã確èªããªããšé²ããããªã
æŽãåºãã®å¯Ÿè±¡å€ïŒç¢ºèªäºé
ã«ããªãïŒ:
BASE_BRANCHïŒïŒããŒãžå
ïŒã§ã¯ãªãããã©ã«ããã©ã³ããšã®å·®åã«ç±æ¥ããè«ç¹ãç¹ã« Epic PRïŒcc-epic-<N> â ããã©ã«ããã©ã³ãïŒã®æªããŒãžã¯ Epic ãããŒã®æ£åžžç¶æ
ãªã®ã§ããEpic PR ãããŒãžãããŠããªããã©ããããããå
ã«ããŒãžãå¿
èŠããã¯ç¢ºèªäºé
ã«ããªã
ããã§æŽãåºãã確èªäºé
ã¯ãã¹ããã4ã§æ¢ã«ææ¡ããŠããæªç¢ºèªäºé
ãšããŒãžããŠéè€ãé€ããããã§ãã¹ããã5ã§ post-issue-body ã® confirmation_items ãšããŠãŸãšããŠæž¡ãïŒpost-issue-body ããããã1ã€ã® ## 確èªäºé
ã³ã¡ã³ããšããŠæçš¿ããïŒãã³ã¡ã³ããäºéã«æçš¿ããªãããã確èªäºé
ã®æçš¿å£ã¯ãã® confirmation_items ã«äžæ¬åããã
ææ§ç¹ãæ¬åœã«ç¡ããã° confirmation_items ã¯çç¥ããŠããïŒç©Žåãã®ããã«ç¡çã«è³ªåãäœããªã â äžèº«ã®èã確èªäºé
ã¯ãã€ãºã«ãªããããã£ãŠçæãé
ãããïŒããªããéäžã§ãŠãŒã¶ãŒãžçŽæ¥è³ªåããå¿
ãã³ã¡ã³ãã«æ®ãæ¹éã¯æ¬ã¹ãã«å
šäœã§å
±éïŒã¹ããã4ã®æ³šèšãšåãïŒã
5. post-issue-body ã¹ãã«ã§ Issue ãæŽæ°
ã¹ããã2ã4.5ã®åæçµæã 以äžã® YAML ãããã¯ã®åœ¢ã§ãã®ãŸãŸ args ãšã㊠Skill tool ã§ post-issue-body ãèµ·åããïŒpost-issue-body 㯠args ã YAML ãšããŠæ©æ¢°çã«ããŒã¹ããèŠçŽïŒã
mode: edit
issue_number: <ã¹ããã2ã§ç¢ºå®ããçªå·>
title: <æŽæ°åŸã¿ã€ãã« â å€ããªãå Žåã¯ã¹ããã2ã§ååŸããæ¢åã¿ã€ãã«ãåæ²>
sections:
æŠèŠ: |
ïŒ1-3è¡ãã³ã¡ã³ãç±æ¥ã®æŽæ°ãåæ ïŒ
èŠä»¶: |
- ...
ïŒç¡ããã° "ãªã"ïŒ
åç
§æ
å ±: |
- ããã¥ã¡ã³ã: `<path>` â <説æ>
ïŒç¡ããã° "ãªã"ïŒ
çŽè¿é¢é£å€æŽ: |
- `<commit hash>` <subject> â <圱é¿>
ïŒã¹ããã4ã§ç¢ºèªããçµæãç¡ããã° "該åœãªã"ïŒ
å®è£
ãã©ã³: |
1. ïŒã³ã¡ã³ãåæ åŸã®ææ°çïŒ
圱é¿ç¯å²: |
- `<path>` â <æŠç¥>
new_changelog_entry: ã³ã¡ã³ãã®ãããèŠä»¶ã«åæ
confirmation_items:
- <ã¹ããã4ã§æ°ãã«çºçããæªç¢ºèªäºé
ããŸãã¯ã¹ããã4.5ã§æŽãåºããåæ åŸã®æ®ææ§ç¹>
sections.äŸé Œå
容 ã¯æ¬ã¹ãã«ããã¯çµ¶å¯Ÿã«æž¡ããªããã¹ããã2.5ã®ãšãããæ¢åã®äŸé Œå
容ãããã¯ïŒæ°æ§ãã©ãŒããããšãïŒã® verbatim åæ²ã¯ post-issue-body åŽã®è²¬åïŒargs.sections.äŸé Œå
容 æªæå®ãªãæ¢åbodyã®äžèº«ã verbatim åæ²ããèŠçŽïŒãæ¢åbodyã«äŸé Œå
容ãç¡ããã°è¿œå ãããªããã³ã¡ã³ãã§çºçãã仿§å€æŽã¯ æŠèŠ èŠä»¶ å®è£
ãã©ã³ åŽã§åæ ããã
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 ã§æŽæ°ïŒ--remove-label ã¯äžäœ¿çšïŒ
- 確èªäºé
ãæž¡ãããŠããã°ã³ã¡ã³ãæçš¿
å®äºåŸãIssue URL ãšç¢ºèªäºé
ã³ã¡ã³ãã®æç¡ãè¿ã£ãŠãããæªåæ äºé
ã0ä»¶ãšå€æããå Žå㯠post-issue-body ãèµ·åããããã®æšããŠãŒã¶ãŒã«å ±åããŠçµäºããã
5.5. æ¢åãäŸé Œå
容ããããã¯ã倱ãããŠããªããã®äºåŸæ€èšŒ
post-issue-body ã¯æ¬æå
šäœã heredoc ã§äžæžããããããverbatim åæ²ããžãã¯ã®ãã°ãæŒãã§å
ã®äŸé Œåæãæ¶ããå¯èœæ§ããããæ¬ã¹ãã«ã¯äŸé Œå
容ãããã¯ãæ°èŠäœæããªãããæ¢ã«ååšããäŸé Œå
容ã倱ãããªãè²¬ä»»ã¯æ¬ã¹ãã«ã«ããã®ã§ãæçš¿å®äºçŽåŸã«æ€èšŒããã
以äžãæ©æ¢°çã«å®è¡ããïŒãŠãŒã¶ãŒãžã®ç¢ºèªã¯äžèŠïŒ:
- ã¹ããã2.5ã§ãæ¢åbodyã«äŸé Œå
容ãç¡ãããšå€å®ããå Žå â æ¬ã¹ãããã¯ã¹ãããããïŒä¿è·å¯Ÿè±¡ãç¡ãïŒã
- æªåæ äºé
ã0ä»¶ã§
post-issue-body ã®èµ·åãã¹ãããããå Žå â æ¬ã¹ããããã¹ãããããïŒdescription ãæŽæ°ããŠããªãããïŒã
- ã¹ããã2.5ã§ãæ¢åbodyã«äŸé Œå
容ããããšå€å®ããå Žå â 以äžã®æé ã§æ€èšŒãã:
gh issue view <issue_number> --json body -q .body ã§æŽæ°åŸã® body ãååŸããã
- ååŸãã body ãã
<details><summary>äŸé Œå
容</summary> ãããã¯ã®äžèº«ãæœåºããïŒ<summary> ã®éãã¿ã°çŽåŸãã </details> ã®çŽåãŸã§ãã¿ã°ã¯å«ããªããå
é ã»æ«å°Ÿã®ç©ºè¡1ã€ã¯æ£èŠåããŠããïŒãæ¬æäžã« <details> ã¯äŸé Œå
容ãšå€æŽãã°ã®2ã€ååšãåŸãã®ã§ãå¿
ã <summary>äŸé Œå
容</summary> ã§èå¥ããŠããåãåºãã
- ã¹ããã2.5ã§ä¿æãããæåŸ
å€ããšæœåºããäžèº«ãæ¯èŒãããæ¹è¡ã»ç©ºçœãŸã§å«ããŠå®å
šäžèŽããããšãååŸã®ç©ºè¡1ã€çšåºŠã®å·®ã¯èš±å®¹ããŠããããå
å®¹ã®æ¬ èœã»æ¹å€ã¯äžå¯ã
- æžãåºããæãããã¿ãããã¯ã«ãªã£ãŠããããš â å®è¡åãæ§ãã©ãŒãããïŒ
## äŸé Œå
容 èŠåºãïŒã ã£ãå ŽåããæŽæ°åŸã¯å¿
ã <details><summary>äŸé Œå
容</summary> ã«è©°ãæ¿ãã£ãŠããããšã裞ã®èŠåºãã®ãŸãŸãªãéžè±ãšããŠæ±ãã
- äžèŽããªãããŸãã¯æãããã¿ã«ãªã£ãŠããªãå Žåã¯æ¬¡ã®é ã§åŸ©æ§ã詊ã¿ã:
- ããäžåºŠ
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 ã§çŽæ¥äžæžããããæ¢åã«æ§ãã©ãŒãããã® ## äŸé Œå
容 èŠåºããå¥ã®äŸé Œå
容ãããã¯ãæ®ã£ãŠããã°ããã®éšåã¯åãé€ããŠããå·®ã蟌ãã
- ã©ã¡ãã§ãè§£æ¶ããªããã°ãIssue URL ãšå€±æçç±ãæçµå ±åã«å«ããŠçµäºããïŒãµã€ã¬ã³ã倱æãããªãïŒã
- æ€èšŒãéãã°ãIssue URLã»ç¢ºèªäºé
ã³ã¡ã³ãã®æç¡ã»äŸé Œå
容ä¿è·æ€èšŒçµæïŒ
äžèŽ / 埩æ§ããŠäžèŽ / æªäžèŽïŒèŠæå確èªïŒïŒããŸãšããŠå ±åããŠçµäºããã
å®äºæ¡ä»¶: å®è¡åbodyã«äŸé Œå
容ããã£ãå Žåã¯æŽæ°åŸbodyã§ããã®äžèº«ã <details><summary>äŸé Œå
容</summary> ãããã¯ãšããŠä¿æãããŠããããšïŒãŸãã¯æªåæ äºé
0ä»¶ã»äŸé Œå
容ç¡ãã§æ¬ã¹ããããã¹ãããããç¶æ
ïŒã
5.6. äŸåé¢ä¿ã®åæ ïŒblockedBy / blockingïŒ
ã³ã¡ã³ãå±¥æŽãã³ãŒãåæã§ããã® Issue ãä»ã® Open 㪠Issue ãšäŸåé¢ä¿ãæã€ããšã倿ããå Žåãããã GitHub ãã€ãã£ã relationshipsïŒblocked-by / blockingïŒãšããŠæ¢åIssueã«åæ ãããæ¬ã¹ãã«ã¯æ°èŠIssueãäœããªããããgh issue edit --add-blocked-by / --add-blocking ã§è¿œå ããïŒæ¬æã® ## äŸåé¢ä¿ ã»ã¯ã·ã§ã³ã«ã¯æžããªãïŒã
以äžãæ©æ¢°çã«å®è¡ããïŒãŠãŒã¶ãŒãžã®ç¢ºèªã¯äžèŠïŒãäŸåé¢ä¿ã®èšåã»ç€ºåãç¡ããã°æ¬ã¹ãããã¯ã¹ããããããæªåæ äºé
0ä»¶ã§ post-issue-body ã®èµ·åãã¹ãããããå Žåã§ããã³ã¡ã³ãã§äŸåé¢ä¿ã倿ããŠããã°æ¬ã¹ãããã¯å®è¡ããŠããïŒrelationship ã®ä»äžã¯ description æŽæ°ãšã¯ç¬ç«ã®ããïŒã
-
äŸåé¢ä¿ã®æœåº: ã¹ããã2ã4ã§èªãã ã³ã¡ã³ãã»æ¬æã»ã³ãŒãåæããããã® Issue ã®äŸåé¢ä¿ãžã®èšåïŒ#123ã»Issue URLã»ããã ãçµãã£ãŠãããããã ãåæãããã ããããã¯ãããçïŒãæŽãåºããæšæž¬ã§ç¡é¢ä¿ãª Issue ãçŽä»ããªããããæ ¹æ ãæç¢ºãªãã®ã ãã察象ã«ããã
-
æ¹åã®ç¢ºå®:
- blockedByïŒãã® Issue ããããã¯ããïŒå
ã«çä»ããã¹ã IssueïŒ: ãã® Issue ã«çæããåã«å®äºããŠããå¿
èŠããã Open Issue ã®çªå·ã
- blockingïŒãã® Issue ããããã¯ããïŒåŸç¶ã§åŸ
ããã IssueïŒ: ãã® Issue ãå®äºããªããšé²ããããªã Open Issue ã®çªå·ã
-
çŸåšç¶æ
ã®æ€èšŒ: 察象 Issue çªå·ã¯ gh issue view <çªå·> --json number,state,title ã§ Open ã§ããããšã確èªãããCLOSED ã® Issue ã¯å«ããªãã
-
æ¢årelationshipãšã®å·®å: çŸåšã® relationship ãååŸãããŸã 貌ãããŠããªãäŸåã ãã远å ããïŒæ¢årelationshipã¯å¥ãããªãã--remove-blocked-by / --remove-blocking ã¯äœ¿ããªãïŒã
gh issue view <ãã®Issueçªå·> --json blockedBy,blocking
-
ä»äžïŒbest-effortïŒ: å·®åã®çªå·ã ããæž¡ãã--add-blocked-by / --add-blocking ã¯ã«ã³ãåºåãã§è€æ°çªå·ã1ãã©ã°ã«ãŸãšããŠããã远å ãç¡ãåŽã®ãã©ã°ã¯çç¥ããã
gh issue edit <ãã®Issueçªå·> --add-blocked-by <çªå·,çªå·,...>
gh issue edit <ãã®Issueçªå·> --add-blocking <çªå·,çªå·,...>
gh issue edit --add-blocked-by / --add-blocking ã倱æããŠãïŒæš©éäžè¶³ã»gh ããŒãžã§ã³æªéã»ååšããªãçªå·çïŒãdescription æŽæ°ã¯ãã§ã«å®äºããŠããããããšã©ãŒãæçµå ±åã«æ®ããããã§åŠçãç¶è¡ããïŒããŒã«ããã¯ããªãïŒãä»äžã»ã¹ãããã®çµæã¯æçµå ±åã«1è¡ã§èšé²ããã
äžææ¡ä»¶
- åŒæ°ã空ããŸã㯠Issue çªå·ãšããŠè§£éã§ããªã
gh issue view ã§å¯Ÿè±¡ Issue ãèŠã€ãããªãããŸã㯠CLOSED
post-issue-body ã倱æããå詊è¡ããŠãè§£æ¶ããªã
- ã¹ããã5.5ã®æ¢åãäŸé Œå
容ãä¿è·æ€èšŒã§ã
post-issue-body åå®è¡ãšçŽæ¥ gh issue edit ã«ãããã©ãŒã«ããã¯ã®äž¡æ¹ã«å€±æããå Žå â Issue URLã»å€±æçç±ã»ä¿æãããã¹ããäŸé Œå
容ãæåŸ
å€ãåºåããŠçµäºïŒãµã€ã¬ã³ãã«çµããããªãïŒ
泚æäºé
- ãã®ã¹ãã«ã¯ã³ãŒããäžå倿ŽããªããIssue ã®æŽæ°ã»ã³ã¡ã³ãã¯åå
post-issue-body çµç±ã§è¡ãïŒæ¬ã¹ãã«å
ã§çŽæ¥ gh issue edit ãåŒã¶ã®ã¯ã¹ããã5.5ã®ãã©ãŒã«ããã¯çšéã«éãïŒ
- éäžã§ãŠãŒã¶ãŒã«è³ªåããªãã確èªãããããšã¯
post-issue-body ãžã確èªäºé
ããšããŠæž¡ããã³ã¡ã³ããšããŠæ®ã
- æ¬æã®ç¢ºå®æ¹éãèŠããã®ã¯äººéã®ã³ã¡ã³ãã ããAIçæã³ã¡ã³ãïŒ
## åç çã®å®åã³ã¡ã³ãïŒã¯äºå®ã®åæ å
ã«çããæ¹é倿Žã»å®è£
ãã©ã³ã®è€æ°æ¡åå²åã»ãæ¹é確å®ãäŸé Œããã確èªäºé
åã®æ ¹æ ã«ããªãïŒå€å¥åºæºã¯ã¹ããã3ãåç
§ïŒ
- description ãåæ ããã ãã§çµãããããã¹ããã4.5ã§ãåæ åŸããªãæ®ãäžæç¹ã»ææ§ãªèŠä»¶ããèŠçŽããããã°ã¹ããã4ã®æªç¢ºèªäºé
ãšããŒãžããŠ
confirmation_items ãšããŠæž¡ãïŒ## 確èªäºé
ã³ã¡ã³ãã«äžæ¬åãããææ§ç¹ãç¡ããã°ç¡çã«äœããªãïŒ
- ã³ã¡ã³ã/åæã§äŸåé¢ä¿ã倿ããããã¹ããã5.6ã§
gh issue edit --add-blocked-by / --add-blocking ã«ããæ¢åIssueãž GitHub ãã€ãã£ã relationships ãšããŠåæ ããïŒæ¬æã« ## äŸåé¢ä¿ ã¯æžããªãïŒãæ¢årelationshipã¯å¥ãããããŸã 貌ãããŠããªãäŸåã ãã best-effort ã§è¿œå ãããæ ¹æ ãæç¢ºãªäŸåã®ã¿ã察象ã«ããç¡ããã°ã¹ããããã
- äŸé Œå
容ãããã¯ïŒ
<details><summary>äŸé Œå
容</summary>ïŒãæ°èŠè¿œå ããªãïŒçç±ã¯åé ããäŸé Œå
容ãã®æ±ãããåç
§ïŒ
- æ¢åbodyã«äŸé Œå
容ãããã¯ããã£ãå Žåããã®ä¿æã¯
post-issue-body ã® verbatim åæ²èŠçŽã«å§ãããargs ã® sections.äŸé Œå
容 ã¯æ¬ã¹ãã«ããã¯æž¡ããªãïŒæž¡ããšåæãšã®ãºã¬ãçãå¯èœæ§ãããïŒãã¹ããã5.5ã§å®éã«ä¿æãããã€æãããã¿ã§æžãåºãããããæ€èšŒãã
- Pencil ãã¡ã€ã«ïŒ
.penïŒã®èªã¿èŸŒã¿ã¯ inspect-pencil-node ã¹ãã«çµç±ã§ã®ã¿è¡ãïŒæå·åãã€ããªã®ãã Read/Grep ã¯äœ¿ããªãïŒ
.pen ã®ç·šéã¯æ¬ã¹ãã«ã§ã¯çµ¶å¯Ÿã«è¡ããªããå¿
èŠãšå€æããå Žå㯠pencil-design-updater ãšãŒãžã§ã³ãã§å¯Ÿå¿ããæšã post-issue-body çµç±ã§ãå®è£
ãã©ã³ããŸãã¯ã確èªäºé
ãã«æèšããŠåŸç¶ã¿ã¹ã¯ãžå§è²ããïŒ.pen ç·šé㯠pencil-design-updater å°ä»»ã»edit-pencil-design ã¹ãã«çµç±ã®éçš â åãã¹äžæžãã»å·®åNodeç¹å®ã»snapshots/ åºå â ã«éçŽãããŠãããæã§ pencil ã³ãã³ããçŽæ¥çµã¿ç«ãŠãã frontend-implementer/general-purpose-assistant çã§ä»£çšãããããªãïŒ