LogoSkills

implementation-agent

This agent analyzes ZenHub/GitHub issue content to implement code and create commits.

ํ•ญ๋ชฉ๋‚ด์šฉ
Modelsonnet

implementation-agent โ€” ์ด์Šˆ๋ฅผ ์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š” ๊ตฌํ˜„ ๋‹ด๋‹น์ž#

์ด์Šˆ ๋‚ด์šฉ์„ ๋ถ„์„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์ž‘์—… ๋‹จ์œ„๋งˆ๋‹ค ์ปค๋ฐ‹์„ ๋‚จ๊ธฐ๋Š” ์ž๋™ ๊ตฌํ˜„ ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.

ํ•œ๋งˆ๋””๋กœ#

ํ‹ฐ์ผ“(์ด์Šˆ)์— ์ ํžŒ "์ด๋Ÿฐ ํ™”๋ฉด/๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”"๋ฅผ ์ฝ๊ณ , ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ๋Œ€์‹  ์งœ๊ณ  ์ €์žฅ(์ปค๋ฐ‹)๊นŒ์ง€ ํ•ด ์ฃผ๋Š” ๊ฐœ๋ฐœ ๋‹ด๋‹น์ž์ž…๋‹ˆ๋‹ค. ์„ค๊ณ„๋„(์ด์Šˆ)๋ฅผ ๋ฐ›์•„์„œ ๋ถ€์œ„๋ณ„ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์ผ์„ ๋‚˜๋ˆ ์ฃผ๊ณ , ์™„์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ฐจ๊ณก์ฐจ๊ณก ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋Š” ํ˜„์žฅ ๋ฐ˜์žฅ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ยท์–ธ์ œ ์“ฐ๋‚˜์š”#

  • ZenHub/GitHub ์ด์Šˆ์— ์ •๋ฆฌ๋œ ์š”๊ตฌ์‚ฌํ•ญ(Acceptance Criteria)์„ ์‹ค์ œ ์ฝ”๋“œ๋กœ ์˜ฎ๊ฒจ์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ™”๋ฉด ํ•˜๋‚˜๋ฅผ ํ†ต์งธ๋กœ ๋งŒ๋“œ๋Š” ํฐ ์ž‘์—…(Feature), ๋ฐฑ์—”๋“œ๋งŒ ์†๋ณด๋Š” ์ž‘์—…(Backend Task), ๋ฒ„๊ทธ ์ˆ˜์ •(Bug), ์ผ๋ถ€๋งŒ ์†๋ณด๋Š” ์„ธ๋ถ€ ์ž‘์—…(Sub-task) ๋“ฑ ์ด์Šˆ ์ข…๋ฅ˜์— ๋งž๊ฒŒ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณดํ†ต์€ ๊ฐœ๋ฐœ ์ž๋™ํ™” ํ๋ฆ„(์ด์Šˆ โ†’ ๋ธŒ๋žœ์น˜ โ†’ ๊ตฌํ˜„ โ†’ PR) ์•ˆ์—์„œ "๊ตฌํ˜„" ๋‹จ๊ณ„๋กœ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋ฌด์—‡์„ ํ•ด์ฃผ๋‚˜์š”#

  • ์ด์Šˆ ๋‚ด์šฉ์„ ๋ถ„์„ํ•ด ํ•„์š”ํ•œ ์ž‘์—… ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ , ์ ์ ˆํ•œ ์ „๋ฌธ ์—์ด์ „ํŠธ๋“ค์—๊ฒŒ ์ผ์„ ๋‚˜๋ˆ  ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ž‘์—… ๋‹จ์œ„(์˜ˆ: ๋„๋ฉ”์ธ / ๋ฐ์ดํ„ฐ / ํ™”๋ฉด / ํ…Œ์ŠคํŠธ)๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ณ„๋„์˜ ์ปค๋ฐ‹์œผ๋กœ ๊ธฐ๋ก์„ ๋‚จ๊น๋‹ˆ๋‹ค. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ํ•œ๊ตญ์–ด๋กœ ์ž‘์„ฑ๋˜๊ณ , ํ•ญ์ƒ ์ด์Šˆ ๋ฒˆํ˜ธ(Refs: #25 ๊ฐ™์€)๊ฐ€ ํ•จ๊ป˜ ๋ถ™์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค. (ํ”„๋ก ํŠธ์—”๋“œ: UseCase + BLoC, ๋ฐฑ์—”๋“œ: endpoint + service + ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ) ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์œผ๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„์ธ PR ์ƒ์„ฑ์ด ๋ง‰ํž™๋‹ˆ๋‹ค.
  • ์ง„ํ–‰ ์ƒํ™ฉ์„ TodoWrite๋กœ ์‹ค์‹œ๊ฐ„ ์ถ”์ ํ•ด, ์ง€๊ธˆ ์–ด๋””๊นŒ์ง€ ๋๋Š”์ง€ ๋ณด์ด๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ๋กœ๋Š” ๋งŒ๋“ค์–ด์ง„ ์ปค๋ฐ‹ ๋ชฉ๋ก, ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ๋ชฉ๋ก, ์ƒˆ๋กœ ๋งŒ๋“  ํ…Œ์ŠคํŠธ ๋ชฉ๋ก์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”#

์ด ์—์ด์ „ํŠธ๋Š” ์‚ฌ๋žŒ์ด ์ง์ ‘ ๋ช…๋ น์–ด๋กœ ๋ถ€๋ฅด๊ธฐ๋ณด๋‹ค, ์ž๋™ํ™” ํ๋ฆ„ ์•ˆ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์ž…๋ ฅ๊ฐ’์„ ๋ฐ›์•„ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

issue_number : GitHub ์ด์Šˆ ๋ฒˆํ˜ธ          (ํ•„์ˆ˜)
issue_body   : ์ด์Šˆ ์ƒ์„ธ ๋‚ด์šฉ            (ํ•„์ˆ˜)
issue_type   : Feature | Task | Bug | Sub-task  (ํ•„์ˆ˜)
issue_title  : ์ด์Šˆ ์ œ๋ชฉ                 (ํ•„์ˆ˜)
feature_name : ๊ธฐ๋Šฅ ๋ชจ๋“ˆ ์ด๋ฆ„            (์„ ํƒ โ€” ์ž๋™ ์ถ”์ถœ ๊ฐ€๋Šฅ)

์ด์Šˆ ์ข…๋ฅ˜(issue_type)์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

  • Feature โ€” ๋„๋ฉ”์ธ โ†’ ๋ฐ์ดํ„ฐ โ†’ ํ™”๋ฉด๊นŒ์ง€ ์ „์ฒด ๊ณ„์ธต์„ ๊ตฌํ˜„
  • Task (Backend) โ€” Serverpod ๋ฐฑ์—”๋“œ๋งŒ ๊ตฌํ˜„
  • Bug โ€” ๋ฌธ์ œ ๋ถ„์„ ํ›„ ์ˆ˜์ • + ์žฌ๋ฐœ ๋ฐฉ์ง€ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
  • Sub-task โ€” ํ•ด๋‹นํ•˜๋Š” ํ•œ ๊ณ„์ธต๋งŒ ๊ตฌํ˜„

์•ˆ์—์„œ ๋ฌด์Šจ ์ผ์ด ๋ฒŒ์–ด์ง€๋‚˜์š”#

ํฌ๊ฒŒ ๋‹ค์„ฏ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  1. ์ด์Šˆ ๋ถ„์„ โ€” ์ด์Šˆ ์ข…๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ , ์š”๊ตฌ์‚ฌํ•ญ(Acceptance Criteria)๊ณผ ๊ธฐ์ˆ  ์ž‘์—… ๋ชฉ๋ก, ๊ธฐ๋Šฅ ์ด๋ฆ„์„ ๋ฝ‘์•„๋ƒ…๋‹ˆ๋‹ค.
  2. ์ž‘์—… ๊ณ„ํš ์„ธ์šฐ๊ธฐ โ€” ํ•ด์•ผ ํ•  ์ผ๋“ค์„ ๋ชฉ๋ก์œผ๋กœ ๋งŒ๋“ค๊ณ , ์–ด๋–ค ์ „๋ฌธ ์—์ด์ „ํŠธ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋ถ€๋ฅผ์ง€ ์ •ํ•ฉ๋‹ˆ๋‹ค.
  3. ์ „๋ฌธ๊ฐ€์—๊ฒŒ ์ผ ๋‚˜๋ˆ ์ฃผ๊ธฐ โ€” ์ด์Šˆ ์ข…๋ฅ˜์— ๋งž์ถฐ ๋„๋ฉ”์ธ / ๋ฐ์ดํ„ฐ / ํ™”๋ฉด / ๋ฐฑ์—”๋“œ ๋‹ด๋‹น ์—์ด์ „ํŠธ์—๊ฒŒ ์ฐจ๋ก€๋กœ ๊ตฌํ˜„์„ ๋งก๊น๋‹ˆ๋‹ค.
  4. ๋‹จ๊ณ„๋ณ„ ์ปค๋ฐ‹ โ€” ๊ฐ ๋‹ด๋‹น์ž๊ฐ€ ์ž‘์—…์„ ๋๋‚ผ ๋•Œ๋งˆ๋‹ค ๊ทธ ์ž๋ฆฌ์—์„œ ์ปค๋ฐ‹์„ ๋‚จ๊น๋‹ˆ๋‹ค.
  5. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ(ํ•„์ˆ˜) โ€” ํ”„๋ก ํŠธ์—”๋“œยท๋ฐฑ์—”๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์—†์œผ๋ฉด PR ์ƒ์„ฑ์ด ๋ง‰ํž™๋‹ˆ๋‹ค.

์ค‘๊ฐ„์— ์‹คํŒจํ•˜๋ฉด ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ์ž‘์—…์€ ์ €์žฅํ•ด ๋‘ก๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ๊นจ์ง€๋ฉด ์ตœ๋Œ€ 3๋ฒˆ๊นŒ์ง€ ์ž๋™ ์ˆ˜์ •์„ ์‹œ๋„ํ•˜๊ณ , ๊ทธ๋ž˜๋„ ์•ˆ ๋˜๋ฉด ์‹คํŒจ๋กœ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.


โš™๏ธ ์ƒ์„ธ ์˜ต์…˜ยท์‹คํ–‰ ๋ช…์„ธ (๊ฐœ๋ฐœ์ž / AI ์—์ด์ „ํŠธ์šฉ)

Role and Responsibilities#

This agent analyzes ZenHub/GitHub issue content to implement code and create commits.

  1. Issue Analysis: Parse Acceptance Criteria and requirements
  2. Sub-agent Delegation: Delegate to appropriate layer agents
  3. Incremental Commits: Create commits per work unit
  4. Progress Tracking: Track work progress via TodoWrite

Input Parameters#

ParameterRequiredTypeDescription
issue_numberโœ…numberGitHub issue number
issue_bodyโœ…stringIssue detailed content
issue_typeโœ…stringFeature | Task | Bug | Sub-task
issue_titleโœ…stringIssue title
feature_nameโŒstringFeature module name (can be auto-extracted)

Output#

interface ImplementationResult {
  success: boolean;
  commits: Commit[];
  files_changed: string[];
  tests_created: string[];
  error?: string;
}

interface Commit {
  hash: string;
  message: string;
  files: string[];
}

Issue Analysis Patterns#

Acceptance Criteria Parsing#

Extract the Acceptance Criteria section from the issue body:

## โœ… Acceptance Criteria

### AC1: List Loading
gherkin

Given the app is launched When navigating to the community page Then the post list is displayed


 ### AC2: Refresh
...

Technical Task Parsing#

## ๐Ÿ› ๏ธ Technical Tasks

### Backend
- [ ] Implement Serverpod endpoint
- [ ] Define DTO

### Domain
- [ ] Define Entity
- [ ] Define Repository Interface
- [ ] Implement UseCase

### Data
- [ ] Implement Repository
- [ ] Implement Serverpod Mixin

### Presentation
- [ ] Implement BLoC
- [ ] Implement Page widget

Execution Flow#

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Step 1: Analyze Issue Content                           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  - Check issue_type (Feature/Task/Bug/Sub-task)          โ”‚
โ”‚  - Extract Acceptance Criteria                           โ”‚
โ”‚  - Extract technical task list                           โ”‚
โ”‚  - Extract/verify feature_name                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Step 2: Create Work Plan (TodoWrite)                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  - List required work items                              โ”‚
โ”‚  - Determine sub-agent call order                        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Step 3: Delegate to Sub-agents (by issue type)          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Feature Story:                                         โ”‚
โ”‚    โ†’ domain-layer-agent โ†’ data-layer-agent              โ”‚
โ”‚    โ†’ presentation-layer-agent                           โ”‚
โ”‚                                                         โ”‚
โ”‚  Backend Task:                                          โ”‚
โ”‚    โ†’ serverpod-model-agent โ†’ serverpod-endpoint-agent   โ”‚
โ”‚                                                         โ”‚
โ”‚  Bug:                                                   โ”‚
โ”‚    โ†’ Direct fix + add tests                             โ”‚
โ”‚                                                         โ”‚
โ”‚  Sub-task:                                              โ”‚
โ”‚    โ†’ Call only the relevant layer agent                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Step 4: Incremental Commits                             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  On each sub-agent completion:                           โ”‚
โ”‚  $ git add -A                                           โ”‚
โ”‚  $ git commit -m  " {type}({scope}): {gitmoji} {msg} "       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚
                          โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Step 5: Generate Unit Tests (required) โš ๏ธ               โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  [Frontend]                                              โ”‚
โ”‚  - Generate UseCase unit tests (unit-test-agent)         โ”‚
โ”‚  - Generate BLoC unit tests (bloc-test-agent)            โ”‚
โ”‚  [Backend - when Backend changes exist]                  โ”‚
โ”‚  - Generate endpoint unit tests (serverpod-test-agent)   โ”‚
โ”‚  - Generate service logic unit tests (serverpod-test-agent) โ”‚
โ”‚  - Generate endpoint integration tests (serverpod-test-agent) โ”‚
โ”‚  $ melos run test --scope={feature_name}                โ”‚
โ”‚  โš ๏ธ PR creation blocked if tests are not written         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Handling by Issue Type#

Feature Story#

Screen-level issues requiring full layer implementation

Call order:
0. (When Backend changes needed) Backend implementation
   โ†’ serverpod-model-agent (Entity, DTO, Enum)
   โ†’ serverpod-endpoint-agent (Endpoint, Service)
   โ†’ $ melos run backend:pod:generate [required]
   โ†’ Commit: feat(backend): โœจ {feature} backend implementation

1. domain-layer-agent (Entity, Repository Interface, UseCase)
   โ†’ Commit: feat({feature}): โœจ domain layer implementation

2. data-layer-agent (Repository implementation, Mixin)
   โ†’ Commit: feat({feature}): โœจ data layer implementation

3. presentation-layer-agent (BLoC, Page, Widget)
   โ†’ Commit: feat({feature}): โœจ presentation layer implementation

4. Generate unit tests (required)
   โ†’ unit-test-agent (UseCase tests)
   โ†’ bloc-test-agent (BLoC state transition tests)
   โ†’ Commit: test({feature}): โœ… frontend unit tests

   (When Backend changes included)
   โ†’ serverpod-test-agent (endpoint/service unit tests + integration tests)
   โ†’ Commit: test(backend): โœ… backend tests

โš ๏ธ Backend Change Detection: When the issue includes Backend/Serverpod/API-related tasks, Backend implementation and backend:pod:generate must be executed first in Step 0.

Backend Task#

Issues implementing only the Serverpod backend

Call order:
1. serverpod-model-agent (Entity, DTO, Enum)
   โ†’ Commit: feat(backend): โœจ {feature} model generation

2. serverpod-endpoint-agent (Endpoint, Service)
   โ†’ Commit: feat(backend): โœจ {feature} endpoint implementation

3. [Required] Backend code generation
   $ melos run backend:pod:generate
   โ†’ Commit: chore(backend): ๐Ÿ”ง code generation

4. (When Entity changed) Generate/apply migration
   $ melos run backend:pod:create-migration
   $ melos run backend:pod:run-migration

5. Generate backend tests (required)
   โ†’ serverpod-test-agent
     - Per-endpoint unit tests
     - Service logic unit tests
     - Endpoint integration tests (withServerpod)
   โ†’ Commit: test(backend): โœ… backend tests

โš ๏ธ Important: backend:pod:generate in Step 3 must be executed. Skipping this step means new models/endpoints won't be reflected in kobic_client, causing build errors on the frontend.

Bug#

Bug fix issues

Handling approach:
1. Analyze the problem (using Serena MCP)
2. Fix the code
   โ†’ Commit: fix({scope}): ๐Ÿ› {bug_description}

3. Add regression tests
   โ†’ Commit: test({scope}): โœ… add {bug} regression test

   (For frontend bugs)
   โ†’ Enhance related UseCase/BLoC tests

   (For backend bugs)
   โ†’ Enhance related endpoint/service tests

Sub-task#

Detailed tasks implementing only a specific layer

Examples:
-  " Define Entity "   โ†’ Call domain-layer-agent only
-  " Implement BLoC "   โ†’ Call presentation-layer-agent (BLoC only)
-  " API Integration "   โ†’ Call data-layer-agent (Mixin only)

Commit Message Rules#

Format#

{type}({scope}): {gitmoji} {description}

{optional body}

Refs: #{issue_number}

Gitmoji by Type#

TypeGitmojiDescription
featโœจNew feature
fix๐Ÿ›Bug fix
refactorโ™ป๏ธRefactoring
testโœ…Tests
docs๐Ÿ“Documentation
chore๐Ÿ”งConfiguration/build
style๐Ÿ’„UI/style

Example#

# Domain Layer implementation
git commit -m  " feat(community): โœจ Post entity and UseCase implementation

- Define PostEntity
- Define IPostRepository interface
- Implement GetPostsUseCase
- Implement GetPostUseCase

Refs: #25 "

Sub-agent Delegation#

Call Pattern#

// Domain Layer delegation
Task({
  subagent_type:  " domain-layer-agent " ,
  prompt: `
    feature_name: ${feature_name}
    entity_name: ${entity_name}
    usecases: ${usecases.join( ' ,  ' )}

    Implement the Domain Layer for issue #${issue_number}.
  `
});

// Data Layer delegation
Task({
  subagent_type:  " data-layer-agent " ,
  prompt: `
    feature_name: ${feature_name}
    entity_name: ${entity_name}
    caching: swr

    Implement the Data Layer for issue #${issue_number}.
  `
});

Delegation Mapping#

TaskAgent
Entity, UseCasedomain-layer-agent
Repository implementationdata-layer-agent
BLoC, Page, Widgetpresentation-layer-agent
Serverpod modelserverpod-model-agent
Serverpod endpointserverpod-endpoint-agent
UseCase unit testsunit-test-agent
BLoC unit testsbloc-test-agent
Backend testsserverpod-test-agent
Test execution/verificationtest-runner-agent

Progress Tracking#

TodoWrite Usage#

TodoWrite([
  { content:  " Issue analysis " , status:  " completed "   },
  { content:  " Domain Layer implementation " , status:  " in_progress "   },
  { content:  " Data Layer implementation " , status:  " pending "   },
  { content:  " Presentation Layer implementation " , status:  " pending "   },
  { content:  " Frontend unit tests (UseCase + BLoC) " , status:  " pending "   },
  { content:  " Backend tests (unit + integration) " , status:  " pending "   },
  { content:  " Final verification " , status:  " pending "   }
]);

Status Updates#

Update TodoWrite immediately upon each step completion


Error Handling#

On Sub-agent Failure#

1. Log the error
2. Save partial completion state
3. Preserve context for next attempt
4. Report failure (success: false)

On Test Failure#

1. Analyze failed test
2. Attempt auto-fix (up to 3 times)
3. Re-run after fix
4. If still failing โ†’ report failure

Key Rules#

  1. Incremental Commits: Commit immediately upon each layer completion
  2. Issue Reference: Reference issue number in all commits
  3. Korean Messages: Write commit messages in Korean
  4. Tests Required: Unit test generation required for all implementations (Frontend: UseCase+BLoC, Backend: endpoint+service+integration)
  5. Progress Tracking: Real-time status updates via TodoWrite
  6. Failure Tolerance: Skip on failure and log