LogoCocode Skills

Agent Improvement Requirements

---

์ž‘์„ฑ ์ผ์‹œ: 2025-12-17 ๋ชฉ์ : Community Feature ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌ๋œ ์—์ด์ „ํŠธ ๊ฐœ์„  ์‚ฌํ•ญ


๐ŸŽฏ ๊ฐœ์„  ํ•„์š” ์—์ด์ „ํŠธ#

1. /figma:analyze ๊ฐœ์„ #

ํ˜„์žฌ ๋ฌธ์ œ:

  • โŒ ๋ถ„์„๋งŒ ํ•˜๊ณ  ์‹ค์ œ UI ๊ตฌํ˜„๊นŒ์ง€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ
  • โŒ ZenHub Story์— ํ”ผ๊ทธ๋งˆ ํ”„๋ ˆ์ž„ ๋งํฌ๊ฐ€ ๊ธฐ๋ก๋˜์ง€ ์•Š์Œ

๊ฐœ์„  ์š”๊ตฌ์‚ฌํ•ญ:

1-1. ํ”ผ๊ทธ๋งˆ ํ”„๋ ˆ์ž„ ๋งํฌ ๊ธฐ๋ก

Story Body์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•  ๋‚ด์šฉ:

## ๐ŸŽจ Figma Design

