PRD: ์‹ฌ๋ฉ Discord Codex Assistant

๐Ÿ“… 2026-06-09 20:43 KSTยง 10๊ฐœ ์„น์…˜

PRD: ์‹ฌ๋ฉ Discord Codex Assistant#

๋ฌธ์„œ ๋ชฉ์ #

์ด ๋ฌธ์„œ๋Š” Discord์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹ฌ๋ฉ Codex assistant๊ฐ€ ์–ด๋–ค ์‚ฌ์šฉ์ž ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š”์ง€, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์ œํ’ˆ ๋ฒ”์œ„๋กœ ๋ณผ์ง€, ์„ฑ๊ณต ๊ธฐ์ค€์„ ์–ด๋–ป๊ฒŒ ํŒ๋‹จํ• ์ง€ ์ •์˜ํ•œ๋‹ค.

์ ์šฉ ๋ฒ”์œ„#

๊ด€๋ จ ๋ฌธ์„œ#

1. ์‚ฌ์šฉ์ž ๋ฌธ์ œ#

Discord ์‚ฌ์šฉ์ž๋Š” Codex์—๊ฒŒ ์ž์—ฐ์–ด๋กœ ์ž‘์—…์„ ์š”์ฒญํ•˜์ง€๋งŒ, ์‹ค์ œ ์ž‘์—…์€ ๋‹ค์Œ ๊ฒฝ๊ณ„๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ง€์ผœ์•ผ ํ•œ๋‹ค.

2. ์ œํ’ˆ ๋ชฉํ‘œ#

์‹ฌ๋ฉ์€ Discord๋ฅผ ์ž‘์—… ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์“ฐ๋˜, ์‹ค์ œ ์‹คํ–‰๊ณผ ์ƒํƒœ ๊ด€๋ฆฌ๋Š” agent-runtime์ด ๋‹ด๋‹นํ•˜๋Š” assistant๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

๋ชฉํ‘œ์„ค๋ช…
Discord ์•ˆ์—์„œ ์ž‘์—… ์š”์ฒญ์‚ฌ์šฉ์ž๊ฐ€ Discord ๋ฉ”์‹œ์ง€๋กœ ์ฝ”๋“œ ์ˆ˜์ •, ๋ฌธ์„œ ์ž‘์„ฑ, ๋ถ„์„์„ ์š”์ฒญํ•œ๋‹ค.
์•ˆ์ „ํ•œ ์‹คํ–‰ ๊ฒฝ๊ณ„repo, cwd, approval scope, write-agent path๋ฅผ authoritative metadata๋กœ ํŒ๋‹จํ•œ๋‹ค.
์ƒํƒœ ์ถ”์ ์ง„ํ–‰ ์ค‘, ๋Œ€๊ธฐ ์ค‘, ์™„๋ฃŒ, ์‹คํŒจ ์ƒํƒœ๋ฅผ Discord์— ๋ช…ํ™•ํžˆ ํ‘œ์‹œํ•œ๋‹ค.
์‚ฐ์ถœ๋ฌผ ๊ด€๋ฆฌwrite-agent ์‚ฐ์ถœ๋ฌผ์€ ์ •ํ•ด์ง„ data/runtime/write-agents/<topic>/ ์•„๋ž˜์— ์ €์žฅํ•œ๋‹ค.
ํ•™์Šต ๊ฐ€๋Šฅํ•œ ํ”ผ๋“œ๋ฐฑ์‹คํŒจ, ์Šน์ธ ํ•„์š”, ๋ˆ„๋ฝ๋œ ๊ทผ๊ฑฐ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค.

3. ์ œํ’ˆ ๋ฒ”์œ„#

ํฌํ•จ ๋ฒ”์œ„#

๋น„๋ฒ”์œ„#

4. ์ฃผ์š” ์‚ฌ์šฉ์ž ํ๋ฆ„#

ํ๋ฆ„ A: ์‚ฌ์šฉ์ž๊ฐ€ Discord์—์„œ ๋ฌธ์„œ ์ƒ์„ฑ์„ ์š”์ฒญํ•œ๋‹ค#

  1. ์‚ฌ์šฉ์ž๊ฐ€ Discord์— โ€œ์‹ฌ๋ฉ ๊ธฐ์ค€์œผ๋กœ PRD, SSOT, ADR, BDD ์˜ˆ์‹œ ๋งŒ๋“ค์–ด์ค˜โ€๋ผ๊ณ  ์š”์ฒญํ•œ๋‹ค.
  2. Discord bot์€ ๋ฉ”์‹œ์ง€์™€ metadata๋ฅผ agent-runtime์— ์ „๋‹ฌํ•œ๋‹ค.
  3. agent-runtime์€ write-agent handoff๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.
  4. write-agent๋Š” ์„ ์–ธ๋œ path์— Markdown ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ๋‹ค.
  5. agent-runtime์€ ๊ฒฐ๊ณผ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  Discord์— ์™„๋ฃŒ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

ํ๋ฆ„ B: ์Šน์ธ ํ•„์š”ํ•œ ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค#

  1. ์‚ฌ์šฉ์ž๊ฐ€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ, destructive command, repo ๋ฐ– ํŒŒ์ผ ์ˆ˜์ • ๋“ฑ ์Šน์ธ ํ•„์š”ํ•œ ์ž‘์—…์„ ์š”์ฒญํ•œ๋‹ค.
  2. agent-runtime์€ approval scope๋ฅผ ์„œ๋ฒ„-side metadata๋กœ ์ €์žฅํ•œ๋‹ค.
  3. Discord bot์€ ์Šน์ธ ๋ฒ„ํŠผ์„ ๋ณด์—ฌ์ค€๋‹ค.
  4. ๋ฒ„ํŠผ custom_id์—๋Š” approval id๋งŒ ํฌํ•จ๋œ๋‹ค.
  5. ์Šน์ธ ํ›„ agent-runtime์ด ์›๋ž˜ scope๋ฅผ ์กฐํšŒํ•ด ์ž‘์—…์„ ๊ณ„์†ํ•œ๋‹ค.

