| name | shipping-code |
| description | Commits code changes with automated CHANGELOG and design document updates. Runs build/lint verification before commit. Use after completing a feature, bug fix, or refactoring. |
| disable-model-invocation | true |
| user-invocable | true |
| argument-hint | [์ปค๋ฐ ๋ฉ์์ง] [--dry-run | --docs-only] |
| allowed-tools | Bash(git *), Bash(cargo *), Bash(npx *), Read, Grep, Edit, Write |
| context | fork |
Ship - ๋ฆด๋ฆฌ์ฆ ์ํฌํ๋ก์ฐ
์ธ์ ์ฒ๋ฆฌ
$ARGUMENTS ๊ฐ ๋น์ด์์ผ๋ฉด โ ์ ์ฒด ์ํฌํ๋ก์ฐ ์คํ
$ARGUMENTS์ --dry-run ํฌํจ โ ๋ฌธ์ ์
๋ฐ์ดํธ + ์ปค๋ฐ ๋ฉ์์ง ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ง (์ค์ ์ปค๋ฐ/ํธ์ ์ํจ)
$ARGUMENTS์ --docs-only ํฌํจ โ CHANGELOG/์ค๊ณ ๋ฌธ์๋ง ์
๋ฐ์ดํธ (์ปค๋ฐ/ํธ์ ์๋)
- ๊ทธ ์ธ ํ
์คํธ โ ์ปค๋ฐ ๋ฉ์์ง subject๋ก ์ฌ์ฉ
์ํฌํ๋ก์ฐ ๊ฐ์
1. ๋ณ๊ฒฝ์ฌํญ ๋ถ์ โ 2. CHANGELOG โ 3. ์ค๊ณ ๋ฌธ์ ๊ฐฑ์ โ 4. ๋น๋/๋ฆฐํธ ๊ฒ์ฆ โ 5. ์ปค๋ฐ ๋ฉ์์ง ํ์ธ โ 6. ์ปค๋ฐ (ํธ์๋ ๋ช
์ ์์ฒญ ์์๋ง)
1๋จ๊ณ: ๋ณ๊ฒฝ์ฌํญ ๋ถ์
๋ค์ ๋ช
๋ น์ด๋ฅผ ๋ณ๋ ฌ ์คํํ์ฌ ํ์ฌ ์ํ๋ฅผ ํ์
ํฉ๋๋ค:
git status
git diff --cached --stat
git diff --cached --name-only
git log --oneline -5
๋ถ์ ๊ธฐ์ค
๋ณ๊ฒฝ ํ์ผ์ ๋ค์ ์นดํ
๊ณ ๋ฆฌ๋ก ๋ถ๋ฅํฉ๋๋ค:
| ์นดํ
๊ณ ๋ฆฌ | ๊ฒฝ๋ก ํจํด | CHANGELOG ์น์
|
|---|
| API ์๋ฒ | crates/trader-api/ | Added/Changed/Performance |
| Collector | crates/trader-collector/ | Performance/Changed |
| Core/์ ๋ต | crates/trader-core/, crates/trader-strategy/ | Added/Changed |
| ํ๋ก ํธ์๋ | frontend/ | Added/Changed |
| CLI | crates/trader-cli/ | Added/Changed |
| ๋ง์ด๊ทธ๋ ์ด์
| migrations/, migrations_v2/ | Added (DB) |
| ๋ฌธ์ | docs/, CLAUDE.md | (CHANGELOG์ ๋ฏธํฌํจ) |
๋ฒ์ ๊ฒฐ์ ๊ท์น
| ๋ณ๊ฒฝ ์ ํ | ๋ฒ์ ์ฆ๊ฐ |
|---|
| Breaking API ๋ณ๊ฒฝ | Major (x.0.0) |
| ์ ๊ธฐ๋ฅ, ๋๊ท๋ชจ ๊ฐ์ | Minor (0.x.0) |
| ๋ฒ๊ทธ ์์ , ์ฑ๋ฅ ๊ฐ์ , ๋ฌธ์ | Patch (0.0.x) |
2๋จ๊ณ: CHANGELOG.md ์
๋ฐ์ดํธ
ํ์: Keep a Changelog ๊ธฐ๋ฐ
## [x.y.z] - YYYY-MM-DD
> **ํ ์ค ์์ฝ**: ์ด๋ฒ ๋ฆด๋ฆฌ์ฆ์ ํต์ฌ ๋ด์ฉ
### Performance (์ฑ๋ฅ ๊ฐ์ ์ด ์๋ ๊ฒฝ์ฐ)
- ๋ณ๊ฒฝ ๋ด์ฉ
### Added (์ ๊ธฐ๋ฅ)
- ๋ณ๊ฒฝ ๋ด์ฉ
### Changed (๊ธฐ์กด ๊ธฐ๋ฅ ๋ณ๊ฒฝ)
- ๋ณ๊ฒฝ ๋ด์ฉ
### Fixed (๋ฒ๊ทธ ์์ )
- ๋ณ๊ฒฝ ๋ด์ฉ
### Removed (์ ๊ฑฐ๋ ๊ธฐ๋ฅ)
- ๋ณ๊ฒฝ ๋ด์ฉ
์์ฑ ๊ท์น
- ๊ฐ ํญ๋ชฉ์ ์ฌ์ฉ์ ๊ด์ ์์ ์์ฑ (๋ด๋ถ ๊ตฌํ X, ํจ๊ณผ O)
- ํ์ผ๋ช
๊ณผ ํจ์๋ช
์
backtick์ผ๋ก ํ์
- ๊ด๋ จ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ดํธ ์์ ํ๊ธฐ (์:
(global_score.rs))
3๋จ๊ณ: ์ค๊ณ ๋ฌธ์ ๊ฐฑ์
๋ค์ ๋ฌธ์๋ค์ ์์๋๋ก ํ์ธํ๊ณ ํ์์ ๊ฐฑ์ ํฉ๋๋ค:
3-1. CLAUDE.md
| ํญ๋ชฉ | ์์น | ๊ฐฑ์ ์กฐ๊ฑด |
|---|
| ๋ฒ์ | ํค๋ > v0.x.y | ํญ์ |
| ๋ง์ด๊ทธ๋ ์ด์
์ | ํ๋ก์ ํธ ๊ฐ์ ํ
์ด๋ธ | ๋ง์ด๊ทธ๋ ์ด์
์ถ๊ฐ ์ |
| ํ๋ก์ ํธ ๊ตฌ์กฐ | ํ๋ก์ ํธ ๊ตฌ์กฐ ์น์
| ์ crate/๋๋ ํ ๋ฆฌ ์ถ๊ฐ ์ |
| Crate ์, API ๋ผ์ฐํธ ์ | ํ๋ก์ ํธ ๊ฐ์ ์์น | ๋ณ๊ฒฝ ์ |
3-2. docs/architecture.md
| ํญ๋ชฉ | ๊ฐฑ์ ์กฐ๊ฑด |
|---|
| ๋ฒ์ ํค๋ | ํญ์ (๋ฒ์ + ์ฃผ์ ๋ณ๊ฒฝ ์ค๋ช
) |
| ์์คํ
๊ตฌ์ฑ๋ | ์ ์ปดํฌ๋ํธ ์ถ๊ฐ ์ |
| ๊ธฐ์ ์คํ ํ
์ด๋ธ | ์์กด์ฑ ๋ณ๊ฒฝ ์ |
| ํฌ๋ ์ดํธ ์ค๋ช
| ํฌ๋ ์ดํธ ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์ |
3-3. docs/migration_guide.md
| ํญ๋ชฉ | ๊ฐฑ์ ์กฐ๊ฑด |
|---|
| ํตํฉ ๊ทธ๋ฃน ํ
์ด๋ธ | ์ ๋ง์ด๊ทธ๋ ์ด์
๊ทธ๋ฃน ๋ณ๊ฒฝ ์ |
| ๊ฒ์ถ ํญ๋ชฉ | ์ ๊ฒ์ฆ ๊ท์น ์ถ๊ฐ ์ |
3-4. docs/todo.md
| ํญ๋ชฉ | ๊ฐฑ์ ์กฐ๊ฑด |
|---|
| ์๋ฃ ํญ๋ชฉ | ๊ตฌํ ์๋ฃ๋ ์์
์ โ
์ฒ๋ฆฌ |
| ๋ฒ์ ์ ๋ณด | ํญ์ |
3-5. ๋ง์ด๊ทธ๋ ์ด์
์ ๋ฆฌ (๋ง์ด๊ทธ๋ ์ด์
๋ณ๊ฒฝ ์์๋ง)
๋ง์ด๊ทธ๋ ์ด์
ํ์ผ์ด ์ถ๊ฐ/๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ:
trader migrate verify
trader migrate consolidate --output migrations_v2
trader migrate verify --dir migrations_v2
4๋จ๊ณ: ๋น๋ ๋ฐ ๋ฆฐํธ ๊ฒ์ฆ
๋ณ๊ฒฝ๋ ์ฝ๋ ์ข
๋ฅ์ ๋ฐ๋ผ ๊ฒ์ฆ์ ์ํํฉ๋๋ค:
Rust ์ฝ๋ ๋ณ๊ฒฝ ์
# 1. ํฌ๋งท ๊ฒ์ฌ
cargo fmt --all -- --check
# ์คํจ ์ โ cargo fmt --all ์คํ ํ ์ฌ์คํ
์ด์ง
# 2. Clippy ๊ฒ์ฌ (๊ฒฝ๊ณ ๋ฅผ ์๋ฌ๋ก ์ฒ๋ฆฌ)
cargo clippy --all-targets -- -D warnings
# ์คํจ ์ โ ๊ฒฝ๊ณ ํญ๋ชฉ์ ์ง์ ์์ (#[allow] ์ฌ์ฉ ๊ธ์ง)
# 3. ๋น๋ ๊ฒ์ฆ
cargo build --release
# ์คํจ ์ โ ์ปดํ์ผ ์๋ฌ ์์
TypeScript ์ฝ๋ ๋ณ๊ฒฝ ์
Push-Location frontend
# 1. ESLint ๊ฒ์ฌ
npx eslint src --max-warnings 0
# ์คํจ ์ โ ๋ฆฐํธ ์๋ฌ ์ง์ ์์ (eslint-disable ๊ธ์ง)
# 2. ํ์
๊ฒ์ฌ
npx tsc --noEmit
# ์คํจ ์ โ ํ์
์๋ฌ ์์
Pop-Location
๊ฒ์ฆ ์คํจ ์ ์ฒ๋ฆฌ
- ์๋ฌ๋ฅผ ์์ ํ๋ค
- ์์ ํ์ผ์
git add๋ก ๋ค์ ์คํ
์ด์งํ๋ค
- 4๋จ๊ณ๋ฅผ ์ฌ์คํํ์ฌ ๋ชจ๋ ๊ฒ์ฆ์ด ํต๊ณผํ ๋๊น์ง ๋ฐ๋ณตํ๋ค
โ ๏ธ --dry-run ๋ชจ๋์์๋ ๊ฒ์ฆ์ ์ํํ๋, ์์ ์ ๋ณด๊ณ ๋ง ํ๋ค.
5๋จ๊ณ: ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ๋ฐ ํ์ธ
ํ์ (Conventional Commits)
<type>: <version> - <subject>
<body>
Co-Authored-By: Claude <noreply@anthropic.com>
Type ์ ํ ๊ธฐ์ค:
| Type | ์ฌ์ฉ ์กฐ๊ฑด |
|---|
feat | ์ ๊ธฐ๋ฅ ์ถ๊ฐ, ๋๊ท๋ชจ ๊ฐ์ |
fix | ๋ฒ๊ทธ ์์ |
perf | ์ฑ๋ฅ ๊ฐ์ |
refactor | ๋ฆฌํฉํ ๋ง (๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์) |
docs | ๋ฌธ์๋ง ๋ณ๊ฒฝ |
test | ํ
์คํธ๋ง ์ถ๊ฐ/์์ |
chore | ๋น๋, CI, ์์กด์ฑ ๋ฑ |
์ฌ์ฉ์ ํ์ธ
โ ๏ธ ์ปค๋ฐ ์คํ ์ ๋ฐ๋์ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ํ์ธ์ ๋ฐ์ต๋๋ค.
๋ค์ ๋ด์ฉ์ ์ฌ์ฉ์์๊ฒ ์ ์ํฉ๋๋ค:
- ๋ณ๊ฒฝ ์์ฝ (์นดํ
๊ณ ๋ฆฌ๋ณ ์ฃผ์ ๋ณ๊ฒฝ์ฌํญ)
- ์
๋ฐ์ดํธ๋ ๋ฌธ์ ๋ชฉ๋ก
- ์ ์ํ๋ ์ปค๋ฐ ๋ฉ์์ง ์ ๋ฌธ
- ์คํ
์ด์ง์ ์ถ๊ฐํ ๋ฌธ์ ํ์ผ ๋ชฉ๋ก
์ฌ์ฉ์๊ฐ ์น์ธํ๋ฉด ์ปค๋ฐ์ ์งํํฉ๋๋ค.
โ ๏ธ --dry-run ๋ชจ๋์์๋ ์ฌ๊ธฐ์ ์ข
๋ฃํฉ๋๋ค.
6๋จ๊ณ: ์ปค๋ฐ
# ์
๋ฐ์ดํธ๋ ๋ฌธ์ ์คํ
์ด์ง
git add CHANGELOG.md CLAUDE.md docs/architecture.md docs/migration_guide.md docs/todo.md
# PowerShell์์ ๋ฉํฐ๋ผ์ธ ์ปค๋ฐ ๋ฉ์์ง
git commit -m "<type>: <version> - <subject>" -m "<body>" -m "Co-Authored-By: Claude <noreply@anthropic.com>"
โ ๏ธ ํธ์๋ ์๋ ์ํํ์ง ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก "push ํด์ค" ๋๋ "ํธ์ํด"๋ผ๊ณ ์์ฒญํ ๊ฒฝ์ฐ์๋ง git push๋ฅผ ์คํํฉ๋๋ค.
์ฌ์ ์กฐ๊ฑด
- โ
์คํ
์ด์ง๋ ํ์ผ์ด ์์ด์ผ ํจ (
git add ์๋ฃ)
- โ
๋น๋๊ฐ ์ฑ๊ณตํ ์ํ์ฌ์ผ ํจ
- โ ๏ธ main ๋ธ๋์น ์ง์ ์ปค๋ฐ ์ ๊ฒฝ๊ณ ํ์
์์ ์ฅ์น
- ์ปค๋ฐ ์ ์ฌ์ฉ์ ํ์ธ ํ์ โ ์๋ ์ปค๋ฐ ์์
- ํธ์๋ ์๋ ์์ฒญ ์์๋ง โ ์๋ ํธ์ ์์
- ๋ฌธ์ ์
๋ฐ์ดํธ ์ ๊ธฐ์กด ๋ด์ฉ ์ฝ๊ธฐ โ ๋ฎ์ด์ฐ๊ธฐ ๋ฐฉ์ง
- ๋ง์ด๊ทธ๋ ์ด์
๋ณ๊ฒฝ ์ verify ํ์ โ ๊ฒ์ฆ ์์ด ํตํฉ ๊ธ์ง