exec-issue
Execute tasks based on GitHub Issue content
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Execute tasks based on GitHub Issue content
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
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.
Create an implementation plan and a GitHub Issue based on the task description provided as an argument. Use this when the user supplies a natural-language task description (not an issue number) and wants a new implementation-ready Issue. If the input is an existing issue number, use create-issue-from-issue-number (re-analyze) or update-issue (reflect comments) instead.
GitHub Issueã®ç¢ºèªäºé ã«å¯ŸããŠãã³ãŒãããŒã¹ãããã¥ã¡ã³ãã培åºçã«èª¿æ»ããæ ¹æ ã«åºã¥ããåçãæäŸããã¹ãã«ãIssueã®æåŸã®ã³ã¡ã³ãã«å«ãŸãã確èªäºé ã調æ»ã»åçããã³ã¡ã³ãã«è¿œèšããã
ã©ã€ãã©ãªã®æ å ±ã確èªããããã®ã¹ãã«ãNext.jsãshadcnããã®ä»ã®ã©ã€ãã©ãªã«ã€ããŠãé©åãªMCPãµãŒããŒã䜿çšããŠææ°ã®ããã¥ã¡ã³ããšäœ¿ç𿹿³ãååŸããŸãã
Create or update the Pencil (`.pen`) design for a UI implementation Issue before any code is written, then open a design-only PR. Takes the Issue number as argument, extracts the design requirements from the Issue description and comments, delegates `.pen` edits to the pencil-design-updater agent, exports snapshot PNGs, pushes them on the fixed `cc-ui-design-<Issue number>` branch, and opens a PR that references the Issue with `Refs #<N>` (never a closing keyword).
Address unresolved review comments on specified PR
| name | exec-issue |
| description | Execute tasks based on GitHub Issue content |
| argument-hint | [issue-number] |
| hooks | {"Stop":[{"matcher":"","hooks":[{"type":"command","command":"node \"${CLAUDE_PLUGIN_ROOT}/scripts/stop-servers.mjs\""}]}]} |
GitHub Issue $0 ã®å
容ãèªã¿åããå®è£
ããPRäœæãŸã§ãå®éããã¹ãã«ã§ãã
Instructionsã«åŸã£ãŠé ã«å®è¡ããåãã§ãŒãºã®ãå®äºæ¡ä»¶ããæºãããªããŸãŸæ¬¡ã®ãã§ãŒãºã«é²ãŸãªãããšã
èªåŸå®è¡åå: ãŠãŒã¶ãŒãžã®ç¢ºèªã¯è¡ããã倿ã¯ãã¹ãŠæ¬ã¹ãã«å ã®ã«ãŒã«ã«åŸã£ãŠèªåã§æ±ºå®ãããäžææ¡ä»¶ã«è©²åœããå Žåã®ã¿ãçç±ãåºåããŠçµäºããã
æ¬ã¹ãã«åºæã®ãªã¹ã¯: æ¬ã¹ãã«ã¯ claude-task-worker ã® cc-exec-issue ã©ãã«ãããªã¬ãŒã«èªåèµ·åãããã¯ãŒã«ãŒã¯ã¹ãã«ããã»ã¹ã®åæå®äºãæ ¹æ ã« cc-in-progress ã®é€å»ã cc-pr-created ä»äžãšãã£ãã©ãã«é·ç§»ãé²ããïŒãã ããã§ãŒãº7ã§ cc-need-human-check ãä»äžããå Žåãã¯ãŒã«ãŒã¯ PR äžåšãšã¿ãªã㊠cc-pr-created ãä»äžããªãïŒãåŠçãæªå®ã®ãŸãŸã¿ãŒã³ãçµãããšãå®è£
æªå®ã®ãŸãŸã¯ãŒã«ãŒãäºéèµ·åãããããã¹ãã»PRäœææªå®ã®ãŸãŸ cc-pr-created ãä»äžããããããŠãIssue/PRã®ç¶æ
ãå£ããã
ã¡ã€ã³ãšãŒãžã§ã³ãïŒæ¬ã¹ãã«ãå®è¡ããŠããã»ãã·ã§ã³æ¬äœïŒã®åœ¹å²ã¯ãåè§£ã»å§è²ã»æ€èšŒã»çµ±åãã§ãããèŠæš¡ã®å€§ããã¿ã¹ã¯ã»äžŠååã§ããã¿ã¹ã¯ã®å®è£
äž»äœã¯ãµããšãŒãžã§ã³ãã§ããããã ããæ°åã®ããŒã«åŒã³åºãã§èªåã§çµããäœæ¥ãŸã§å§è²ãããšãããªãŒãã£ã³ã°äœæãšãµããšãŒãžã§ã³ãåŽã®åæ¢çŽ¢ã§ã³ã¹ããšæéãåã«ãªããå§è²ãå¹ãã®ã¯ (1) ã¡ã€ã³ã®ã³ã³ããã¹ããå®è£
ãã°ããéé¢ã§ããã(2) ç¬ç«ã¿ã¹ã¯ã䞊ååã§ããã(3) å°éãšãŒãžã§ã³ãïŒfrontend-implementer / pencil-design-updaterïŒã®åæç¥èã䜿ãããã®ãããããæãç«ã€å Žåã§ãããäžèšã®å€å®ã«åŸã£ãŠå§è²/çŽæ¥å®è£
ãæ±ºããã
å€å®ã¯çæåã«è¡ããå€å®çµæïŒã©ã¡ããéžãã ãã»æ ¹æ ãšãªã£ãæ¡ä»¶ïŒãèšé²ããŠæçµå ±åã®èªå·±ç£æ»ã«èŒããã
frontend-implementer.pen ãã¡ã€ã«ã®ç·šéã»æŽæ° â pencil-design-updaterRead æžã¿ãCodeGraph ã®åºåã«å«ãŸããããŸãã¯å€±æãã°ã file:line ãçŽæ¥æããŠããïŒäžèšã®ã©ã¡ããšãèšãåããªãå Žåã¯å§è²åŽã«åããããã¶ãå°ãããããã¶ã1ãã¡ã€ã«ã§æžããã¯è©²åœããªãæ ¹æ ã«ãªããªãã軜éã¿ã¹ã¯ã®åãç¿ãšã㊠lightweight-assistant ã䜿ãã
git diff / ãã¹ãã»Lintã®å®è¡ã§ã¡ã€ã³ãèªåã§è¡ãå°èŠæš¡ãªçŽæ¥å®è£ ãç©ã¿äžããŠå®è£ ãã®ãã®ãäžžããšèªåã§ãã£ãŠããŸãäºæ ãé²ãããã以äžãå®ãã
Edit / Write ã䜿ããsed -i / ãã¡ã€ã«ãžã® > >> ãªãã€ã¬ã¯ã / patch / cp / mv / rm ãªã©ã·ã§ã«çµç±ã®æžãæãã¯ãå·®åãæ€èšŒã§ããã¬ãã¥ãŒã«ãæ®ããªããã䜿ããªãgh ... --body-file - ãžã®ãã¢ããã¥ã¡ã³ãã®ããã«ããªããžããªã®ãã¡ã€ã«ã倿Žããªãæšæºå
¥åã®å©çšã¯å¯git stash / git checkout / git commit ãªã©ãã¹ãã«æ¬æãæç€ºãã git æäœã¯å¯npm install <pkg> ãªã©ïŒã¯ã¹ããã1ã§å§è²å¯Ÿè±¡ã®ãããã¡ã€ã³ããã¯å®è¡ããªã察象ãããžã§ã¯ãã«E2Eãã¹ããååšãããã€ã¿ã¹ã¯ããŠãŒã¶ãŒæäœãããŒã«åœ±é¿ããå ŽåããŠããããã¹ããšåæ§ã«E2Eãã¹ãã®å®è£ ã»æŽæ°ãæ¬ã¹ãã«ã®å®éæ¡ä»¶ã«å«ããããã§ãŒãº1ã®å®äºåŸïŒãµããšãŒãžã§ã³ãèµ·ååïŒã«ä»¥äžã®ããããã«è©²åœããããäžåºŠã ã確èªããå€å®çµæïŒååšæç¡ã»ãã¹ãã®æåšã»å®è¡ã³ãã³ãïŒãåŸç¶ãã§ãŒãºã§äœ¿ãåãïŒ
playwright.config.* / cypress.config.* / wdio.conf.* / nightwatch.conf.* ãªã©ïŒe2e/ / tests/e2e/ / cypress/ ãªã©ã®E2Eãã¹ãçšãã£ã¬ã¯ããªãååšããpackage.json ã® scripts ã« test:e2e / e2e çã®E2Eãã¹ãå®è¡ã³ãã³ããããE2Eãã¹ããååšãããšå€å®ããå ŽåïŒ
E2Eãã¹ããååšããªãå Žåã¯ãIssueãæç€ºçã«èŠæ±ããªãéãE2Eãã¹ãåºç€ãæ°èŠå°å ¥ããªãïŒã¹ã³ãŒãå€ã®å€æŽãšãªãããïŒã
䞊åã§ä»¥äžã確èªãã倿ã¯èªåã§è¡ãããŠãŒã¶ãŒã«è³ªåããªãããšã
pwd ã§ .claude/worktrees/ é
äžã«ããããšã確èªãããworktreeå€ãªã äžæ ããçç±ãåºåããŠçµäºããïŒããã©ã«ããã©ã³ãã§äœæ¥ããŠã¯ãªããªãïŒgh repo view --json defaultBranchRef -q .defaultBranchRef.name ã§ããã©ã«ããã©ã³ãåãååŸããgit rev-parse --abbrev-ref HEAD ã®çŸåšãã©ã³ããšæ¯èŒãããäžèŽããå Žåã¯ äžæãããã©ã«ããã©ã³ãåã®ååŸã«å€±æããå Žåã äžæ ããïŒfail-safeïŒgh issue view $0 --json number,title,state,labels ã§Issueãååšã OPEN ã§ããããšã確èªãããCLOSEDãªã äžægit status --short ã§æªã³ããã倿Žã確èªãããååšããå Žåã¯ãŠãŒã¶ãŒã«ç¢ºèªãã git stash push -u -m "exec-issue auto-stash $0" ã§èªåéé¿ãããã®æšãæçµå ±åã«æèšããgh issue view $0 --json body,labels ã®çµæãããcc-ui-design-ready ã©ãã«ã®æç¡ãšãdescription ã® ## UIãã¶ã€ã³ ã»ã¯ã·ã§ã³ïŒãã¶ã€ã³åç
§ã»ã¯ã·ã§ã³ïŒãçããŠãããã確èªãããèŠåºãè¡ ## UIãã¶ã€ã³ïŒè¡é ããã®å³å¯äžèŽã### UIãã¶ã€ã³ ã®ãããªéšåäžèŽã¯äžå¯ïŒã®ååšã ãã§ã¯ãçããŠããããšã¿ãªããªããæ¬¡ã® ## èŠåºãçŽåãŸã§ã®ã»ã¯ã·ã§ã³æ¬æã«ã- ãã¶ã€ã³ãã¡ã€ã«: è¡ããããå€ã <path>.pen 圢åŒïŒå®ãã¹ïŒã§ããããšãŸã§ç¢ºèªããïŒ<.pen ã®å®ãã¹> ã®ãããªæªçœ®æãã¬ãŒã¹ãã«ããã</> ãå«ãè¡ãèŠåºãã®ã¿ã§æ¬æã空ã®ã»ã¯ã·ã§ã³ã¯ãçããŠããããšã¿ãªããªãïŒããã®å€å®åºæºã¯ src/workers/ui-design.ts ã® hasDesignReference() ãšåäžã«ããã
cc-ui-design-ready ãä»ããŠããã®ã«ãäžèšã®æå³ã§ ## UIãã¶ã€ã³ ã»ã¯ã·ã§ã³ãçããŠããªãå ŽåïŒèŠåºãèªäœãç¡ããèŠåºãã¯ãããå®ãã¹è¡ãç¡ãããã¬ãŒã¹ãã«ãã®ãŸãŸçïŒããã¶ã€ã³ã®åæå
容ãå®è£
ã»ãã·ã§ã³ã«å±ããªãç¶æ
ã«ãªã£ãŠããïŒäººã description ãæžãæããŠåç
§ãæ¶ãããapply-ui-design ãéäžã§å£ããçïŒããã®å Žåã¯ãã¶ã€ã³ãªãã§å®è£
ãé²ããã以äžãå®è¡ããŠçµäºããã
gh issue comment $0 --body-file - <<'EOF'
## ãã¶ã€ã³åç
§ãèŠã€ãããŸããïŒèŠäººæç¢ºèªïŒ
ãã®Issueã«ã¯ `cc-ui-design-ready` ã©ãã«ãä»ããŠãããUIãã¶ã€ã³ãåææžã¿ã§ããããšã瀺ããŠããŸãããdescriptionã« `## UIãã¶ã€ã³` ã»ã¯ã·ã§ã³ïŒ`- ãã¶ã€ã³ãã¡ã€ã«:` è¡ããããå€ã `<path>.pen` 圢åŒã§ããããšïŒãèŠã€ãããŸããã§ããããã¶ã€ã³ã®åæå
容ãåç
§ã§ããªããããå®è£
ã¯è¡ã£ãŠããŸããã
## ãã¶ã€ã³ã®æåš
- ãã¶ã€ã³PR: `cc-ui-design-$0` ãã©ã³ãã head ãšããPRïŒããŒãžæžã¿ïŒã蟿ããš `.pen` ãšã¹ãããã·ã§ããã®æåšãåãããŸã
## 察å¿åŸã®é²ãæ¹
- ãã¶ã€ã³åç
§ãèªåã§åçæããå Žå: `cc-need-human-check`ã»`cc-ui-design-ready`ã»`cc-exec-issue` ã©ãã«ãå€ãã`cc-ui-design-pr-created` ã©ãã«ãä»ãçŽããŠãã ããïŒ`apply-ui-design` ããã¶ã€ã³PRã忀åºããŠdescriptionãåçæããŸãïŒ
- æåã§descriptionã«åç
§ã埩å
ããå Žå: `cc-need-human-check` ã©ãã«ãå€ãã`cc-exec-issue` ã©ãã«ãä»ãçŽããŠãã ãã
- ãã¶ã€ã³ãªãã§å®è£
ãé²ããŠããå Žå: `cc-ui-design-ready`ã»`cc-ui-design-pr-created`ã»`cc-need-human-check` ã©ãã«ãå€ãã`cc-exec-issue` ã©ãã«ãä»ãçŽããŠãã ããïŒ`cc-ui-design-pr-created` ãå€ããªããšã`apply-ui-design` ã®é€å€ã©ãã«èšå®äžãå®è£
å®äºæã« `cc-exec-issue` ãé€å»ãããç¬é `apply-ui-design` ãäºæããåèµ·åããŠããŸããŸãïŒ
EOF
gh issue edit $0 --add-label "cc-need-human-check" ãå®è¡ããcc-need-human-check ä»äžæžã¿ããšæèšããŠçµäºããcc-need-human-check 㯠issue-worker.ts ã®å
±éé€å€ã©ãã«ã«å«ãŸãããããä»äžåŸã¯ããŒãªã³ã°åè£ããå€ãã人ãã©ãã«ãå€ããŸã§åå®è¡ãããªãã
å®äºæ¡ä»¶: worktreeå
ãããã©ã«ããã©ã³ã以å€ã®ãã©ã³ããIssue OPENãäœæ¥ããªãŒãã¯ãªãŒã³ã§ããããšãå ããŠãcc-ui-design-ready ãä»ããŠããå Žå㯠description ã® ## UIãã¶ã€ã³ ã»ã¯ã·ã§ã³ã« - ãã¶ã€ã³ãã¡ã€ã«: è¡ããããå€ã <path>.pen 圢åŒïŒå®ãã¹ïŒã§ååšããããšïŒèŠåºãã®ã¿ã»ãã¬ãŒã¹ãã«ãã®ã¿ã§ã¯æºãããªãïŒã
read-github-issue skill ã $0 ã§åŒã³åºããã¿ã¹ã¯åè§£çµæãååŸããã
Skill(skill='read-github-issue', args=<Issueçªå·>)ïŒå¿
èŠãªã plugin namespace ä»ãã§ claude-task-worker:read-github-issueïŒã§èµ·åãã以äžãååŸããïŒ
è¿åŽå 容ã¯åŸç¶ãã§ãŒãºã§åãµããšãŒãžã§ã³ãã«æž¡ããããå šæãä¿æããŠããããšã
è¿åŽã«ã¹ãã«å®è¡ã¹ãããã®æç€ºããŒãã³ã°ãããã°ãããå°éãããããŒãã³ã°ãæ¬ ããŠããã»äžå®å šãšå€æãããå Žåã¯ãå®è£ ãã©ã³åã¹ããããèµ°æ»ãã以äžã®å åãããã¹ãããã远å ã§ã¹ãã«å®è¡ã¹ããããšããŠæœåºããïŒ
ââã¹ãã«ãå®è¡ãããã/ââ ãåŒã¶ããclaude-task-worker/skills/ââ/SKILL.md ãçºç«ãããçã®æç€ºçãªåŒã³åºãæç€ºãããclaude-task-worker/skills/*/SKILL.mdïŒãšäžå¯Ÿäžã§å¯Ÿå¿ããæœåºããã¹ããã㯠{ã¹ãããå, åŒã³åºãã¹ãã¹ãã«å, åŒæ°, äŸåé¢ä¿} ã®æ§é ã§ä¿æããéåžžã¿ã¹ã¯ãšåããŠç®¡çãããå€å®ã埮åŠãªã¹ãããã¯ãã¹ãã«å®è¡ã¹ãããåè£ããšããŠå¥ã«åæãããã§ãŒãº2ã§æçµå€å®ããïŒæšæž¬ã§éåžžã¿ã¹ã¯ã«å¯ããªãïŒã
å®äºæ¡ä»¶: å®è£ ã¿ã¹ã¯ãã䞊åå®è¡å¯èœãªã°ã«ãŒããã鿬¡ã°ã«ãŒãããã¹ãã«å®è¡ã¹ããããã®3åé¡ã«æŽçã§ããŠããããšã
## UIãã¶ã€ã³ïŒãããå Žåã®æ±ãdescription ã« ## UIãã¶ã€ã³ ã»ã¯ã·ã§ã³ãããå Žåããã®Issueã¯åææžã¿ã®Pencilãã¶ã€ã³ãåç
§å
ãšããŠå®è£
ããã¿ã¹ã¯ã§ããã以äžãå®ãã
inspect-pencil-node ã¹ãã«ã§å¯Ÿè±¡Nodeã®æ§é ã»ã¹ã¿ã€ã«ãååŸãããããæ ¹æ ã«å®è£
ããã.pen ã¯æå·åãã€ããªã®ãã Read / Grep ã§çŽæ¥èªãŸãªãfrontend-implementer ãšãŒãžã§ã³ãã«å§è²ããååŸãããã¶ã€ã³ããŒã¿ãåç
§å
ãšããŠæž¡ãïŒãã§ãŒãº3ã®ããªãŒãã£ã³ã°ã« .pen ãã¹ã»ã¹ãããã·ã§ãããã¹ã»ååŸããNodeæ§é ãå«ããïŒ.pen ãç·šéããªãããã¶ã€ã³å€æŽãå¿
èŠãªå Žåã¯ãã¶ã€ã³ãããŒãžæ»ãïŒIssueã«ã³ã¡ã³ããæ®ããå®è£
ã¯çŸè¡ãã¶ã€ã³ã«æ²¿ã£ãŠé²ãããããã¶ã€ã³ä¿®æ£åŸ
ã¡ã§ããããšãæçµå ±åã«æèšããïŒãã§ãŒãº1ã§æœåºãããã¹ãã«å®è¡ã¹ããããã¯ãååãšã㊠ã¡ã€ã³ãšãŒãžã§ã³ããçŽæ¥ Skill ããŒã«ã§çºç«ããããµããšãŒãžã§ã³ãã«å§è²ãããšã¹ãã«åºæã®å¯äœçšïŒããã¯ã»ã¬ãŒãã¬ãŒã«ã»PRäœæã»ã©ãã«é·ç§»ã»ã¹ãããã·ã§ããåºåçïŒãä¿èšŒããããç¬èªå€æã§åçåŠçãæäœæ¥å®è£
ããããªã¹ã¯ãããããã
Skill ããŒã«ã§åŒã³åºãSkill tool call ãçºè¡ããŠäžŠåå®è¡ããŠããSkill ããŒã«ã§çºç«ãã代æ¿å®è£
ã¯çŠæ¢ãããæšãæèšããclaude-task-worker/skills/ââ/SKILL.md ã®ååšïŒã確èªããå®åšããã°ã¹ãã«å®è¡ã¹ããããšããŠç¢ºå®ãå®åšããªããã°éåžžã¿ã¹ã¯ãžå·®ãæ»ãéåžžã¿ã¹ã¯ïŒã¹ãã«å®è¡ã¹ããã以å€ïŒã¯ããŸãã¿ã¹ã¯ããšã«ãå®è£ ã®å§ä»»ïŒå€æããžãã¯ïŒãã®ã¹ããã1ã3ã§å§è²ãããèªåã§å®è£ ããããå€å®ãããå§è²ãããšæ±ºããã¿ã¹ã¯ã«ã€ããŠã以äžã®å€æè»žã§ãµããšãŒãžã§ã³ããéžå®ãããã¹ããã2ã®å šæ¡ä»¶ãæºããå°ããªã¿ã¹ã¯ã¯ã¡ã€ã³ãçŽæ¥å®è£ ããŠããããã®å€å®çµæã¯èªå·±ç£æ»ã«èšé²ããïŒ
.pen ãåç
§å
ãšããŠUIã«å€æããïŒå Žåã¯å¿
ããã®ãšãŒãžã§ã³ãã䜿ãããš.penïŒèªäœã®ç·šéã»æŽæ°ïŒèŠçŽ è¿œå ãã¬ã€ã¢ãŠã倿Žãã¹ã¿ã€ã«ä¿®æ£ãããã¹ãå·®ãæ¿ããªã©ïŒã.pen ãžã®ç·šéã¿ã¹ã¯ã¯å¿
ããã®ãšãŒãžã§ã³ãã«ä»»ããããšä»¥äžã®ããããã«è©²åœããã¿ã¹ã¯åå£«ã¯ éæ¬¡ ã§å®è¡ããïŒ
ãã以å€ã¯ 䞊å ã§å®è¡ããã䞊åå®è¡ããå Žåã¯ã1ã¡ãã»ãŒãžå ã§è€æ°ã®Agent tool callãçºè¡ããããšïŒé 次åŒã³åºãã§ã¯äžŠåã«ãªããªãïŒã
ãã§ãŒãº2ã§å§è²ãšå€å®ããã¿ã¹ã¯ãèµ·åããïŒã¡ã€ã³ãçŽæ¥å®è£
ãããšå€å®ããå°ããªã¿ã¹ã¯ã¯ããã®ãã§ãŒãºå
ã§ã¡ã€ã³ã Edit / Write ã§å®è£
ããå®è£
åŸãããã¹ã/Lintãå®è¡ããïŒã
ãµããšãŒãžã§ã³ãã¯çŸåšã®äŒè©±å±¥æŽãæããªããããèµ·åæã«ä»¥äžã ãã¹ãŠ ããã³ããã«å«ããããšïŒèªå·±å®çµããããªãŒãã£ã³ã°ãåè³ªãæ±ºããïŒã
ãèæ¯ãIssue #$0ã<title>ã: <èŠçŽ 1-2è¡>
ãããªããæ
åœããã¿ã¹ã¯ã
<ã¿ã¹ã¯åãšç®ç>
ã察象ç¯å²ïŒç·šéå¯ãã¡ã€ã«/ãã£ã¬ã¯ããªïŒã
<å
·äœãã¹ãåæãç¯å²å€ãè§Šããªãããš>
ãè§ŠããŠã¯ãããªããã¡ã€ã«ã
<䞊åå®è¡äžã®ä»ã¿ã¹ã¯ãè§Šãäºå®ã®ãã¡ã€ã«>
ãå®äºæ¡ä»¶ã
- <åãå
¥ãåºæº1>
- <åãå
¥ãåºæº2>
- 該åœç®æã®ãŠããããã¹ãã远å ã»æŽæ°ããããã¹ãŠpassããããš
- ãããžã§ã¯ãã«E2Eãã¹ããååšããæ
åœã¿ã¹ã¯ããŠãŒã¶ãŒæäœãããŒã«åœ±é¿ããå Žå: 該åœãããŒã®E2Eãã¹ãã远å ã»æŽæ°ãããpassããããšïŒE2Eãã¹ãã®æåšã»å®è¡ã³ãã³ã: <ãã¹ãšã³ãã³ããååšããªãå Žåã¯ãã®è¡ããšåé€>ïŒ
- `npm run lint`ïŒãŸãã¯ãããžã§ã¯ãæå®ã®lintïŒã«è©²åœãã¡ã€ã«ã§ãšã©ãŒããªãããš
ãã¹ãã«å®è¡ã®æ±ãã
æ¬ã¿ã¹ã¯å
ã§ä»ã®ã¹ãã«ïŒ`claude-task-worker/skills/ââ/SKILL.md` ã«å®çŸ©ããããã®ïŒãåŒã³åºãå¿
èŠãããå Žåã¯ã**å¿
ã `Skill` ããŒã«çµç±ã§å¯Ÿè±¡ã¹ãã«ãçºç«ããããš**ã代æ¿å®è£
ïŒã¹ãã«æé ãèªåã§åçŸãããªã©ïŒã¯çŠæ¢ãããã¹ãã«åºæã®ããã¯ã»ã¬ãŒãã¬ãŒã«ã»åŸåŠçã倱ãããæåŸ
ãããå¯äœçšãä¿èšŒãããªããªããããåŒã³åºãã¹ãã¹ãã«åãæ¬ããªãŒãã£ã³ã°å
ã«æç€ºãããŠããå Žåã¯ããã®ååã§ `Skill` ããŒã«ãåŒã³åºãã察象ã¹ãã«åãäžæã»ååšããªãå Žåã¯èªåå®è£
ã§ä»£æ¿ããããã®æšãå ±åããŠåŒã³åºãå
ã®å€æãä»°ãã
ãã¹ã³ãŒãã
äžèšã®å®äºæ¡ä»¶ãæºãã倿Žã ããè¡ããç¯å²å€ã®ãªãã¡ã¯ã¿ã»åœåæŽçã»åšèŸºã®æ¹åãè¶³ããªããäœæ¥äžã«æ°ã¥ããå¥ã®æ¹åç¹ã¯å®è£
ãããå ±åã«1è¡ã§æããã ãã«ããã
ãåèæ
å ±ã
- Issueã®ãªã³ã¯ã»é¢é£ç»åãã¹
- æ¢åã®é¡äŒŒå®è£
ã®åç
§å
ïŒããã°ïŒ
ãäœæ¥ãã£ã¬ã¯ããªã
<worktreeã®çµ¶å¯Ÿãã¹>ããã¹ãŠã®ã³ãã³ãã¯ãããåºæºã«å®è¡ããããšã
ãå ±åã
äœã倿ŽãããïŒå¯Ÿè±¡ãã¡ã€ã«ãšèŠç¹ïŒã»å®äºæ¡ä»¶ã®å
è¶³ç¶æ³ã»æ®èª²é¡ãç°¡æœã«ãåãèã®èŠçŽã»ã¯ã·ã§ã³ã¯äžèŠã
ãµããšãŒãžã§ã³ããå®äºå ±åãè¿ããããæ¬äœåŽã§ git diff --stat ãå®è¡ããŠå€æŽç¯å²ã宣èšéããæ€èšŒãããç¯å²å€ã®å€æŽãããã°ãåœè©²ãµããšãŒãžã§ã³ããåèµ·åããŠä¿®æ£ãããã
ãã§ãŒãº2ã§ç¢ºå®ãããã¹ãã«å®è¡ã¹ããããããäŸåé¢ä¿ã«æ²¿ã£ãŠå®è¡ããã
Skill tool call ãçºè¡ããŠäžŠåå®è¡ãããã¹ãŠã®å®è¡å®äºåŸããã§ãŒãº1ã§æœåºãããã¹ãã«å®è¡ã¹ããããäžèŠ§ïŒæåŸ
åŽïŒãšãå®è¡æžã¿ã¹ãã«äžèЧãïŒå®æž¬åŽãã¡ã€ã³ãšãŒãžã§ã³ãçŽæ¥çºç«å + ãã§ãŒãº3ã§ãµããšãŒãžã§ã³ãã«å§è²ããåïŒãçªãåããããæåŸ
åŽã«ãã£ãŠå®æž¬åŽã«ãªãã¹ãããããŸãã¯æåŸ
ããå¯äœçšïŒPRäœæã»ã©ãã«é·ç§»ã»ã¹ãããã·ã§ããçïŒãçºçããŠããªãã¹ããã㯠æªå®è¡ ãšå€å®ããäŸåé¢ä¿ãå確èªããããã§æ¬ãã§ãŒãºå
ã§ Skill ããŒã«ã«ããåçºç«ããïŒãµããšãŒãžã§ã³ãã«åå§è²ããªãïŒã
åçºç«ããŠãã¹ãã«ã倱æããå Žåã倱æãã°ã»å¯Ÿè±¡ã¹ãã«åã»äŸåé¢ä¿ãæçµå ±åã«å«ããäžã§æ¬¡ãã§ãŒãºãžé²ãïŒãŠãŒã¶ãŒã«å€æãä»°ããªãïŒã
ãã§ãŒãº1ã§æœåºãããªãã£ãå Žåãæ¬ãã§ãŒãºã¯äœãããã¹ãããããŠããïŒãã®æšãæçµå ±åã«äžè¡ã§æèšããïŒã
å®äºæ¡ä»¶: æœåºãããã¹ãŠã®ã¹ãã«å®è¡ã¹ãããã宿ž¬åŽã§ç¢ºèªã§ããŠãããããããã¯åçºç«å€±æãšããŠæçµå ±åã«èšé²ãããŠããããšã
ãã¹ãŠã®ãµããšãŒãžã§ã³ããšã¹ãã«å®è¡ã¹ããããå®äºããããæ¬äœã§ä»¥äžãé ã«å®è¡ïŒ
package.json ã® scripts.test ã確èªïŒscripts ã® test:e2e / e2e çïŒscripts.lintïŒgeneral-purpose-assistantïŒåäžãã¡ã€ã«ã®èªæãªä¿®æ£ãªã lightweight-assistantïŒã« 倱æãã°å
šæãšè©²åœãã¡ã€ã«ãã¹ ãæž¡ããŠä¿®æ£ãããEdit ã§ä¿®æ£ãããæ»ãåã¬ãŒãïŒ1åããšã«ç¬ç«å€å®ã»ä¿®æ£ã®ãã³ã«åå®è¡ã»åäžã«ãŒãå
3åã§ä»¥éã¯å§è²ãžåæ¿ïŒãå¿
ãå®ããŠããããã¹ã/E2Eãã¹ã/Lintã³ãã³ãããããžã§ã¯ãã«ååšããªãå Žåã¯ã¹ãããããŠããïŒãã®æšãæçµå ±åã«å«ããããšïŒã
ä¿®æ£ã«ãŒãã¯æå€§3åãŸã§èªåã§ç¹°ãè¿ãã3å詊è¡ããŠãåæããªãå Žåã¯ã倱æãã°ã»æ®èª²é¡ã»æšå®åå ããŸãšããŠæçµå ±åã«å«ããäžã§ãã§ãŒãº6ãžé²ãïŒãŠãŒã¶ãŒã«å€æãä»°ããªãïŒã
ãŸãå·®åã®åºæºãã©ã³ãïŒBASE_BRANCHïŒã決å®ãããIssue $0 ã parentïŒEpic IssueïŒãæã€å Žåãworktree 㯠cc-epic-<parentçªå·> ãã©ã³ãããæŽŸçããŠãããããepic ãã©ã³ããåºæºã«ãããããã©ã«ããã©ã³ããåºæºã«ãããšãepic ãã©ã³ããžããŒãžæžã¿ã®ä»ãµãIssueã®å·®åãæ··ããããæ¬Issueã§ã®ã³ãŒã倿Žã®æç¡ãã誀å€å®ããïŒcreate-pr ã¹ãã«ã®ããŒã¹ãã©ã³ã決å®ãšåã確å®çå°åºãçšããïŒã
BASE_BRANCH=""
if ! PARENT=$(gh issue view "$0" --json parent --jq '.parent.number // empty'); then
echo "failed to resolve issue parent" >&2
exit 1
fi
if [ -n "${PARENT}" ] && git rev-parse --verify --quiet "refs/remotes/origin/cc-epic-${PARENT}" >/dev/null; then
BASE_BRANCH="cc-epic-${PARENT}"
fi
# parent ãç¡ãå Žå㯠upstreamïŒã¯ãŒã«ãŒã worktree äœææã« --track ã§èšé²ããåå²å
ïŒã䜿ã
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
git status --short
git diff "origin/${BASE_BRANCH}..HEAD" --stat
gh issue comment $0 --body-file - ã«ãã¢ããã¥ã¡ã³ãã§æž¡ãïŒMarkdownã®äœè£ãä¿ã€ããïŒã
## 調æ»çµæãµããª
<IssueèŠä»¶ã«å¯ŸããŠäœã確èªããã 1-3è¡>
## ã³ãŒã倿ŽãäžèŠãšå€æããçç±
<æ ¹æ ãæ¢ã«å®è£
æžã¿ã»èŠä»¶ãåçŸããªãã»å¥Issueã§ã«ããŒæžã¿çãå
·äœçã«>
## 確èªãããã¡ã€ã« / åèæ
å ±
- <ãã¹ããªã³ã¯ãåæããªããã°ã該åœãªãã>
gh issue close $0 --reason "not planned" ãå®è¡ãããã³ã¡ã³ãã«å€±æããå Žåã¯ã¯ããŒãºããã倱æãã°ãæçµå ±åã«å«ããŠçµäºããïŒèª¬æãªãã§ã¯ããŒãºããªãïŒcommit-push skill ãåŒã³åºãã倿Žãã³ãããã»pushcreate-pr skill ã $0 ã§åŒã³åºããPRãäœæHEAD_BRANCH=$(git rev-parse --abbrev-ref HEAD)
gh pr list --head "${HEAD_BRANCH}" --state open --json number,url
commit-push / create-pr ã®ããããã倱æãããè¿åŽã«PR URLãå«ãŸããªããæ³å®å€ã®ãšã©ãŒã§éäžçµäºããçãçç±ãåããæçµçã«PRãååšããªããšãã¯ã以äžãå¿
ã宿œããïŒ
cc-need-human-check ã©ãã«ãä»äžããïŒå€åŽã¯ãŒã«ãŒã¯ãã®ã©ãã«ãããå ŽåãPRäžåšã®ãŸãŸ cc-pr-created ãä»ããŠå®äºæ±ãã«ããã®ãææ¢ããïŒïŒ
gh issue edit $0 --add-label "cc-need-human-check"
gh issue comment $0 --body-file - ã«ãã¢ããã¥ã¡ã³ãã§æž¡ãïŒMarkdownã®äœè£ãä¿ã€ããïŒïŒ
## PRæªäœæïŒèŠäººæç¢ºèªïŒ
exec-issue ã®èªååŠçã¯ã³ãŒã倿Žãè¡ããŸããããPRã®äœæãŸã§å®äºã§ããŸããã§ããã
## 倱æããç®æ / åå
<commit-push ã§å€±æ / create-pr ã§å€±æ / ãã®ä»ã倿ããŠããç¯å²ã§ãã°èŠçŽãèšèŒ>
## çŸåšã®ç¶æ
- ãã©ã³ã: `<çŸåšãã©ã³ãå>`ïŒã³ãããã»pushã®æç¡ãæèšïŒ
- æªã³ããã倿Žã®æç¡
## 人æã§å¿
èŠãªå¯Ÿå¿
- <æ®äœæ¥ãã人ããã®ãŸãŸçæã§ããå
·äœçãªäœæ¥åäœã§åæãããäŸ: ããã©ã³ã `xxx` ããæåã§PRãäœæãããã`yyy` ã®ã³ã³ããªã¯ããè§£æ¶ã㊠push ãããã倱æåå ïŒãã°èŠçŽåç
§ïŒã調æ»ããããªã©ãã確èªããŠãã ãããã ãã®ææ§ãªæç€ºã«ããªã>
## 察å¿åŸã®é²ãæ¹
- æåã§å¯Ÿå¿ãå®äºããå ŽåïŒæåã§PRãäœæããçïŒ: `cc-need-human-check` ã©ãã«ãå€ããŠãã ãã
- èªåå®è¡ãããçŽãå Žå: 倱æåå ãè§£æ¶ããããã§ `cc-need-human-check` ã©ãã«ãå€ãã`cc-exec-issue` ã©ãã«ãä»ãçŽããŠãã ãã
cc-need-human-check ä»äžæžã¿ããšåå ãæèšããŠçµäºããïŒãŠãŒã¶ãŒã«å€æãä»°ãããããã§åŠçãçµããïŒæçµå ±åã«ã¯ã以äžã®ãã©ãŒãããã§èªå·±ç£æ»çµæãå¿ ãå«ãããç£æ»ã¯ãå®è£ ã®å§ä»»ïŒå€æããžãã¯ïŒãã®é©çšç¶æ³ãã»ãã·ã§ã³èªèº«ã§æ¯ãè¿ãããã®ãã®ã§ãå€å®ã®æ£åœåããäºå®ã®èšé²ãåªå ããã
## å®è£
å§ä»»ã®èªå·±ç£æ»
- èµ·åãããµããšãŒãžã§ã³ã: <ãšãŒãžã§ã³ãå à 件æ°ãäŸ: general-purpose-assistant à 2, lightweight-assistant à 1>
- ã¡ã€ã³ãšãŒãžã§ã³ãã«ããçŽæ¥ç·šé: ãªã / ããïŒ<ä»¶æ°>ä»¶ïŒ
- <察象ãã¡ã€ã«>: <倿Žè¡æ°> / <å€å®æ ¹æ ãã¹ããã2ã®1ã5ãã©ãæºãããã>
çŽæ¥ç·šéãããããã®å Žåã¯ãã¹ããã2ã®ã©ã®æ¡ä»¶ã§èš±å®¹ãããã®ããä»¶ããšã«1è¡ã§æžããã¹ããã1ã«è©²åœããŠããã®ã«çŽæ¥ç·šéããå Žåã¯ããã®äºå®ããã®ãŸãŸèšé²ããïŒé ããªãïŒã
pwd ãå確èªããããšãæšå¥šgit diff ã§å®éã®å·®åãå¿
ãæ€èšŒãããæ®äœæ¥ã倿ããå Žåã¯æ°ãã Agent ãèµ·åãããªã©ããŠå®éãããSkill ããŒã«ã§çŽæ¥åŒã³åºãããµããšãŒãžã§ã³ãã«å§è²ããå ŽåãããªãŒãã£ã³ã°ã§å¯Ÿè±¡ã¹ãã«åãš Skill ããŒã«çºç«ãå¿
é æç€ºãšãã代æ¿å®è£
ã§èª€éåããªãããã§ãŒãº4ã®åãããŒãæ€ç¥ã§æªå®è¡ã®ã¹ãããããªããå¿
ã確èªãã--no-verify ããã¹ãã®ã¹ãããã§èª€éåããªããåå ãç¹å®ããŠããä¿®æ£ããcc-need-human-check ã§äººæã«å§ãã: ã³ãŒã倿Žãè¡ã£ãã®ã«PRãäœæã§ããªãã£ãå ŽåïŒcommit-push/create-pr ã®å€±æã»æ³å®å€ãšã©ãŒçïŒã¯ããã§ãŒãº7ã®æé ã©ãã cc-need-human-check ã©ãã«ãä»äžããPRæªäœæã®æšãšåå ãIssueã³ã¡ã³ãã«æ®ãããã®ã©ãã«ããªããšå€åŽã¯ãŒã«ãŒãPRäžåšã®ãŸãŸ cc-pr-created ãä»ããŠå®äºæ±ãã«ããŠããŸããããå¿
ãä»äžãã