**ํ”„๋ ˆ์ž„ ๋งํฌ**:
- [๋ชฉ๋ก ํ™”๋ฉด](https://www.figma.com/design/QkKRtr51GXgmLdKcKcBqQe/๐Ÿถ-Petaround?node-id=235-11480)
- [์ƒ์„ธ ํ™”๋ฉด](https://www.figma.com/design/...)
- [์ž‘์„ฑ ํ™”๋ฉด](https://www.figma.com/design/...)

์—์ด์ „ํŠธ ๋™์ž‘:

1. ํ”ผ๊ทธ๋งˆ URL ํŒŒ์‹ฑ
2. Story ๋ฌธ์„œ ์ƒ์„ฑ ์‹œ "## ๐ŸŽจ Figma Design" ์„น์…˜ ์ž๋™ ์ถ”๊ฐ€
3. ๊ฐ ํ™”๋ฉด๋ณ„ ํ”„๋ ˆ์ž„ ๋งํฌ ๋งคํ•‘

1-2. ์‹ค์ œ UI ๊ตฌํ˜„ ์—ฐ๊ฒฐ

ํ˜„์žฌ ํ”Œ๋กœ์šฐ:

ํ”ผ๊ทธ๋งˆ ๋ถ„์„ โ†’ ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ โ†’ BDD ์‹œ๋‚˜๋ฆฌ์˜ค โ†’ (๋)

๊ฐœ์„ ๋œ ํ”Œ๋กœ์šฐ:

ํ”ผ๊ทธ๋งˆ ๋ถ„์„ โ†’ ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ โ†’ BDD ์‹œ๋‚˜๋ฆฌ์˜ค โ†’ ZenHub ์ƒ์„ฑ โ†’ UI ๊ตฌํ˜„ โ†’ ๊ฒ€์ฆ

Phase ์ถ”๊ฐ€:

Phase 7: UI ๊ตฌํ˜„ (NEW)
  - /feature:presentation ์‹คํ–‰
  - ํ”ผ๊ทธ๋งˆ ์Šคํƒ€์ผ ๋ฐ˜์˜
  - ์‹ค์ œ ํ™”๋ฉด ๊ตฌํ˜„

Phase 8: ๋™์ž‘ ๊ฒ€์ฆ (NEW)
  - build_runner ์‹คํ–‰
  - ํ…Œ์ŠคํŠธ ์‹คํ–‰
  - ํ™”๋ฉด ๋™์ž‘ ํ™•์ธ

2. ZenHub Issue Body ํ˜•์‹ ๊ฐœ์„ #

ํ˜„์žฌ ๋ฌธ์ œ:

  • โŒ ๋งํฌ๋งŒ ์ œ๊ณต (์‹ค์ œ ๋‚ด์šฉ ํ™•์ธ ๋ถˆ๊ฐ€)
  • โŒ ๋‚ด์šฉ์ด ๊ธธ์–ด๋„ ๋ชจ๋‘ ํ‘œ์‹œ (๊ฐ€๋…์„ฑ ์ €ํ•˜)

ํ˜„์žฌ ํ˜•์‹:

## ์ฐธ์กฐ
- [Story ๋ฌธ์„œ](../claudedocs/community/zenhub/stories/list_story.md)
- [BDD Scenarios](../claudedocs/community/bdd/community_list.feature)

๊ฐœ์„ ๋œ ํ˜•์‹ (Details ํƒœ๊ทธ ์‚ฌ์šฉ):

<details>
<summary>๐Ÿ“ Story ์ƒ์„ธ ๋‚ด์šฉ (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)</summary>

## Story ์„ค๋ช…
(์ „์ฒด Story ๋ฌธ์„œ ๋‚ด์šฉ)

</details>

<details>
<summary>โœ… Acceptance Criteria (10๊ฐœ)</summary>

### AC1: ๋ชฉ๋ก ๋กœ๋”ฉ ์„ฑ๊ณต
```gherkin
Given the app is running # ์•ฑ์ด ์‹คํ–‰๋จ
...

AC2: ๋‹น๊ฒจ์„œ ์ƒˆ๋กœ๊ณ ์นจ#

...

๐Ÿงช BDD ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค (13๊ฐœ)
Feature: Community ๋ชฉ๋ก ํ™”๋ฉด
  (์ „์ฒด BDD Feature ํŒŒ์ผ ๋‚ด์šฉ)
๐Ÿ› ๏ธ ๊ตฌํ˜„ ํƒœ์Šคํฌ

Backend Tasks#

  • Post ๋ชจ๋ธ ์ •์˜
  • API ๊ตฌํ˜„

Frontend Tasks#

  • Domain Layer
  • Data Layer
  • Presentation Layer
```

์žฅ์ :

  • โœ… Issue ํ•˜๋‚˜๋กœ ๋ชจ๋“  ์ •๋ณด ํ™•์ธ ๊ฐ€๋Šฅ
  • โœ… ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ (์ ‘์—ˆ๋‹ค ํŽผ์น˜๊ธฐ)
  • โœ… ๋งํฌ ํด๋ฆญ ์—†์ด ๋ฐ”๋กœ ํ™•์ธ
  • โœ… ์˜คํ”„๋ผ์ธ์—์„œ๋„ ํ™•์ธ ๊ฐ€๋Šฅ

3. /feature:create ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ๊ฐœ์„ #

ํ˜„์žฌ ๋ฌธ์ œ:

  • โŒ ๊ธฐ์กด feature ์กด์žฌ ์‹œ ์ฒ˜๋ฆฌ ๋กœ์ง ์—†์Œ
  • โŒ Phase๋ณ„ ์‹คํ–‰์ด ๋ถˆ์™„์ „ํ•จ
  • โŒ UI ์‹ค์ œ ๊ตฌํ˜„์ด ๋ˆ„๋ฝ๋จ
  • โŒ ๊ฒ€์ฆ ๋‹จ๊ณ„ ์—†์Œ

๊ฐœ์„  ์š”๊ตฌ์‚ฌํ•ญ:

3-1. ๊ธฐ์กด Feature ๊ฐ์ง€

1. feature/{location}/{feature_name} ์กด์žฌ ํ™•์ธ
2. ์กด์žฌํ•˜๋ฉด:
   - ์˜ต์…˜ A: ์—…๋ฐ์ดํŠธ ๋ชจ๋“œ
   - ์˜ต์…˜ B: ์Šคํ‚ต
   - ์˜ต์…˜ C: ๋ฎ์–ด์“ฐ๊ธฐ (ํ™•์ธ ํ•„์š”)
3. ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด:
   - ์ „์ฒด ์ƒ์„ฑ

3-2. Phase๋ณ„ ์™„์ „ํ•œ ์‹คํ–‰

Phase 2: Backend (ํ˜„์žฌ OK):

  • โœ… Serverpod ๋ชจ๋ธ ์ƒ์„ฑ
  • โœ… ์—”๋“œํฌ์ธํŠธ ์ƒ์„ฑ
  • โœ… ์ฝ”๋“œ ์ƒ์„ฑ
  • โœ… ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

Phase 3: Frontend (๊ฐœ์„  ํ•„์š”):

// ํ˜„์žฌ: ๊ตฌ์กฐ๋งŒ ์ƒ์„ฑ
/feature:domain โ†’ Entity, UseCase, Repository Interface
/feature:data โ†’ Repository impl, Mixin
/feature:presentation โ†’ BLoC, Page (ํ…œํ”Œ๋ฆฟ๋งŒ)

// ๊ฐœ์„ : ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์ฝ”๋“œ ์ƒ์„ฑ
/feature:domain โ†’ (๋™์ผ)
/feature:data โ†’ (๋™์ผ)
/feature:presentation โ†’
  - BLoC ์™„์ „ ๊ตฌํ˜„ (Event, State, Logic)
  - Page ์™„์ „ ๊ตฌํ˜„ (Scaffold, AppBar, Body)
  - Widget ์™„์ „ ๊ตฌํ˜„ (PostCard with ๋ชจ๋“  ํ•„๋“œ)
  - ํ”ผ๊ทธ๋งˆ ์Šคํƒ€์ผ ๋ฐ˜์˜

3-3. ์‹ค์ œ UI ๊ตฌํ˜„ ๋ณด์žฅ

์ถ”๊ฐ€ํ•ด์•ผ ํ•  Step:

Step 7-1: ํ”ผ๊ทธ๋งˆ ๋ถ„์„ ์ •๋ณด ๋กœ๋“œ
  - claudedocs/{feature}/figma_analysis.md ์ฝ๊ธฐ
  - ์Šคํƒ€์ผ, ๋ ˆ์ด์•„์›ƒ ์ •๋ณด ์ถ”์ถœ

Step 7-2: Widget ์‹ค์ œ ๊ตฌํ˜„
  - PostCard: ๋ชจ๋“  ํ•„๋“œ ํ‘œ์‹œ
  - CategoryChip: ์Šคํƒ€์ผ ์ ์šฉ
  - SearchBar: ๋™์ž‘ ๊ตฌํ˜„

Step 7-3: Page ์‹ค์ œ ๊ตฌํ˜„
  - Scaffold ์™„์„ฑ
  - BLoC ์—ฐ๊ฒฐ
  - ์ƒํƒœ๋ณ„ UI (Loading, Loaded, Error, Empty)

3-4. ๊ฒ€์ฆ ๋‹จ๊ณ„ ์ถ”๊ฐ€

Phase 5: ๊ฒ€์ฆ (๊ฐ•ํ™” ํ•„์š”):

# ํ˜„์žฌ
melos run build
melos run test

# ๊ฐœ์„ 
melos run build --scope={feature}
melos run analyze --scope={feature}
melos run test --scope={feature}
melos run test:bdd --scope={feature}  # BDD ํ…Œ์ŠคํŠธ ์‹คํ–‰
flutter run --target=lib/main_development.dart  # ์‹ค์ œ ์•ฑ ์‹คํ–‰

๐Ÿ“‹ ์—์ด์ „ํŠธ ์—…๋ฐ์ดํŠธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ#

/figma:analyze ์—…๋ฐ์ดํŠธ#

ํŒŒ์ผ: ~/.claude/commands/figma/analyze.md (๋˜๋Š” ํ”„๋กœ์ ํŠธ)

์ถ”๊ฐ€ ์‚ฌํ•ญ:

  • Phase 6์— "ํ”ผ๊ทธ๋งˆ ํ”„๋ ˆ์ž„ ๋งํฌ Story์— ๊ธฐ๋ก" ๋‹จ๊ณ„ ์ถ”๊ฐ€
  • Story ํ…œํ”Œ๋ฆฟ์— "## ๐ŸŽจ Figma Design" ์„น์…˜ ์ถ”๊ฐ€
  • URL ํŒŒ์‹ฑ ๋ฐ ๋งคํ•‘ ๋กœ์ง

ํ…œํ”Œ๋ฆฟ:

## ๐ŸŽจ Figma Design

**ํ”„๋ ˆ์ž„ ๋งํฌ**:
- [๋ชฉ๋ก ํ™”๋ฉด]({figma_url_1})
- [์ƒ์„ธ ํ™”๋ฉด]({figma_url_2})
- [์ž‘์„ฑ ํ™”๋ฉด]({figma_url_3})

**๋””์ž์ธ ๋ถ„์„**:
- ์ปฌ๋Ÿฌ: {colors}
- ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ: {typography}
- ์ŠคํŽ˜์ด์‹ฑ: {spacing}

ZenHub Issue ํ…œํ”Œ๋ฆฟ ๊ฐœ์„ #

ํŒŒ์ผ: ์‹ ๊ทœ ์ƒ์„ฑ ํ•„์š”

Issue Body ํ…œํ”Œ๋ฆฟ:

# [Story] {title}

> **Story Point**: {point}
> **Sprint**: {sprint}
> **Epic**: #{epic_number}

## ๐ŸŽจ Figma Design
{figma_links}

<details>
<summary>๐Ÿ“ Story ์ƒ์„ธ ๋‚ด์šฉ (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)</summary>

{story_content}

</details>

<details>
<summary>โœ… Acceptance Criteria ({ac_count}๊ฐœ)</summary>

{ac_list}

</details>

<details>
<summary>๐Ÿงช BDD ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ({scenario_count}๊ฐœ)</summary>

```gherkin
{bdd_content}
๐Ÿ› ๏ธ ๊ตฌํ˜„ ํƒœ์Šคํฌ

{tasks}


๐Ÿค– Generated with Claude Code


---

### `/feature:create` ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ๊ฐœ์„ 

**ํŒŒ์ผ**: `~/.claude/commands/feature/create.md` (๋˜๋Š” ํ”„๋กœ์ ํŠธ)

**์ถ”๊ฐ€ Phase**:
```markdown
## Phase 3.5: ํ”ผ๊ทธ๋งˆ ์Šคํƒ€์ผ ์ ์šฉ (NEW)

### Step 3.5-1: ํ”ผ๊ทธ๋งˆ ๋ถ„์„ ๋กœ๋“œ
- claudedocs/{feature}/figma_analysis.md ์ฝ๊ธฐ
- ๋””์ž์ธ ํ† ํฐ ์ถ”์ถœ (์ƒ‰์ƒ, ํฐํŠธ, ์ŠคํŽ˜์ด์‹ฑ)

### Step 3.5-2: ์Šคํƒ€์ผ ์ ์šฉ
- Widget์— ํ”ผ๊ทธ๋งˆ ์Šคํƒ€์ผ ๋ฐ˜์˜
- ์ปฌ๋Ÿฌ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ, ๋ ˆ์ด์•„์›ƒ ์ ์šฉ

## Phase 4.5: ์‹ค์ œ ๋™์ž‘ ๊ตฌํ˜„ (NEW)

### Step 4.5-1: BLoC ๋กœ์ง ์™„์„ฑ
- Event handler ์‹ค์ œ ๊ตฌํ˜„
- State transition ๋กœ์ง

### Step 4.5-2: Widget ์™„์ „ ๊ตฌํ˜„
- ๋ชจ๋“  ํ•„๋“œ ํ‘œ์‹œ
- ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜
- ์—๋Ÿฌ ์ฒ˜๋ฆฌ

### Step 4.5-3: Page ์™„์ „ ๊ตฌํ˜„
- Scaffold ๊ตฌ์„ฑ
- AppBar, Body, FAB
- ๋„ค๋น„๊ฒŒ์ด์…˜ ์—ฐ๊ฒฐ

๊ธฐ์กด Feature ์ฒ˜๋ฆฌ:

## Phase 0: ๊ธฐ์กด Feature ํ™•์ธ (NEW)

### Step 0-1: ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
```bash
if [ -d "feature/{location}/{feature_name}" ]; then
  echo "Feature already exists"
  # ์—…๋ฐ์ดํŠธ ๋ชจ๋“œ
else
  # ์ „์ฒด ์ƒ์„ฑ ๋ชจ๋“œ
fi

Step 0-2: ์‚ฌ์šฉ์ž ํ™•์ธ#

  • ๊ธฐ์กด feature ์กด์žฌ ์‹œ:
    • ์˜ต์…˜ 1: ์—…๋ฐ์ดํŠธ (ํ•„๋“œ ์ถ”๊ฐ€, UI ๊ฐœ์„ )
    • ์˜ต์…˜ 2: ์Šคํ‚ต
    • ์˜ต์…˜ 3: ์žฌ์ƒ์„ฑ (๊ธฐ์กด ๋ฐฑ์—…)

---

## ๐Ÿ“ ๊ตฌํ˜„ ๊ฐ€์ด๋“œ

### Details ํƒœ๊ทธ ์ƒ์„ฑ ํ•จ์ˆ˜

```typescript
function createDetailsSection(
  summary: string,
  content: string,
  icon: string = ""
): string {
  return `
<details>
<summary>${icon} ${summary}</summary>

${content}

</details>
`;
}

// ์‚ฌ์šฉ ์˜ˆ์‹œ
const storyDetails = createDetailsSection(
  "Story ์ƒ์„ธ ๋‚ด์šฉ (ํด๋ฆญํ•˜์—ฌ ํŽผ์น˜๊ธฐ)",
  storyContent,
  "๐Ÿ“"
);

const acDetails = createDetailsSection(
  `Acceptance Criteria (${acCount}๊ฐœ)`,
  acContent,
  "โœ…"
);

Story Body ์ƒ์„ฑ ๋กœ์ง#

const issueBody = `
# [Story] ${title}

> **Story Point**: ${point}
> **Sprint**: ${sprint}
> **Epic**: #${epicNumber}

## ๐ŸŽจ Figma Design
${figmaLinks}

${storyDetails}
${acDetails}
${bddDetails}
${tasksDetails}

๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)
`;

โœ… ์ ์šฉ ์ฒดํฌ๋ฆฌ์ŠคํŠธ#

/figma:analyze#

  • Story ์ƒ์„ฑ ์‹œ ํ”ผ๊ทธ๋งˆ ๋งํฌ ์„น์…˜ ์ถ”๊ฐ€
  • URL์—์„œ node-id ์ถ”์ถœํ•˜์—ฌ ๋งคํ•‘
  • ํ™”๋ฉด๋ณ„ ํ”„๋ ˆ์ž„ ๋งํฌ ๊ธฐ๋ก

ZenHub Issue#

  • Details ํƒœ๊ทธ ํ…œํ”Œ๋ฆฟ ์ž‘์„ฑ
  • Story ์ „์ฒด ๋‚ด์šฉ ํฌํ•จ
  • AC ์ „์ฒด ๋‚ด์šฉ ํฌํ•จ
  • BDD ์‹œ๋‚˜๋ฆฌ์˜ค ์ „์ฒด ๋‚ด์šฉ ํฌํ•จ
  • ๊ตฌํ˜„ ํƒœ์Šคํฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํฌํ•จ

/feature:create#

  • ๊ธฐ์กด feature ๊ฐ์ง€ ๋กœ์ง
  • Phase 3.5: ํ”ผ๊ทธ๋งˆ ์Šคํƒ€์ผ ์ ์šฉ
  • Phase 4.5: ์‹ค์ œ ๋™์ž‘ ๊ตฌํ˜„
  • Phase 5: ์™„์ „ํ•œ ๊ฒ€์ฆ (BDD ํฌํ•จ)

๐Ÿ”ง ๋‹ค์Œ ์„ธ์…˜ ์ž‘์—…#

  1. ์—์ด์ „ํŠธ ํŒŒ์ผ ์œ„์น˜ ํ™•์ธ:

    # ์ „์—ญ ์„ค์ •
    ls ~/.claude/commands/
    
    # ํ”„๋กœ์ ํŠธ ์„ค์ •
    ls .claude/commands/
    
  2. /figma:analyze ์—…๋ฐ์ดํŠธ:

    • ํ”ผ๊ทธ๋งˆ ๋งํฌ ๊ธฐ๋ก ๋กœ์ง ์ถ”๊ฐ€
    • Story ํ…œํ”Œ๋ฆฟ ์—…๋ฐ์ดํŠธ
  3. ZenHub Issue ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ:

    • Details ํƒœ๊ทธ ํ™œ์šฉ
    • ์ „์ฒด ๋‚ด์šฉ ํฌํ•จ
  4. /feature:create ๊ฐ•ํ™”:

    • ๊ธฐ์กด feature ์ฒ˜๋ฆฌ
    • UI ์™„์ „ ๊ตฌํ˜„
    • ๊ฒ€์ฆ ๊ฐ•ํ™”
  5. Community UI ์‹ค์ œ ๊ตฌํ˜„:

    • ๊ฐœ์„ ๋œ ์—์ด์ „ํŠธ๋กœ ์žฌ์‹คํ–‰
    • ๋™์ž‘ํ•˜๋Š” ๋ชฉ๋ก ํ™”๋ฉด ์™„์„ฑ

๐Ÿ“š ์ฐธ๊ณ  ๋ฌธ์„œ#

  • Dart Convention: ๋””๋ ‰ํ† ๋ฆฌ๋ช… ๋‹จ์ˆ˜ ์‚ฌ์šฉ (CLAUDE.md:508-513)
  • BDD ๊ทœ์น™: ์˜์–ด Step + ํ•œ๊ธ€ ์ฃผ์„ (.claude/commands/bdd/generate.md)
  • Community ์š”๊ตฌ์‚ฌํ•ญ: claudedocs/community/requirements.md
  • ํ”ผ๊ทธ๋งˆ ๋ถ„์„: claudedocs/community/figma_analysis.md

๋ฌธ์„œ ๋ฒ„์ „: 1.0 ์ตœ์ข… ์ˆ˜์ •์ผ: 2025-12-17