Skip to content

Latest commit

ย 

History

History
145 lines (97 loc) ยท 4.83 KB

File metadata and controls

145 lines (97 loc) ยท 4.83 KB

Operating Sequence

Souzip ๊ธฐ๋Šฅ ์ž‘์—…์„ ์‹œ์ž‘ํ•  ๋•Œ ๋”ฐ๋ฅด๋Š” ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

1. Goal ๋งŒ๋“ค๊ธฐ

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-goal

AI๋Š” ๋จผ์ € ์ธํ„ฐ๋ทฐ๋กœ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์ดํ•ด๊ด€๊ณ„๋ฅผ ๋ฌป์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ํ•œ ๋ฒˆ์— 1~3๊ฐœ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

Goal ๋ฌธ์„œ์—๋Š” ์•„๋ž˜๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์ค„ ๋ชฉํ‘œ
  • ๋ฐฐ๊ฒฝ๊ณผ ๋ฌธ์ œ
  • ์‚ฌ์šฉ์ž์™€ ์ดํ•ด๊ด€๊ณ„
  • ์„ฑ๊ณต ๊ธฐ์ค€
  • ํ•˜์ง€ ์•Š์„ ๊ฒƒ
  • ํ˜„์žฌ ํ๋ฆ„๊ณผ ์›ํ•˜๋Š” ํ๋ฆ„
  • UI ์˜ํ–ฅ
  • API, ๋ฐ์ดํ„ฐ, ๋„๋ฉ”์ธ ์˜ํ–ฅ
  • ์ œ์•ฝ ์กฐ๊ฑด
  • ์—ด๋ฆฐ ์งˆ๋ฌธ
  • Story ํ›„๋ณด
  • ์ตœ์ข… ํ•ฉ์˜

์‚ฌ์šฉ์ž๊ฐ€ ์ž์—ฐ์–ด๋กœ ๋ช…ํ™•ํžˆ ๋™์˜ํ•˜๋ฉด Goal ์Šน์ธ์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. ์‹ค์ œ Goal ๋ฌธ์„œ๋Š” docs/goals/ ์•„๋ž˜์— ๋กœ์ปฌ๋กœ๋งŒ ๋ณด๊ด€ํ•˜๊ณ  Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2. Story ํ›„๋ณด ๊ณ ๋ฅด๊ธฐ

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-story

Goal ์Šน์ธ ๋’ค Story ํ›„๋ณด ์ „์ฒด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Jira๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์ „๋ถ€ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋จผ์ € active Story 1~2๊ฐœ๋งŒ ๊ณ ๋ฆ…๋‹ˆ๋‹ค.

  • ์ฒซ ๋ฒˆ์งธ: ์ž‘์ง€๋งŒ ๋๋‹จ ํ๋ฆ„์„ ์‹ค์ œ๋กœ ์—ฐ๊ฒฐํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” Story
  • ๋‘ ๋ฒˆ์งธ: ํ•„์š”ํ•˜๋ฉด ๊ฐ€์žฅ ๋ถˆํ™•์‹คํ•œ ๊ธฐ์ˆ  ๋ฆฌ์Šคํฌ๋ฅผ ๊ฒ€์ฆํ•˜๋Š” Story

๋„ˆ๋ฌด ํฐ Story๋Š” Jira์™€ worktree๋กœ ์˜ฌ๋ฆฌ๊ธฐ ์ „์— ๋‹ค์‹œ ์ชผ๊ฐญ๋‹ˆ๋‹ค.

3. Jira Story ์ค€๋น„ํ•˜๊ธฐ

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-jira-story

active Story ํ™•์ • ๋’ค EpicยทStory Jira ์ดˆ์•ˆ์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ์•ˆ ์Šน์ธ ํ›„, ์‚ฌ์šฉ์ž๊ฐ€ Jira ๋งŒ๋“ค์–ด์ฒ˜๋Ÿผ ๋ช…์‹œ์ ์œผ๋กœ ๋งํ•  ๋•Œ๋งŒ Jira์— ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ด์Šˆ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Goal Epic: ์—†์œผ๋ฉด Goal ๊ธฐ์ค€์œผ๋กœ Epic ์ดˆ์•ˆ โ†’ ์Šน์ธ โ†’ ์ƒ์„ฑ
  • Story: active 1~2๊ฐœ๋งŒ ๋Œ€์ƒ
  • ์ค‘๋ณต ๊ฒ€์ƒ‰: Goal jira ํ‚ค ์šฐ์„ , ์—†์œผ๋ฉด Epic ํ•˜์œ„ ์œ ์‚ฌ summary ๊ฒ€์ƒ‰
  • priority, description์€ ๋„ฃ์ง€ ์•Š์Œ
  • worktreeยท๋ธŒ๋žœ์น˜ ์ˆœ์„œ๋Š” ์ž์œ 

4. Story ์‹œ์ž‘ํ•˜๊ธฐ

Story ํ•˜๋‚˜๋Š” worktree ํ•˜๋‚˜์ด์ž PR ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  • base branch: develop
  • target branch: develop
  • Jira Story: active Story๋งŒ ์ƒ์„ฑ
  • Story ๋ฌธ์„œ: worktree, branch, base commit ๊ธฐ๋ก
  • ์ƒˆ worktree ์ค€๋น„: docs/harness/scripts/bootstrap-worktree.sh

