| name | start-webapp |
| description | Guide the user through starting a new web application project â elicit requirements (MoSCoW scoping), create architecture and requirements documents, break work into tasks, and register them as a GitHub Project kanban board. Use when the user says "æ°ããWebã¢ããªãäœããã", "Webã¢ããªã®ç«ã¡äžããæäŒã£ãŠ", "start a new web app project", "ãããžã§ã¯ãã®èŠä»¶ãæŽçããã", or "GitHub Projectã«ã¿ã¹ã¯ãç»é²ããã". |
| allowed-tools | Bash, Read, Write, Edit, Glob, Grep, TodoWrite |
æ°èŠWebã¢ããªãããžã§ã¯ãã®ç«ã¡äžãããµããŒããããŠã£ã¶ãŒãã
ãã¢ãªã³ã° â èšèšããã¥ã¡ã³ãäœæ â ã¿ã¹ã¯åè§£ â GitHub Projectç»é² ã®é ã«é²ããã
åææ¡ä»¶
- 察象ãªããžããªãäœææžã¿ã§ãã«ã¬ã³ããã£ã¬ã¯ããªããã®ã«ãŒãã§ããããš
gh CLI ãã€ã³ã¹ããŒã«ã»èªèšŒæžã¿ã§ããããš
- ç°å¢æ§ç¯ïŒNode.jsã»DBãªã©ã®ããŒã«ã«ç°å¢ïŒã¯ãŠãŒã¶ãŒã宿œãã
ã¹ã¿ãŒãæ: 鲿ã®ç¢ºèª
ã¹ãã«èµ·åçŽåŸã«ã以äžã®é ã§æ¢åã®äœæ¥ç¶æ
ã確èªãã:
docs/requirements.mdãdocs/architecture.mdãCLAUDE.md ã®ååšã確èªãã
- ååšããå Žåã¯ãã®å
容ãèªã¿èŸŒã¿ãã©ã®PhaseãŸã§å®äºããŠãããã倿ãã
- ãŠãŒã¶ãŒã«çŸç¶ãæç€ºããŠãç¶ãããå§ããŸããïŒãããšãæåããããçŽããŸããïŒããšç¢ºèªãã
ç¶ãããåéããå Žåã¯ãå®äºæžã¿ã®Phase/Stepãã¹ãããããŠæªå®ã®ãšããããå§ããã
æåããããçŽãå Žåã¯ãæ¢åããã¥ã¡ã³ããäžæžãããããšããããããäŒããã
Phase 1: ãã¢ãªã³ã°
åã¹ããããé çªã«å®æœãããåã¹ãããçµäºæã«ããã®å
容ã§é²ããŸããïŒããšç¢ºèªãåã£ãŠããæ¬¡ãžé²ãã
Step 1: ãããžã§ã¯ãæŠèŠã»ãŽãŒã«
以äžã質åããŠèšé²ãã:
- ãã®ã¢ããªã§è§£æ±ºããã課é¡ã»ãŽãŒã«ã¯äœã
- ãã¡ãŒã¹ããªãªãŒã¹ã®æéãåªå
床
Step 2: ã¿ãŒã²ãããŠãŒã¶ãŒã»äž»èŠæ©èœ
以äžã質åããŠèšé²ãã:
- äž»ãªãŠãŒã¶ãŒåïŒå人ã»äŒæ¥ã»éçºè
åããªã©ïŒ
- ãã¡ãŒã¹ããªãªãŒã¹ã§å¿
ãæäŸãããæ©èœ
åæ©èœã«ã€ããŠã¯ã誰ãã»ã©ã®æš©éã§ã»ã©ã®ããã€ã¹ã§äœ¿ããããŸã§æãäžããŠç¢ºèªããã
æœè±¡çãªåçïŒäŸ: ããã°ã€ã³æ©èœã欲ãããïŒã«å¯ŸããŠã¯è©³çްãåŒãåºã远å 質åããã:
- 察象ãŠãŒã¶ãŒã¯ïŒïŒäžè¬ãŠãŒã¶ãŒ / 管çè
/ äŒæ¥ããã³ããªã©ïŒ
- èªèšŒææ®µã¯ïŒïŒã¡ãŒã«/ãã¹ã¯ãŒã / SNSãã°ã€ã³ / SSO ãªã©ïŒ
- èªå¯ã®æŠå¿µã¯ïŒïŒå
šå¡åãæš©é / ããŒã«ããŒã¹ / ãªãœãŒã¹ãªãŒããŒããŒã¹ãªã©ïŒ
ãããšå¬ãããå¿
é ã§ãªãæ©èœãèããŠããã
Step 3: æè¡ã¹ã¿ãã¯éžå®
ãŸã æ¢åã®å¶çŽã確èªãã:
- äŒç€Ÿã»ããŒã ã®æšæºã¹ã¿ãã¯ã䜿çšçŠæ¢æè¡ã¯ããã
- ãã§ã«æ±ºãŸã£ãŠããæè¡ã¯ããã
å¶çŽããªãå ŽåãèŠä»¶ã»å¥œã¿ã確èªããªããåè£ãæç€ºããŠéžæããŠãããã
ååè£ã®ã¡ãªããã»ãã¡ãªãããç°¡æœã«èª¬æãããã¹ããã©ã¯ãã£ã¹ãåæ ããæ§æãæšèŠããã
ãŠãŒã¶ãŒãè¿·ã£ãŠããå Žåã¯ãèŠä»¶ã«ç
§ãããæšèŠçç±ãæç€ºããŠæ±ºæããµããŒãããã
倿ãå
éããããé
ç®ã¯ãTBD IssueããšããŠèšé²ããåŸã§æ±ºå®ã§ããããã«ããã
éžå®ãã芳ç¹:
- ããã³ããšã³ã: React / Next.js / Remix / SvelteKit / Nuxt ãªã©
- ããã¯ãšã³ã: Next.js API Routes / Hono / Fastify / NestJS ãªã©
- ããŒã¿ããŒã¹: PostgreSQL / MySQL / SQLite / MongoDB ãªã©
- ORM: Prisma / Drizzle / TypeORM ãªã©
- èªèšŒ: NextAuth.js / Lucia / Clerk / Auth0 ãªã©
- ã€ã³ãã©/ãã¹ãã£ã³ã°: Vercel / Fly.io / AWS / GCP ãªã©
- CSSãã¬ãŒã ã¯ãŒã¯: Tailwind CSS / CSS Modules ãªã©
Step 4: èšèšæ¹é
以äžã®èгç¹ã«ã€ããŠæ¹éã確èªãã:
- ããŒã¿ã¢ãã«ã®æŠèŠïŒäž»èŠãšã³ãã£ãã£ãšãã®é¢ä¿ïŒ
- èªèšŒã»èªå¯ã®æ¹é
- APIã®èšèšæ¹éïŒREST / GraphQL / tRPC ãªã©ïŒ
- ãã¹ãæ¹éïŒãŠããã / çµ±å / E2E ã®ãã©ã³ã¹ïŒ
æªæ±ºå®äºé
ã¯ã調æ»: ãããæ±ºå®ãããã¿ã¹ã¯ãšããŠIssueç»é²åè£ã«è¿œå ããã
Step 5: ãã¡ãŒã¹ããªãªãŒã¹ã¹ã³ãŒã確å®
Step 2ã§æŽãåºããæ©èœã MoSCoWæ³ ã§æŽçãã:
- Must: ãã¡ãŒã¹ããªãªãŒã¹ã«å¿
é
- Should: ã§ããã°å«ããã
- Could: äœè£ãããã°
- Won't: ä»åã®ã¹ã³ãŒãå€
ãŠãŒã¶ãŒãšåæãã Must ã®ã¿ããã¡ãŒã¹ããªãªãŒã¹ã¹ã³ãŒããšããã
ç¢ºå®æã« ã¹ã³ãŒãããã¯æ¥ïŒç¢ºå®ããæ¥ä»ïŒã docs/requirements.md ã«èšé²ããã
ã¹ã³ãŒãããã¯åŸã« Must ãå¢ããå Žåã¯å¿
ããã¹ã³ãŒã圱é¿ã®ç¢ºèªããè¡ãïŒåŸè¿°ïŒã
Step 6: æªæ±ºäºé
ã®æŽãåºã
ãããŸã§ã®ãã¢ãªã³ã°ã§ããŸã 決ãŸã£ãŠããªãããèŠèª¿æ»ãã®é
ç®ããªã¹ãã¢ãããã
ããããã調æ»ã¿ã¹ã¯ããšããŠIssueç»é²åè£ã«è¿œå ããã
TBD ãšããŠå
éãããæè¡ã¹ã¿ãã¯ãããã§ Issue åããã
Phase 2: èšèšããã¥ã¡ã³ãäœæ
ãã¢ãªã³ã°å
容ãããšã«ä»¥äžã®ããã¥ã¡ã³ããäœæã»æŽæ°ããã
ãã³ãã¬ãŒã㯠references/doc-templates.md ãåç
§ã
äœæãããã¡ã€ã«:
CLAUDE.md â ãããžã§ã¯ãæŠèŠã»æè¡ã¹ã¿ãã¯ã»éçºèŠçŽã»ãã䜿ãã³ãã³ã
docs/architecture.md â èšèšæ¹éã»äž»èŠã³ã³ããŒãã³ãã»ããŒã¿ã¢ãã«
docs/requirements.md â èŠä»¶äžèЧã»MoSCoWã¹ã³ãŒãã»ã¹ã³ãŒãããã¯æ¥
ããã¥ã¡ã³ãæŽæ°ã®ã«ãŒã«: èšèšã»èŠä»¶ãå€ãã£ãããåãã¿ã€ãã³ã°ã§é¢é£ããã¥ã¡ã³ããæŽæ°ããã
å®è£
PRã§ã¯ãé¢é£ããã¥ã¡ã³ããæŽæ°ããããã確èªããã
Phase 3: ã¿ã¹ã¯åè§£ã»GitHub Projectç»é²
GitHub Project äœæ
gh project create --owner "@me" --title "[ãããžã§ã¯ãå] ããŒãããã"
gh project list --owner "@me"
ã¿ã¹ã¯ç²åºŠã®åå
1ã¿ã¹ã¯ = 1PRã§å®çµã§ããç²åºŠãå®ãã
å¿
ãå«ããã¿ã¹ã¯ã«ããŽãª:
-
ç°å¢ã»åºç€ã»ããã¢ãã
chore: ãããžã§ã¯ãåæã»ããã¢ããïŒãªã³ã¿ãŒã»ãã©ãŒããã¿ãŒã»TypeScriptïŒ
â ãã®ã¿ã¹ã¯ã¯ /node-project-setup ã¹ãã«ã§å®è¡ã§ãã
chore: CI/CDãã€ãã©ã€ã³ã®æ§ç¯ïŒGitHub ActionsïŒ
chore: ãã¹ãç°å¢ã®ã»ããã¢ãã
-
èªèšŒ â feat: èªèšŒæ©èœã®å®è£
ïŒ[éžæããèªèšŒæ¹åŒ]ïŒ
â ãã®ã¿ã¹ã¯ã¯ /feature-dev ã¹ãã«ã§å®è£
ã§ãã
-
ããŒã¿ããŒã¹ â chore: DBã¹ããŒãèšèšãšãã€ã°ã¬ãŒã·ã§ã³åæèšå®
-
Mustæ©èœ â åæ©èœããšã«Issueãäœæ
-
調æ»ã¿ã¹ã¯ â æªæ±ºäºé
ã»TBDããšã«Issueãäœæ
Issue ã® body ãã³ãã¬ãŒã㯠references/issue-templates.md ãåç
§ã
Issue äœæã»Projectç»é²
ISSUE_URL=$(gh issue create \
--title "chore: ãããžã§ã¯ãåæã»ããã¢ãã" \
--body "$(cat <<'EOF'
[references/issue-templates.md ã®ãç°å¢ã»ããã¢ããã¿ã¹ã¯ããã³ãã¬ãŒãã貌ãä»ãã]
EOF
)")
gh project item-add [PROJECT_NUMBER] --owner "@me" --url "$ISSUE_URL"
GitHub Project ã®ã«ã©ã ã¯ããã©ã«ãïŒTodo / In Progress / DoneïŒããã®ãŸãŸäœ¿çšããã
Phase 4: 鲿ã«å¿ããã¿ã¹ã¯è¿œå ã»å€æŽ
éçºãé²ãã«ã€ãã以äžã®ç¶æ³ã§ã¿ã¹ã¯ã远å ã»å€æŽããã
æ°èŠã¿ã¹ã¯ã®è¿œå
远å ã®ã¿ã€ãã³ã°:
- Should æ©èœã®å®è£
éå§å
- 調æ»ã¿ã¹ã¯ã®çµæãæ°ããªå®è£
ã¿ã¹ã¯ãçãŸããæ
- ã¹ããªã³ãã¬ãã¥ãŒåŸ
远å åã«å¿
ããŠãŒã¶ãŒã«ç¢ºèªããã
æ¢åIssueã®å€æŽã»ã¯ããŒãº
æè¡ã¹ã¿ãã¯ãèšèšæ¹éãå€ãã£ãå Žå:
- 圱é¿ãåããIssueã
gh issue list ã§ç¹å®ãã
- 倿Žå
容ãšãã®çç±ããŠãŒã¶ãŒã«æç€ºããŠç¢ºèªãã
- å€ãIssueãã¯ããŒãºããæ°ããå
容ã®IssueãäœæããŠå·®ãæ¿ãã
- ã¯ããŒãºæã®ã³ã¡ã³ãã«ã[æ°Issueçªå·] ã«å·®ãæ¿ããŸããããšèšèŒãã
docs/architecture.md ãŸã㯠docs/requirements.md ãåæã«æŽæ°ãã
ã¹ã³ãŒã倿Žã®æ±ã
Should æ©èœã Must ã«ææ ŒãããããŸãã¯æ°æ©èœã Must ã«è¿œå ããå Žåã¯å¿
ã以äžã確èªãã:
- ãã¡ãŒã¹ããªãªãŒã¹ã®æéã«åœ±é¿ããªãã
- ä»ã® Must æ©èœã®åªå
床ã«åœ±é¿ããªãã
- 代ããã« Must ããå€ããæ©èœã¯ãªãã
確èªåŸãdocs/requirements.md ã®ã¹ã³ãŒãããã¯æ¥ãæŽæ°ãã倿Žçç±ãèšé²ããã
å®äºãã§ãã¯ãªã¹ã
Additional Resources
Reference Files
references/doc-templates.md â CLAUDE.md / architecture.md / requirements.md ã®ãã³ãã¬ãŒã
references/issue-templates.md â æ©èœã¿ã¹ã¯ã»èª¿æ»ã¿ã¹ã¯ã»TBDã®Issue bodyãã³ãã¬ãŒã