day6-prd-submit
npx skills add https://github.com/ai-native-camp/camp-1 --skill day6-prd-submit
Agent 安装分布
Skill 文档
Day 6: PRD ìì± & PR ì ì¶
PRD(Product Requirements Document) ì´ìì í í릿 기ë°ì¼ë¡ ìì±íê³ , íì íìì ê²ì¦í ë¤, GitHub PR ì ì¶ ê³¼ì ì ìë´íë¤.
ì©ì´ ì 리
ì´ ì¤í¬ìì ì¬ì©íë íµì¬ ì©ì´:
| ì©ì´ | ì¤ëª |
|---|---|
| PRD | Product Requirements Document. “ì´ íë¡ì í¸ê° ë í´ê²°íê³ , ë ë§ëëì§” ì 리í 문ì |
| GitHub | ì½ëì 문ì를 í¨ê» ê´ë¦¬íê³ ê³µì íë ì¨ë¼ì¸ ìë¹ì¤. Google Docsì ì½ë ë²ì |
| GitHub ID | GitHub ì¬ì´í¸ìì ë를 ìë³íë ì´ë¦. íë¡í URLì ë§ì§ë§ ë¶ë¶ (github.com/ì¬ê¸°) |
| Repository (Repo) | íë¡ì í¸ íì¼ì´ 모ì¬ìë í´ë. Google Driveì ê³µì í´ëì ë¹ì· |
| ë¸ëì¹(Branch) | ì본ì ê±´ëë¦¬ì§ ìê³ ë´ ìì ê³µê°ì ë°ë¡ ë§ëë ê². “ì¬ë³¸ì¼ë¡ ì 쥔과 ë¹ì· |
| 커ë°(Commit) | ë³ê²½ì¬íì ì ì¥íë ê². Ctrl+Sì Git ë²ì |
| Push | ë´ ì»´í¨í°ì ì ì¥í ê²ì ì¨ë¼ì¸(GitHub)ì ì¬ë¦¬ë ê² |
| PR (Pull Request) | “ë´ ìì ì íì¸í´ì£¼ì¸ì”ë¼ê³ ì´ìì§ìê² ë³´ë´ë ê²í ìì². ì ì¶ ë²í¼ê³¼ ê°ë¤ |
| gh CLI | í°ë¯¸ëìì GitHubì ì¡°ìí ì ìë ë구 |
ì¬ì ì구ì¬í
ì´ ì¤í¬ì ìë íê²½ì´ ê°ì¶°ì ¸ ìë¤ê³ ê°ì íë¤. Step 0ìì ìë íì¸íë¤.
gitì´ ì¤ì¹ëì´ ìì´ì¼ íë¤ghCLIê° ì¤ì¹ëê³ ì¸ì¦ëì´ ìì´ì¼ íë¤- ëì repoê° clone ëì´ ìì´ì¼ íë¤
- repoì push ê¶í(collaborator)ì´ ìì´ì¼ íë¤
ìì ìê° ê°ì´ë
| Step | 주ì | ìì ìê° |
|---|---|---|
| 0 | íê²½ ì²´í¬ | ~1ë¶ |
| 1 | GitHub ID íì¸ | ~1ë¶ |
| 2 | PRD ìì± + ê²ì¦ | ~10ë¶ |
| 3 | ì ì¶ (git + PR) | ~3ë¶ |
| í©ê³ | ~15ë¶ |
íê²½ì´ ì¸í ëì´ ìì¼ë©´ 15ë¶ ë´ ìë£ ê°ë¥. íê²½ 문ì ë°ì ì +5~10ë¶.
PRD í í릿
# [íë¡ì í¸ ì 목]
## 문ì
> í ì¤: ë구ì, ì´ë¤ ë¶í¸ì, ì´ë»ê² í´ê²°íëê°
- **íì¬ ìí**: (구체ì ìì¹ â ëª ê±´, ëª ë¶, ëª ëª
)
- **ìíë ìí**: (1주 í ëìê°ê³ ìì 모ìµ)
- **ì±ê³µ 기ì¤**: (ì«ìë¡ íë¨ ê°ë¥í ê² 1~2ê°)
## ì¤í¬
| # | ì¤í¬ëª
| í ì¤ ì¤ëª
| ìí |
|---|--------|-----------|------|
| 1 | `/my-skill-1` | ì
ë ¥ â ì¶ë ¥ | â
ëì / ð¨ ì§íì¤ |
| 2 | `/my-skill-2` | ì
ë ¥ â ì¶ë ¥ | â
ëì / ð¨ ì§íì¤ |
## ë³í 기ë¡
- **Day 1**: "ì²ì ì ì" â
- **Day 6**: "ì§ê¸ ì ì" â
- **ê°ì¥ í¬ê² ë¬ë¼ì§ ì **:
ì¤í íë¦
Step 0 Step 1 Step 2 Step 3
íê²½ ì²´í¬ â GitHub ID íì¸ â PRD ìì±/ê²ì¦ â ì ì¶ (git + PR)
Step 0: íê²½ ì¬ì ì²´í¬
ì¤í¬ ìì ì ì§í ì ì ìë를 ìëì¼ë¡ íì¸íë¤:
git --version
gh --version
gh auth status
git remote -v
결과를 ì°¸ê°ììê² ë³´ì¬ì¤ë¤:
=== íê²½ ì²´í¬ ===
â
git: ì¤ì¹ë¨
â
gh CLI: ì¤ì¹ë¨
â
GitHub ë¡ê·¸ì¸: ìë£ (ì¬ì©ì: {detected-id})
â
íë¡ì í¸ í´ë: ì°ê²°ë¨ ({repo-url})
íê²½ ì¤ë¹ê° ìë£ëììµëë¤!
íëë¼ë ì¤í¨íë©´ í´ë¹ í목ì í´ê²° ë°©ë²ì ìë´íê³ , í´ê²° í ë¤ì ì²´í¬íë¤. 모ë íëª©ì´ íµê³¼í ëê¹ì§ ë¤ì Stepì¼ë¡ ì§ííì§ ìëë¤.
| ì¤í¨ í목 | ìë´ |
|---|---|
| git 미ì¤ì¹ | “gitì´ ì¤ì¹ëì´ìì§ ììµëë¤. ì´ìì§ìê² ëìì ìì²í´ì£¼ì¸ì.” |
| gh CLI 미ì¤ì¹ | “brew install gh를 í°ë¯¸ëì ì
ë ¥í´ì£¼ì¸ì.” (macOS 기ì¤). ì¤í¨ ì ì´ìì§ í¸ì¶ |
| gh 미ì¸ì¦ | “gh auth loginì ì
ë ¥íê³ ëì¤ë ìë´ë¥¼ ë°ë¼ì£¼ì¸ì. GitHub ê³ì ì¼ë¡ ë¡ê·¸ì¸íë©´ ë©ëë¤.” |
| repo ì°ê²° ì ë¨ | “íë¡ì í¸ë¥¼ ìì§ ë´ ì»´í¨í°ì ë¤ì´ë¡ëíì§ ììì´ì. í°ë¯¸ëìì ìë를 ì
ë ¥í´ì£¼ì¸ì: gh repo clone {owner/repo}“ |
Step 1: GitHub ID íì¸
Step 0ìì gh auth statusë¡ ê°ì§ë GitHub ID를 ë³´ì¬ì£¼ê³ íì¸ë§ ë°ëë¤:
AskUserQuestion: "GitHub ì¬ì©ìëª
ì´ '{detected-id}'ê° ë§ëì?"
- ë¤, ë§ìµëë¤
- ìëì, ë¤ë¥¸ IDì
ëë¤ (ì§ì ì
ë ¥)
ID íì ê²ì¦: ì
ë ¥ë IDê° ì문, ì«ì, íì´í(-)ë§ í¬í¨íëì§ íì¸íë¤. í¹ì문ì, 공백, ì¬ëì ë±ì´ í¬í¨ëë©´ ìë´ í ë¤ì ì
ë ¥ë°ëë¤.
ì ë ¥ë IDë ì문ìë¡ ì ê·ííë¤.
ì´ IDë ì´í íì¼ ê²½ë¡ì ë¸ëì¹ëª ì ì¬ì©ëë¤:
- íì¼:
{github-id}/PRD.md - ë¸ëì¹:
prd/{github-id}
Step 2: PRD ìì± ëë ê²ì¦
AskUserQuestionì¼ë¡ íì¬ ìí를 묻ëë¤:
| ì íì§ | ëì |
|---|---|
| PRD ìë¡ ìì±í기 | Step 2-A: í í릿 ê¸°ë° ìì± ê°ì´ë |
| ì´ë¯¸ ìì±í PRD ê²ì¦í기 | Step 2-B: 기존 íì¼ ê²ì¦ |
Step 2-A: PRD ìì± ê°ì´ë
- ì PRD í í릿ì ë³´ì¬ì¤ë¤
- AskUserQuestionì¼ë¡ íë¡ì í¸ ì£¼ì 를 묻ëë¤:
"ì´ë¤ íë¡ì í¸ì PRD를 ìì±í ê¹ì?"
- ìº íìì ë§ë ì¤í¬ ê¸°ë° (ì´ë² 주ì ë§ë ì¤í¬ì íë¡ì í¸ë¡ ë°ì )
- ì
무 ìëí ìì´ëì´ (ì¤ì ì
무ìì ìëííê³ ì¶ì ê²)
- ì§ì ì
ë ¥
“ìº íìì ë§ë ì¤í¬ 기바ì ì ííë©´, .claude/skills/ ëë í 리를 ì¤ìºíì¬ ì°¸ê°ìê° ë§ë ì¤í¬ 목ë¡ì ë³´ì¬ì£¼ê³ ì ííê² íë¤.
-
ì°¸ê°ìì ëµë³ì ë°íì¼ë¡ PRD ì´ìì ìì±íë¤
-
ì´ìì í°ë¯¸ëì ì¶ë ¥íê³ AskUserQuestion:
| ì íì§ | ëì |
|---|---|
| ì´ëë¡ ì§í | {github-id}/PRD.mdì ì ì¥ í Step 2-Bë¡ |
| ìì íê³ ì¶ì´ì | ì´ë¤ ë¶ë¶ì ìì í ì§ ë¬»ê³ (문ì ì ì / ì¤í¬ ëª©ë¡ / ë³í 기ë¡) ë°ì í ë¤ì ì¶ë ¥ |
- ì¤ì: PRD ë´ì©ì ì°¸ê°ìì ì¤ì ê²½íê³¼ íë¡ì í¸ë¥¼ ë°ìí´ì¼ íë¤. ì¼ë°ì ì¸ ììê° ìë ìº íìì ë§ë ì¤í¬, ì¤ì ì 무 문ì 를 ë´ëë¡ ì ëíë¤.
Step 2-B: PRD íì ê²ì¦
{github-id}/PRD.md íì¼ì ì½ê³ ìë ì²´í¬ë¦¬ì¤í¸ë¡ ê²ì¦íë¤.
ê²ì¦ ì²´í¬ë¦¬ì¤í¸
| # | í목 | ê²ì¦ ë°©ë² | íì |
|---|---|---|---|
| 1 | íë¡ì í¸ ì 목 | #ì¼ë¡ ììíë 첫 ë²ì§¸ ì¤ (í° ì 목)ì´ ì¡´ì¬íëê° |
íì |
| 2 | 문ì ì¹ì | ## 문ì í¤ë©ì´ ì¡´ì¬íëê° |
íì |
| 3 | íì¬ ìí | íì¬ ìí í
ì¤í¸ê° ì¡´ì¬íê³ 10ì ì´ìì¸ê° |
íì |
| 4 | ìíë ìí | ìíë ìí í
ì¤í¸ê° ì¡´ì¬íê³ 10ì ì´ìì¸ê° |
íì |
| 5 | ì±ê³µ ê¸°ì¤ | ì±ê³µ ê¸°ì¤ í
ì¤í¸ê° ì¡´ì¬íê³ 10ì ì´ìì¸ê° |
íì |
| 6 | ì¤í¬ ì¹ì | ## ì¤í¬ í¤ë©ì´ ì¡´ì¬íëê° |
íì |
| 7 | ì¤í¬ 2ê° ì´ì | ì¤í¬ í ì´ë¸ìì ` | 1 |
| 8 | ë³í ê¸°ë¡ | ## ë³í ê¸°ë¡ í¤ë©ì´ ì¡´ì¬íëê° |
íì |
ê²ì¦ ê²°ê³¼ ì¶ë ¥
=== PRD íì ê²ì¦ ê²°ê³¼ ===
[PASS] ëë [ë³´ì íì]
â
íë¡ì í¸ ì 목: ìì
â
문ì ì¹ì
: ìì
â
íì¬ ìí: ìì
â
ìíë ìí: ìì
â
ì±ê³µ 기ì¤: ìì
â
ì¤í¬ ì¹ì
: ìì
â
ì¤í¬ 2ê° ì´ì: ìì (Nê°)
â
ë³í 기ë¡: ìì
ê²°ê³¼: 8/8 íµê³¼ â PASS
ë³´ì íìì¸ ê²½ì° ëë½ë í목ì 구체ì ì¼ë¡ ìë´íë¤:
â ì±ê³µ 기ì¤: ë´ì©ì´ ë무 ì§§ìµëë¤. 구체ì ì¸ ì«ì를 í¬í¨í´ì£¼ì¸ì.
ì) "주 3í ì¬ì©, ê±´ë¹ ì²ë¦¬ ìê° 30ë¶ â 5ë¶"
Step 3: ì ì¶ (git + PR)
ê²ì¦ PASS í, AskUserQuestion:
"PRD ê²ì¦ì íµê³¼íìµëë¤! GitHubì ì ì¶í ê¹ì?"
- ë¤, ì ì¶í´ì£¼ì¸ì (ê¶ì¥)
- ëì¤ì í ê²ì
“ëì¤ì í ê²ì” ì í ì: “ì¤ë¹ëë©´ ë¤ì ì´ ì¤í¬ì ì¤íí´ì£¼ì¸ì.” ìë´ í ì¢ ë£.
“ë¤, ì ì¶í´ì£¼ì¸ì” ì í ì ìë를 ì¤ííë¤. ê° ë¨ê³ë§ë¤ íê¸ ì§í ìí를 ì¶ë ¥íë¤:
[1/5] ìµì ìíë¡ ë기ííë ì¤...
git checkout main && git pull origin main
[2/5] ì ì¶ì© ê³µê°ì ë§ëë ì¤...
git checkout -b prd/{github-id}
ë¸ëì¹ê° ì´ë¯¸ ì¡´ì¬íë©´
git checkout prd/{github-id}ë¡ ì ííë¤.
[3/5] PRD íì¼ì ë±ë¡íë ì¤...
git add {github-id}/PRD.md
git statusë¡ ì¤í ì´ì§ë íì¼ì´{github-id}/PRD.md1ê°ë¿ì¸ì§ íì¸íë¤. ë¤ë¥¸ íì¼ì´ í¬í¨ëë©´ í´ë¹ íì¼ì unstageíë¤.
[4/5] ì ì¥íë ì¤...
git commit -m "feat: {github-id} PRD ì´ì ì ì¶"
[5/5] GitHubì ì¬ë¦¬ë ì¤...
git push origin prd/{github-id}
push ìë£ í, gh CLIë¡ PRì ìì±íë¤:
gh pr create --repo {owner/repo} --title "PRD: {github-id}" --body "$(cat <<'EOF'
## PRD ì´ì ì ì¶
- ìì±ì: {github-id}
- íì¼: {github-id}/PRD.md
ê²ì¦ ê²°ê³¼: PASS (8/8)
EOF
)"
PR URLì ì¶ë ¥íê³ ìë£ë¥¼ ìë´íë¤.
ìë£ ë¦¬í¬í¸
=== Day 6 PRD ì ì¶ ìë£ ===
GitHub ID: {github-id}
íì¼: {github-id}/PRD.md
ë¸ëì¹: prd/{github-id}
ê²ì¦: PASS (8/8)
PR: {PR URL}
ì¶íí©ëë¤! GitHubì 첫 PRì ì¬ë ¸ìµëë¤.
ì´ìì§ì´ íì¸ í ì¹ì¸í ìì ì
ëë¤.
ìë¬ ì²ë¦¬
| ìí© | ëì |
|---|---|
| git 미ì¤ì¹ | “gitì´ ì¤ì¹ëì´ìì§ ììµëë¤. ì´ìì§ìê² ëìì ìì²í´ì£¼ì¸ì.” |
| gh CLI 미ì¤ì¹ | “brew install gh를 ì
ë ¥í´ì£¼ì¸ì.” ì¤í¨ ì ì´ìì§ í¸ì¶ ìë´ |
| gh 미ì¸ì¦ | “gh auth loginì ì
ë ¥íê³ GitHub ê³ì ì¼ë¡ ë¡ê·¸ì¸í´ì£¼ì¸ì.” |
| PRD.md íì¼ ìì | “PRD íì¼ì´ ìì§ ìì´ì. 먼ì ìì±í ê¹ì?” |
| ê²ì¦ ë³´ì íì | ëë½ í목 + 구체ì ìì ìë´ + ìì ëì |
| git ë¸ëì¹ ì´ë¯¸ ì¡´ì¬ | 기존 ë¸ëì¹ë¡ ìë ì í |
| push ì¤í¨ (ì¸ì¦) | “GitHub ë¡ê·¸ì¸ì´ íìí©ëë¤. gh auth loginì ì¤íí´ì£¼ì¸ì.” |
| push ì¤í¨ (ê¶í) | “ì´ íë¡ì í¸ì ì ì¶ ê¶íì´ ìì´ì. Slackìì ì´ìì§(@zoon)ìê² ‘ê¶íì´ íìí©ë뤒ë¼ê³ ë©ìì§ë¥¼ ë³´ë´ì£¼ì¸ì.” |
| repo clone ì ë¨ | “íë¡ì í¸ë¥¼ 먼ì ë¤ì´ë¡ëí´ì¼ í´ì. í°ë¯¸ëì gh repo clone {owner/repo}를 ì
ë ¥í´ì£¼ì¸ì.” |
| GitHub ID íì ì¤ë¥ | “GitHub IDìë ì문, ì«ì, íì´í(-)ë§ ì¬ì©í ì ìì´ì.” |
ì¶ë ¥ ìì¹
| ê²½ë¡ | ë´ì© |
|---|---|
{github-id}/PRD.md |
ì°¸ê°ì PRD 문ì |