Story๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์—๋Š” develop ๊ธฐ์ค€์ ์ด ๋ถ„๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ worktree๋ฅผ ๋งŒ๋“  ์งํ›„์—๋Š” bootstrap ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋กœ์ปฌ Config ํŒŒ์ผ์„ ๋ณต์‚ฌํ•œ ๋’ค tuist install๊ณผ tuist generate๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. tuist install์€ Tuist/Package.resolved๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•„์š”ํ•œ ์˜์กด์„ฑ ์ƒํƒœ๋ฅผ ๋งž์ถ”๋ฉฐ, ๋„๊ตฌ์˜ ์บ์‹œ๊ฐ€ ์žˆ์œผ๋ฉด ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ Story ๋ฌธ์„œ๋Š” docs/goals/ ์•„๋ž˜์— ๋กœ์ปฌ๋กœ๋งŒ ๋ณด๊ด€ํ•˜๊ณ  Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5. Plan ๋งŒ๋“ค๊ธฐ

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-plan

Plan์€ Story ์•ˆ์˜ ์„ธ์…˜ ๋‹จ์œ„ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

Plan์€ ์•„๋ž˜ ๊ธฐ์ค€์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์„ธ์…˜์—์„œ ๊ตฌํ˜„๊ณผ ๊ฒ€์ฆ๊นŒ์ง€ ๋๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒ€์ฆ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์ง€ ์•Š์„ ๋ฒ”์œ„๊ฐ€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ Plan์„ ์Šน์ธํ•˜๊ณ  โ€œ๊ตฌํ˜„ํ•ดโ€๋ผ๊ณ  ๋งํ•œ ๋’ค์—๋งŒ ์ฝ”๋“œ๋ฅผ ๊ณ ์นฉ๋‹ˆ๋‹ค. ์‹ค์ œ Plan ๋ฌธ์„œ๋Š” docs/goals/ ์•„๋ž˜์— ๋กœ์ปฌ๋กœ๋งŒ ๋ณด๊ด€ํ•˜๊ณ  Git์— ์˜ฌ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

6. ๊ตฌํ˜„ํ•˜๊ธฐ

๊ตฌํ˜„์€ ์Šน์ธ๋œ Plan ๋ฒ”์œ„ ์•ˆ์—์„œ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. Plan ๋ฐ– ์š”๊ตฌ๊ฐ€ ์ƒ๊ธฐ๋ฉด Plan์„ ๋จผ์ € ๊ณ ์นฉ๋‹ˆ๋‹ค.

Tuist, Factory, ๋ชจ๋“ˆ ๊ฒฝ๊ณ„, ๋ ˆ์ด์–ด ๊ทœ์น™์ฒ˜๋Ÿผ ํฐ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉด ๋ฉˆ์ถ”๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌป์Šต๋‹ˆ๋‹ค.

7. ๊ฒ€์ฆํ•˜๊ธฐ

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-verify

Plan ์ข…๋ฃŒ ๊ธฐ๋ณธ ๊ฒ€์ฆ์€ ์•„๋ž˜ ์ˆœ์„œ์ž…๋‹ˆ๋‹ค.

docs/harness/scripts/verify.sh plan

๊ด€๋ จ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์œผ๋ฉด Plan์— ๋งž๊ฒŒ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

VERIFY_TEST_TARGETS="DomainTests" docs/harness/scripts/verify.sh plan
VERIFY_TEST_SCHEME="Domain" docs/harness/scripts/verify.sh plan

๊ฒ€์ฆ ์‹คํŒจ๊ฐ€ Plan ๋ฒ”์œ„ ์•ˆ์ด๋ฉด AI๊ฐ€ ๊ณ ์น˜๊ณ  ๊ฐ™์€ ๊ฒ€์ฆ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์‹คํŒจ๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ์ˆ˜์ •ํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ์›์ธ ์กฐ์‚ฌ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

8. Story ๋๋‚ด๊ธฐ

Story์˜ ๋ชจ๋“  Plan์ด ๋๋‚˜๋ฉด Story ์ข…๋ฃŒ ๊ฒ€์ฆ์„ ํ•ฉ๋‹ˆ๋‹ค.

docs/harness/scripts/verify.sh story

PR ์ „์—๋Š” Story ์‹œ์ž‘ ์ดํ›„ develop์ด ๋ฐ”๋€Œ์–ด Plan์ด ๋‚ก์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ์€ ๋ณ€๊ฒฝ ํŒŒ์ผ ๊ฒน์นจ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

git fetch origin develop
git diff --name-only {base_commit}..origin/develop
git diff --name-only {base_commit}..HEAD

๋‘ ๊ฒฐ๊ณผ์—์„œ ๊ฒน์น˜๋Š” ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ๋ฉˆ์ถ”๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฒน์น˜๋Š” ํŒŒ์ผ์ด ์—†์œผ๋ฉด Story ์ข…๋ฃŒ ๊ฒ€์ฆ์„ ์œ ์ง€ํ•˜๊ณ  PR๋กœ ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

9. Ship

์‚ฌ์šฉ ์Šคํ‚ฌ: souzip-commit, souzip-pr

commit, PR ์ƒ์„ฑ, PR ์ƒ์„ฑ์„ ์œ„ํ•œ push๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๋งํ•œ ๋’ค์—๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

  • โ€œ์ปค๋ฐ‹ํ•ดโ€: commit ๊ฐ€๋Šฅ
  • โ€œPRโ€: PR ์ค€๋น„ ํ™•์ธ ํ†ต๊ณผ ๋’ค Story ๋ธŒ๋žœ์น˜ push์™€ PR ์ƒ์„ฑ ๊ฐ€๋Šฅ

Story PR์€ develop์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. PR ํƒ€์ดํ‹€์€ Jira ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉด [SOU-xxx] {์ œ๋ชฉ}, ์—†์œผ๋ฉด [NO-ISSUE] {์ œ๋ชฉ}์„ ์”๋‹ˆ๋‹ค.