Skip to content

Jin5823/autonomous-coding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

autonomous-coding

Claude Agent SDKλ₯Ό μ‚¬μš©ν•œ 무쀑단 자율 μ½”λ”© μ—μ΄μ „νŠΈμž…λ‹ˆλ‹€.

Rate limit μžλ™ 처리, μ„Έμ…˜ μžλ™ μ΄μ–΄ν•˜κΈ°λ₯Ό 톡해 μ‚¬λžŒμ˜ κ°œμž… 없이 ν”„λ‘¬ν”„νŠΈ 기반으둜 ν”„λ‘œμ νŠΈλ₯Ό λκΉŒμ§€ μƒμ„±ν•©λ‹ˆλ‹€.

Prerequisites

이 ν”„λ‘œμ νŠΈλŠ” Claude Code CLIκ°€ ν•„μš”ν•©λ‹ˆλ‹€.

Claude Code μ„€μΉ˜ 확인

claude --version

버전이 좜λ ₯되면 μ„€μΉ˜λ˜μ–΄ μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€. μ„€μΉ˜λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ Claude Code μ„€μΉ˜ κ°€μ΄λ“œλ₯Ό μ°Έκ³ ν•˜μ„Έμš”.

Claude Code 둜그인 확인

claude

μœ„ λͺ…λ Ήμ–΄ μ‹€ν–‰ ν›„ μ •μƒμ μœΌλ‘œ λŒ€ν™”κ°€ μ‹œμž‘λ˜λ©΄ 인증이 μ™„λ£Œλœ κ²ƒμž…λ‹ˆλ‹€. 둜그인이 μ•ˆ λ˜μ–΄ μžˆλ‹€λ©΄ μžλ™μœΌλ‘œ 둜그인 ν”„λ‘œμ„ΈμŠ€κ°€ μ‹œμž‘λ©λ‹ˆλ‹€.

Installation

# μ €μž₯μ†Œ 클둠
git clone <repository-url>
cd autonomous-coding

# μ˜μ‘΄μ„± μ„€μΉ˜
pip install -e .

Usage

κΈ°λ³Έ μ‹€ν–‰

python src/cmd/autonomous_coding.py \
  --project-dir ./generations/my_project \
  --prompts-dir ./prompts

μ˜΅μ…˜

μ˜΅μ…˜ μ„€λͺ…
--project-dir ν”„λ‘œμ νŠΈκ°€ 생성될 디렉토리 (ν•„μˆ˜)
--prompts-dir ν”„λ‘¬ν”„νŠΈ ν…œν”Œλ¦Ώμ΄ μžˆλŠ” 디렉토리 (ν•„μˆ˜)
--max-iterations μ΅œλŒ€ 반볡 횟수 (κΈ°λ³Έκ°’: λ¬΄μ œν•œ)

μ˜ˆμ‹œ

# 반볡 횟수 μ œν•œ
python src/cmd/autonomous_coding.py \
  --project-dir ./generations/my_project \
  --prompts-dir ./prompts \
  --max-iterations 5

Prompts SDD (Software Design Documents)

이 μ„Ήμ…˜μ΄ ν•΅μ‹¬μž…λ‹ˆλ‹€. 자율 μ½”λ”© μ—μ΄μ „νŠΈλŠ” 3개의 ν”„λ‘¬ν”„νŠΈ νŒŒμΌμ„ 기반으둜 λ™μž‘ν•©λ‹ˆλ‹€.

prompts/
β”œβ”€β”€ app_spec.txt           # 무엇을 λ§Œλ“€ 것인가
β”œβ”€β”€ initializer_prompt.md  # 첫 번째 μ—μ΄μ „νŠΈμ˜ 행동 μ§€μΉ¨
└── coding_prompt.md       # 이후 μ—μ΄μ „νŠΈλ“€μ˜ 행동 μ§€μΉ¨

1. app_spec.txt - ν”„λ‘œμ νŠΈ λͺ…μ„Έμ„œ