ํ๋ฆ„ C: ์ž‘์—… ์ค‘ ๊ทผ๊ฑฐ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค#

  1. ์‚ฌ์šฉ์ž๊ฐ€ โ€œ์ „์ฒด ์†Œ์Šค๋ฅผ ๋ถ„์„ํ•ด ํ†ตํ•ฉ ๋ฌธ์„œ ๋งŒ๋“ค์–ด์ค˜โ€๋ผ๊ณ  ์š”์ฒญํ•œ๋‹ค.
  2. sourceManifest์— ์‹ค์ œ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์ด ๋ถ€์กฑํ•˜๋‹ค.
  3. write-agent๋Š” ์ „์ฒด๋ฅผ ์ฝ์€ ๊ฒƒ์ฒ˜๋Ÿผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ˆ„๋ฝ๋œ ๊ทผ๊ฑฐ๋ฅผ ๋ช…์‹œํ•œ๋‹ค.
  4. ์‚ฌ์šฉ์ž๋Š” ๋ณด๊ฐ•ํ•  source path๋‚˜ scope๋ฅผ ๋‹ค์‹œ ์ œ๊ณตํ•œ๋‹ค.

5. ์„ฑ๊ณต ๊ธฐ์ค€#

๊ธฐ์ค€์ธก์ • ๋ฐฉ๋ฒ•
๊ฒฝ๊ณ„ ์ค€์ˆ˜discord-bot์— workflow state, DB access, artifact parsing ์ฑ…์ž„์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค.
์Šน์ธ ์•ˆ์ „์„ฑ์Šน์ธ ๋ฒ„ํŠผ payload์—๋Š” approval id๋งŒ ํฌํ•จ๋˜๊ณ , scope๋Š” server-side store์—์„œ ์กฐํšŒ๋œ๋‹ค.
์‚ฐ์ถœ๋ฌผ ์ •ํ™•์„ฑwrite-agent ๊ฒฐ๊ณผ๋Š” ์„ ์–ธ๋œ path์™€ ํ—ˆ์šฉ ํ™•์žฅ์ž๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.
๊ทผ๊ฑฐ ํˆฌ๋ช…์„ฑ์ฝ์ง€ ๋ชปํ•œ ํŒŒ์ผ์ด๋‚˜ ๋ถ€์กฑํ•œ source๋Š” ์‚ฐ์ถœ๋ฌผ์— ๋ช…์‹œ๋œ๋‹ค.
์‚ฌ์šฉ์ž ๊ฒฝํ—˜Discord ์ƒํƒœ ๋ฉ”์‹œ์ง€๊ฐ€ ๋Œ€๊ธฐ, ์ง„ํ–‰, ์Šน์ธ ํ•„์š”, ์™„๋ฃŒ, ์‹คํŒจ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

6. WTF ํ›„๋ณด ๊ฐ์ง€: PRD๋ฅผ ๋ณด๊ฐ•ํ•ด์•ผ ํ•˜๋Š” ์‹ ํ˜ธ#

๋‹ค์Œ ์˜๋ฌธ์ด ๋ฐ˜๋ณต๋˜๋ฉด PRD๋ฅผ ๋จผ์ € ๋ณด๊ฐ•ํ•œ๋‹ค.

PRD๋Š” ์ œํ’ˆ ๋ชฉ์ ๊ณผ ์‚ฌ์šฉ์ž ํ๋ฆ„์„ ์ •๋ฆฌํ•˜๋Š” ๋ฌธ์„œ๋‹ค. ๋ฐ˜๋Œ€๋กœ โ€œ์–ด๋А ์ €์žฅ์†Œ๊ฐ€ ๊ธฐ์ค€์ธ๊ฐ€?โ€, โ€œ์ƒํƒœ๋ฅผ ๋ˆ„๊ฐ€ ์†Œ์œ ํ•˜๋‚˜?โ€ ๊ฐ™์€ ์งˆ๋ฌธ์€ SSOT๋‚˜ ADR์—์„œ ๋‹ค๋ฃฌ๋‹ค.

7. PRD์™€ ๋‹ค๋ฅธ ๋ฌธ์„œ์˜ ์ฐจ์ด#

๋ฌธ์„œPRD ๊ด€์ ์—์„œ์˜ ์—ญํ• 
PRD๋ฌด์—‡์„ ์™œ ๋งŒ๋“ค์ง€ ์ •ํ•œ๋‹ค.
SSOT์–ด๋–ค ์‚ฌ์‹ค์„ ์–ด๋””์—์„œ ๋ฏฟ์„์ง€ ์ •ํ•œ๋‹ค.
ADR์ค‘์š”ํ•œ ๊ตฌ์กฐ ๊ฒฐ์ •์„ ์™œ ๊ทธ๋ ‡๊ฒŒ ํ–ˆ๋Š”์ง€ ๊ธฐ๋กํ•œ๋‹ค.
BDD์š”๊ตฌ์‚ฌํ•ญ์ด ์‹ค์ œ ํ–‰๋™์œผ๋กœ ์ง€์ผœ์ง€๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค.