ð¯ ãããã¯ãããã·ã§ã³
æµãå»ãåŠã³ãå °ãæ¢ããæ°žç¶çãªç¥èè³ç£ã«å€æãã
Beaverã¯AIãšãŒãžã§ã³ãéçºã®è»è·¡ãèªåçã«æŽçãããæ°žç¶çãªç¥èã«å€æããŸããæ£åšããGitHub Issuesãã³ããããã°ãAIå®éšèšé²ãæ§é åãããGitHub Pagesããã¥ã¡ã³ãã«å€æããã³ãŒãå質åæãšããŒã ååãæ¯æŽããŸãã
ð 解決ãã課é¡
ãšã³ãžãã¢ãªã³ã°ãããŒãžã£ã®æ¥ã ã®èŠæ©
- ð ã¹ããŒã¯ãã«ããŒå ±å: æè¡ç鲿ãããžãã¹èšèªã§èª¬æããã®ãå°é£
- ð æ å ±ã®æ£åš: éèŠãªè°è«ã決å®ãIssueãã³ã¡ã³ãã«åãããŠèŠã€ãããªã
- ð¥ ç¥èã®å±äººå: éçºè ãéè·ãããšè²Žéãªç¥èŠãçµéšãçµç¹ãã倱ããã
- â° å·¥æ°ãšäŸ¡å€ã®ãã©ã³ã¹: ããã¥ã¡ã³ãæŽåã¯éèŠã ããéçºæéãšã®ãã¬ãŒããªãã課é¡
AIãšãŒãžã§ã³ãéçºç¹æã®èª²é¡
- â AIãšãŒãžã§ã³ãã¯é«éã§å埩ã»åŠç¿ãã
- â éçºã¯IssuesãPRã§é²è¡ãã
- â ç¥èãæµãã®äžã§å€±ããã
- â åŠç¿ã®æ°žç¶çèšé²ããªã
- â ããŒã ã®ç¥èãæçåããŠãã
åŸæ¥ã®ã¢ãããŒãã®éç
ð« åŸæ¥ã®æ¹æ³ ð€ 課é¡
æè¡ããŒã« (Codecov, Jenkins) â éãšã³ãžãã¢ã«ã¯çè§£å°é£
GitHub Issues/PRã³ã¡ã³ã â è°è«ãæ£åšãæ€çŽ¢ã»æŽçå°é£
éçºè
å人ã®ç¥è â å±äººåãéè·æã«å€±ããã
æäœæ¥ã®ããã¥ã¡ã³ãäœæ â å·¥æ°ãéããç¶æå°é£
ð¡ Beaverã®ãœãªã¥ãŒã·ã§ã³
å€å±€ã¢ãããŒãã«ããã¹ããŒã¯ãã«ããŒå¥æé©å
ð å€å±€ã¢ãããŒã ð¥ 察象è
æè¡è©³çް (CLIããã°ããããã°æ
å ±) â éçºè
èŠèŠçãµããªãŒ (ã¹ãã¬ããã·ãŒãç) â ãããŒãžã£ã»PMã»QA
æ§é åWiki (å顿žã¿ãæ€çŽ¢å¯èœ) â ããŒã å
šäœã»æ°èŠã¡ã³ããŒ
Issues + Commits + AIãã° â ðŠ« Beaver â åã¹ããŒã¯ãã«ããŒã«æé©åãããç¥è
ã¡ã¿ããã¥ã¡ã³ããŒã·ã§ã³
Beaverã«ããèªå·±ç®¡ç: Beaverã¯Beaverãããžã§ã¯ãèªèº«ã®éçºã»éå¶ã«BeaverãæŽ»çšããŠããŸã
âš äž»èŠæ©èœ
AI-First Architecture
- AI Agent äž»å°éçº: Claude Code ã«ããèªåã³ãŒãçæã»æé©å
- ã¹ããŒãåé¡: GitHub Issues ã®èªåã«ããŽã©ã€ãŒãŒã·ã§ã³
- ã€ã³ããªãžã§ã³ãåæ: éçºãã¿ãŒã³ãšãã¬ã³ãã®èªåæ€åº
Modern Tech Stack
- Astro 5.11: éçãµã€ãçæ + Island Architecture
- TypeScript 5.6: åå®å šãªã³ãŒãå質
- React 19.1: ã€ã³ã¿ã©ã¯ãã£ãã³ã³ããŒãã³ã
- Octokit: GitHub API çµ±å
- Zod: ã©ã³ã¿ã€ã åæ€èšŒ
- Tailwind CSS: ãŠãŒãã£ãªãã£ãã¡ãŒã¹ãã¹ã¿ã€ãªã³ã°
- Chart.js: ããŒã¿å¯èŠå
- Vitest: å æ¬çãã¹ããã¬ãŒã ã¯ãŒã¯
Core Features
- Knowledge Base Generation: Issues â æ§é å Wiki
- Code Quality Dashboard: Codecov APIçµ±åã«ããå質åæ
- Interactive Visualization: Chart.js ã«ããåçã°ã©ã
- GitHub Pages Deployment: èªåãããã€ã¡ã³ã
- Real-time Updates: ã€ã³ã¯ãªã¡ã³ã¿ã«æŽæ°
- Team Collaboration: å ±æç¥èããŒã¹
ð¯ çæãããææç©
ð ç¥èããŒã¹ãµã€ã
- èªåçæãããGitHub Pages:
https://username.github.io/beaver/
- æ§é åãããWiki: æ€çŽ¢å¯èœãå顿žã¿éçºç¥è
- ã¬ã¹ãã³ã·ããã¶ã€ã³: ã¢ãã€ã«ã»ãã¹ã¯ããã察å¿
ð AI Issuesåæ
- èªååé¡: ãã°ãæ©èœãããã¥ã¡ã³ããªã©ãžã®èªååé¡
- åªå 床ä»ã: ç·æ¥åºŠã»éèŠåºŠã®èªåå€å®
- ææ åæ: ããžãã£ãã»ãã¬ãã£ãã»ç·æ¥åºŠã®æ€åº
ð å質ããã·ã¥ããŒã
- ã³ãŒãã«ãã¬ããž: Codecovçµ±åã«ãã詳现åæ
- ã¢ãžã¥ãŒã«åæ: ãã¡ã€ã«ã»ã¢ãžã¥ãŒã«å¥å質ã¡ããªã¯ã¹
- ãã¬ã³ã衚瀺: å質æ¹åã»æªåã®å¯èŠå
ð æ€çŽ¢å¯èœWiki
- å šææ€çŽ¢: ã¿ã€ãã«ã»æ¬æã»ã³ã¡ã³ããæšªææ€çŽ¢
- ã¿ã°ãã£ã«ã¿: ã©ãã«ã»ã«ããŽãªå¥ãã£ã«ã¿ãªã³ã°
- æ¥ä»ç¯å²: æéæå®ã§ã®çµã蟌ã¿
ð å©çšã·ããªãª
ã¹ã¿ãŒãã¢ããã»äžå°äŒæ¥
- æå°èšå®: GitHub Actionã®1è¡è¿œå ã§å³åº§ã«å°å ¥
- ã³ã¹ãå¹ç: GitHub Pagesç¡ææ å ã§ã®éçš
- ã¹ã±ãŒã©ããªãã£: ããŒã æé·ã«åãããæ©èœæ¡åŒµ
ãšã³ã¿ãŒãã©ã€ãº
- çµç¹æšªæ: è€æ°ãªããžããªã®çµ±å管ç
- ã«ã¹ã¿ã ãã©ã³ãã£ã³ã°: äŒæ¥ããŽã»ããŒãã®é©çš
- é«åºŠãªåæ: ã«ã¹ã¿ã ã¡ããªã¯ã¹ã»ã¬ããŒã
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ã
- éææ§: éçºããã»ã¹ã®å¯èŠå
- ã³ã³ããªãã¥ãŒã¿ãŒæ¯æŽ: æ°èŠåå è åãã®ç¥èããŒã¹
- ãããžã§ã¯ãå¥å šæ§: 掻å床ã»å質ã®å®¢èŠ³çææš
ð ããžãã¹äŸ¡å€
éçºå¹çåäž
- 30%ã®æéççž®: ããã¥ã¡ã³ãäœæã»ç¶æäœæ¥ã®èªåå
- ç¥èæ€çŽ¢æé: å¹³å3å â 30ç§ã«ççž®
- æ°èŠã¡ã³ããŒãªã³ããŒãã£ã³ã°: 1é±é â 2æ¥ã«ççž®
å質åäž
- ã³ãŒãã«ãã¬ããž: å¹³å15%åäž
- ãã°æ©æçºèŠ: ãã¬ã³ãåæã«ããäºå æ€ç¥
- æè¡åµå管ç: å®éçãªæ¹åææš
ããŒã ã³ã©ãã¬ãŒã·ã§ã³
- ã¹ããŒã¯ãã«ããŒæºè¶³åºŠ: æè¡é²æã®å¯èŠåã«ããåäž
- ç¥èå ±æ: å±äººåè§£æ¶ãããŒã å šäœã®çç£æ§åäž
- æææ±ºå®é床: ããŒã¿ããªãã³ãªå€æã«ããè¿ éå
ð ç«¶ååªäœæ§
vs åŸæ¥ã®ããã¥ã¡ã³ããŒã·ã§ã³ããŒã«
| é ç® | åŸæ¥ããŒã« | Beaver | |------|------------|--------| | å°å ¥ã³ã¹ã | é«é¡ | ç¡æïŒGitHub PagesïŒ | | èšå®å·¥æ° | æ°æ¥ãæ°é±é | æ°å | | ã¡ã³ããã³ã¹ | ç¶ç¶çãªæåæŽæ° | èªåæŽæ° | | æè¡ã¹ã¿ã㯠| ç¬èªåŠç¿ãå¿ èŠ | GitHubæšæº | | ã«ã¹ã¿ãã€ãº | éå®ç | å®å šãªã³ã³ãããŒã« |
vs æåããã¥ã¡ã³ãäœæ
- èªåå: 100%èªåå vs æåäœæ¥
- äžè²«æ§: ã¢ã«ãŽãªãºã ã«ããäžè²«ããåé¡ vs 人ã«ããå·®ç°
- ãªã¢ã«ã¿ã€ã æ§: å³åº§ã«æŽæ° vs é å»¶ã»æŒã
- æ€çŽ¢æ§: æ§é åããŒã¿ vs éæ§é åããã¹ã
ð ä»å 䟡å€
ãšã³ã·ã¹ãã çµ±å
- GitHubå®å šçµ±å: IssuesãPRãActionsãPagesãã·ãŒã ã¬ã¹é£æº
- CI/CD飿º: å質ã²ãŒãããããã€ã¡ã³ãèªåå
- å€éšããŒã«: CodecovãSlackãJiraãšã®é£æº
æ¡åŒµæ§
- ãã©ã°ã€ã³ã¢ãŒããã¯ãã£: ã«ã¹ã¿ã åæã»ã¬ããŒã远å
- APIæäŸ: å€éšã·ã¹ãã ãšã®é£æº
- ããŒãã·ã¹ãã : äŒæ¥ãã©ã³ãã£ã³ã°å¯Ÿå¿
åŠç¿ã»æé·
- AIåŠç¿ããŒã¿: èç©ãããããŒã¿ã«ããåæç²ŸåºŠåäž
- ãã¹ããã©ã¯ãã£ã¹: æåãã¿ãŒã³ã®èªåèå¥ã»æšå¥š
- ãã¬ã³ãäºæž¬: éçºååã®å èªã¿
ð¯ ä»åŸã®ããŒãããã
Phase 1: åºç€åŒ·å (çŸåš)
- â GitHub Actionå
- â å質ããã·ã¥ããŒã
- â AIåé¡ãšã³ãžã³
- ð ãã«ããªããžããªå¯Ÿå¿
Phase 2: é«åºŠåæ (3-6ã¶æ)
- ð äºæž¬åæãšã³ãžã³
- ð€ é«åºŠãªAIæŽå¯
- ð ã«ã¹ã¿ã ã¡ããªã¯ã¹
- ð å€éšããŒã«é£æºæ¡å
Phase 3: ãšã³ã¿ãŒãã©ã€ãº (6-12ã¶æ)
- ð¢ çµç¹é局管ç
- ð é«åºŠãªã»ãã¥ãªãã£
- ð çµå¶ããã·ã¥ããŒã
- ðŒ ã³ã³ãµã«ãã£ã³ã°æ©èœ
ð äŸ¡å€ææ¡ãŸãšã
Beaver = AIãšãŒãžã§ã³ãéçºã®ç¥èãã
Input: æ£åšããéçºæŽ»å (IssuesãCommitsãå®éš)
Output: æ§é åãããçµç¹ç¥è (WikiãåæãæŽå¯)
Value: éçºå¹çåäž + å質åäž + ããŒã åå匷å
ãæµãå»ãåŠã³ãå °ãæ¢ããæ°žç¶çãªäŸ¡å€ã«å€æããã
Beaverã䜿ãããšã§ãããªãã®AIéçºã®å šãŠã®åŠã³ãçµç¹ã®è²Žéãªè³ç£ãšããŠèç©ãããããŒã å šäœã®æé·ãå éãããŸãã