μ—­ν• : λ§Œλ“€κ³ μž ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ™„μ „ν•œ 섀계 λ¬Έμ„œ

포함해야 ν•  λ‚΄μš©:

  • ν”„λ‘œμ νŠΈ κ°œμš” 및 λͺ©ν‘œ
  • 기술 μŠ€νƒ (ν”„λ‘ νŠΈμ—”λ“œ, λ°±μ—”λ“œ, DB λ“±)
  • 핡심 κΈ°λŠ₯ λͺ©λ‘ 및 상세 μ„€λͺ…
  • λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆ
  • API μ—”λ“œν¬μΈνŠΈ μ •μ˜
  • UI/UX λ ˆμ΄μ•„μ›ƒ 및 λ””μžμΈ μ‹œμŠ€ν…œ
  • κ΅¬ν˜„ 단계별 κ³„νš
  • 성곡 κΈ°μ€€

μ»€μŠ€ν„°λ§ˆμ΄μ§• 팁:

<project_specification>
  <project_name>λ‚˜μ˜ ν”„λ‘œμ νŠΈ</project_name>
  <overview>ν”„λ‘œμ νŠΈμ— λŒ€ν•œ 상세 μ„€λͺ…...</overview>
  <technology_stack>...</technology_stack>
  <core_features>...</core_features>
  <!-- 더 μƒμ„Έν• μˆ˜λ‘ μ—μ΄μ „νŠΈκ°€ μ •ν™•ν•˜κ²Œ κ΅¬ν˜„ν•©λ‹ˆλ‹€ -->
</project_specification>

이 파일이 μƒμ„Έν• μˆ˜λ‘ μ—μ΄μ „νŠΈμ˜ κ²°κ³Όλ¬Ό ν’ˆμ§ˆμ΄ λ†’μ•„μ§‘λ‹ˆλ‹€. λͺ¨ν˜Έν•œ μš”κ΅¬μ‚¬ν•­μ€ λͺ¨ν˜Έν•œ κ²°κ³Όλ₯Ό λ§Œλ“­λ‹ˆλ‹€.


2. initializer_prompt.md - μ΄ˆκΈ°ν™” μ—μ΄μ „νŠΈ ν”„λ‘¬ν”„νŠΈ

μ—­ν• : ν”„λ‘œμ νŠΈμ˜ 첫 번째 μ—μ΄μ „νŠΈκ°€ μˆ˜ν–‰ν•  μž‘μ—… μ •μ˜

κΈ°λ³Έ λ™μž‘:

  1. app_spec.txt 읽고 이해
  2. feature_list.json 생성 (200개의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€)
  3. init.sh 생성 (ν™˜κ²½ μ„€μ • 슀크립트)
  4. Git μ €μž₯μ†Œ μ΄ˆκΈ°ν™”
  5. ν”„λ‘œμ νŠΈ κΈ°λ³Έ ꡬ쑰 생성

μ»€μŠ€ν„°λ§ˆμ΄μ§• 포인트:

  • ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 개수 μ‘°μ • (κΈ°λ³Έ 200개)
  • 초기 μ„€μ • 슀크립트 μš”κ΅¬μ‚¬ν•­ λ³€κ²½
  • ν”„λ‘œμ νŠΈ ꡬ쑰 μ»€μŠ€ν„°λ§ˆμ΄μ§•

주의: 이 ν”„λ‘¬ν”„νŠΈλŠ” "ν•œ 번만" μ‹€ν–‰λ©λ‹ˆλ‹€. ν”„λ‘œμ νŠΈμ˜ λΌˆλŒ€λ₯Ό μž‘λŠ” μ—­ν• μ΄λ―€λ‘œ μ‹ μ€‘ν•˜κ²Œ μž‘μ„±ν•˜μ„Έμš”.


3. coding_prompt.md - μ½”λ”© μ—μ΄μ „νŠΈ ν”„λ‘¬ν”„νŠΈ

μ—­ν• : μ΄ˆκΈ°ν™” 이후 반볡 μ‹€ν–‰λ˜λŠ” μ—μ΄μ „νŠΈμ˜ 행동 μ§€μΉ¨

κΈ°λ³Έ λ™μž‘ (λ§€ μ„Έμ…˜λ§ˆλ‹€):

  1. ν˜„μž¬ μƒνƒœ νŒŒμ•… (파일 ꡬ쑰, μ§„ν–‰ 상황 확인)
  2. μ„œλ²„ μ‹€ν–‰ (init.sh)
  3. κΈ°μ‘΄ κΈ°λŠ₯ 검증 ν…ŒμŠ€νŠΈ (νšŒκ·€ λ°©μ§€)
  4. feature_list.jsonμ—μ„œ λ―Έμ™„λ£Œ κΈ°λŠ₯ 선택
  5. κΈ°λŠ₯ κ΅¬ν˜„ 및 λΈŒλΌμš°μ € ν…ŒμŠ€νŠΈ
  6. ν…ŒμŠ€νŠΈ 톡과 μ‹œ passes: true둜 μ—…λ°μ΄νŠΈ
  7. Git 컀밋 및 μ§„ν–‰ 상황 기둝

핡심 원칙:

  • ν•œ μ„Έμ…˜μ— ν•˜λ‚˜μ˜ κΈ°λŠ₯에 집쀑
  • λΈŒλΌμš°μ € μžλ™ν™”λ‘œ μ‹€μ œ UI ν…ŒμŠ€νŠΈ ν•„μˆ˜
  • feature_list.json은 passes ν•„λ“œλ§Œ μˆ˜μ • κ°€λŠ₯ (κΈ°λŠ₯ μ‚­μ œ/μˆ˜μ • κΈˆμ§€)
  • μ„Έμ…˜ μ’…λ£Œ μ „ λ°˜λ“œμ‹œ clean state μœ μ§€

μ»€μŠ€ν„°λ§ˆμ΄μ§• 포인트:

  • ν…ŒμŠ€νŠΈ 방법둠 λ³€κ²½ (puppeteer μ™Έ λ‹€λ₯Έ 도ꡬ)
  • 컀밋 λ©”μ‹œμ§€ ν˜•μ‹
  • μ§„ν–‰ 상황 기둝 방식

λ‚˜λ§Œμ˜ ν”„λ‘œμ νŠΈ λ§Œλ“€κΈ°

  1. app_spec.txt μž‘μ„±: κ°€μž₯ μ€‘μš”ν•©λ‹ˆλ‹€. μ›ν•˜λŠ” 앱을 μ΅œλŒ€ν•œ μƒμ„Έν•˜κ²Œ κΈ°μˆ ν•˜μ„Έμš”.
  2. initializer_prompt.md: λŒ€λΆ€λΆ„ κ·ΈλŒ€λ‘œ μ‚¬μš© κ°€λŠ₯. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 수만 μ‘°μ •ν•˜μ„Έμš”.
  3. coding_prompt.md: λŒ€λΆ€λΆ„ κ·ΈλŒ€λ‘œ μ‚¬μš© κ°€λŠ₯. ν…ŒμŠ€νŠΈ 도ꡬ가 λ‹€λ₯΄λ©΄ μˆ˜μ •ν•˜μ„Έμš”.
# μƒˆ ν”„λ‘œμ νŠΈ μ‹œμž‘
mkdir -p prompts/my_app
cp prompts/initializer_prompt.md prompts/my_app/
cp prompts/coding_prompt.md prompts/my_app/

# app_spec.txt만 μƒˆλ‘œ μž‘μ„±
vim prompts/my_app/app_spec.txt

# μ‹€ν–‰
python src/cmd/autonomous_coding.py \
  --project-dir ./generations/my_app \
  --prompts-dir ./prompts/my_app

쀑단 및 재개

Ctrl+C둜 쀑단할 수 있으며, λ™μΌν•œ λͺ…λ Ήμ–΄λ‘œ λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ μ΄μ–΄μ„œ μ§„ν–‰λ©λ‹ˆλ‹€.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages