| name | dd-setup |
| description | Interactive setup wizard for dding-dong notifications. This skill should be used when the user says "setup notifications", "initial setup", "configure dding-dong", "install plugin", "์๋ฆผ ์ค์ ", "์ด๊ธฐ ์ค์ ", "ํ๋ฌ๊ทธ์ธ ์ค์ ", "์ค์ ๋ง๋ฒ์ฌ", or wants to configure the notification plugin for the first time. ํ๊ฒฝ ๊ฐ์ง ๋ฐ ์ด๊ธฐ ์ค์ . |
| allowed-tools | ["Bash","Read","Write","AskUserQuestion"] |
| disable-model-invocation | true |
dding-dong ์ค์ ๋ง๋ฒ์ฌ
์ฌ์ฉ์์ ํ๊ฒฝ์ ํ์ธํ๊ณ dding-dong ์๋ฆผ ํ๋ฌ๊ทธ์ธ์ ์ค์ ํฉ๋๋ค.
ํ๋๊ทธ ํ์ฑ
$ARGUMENTS์์ ํ๋๊ทธ๋ฅผ ํ์ธํฉ๋๋ค:
-
--help: ์๋ ์ฌ์ฉ๋ฒ์ ์ถ๋ ฅํ๊ณ ์ข
๋ฃํฉ๋๋ค.
dding-dong ์ค์ ๋ง๋ฒ์ฌ
์ฌ์ฉ๋ฒ: /dding-dong:dd-setup [์ต์
]
์ต์
:
--scope global|project|local ์ค์น ๋ฒ์ ์ง์ (2๋จ๊ณ ๊ฑด๋๋)
--force ๊ธฐ์กด ์ค์ ๋ฌด์, ์ ์ฒด ์ฌ์ค์
--help ์ด ๋์๋ง ํ์
-
--scope <๊ฐ>: global, project, local ์ค ํ๋. ์ง์ ์ 2๋จ๊ณ(์ค์ฝํ ์ ํ)๋ฅผ ๊ฑด๋๋ฐ๊ณ ํด๋น ์ค์ฝํ๋ก ์งํํฉ๋๋ค.
-
--force: Pre-Setup Check๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ฐ๋ก "์ ์ฒด ์ฌ์ค์ " ๋ชจ๋๋ก ์งํํฉ๋๋ค.
์คํ ์์
1๋จ๊ณ: Pre-Setup Check + ํ๊ฒฝ ๊ฐ์ง
์๋ ๋ช
๋ น์ด๋ฅผ ์คํํ์ฌ ํ๊ฒฝ์ ๊ฐ์งํฉ๋๋ค:
node "${CLAUDE_PLUGIN_ROOT}/scripts/setup-wizard.mjs" detect --cwd "$(pwd)"
๊ฒฐ๊ณผ JSON์ ํ์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ํ๊ตญ์ด๋ก ์๋ดํฉ๋๋ค:
- "ํ๋ซํผ: [macOS/Linux/WSL] ๊ฐ์ง๋จ"
- "์ฌ์ด๋ ํ๋ ์ด์ด: [์ด๋ฆ] ์ฌ์ฉ ๊ฐ๋ฅ" ๋๋ "์ฌ์ด๋ ํ๋ ์ด์ด๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค"
- "์๋ฆผ ๋๊ตฌ: [์ด๋ฆ] ์ฌ์ฉ ๊ฐ๋ฅ" ๋๋ "์๋ฆผ ๋๊ตฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค"
Graceful Degradation:
- ์ฌ์ด๋ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉด: "์ฌ์ด๋ ์ฌ์๊ธฐ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค." ์๋ด (์ ๋ณด ๋ฉ์์ง๋ง, ํ๋๊ทธ ์ค์ ์ 3๋จ๊ณ์์ ์ฒ๋ฆฌ)
- ์๋ฆผ ๋๊ตฌ๊ฐ ์์ผ๋ฉด: "OS ์๋ฆผ ๋๊ตฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค." ์๋ด (์ ๋ณด ๋ฉ์์ง๋ง, ํ๋๊ทธ ์ค์ ์ 3๋จ๊ณ์์ ์ฒ๋ฆฌ)
- ๋ ๋ค ์์ผ๋ฉด: "ํฐ๋ฏธ๋ ๋ฒจ์ ์ฌ์ฉํฉ๋๋ค." ์๋ด ํ
sound.enabled: false, notification.enabled: false๋ก ์ค์ ํ๊ณ 3๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค
- ๊ฐ์ง ์์ฒด๊ฐ ์คํจํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์กฐ์ฉํ ๊ณ์ ์งํ
WSL์์ wsl-notify-send๊ฐ ์์ผ๋ฉด:
Pre-Setup Check (๊ธฐ์กด ์ค์ ๊ฐ์ง):
--force ํ๋๊ทธ๊ฐ ์์ผ๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ "์ ์ฒด ์ฌ์ค์ " ๋ชจ๋๋ก 2๋จ๊ณ์ ์งํํฉ๋๋ค.
existingConfig ํ๋๋ฅผ ํ์ธํ์ฌ:
-
๊ธฐ์กด ์ค์ ์ด ์์ผ๋ฉด (global.exists, project.exists, projectLocal.exists ์ค ํ๋๋ผ๋ true):
๊ธฐ์กด dding-dong ์ค์ ์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค.
- ์ ์ญ ์ค์ : ~/.config/dding-dong/config.json [์กด์ฌ/์์]
- ํ๋ก์ ํธ ์ค์ : .dding-dong/config.json [์กด์ฌ/์์]
- ๋ด ์ค์ : .dding-dong/config.local.json [์กด์ฌ/์์]
๊ตฌ๋ฒ์ ์
๊ทธ๋ ์ด๋ ๊ฐ์ง:
๊ธฐ์กด ์ค์ ์ด ๋ฐ๊ฒฌ๋ ๊ฒฝ์ฐ, detect ๊ฒฐ๊ณผ์ setupVersion๊ณผ pluginVersion ํ๋๋ฅผ ๋น๊ตํฉ๋๋ค:
setupVersion์ด null โ "์ด์ ๋ฒ์ ์์ ์
๊ทธ๋ ์ด๋๋ ์ค์ ์ด ๊ฐ์ง๋์์ต๋๋ค. ์ค์ ์ ์
๋ฐ์ดํธํ๋ฉด ์ต์ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค."
setupVersion๊ณผ pluginVersion์ด ๋ค๋ฆ โ "dding-dong์ด v{setupVersion}์์ v{pluginVersion}์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค. ์ค์ ์ ์
๋ฐ์ดํธํ์ฌ ์ ๊ธฐ๋ฅ์ ๋ฐ์ํ ์ ์์ต๋๋ค."
- ๋ฒ์ ์ด ๊ฐ์ โ ๋ณ๋ ์๋ด ์์
์ด ์๋ด๋ ์ ๋ณด ์ ๊ณต๋ง ํ๋ฉฐ, ์ดํ AskUserQuestion ํ๋ฆ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
AskUserQuestion์ผ๋ก ์ง๋ฌธ:
- "๊ธฐ์กด ์ค์ ์ ์ด๋ป๊ฒ ํ์๊ฒ ์ต๋๊น?"
- "์ค์ ์
๋ฐ์ดํธ (Recommended)" -- ๊ธฐ์กด ๊ฐ ์ ์ง, ๋ณ๊ฒฝํ ํญ๋ชฉ๋ง ์์
- "์ ์ฒด ์ฌ์ค์ " -- ๊ธฐ๋ณธ๊ฐ๋ถํฐ ๋ค์ ์ค์
- "์ทจ์" -- ์ค์ ๋ง๋ฒ์ฌ ์ข
๋ฃ
"์ทจ์"๋ฅผ ์ ํํ๋ฉด ๋ง๋ฒ์ฌ๋ฅผ ์ข
๋ฃํฉ๋๋ค.
"์ค์ ์
๋ฐ์ดํธ"๋ฅผ ์ ํํ๋ฉด ๊ธฐ์กด ์ค์ ์ ๋ก๋ํ ํ 2๋จ๊ณ๋ก ์งํํฉ๋๋ค.
"์ ์ฒด ์ฌ์ค์ "์ ์ ํํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก 2๋จ๊ณ๋ก ์งํํฉ๋๋ค.
-
๊ธฐ์กด ์ค์ ์ด ์์ผ๋ฉด: ๋ฐ๋ก 2๋จ๊ณ๋ก ์งํํฉ๋๋ค.
2๋จ๊ณ: ์ค์น ์ค์ฝํ ์ ํ
--scope ํ๋๊ทธ๊ฐ ์ง์ ๋์ด ์์ผ๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ ํด๋น ์ค์ฝํ๋ก 3๋จ๊ณ์ ์งํํฉ๋๋ค.
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"์ค์น ๋ฒ์๋ฅผ ์ ํํด์ฃผ์ธ์."
์ ํ์ง:
- ์ ์ญ ์ค์ (Recommended) -- "๋ชจ๋ ํ๋ก์ ํธ์ ์ ์ฉ๋ฉ๋๋ค. ์ค์ ๊ฒฝ๋ก: ~/.config/dding-dong/config.json"
- ํ๋ก์ ํธ ์ค์ -- "ํ์๊ณผ ๊ณต์ ๋๋ ํ๋ก์ ํธ ์ค์ ์
๋๋ค. Git์ ์ปค๋ฐ๋ฉ๋๋ค. ๊ฒฝ๋ก: .dding-dong/config.json"
- ๋ด ์ค์ (Local) -- "์ด ํ๋ก์ ํธ์์ ๋๋ง ์ฌ์ฉํ๋ ๊ฐ์ธ ์ค์ ์
๋๋ค. Git์ ํฌํจ๋์ง ์์ต๋๋ค. ๊ฒฝ๋ก: .dding-dong/config.local.json"
- ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ์ตํ์ฌ ์ดํ ๋จ๊ณ์์ ์ฌ์ฉํฉ๋๋ค
3๋จ๊ณ: ์๋ฆผ ๋ชจ๋ ์ ํ
1๋จ๊ณ์์ ๊ฐ์งํ ์ฌ์ด๋ ํ๋ ์ด์ด์ ์๋ฆผ ๋๊ตฌ์ ๊ฐ์ฉ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ถ๊ธฐํฉ๋๋ค.
์ผ์ด์ค A: ์ฌ์ด๋ ํ๋ ์ด์ด + ์๋ฆผ ๋๊ตฌ ๋ชจ๋ ๊ฐ์ง๋จ
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"์ด๋ค ์๋ฆผ ๋ฐฉ์์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?"
์ ํ์ง:
- ์ฌ์ด๋ + OS ์๋ฆผ (Recommended) -- "์๋ฆฌ์ ๋ฐ์คํฌํฑ ์๋ฆผ์ ๋ชจ๋ ์ฌ์ฉํฉ๋๋ค."
- ์ฌ์ด๋๋ง -- "์๋ฆฌ๋ง ์ฌ์ํฉ๋๋ค. OS ์๋ฆผ์ ํ์ํ์ง ์์ต๋๋ค."
- OS ์๋ฆผ๋ง -- "๋ฐ์คํฌํฑ ์๋ฆผ๋ง ํ์ํฉ๋๋ค. ์๋ฆฌ๋ ์ฌ์ํ์ง ์์ต๋๋ค."
์ ํ์ง์ config ํ๋ ๋งคํ:
- ์ฌ์ด๋ + OS ์๋ฆผ โ
sound.enabled: true, notification.enabled: true
- ์ฌ์ด๋๋ง โ
sound.enabled: true, notification.enabled: false
- OS ์๋ฆผ๋ง โ
sound.enabled: false, notification.enabled: true
"์ค์ ์
๋ฐ์ดํธ" ๋ชจ๋์ธ ๊ฒฝ์ฐ: ๊ธฐ์กด ์ค์ ์ sound.enabled์ notification.enabled ์กฐํฉ์ ์ฝ์ด ํ์ฌ ๋ชจ๋์ ํด๋นํ๋ ์ ํ์ง๋ฅผ ๊ธฐ๋ณธ๊ฐ(Recommended)์ผ๋ก ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธฐ์กด ์ค์ ์ด sound.enabled: true, notification.enabled: false์ด๋ฉด "์ฌ์ด๋๋ง" ์ต์
์ "(ํ์ฌ ์ค์ )"์ ํ์ํฉ๋๋ค.
์ผ์ด์ค B: ์ฌ์ด๋ ํ๋ ์ด์ด๋ง ๊ฐ์ง๋จ (์๋ฆผ ๋๊ตฌ ์์)
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"OS ์๋ฆผ ๋๊ตฌ๋ฅผ ์ฐพ์ ์ ์์ด ์ฌ์ด๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋๋ก ์งํํ์๊ฒ ์ต๋๊น?"
์ ํ์ง:
- ์, ์ฌ์ด๋๋ง ์ฌ์ฉ (Recommended) -- "์ฌ์ด๋ ์๋ฆผ๋ง ํ์ฑํํฉ๋๋ค."
- ์๋์ค, ์๋ฆผ์ ์ฌ์ฉํ์ง ์๊ฒ ์ต๋๋ค -- "์ฌ์ด๋์ OS ์๋ฆผ ๋ชจ๋ ๋นํ์ฑํํฉ๋๋ค. ํฐ๋ฏธ๋ ๋ฒจ๋ง ์ฌ์ฉํฉ๋๋ค."
- "์" โ
sound.enabled: true, notification.enabled: false
- "์๋์ค" โ
sound.enabled: false, notification.enabled: false
์ผ์ด์ค C: ์๋ฆผ ๋๊ตฌ๋ง ๊ฐ์ง๋จ (์ฌ์ด๋ ํ๋ ์ด์ด ์์)
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"์ฌ์ด๋ ์ฌ์๊ธฐ๋ฅผ ์ฐพ์ ์ ์์ด OS ์๋ฆผ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋๋ก ์งํํ์๊ฒ ์ต๋๊น?"
์ ํ์ง:
- ์, OS ์๋ฆผ๋ง ์ฌ์ฉ (Recommended) -- "OS ์๋ฆผ๋ง ํ์ฑํํฉ๋๋ค."
- ์๋์ค, ์๋ฆผ์ ์ฌ์ฉํ์ง ์๊ฒ ์ต๋๋ค -- "์ฌ์ด๋์ OS ์๋ฆผ ๋ชจ๋ ๋นํ์ฑํํฉ๋๋ค. ํฐ๋ฏธ๋ ๋ฒจ๋ง ์ฌ์ฉํฉ๋๋ค."
- "์" โ
sound.enabled: false, notification.enabled: true
- "์๋์ค" โ
sound.enabled: false, notification.enabled: false
์ผ์ด์ค D: ๋ ๋ค ๊ฐ์ง๋์ง ์์
์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค. 1๋จ๊ณ์์ ์ด๋ฏธ sound.enabled: false, notification.enabled: false๋ก ์ค์ ๋์ด ์์ต๋๋ค.
4๋จ๊ณ: ์ฌ์ด๋ํฉ ์ ํ
3๋จ๊ณ์์ ์ฌ์ด๋๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์ด ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
์ฌ์ด๋๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํฉ(default)์ ์ ์งํ๊ณ 5๋จ๊ณ๋ก ๊ฑด๋๋๋๋ค.
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"์ฌ์ด๋ ํ
๋ง๋ฅผ ์ ํํด์ฃผ์ธ์."
์ ํ์ง:
- ๊ธฐ๋ณธ ํจ๊ณผ์ (Recommended) -- "๊น๋ํ ์ฌ์ธํ ๋นํ์. ์ฌํํ๊ณ ๋ฐฉํด๊ฐ ์ ์ต๋๋ค."
- ๋ ํธ๋ก ๊ฒ์ (8-bit) -- "์นฉํ ์คํ์ผ์ ๊ฒ์๊ธฐ ํจ๊ณผ์. NES/๊ฒ์๋ณด์ด ๊ฐ์ฑ."
- ๋ฎค์ง์ปฌ ์ฝ๋ (Musical) -- "ํผ์๋
ธ ์ฝ๋ ๊ธฐ๋ฐ์ ํ์ฑ์ ์๋ฆผ์. ํ์ฑํ๊ณ ๋ฐ๋ปํ ๋๋."
์ ํ์ง์ sound.pack ๊ฐ ๋งคํ:
- ๊ธฐ๋ณธ ํจ๊ณผ์ โ
"default"
- ๋ ํธ๋ก ๊ฒ์ โ
"retro"
- ๋ฎค์ง์ปฌ ์ฝ๋ โ
"musical"
์ ํ ํ ๋ฏธ๋ฆฌ๋ฃ๊ธฐ๋ฅผ ์ ์ํฉ๋๋ค:
AskUserQuestion์ผ๋ก ์ง๋ฌธ:
"์ ํํ ํฉ์ ์ฌ์ด๋๋ฅผ ๋ฏธ๋ฆฌ ๋ค์ด๋ณด์๊ฒ ์ต๋๊น?"
- ์ (Recommended)
- ์๋์ค
๋ฏธ๋ฆฌ๋ฃ๊ธฐ ์ ํ ์, ์ ํํ ํฉ์ task.complete ์ฌ์ด๋๋ฅผ ์ฌ์ํฉ๋๋ค:
DDING_DONG_PACK="${SELECTED_PACK}" node "${CLAUDE_PLUGIN_ROOT}/scripts/notify.mjs" test task.complete
๋ฏธ๋ฆฌ๋ฃ๊ธฐ ํ ๋ณ๊ฒฝ์ ์ํ๋ฉด ๋ค์ ํฉ ์ ํ์ผ๋ก ๋์๊ฐ๋๋ค.
๋ง์กฑํ๋ฉด 5๋จ๊ณ๋ก ์งํํฉ๋๋ค.
5๋จ๊ณ: ์ฌ์ฉ์ ์ ํธ๋ ํ์ธ
AskUserQuestion์ผ๋ก ์์ฐจ์ ์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
5-a. ์ด๋ฒคํธ ์ ํ (multiSelect):
"์ด๋ค ์ด๋ฒคํธ์ ์๋ฆผ์ ๋ฐ์ผ์๊ฒ ์ต๋๊น?"
- ์์
์๋ฃ (task.complete) - ๊ธฐ๋ณธ ON
- ์ค๋ฅ ๋ฐ์ (task.error) - ๊ธฐ๋ณธ ON
- ์
๋ ฅ ํ์ (input.required) - ๊ธฐ๋ณธ ON
- ์ธ์
์์ (session.start) - ๊ธฐ๋ณธ OFF
- ์ธ์
์ข
๋ฃ (session.end) - ๊ธฐ๋ณธ OFF
5-b. ๋ณผ๋ฅจ (3๋จ๊ณ์์ ์ฌ์ด๋๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์ง๋ฌธ):
"์ฌ์ด๋ ๋ณผ๋ฅจ์ ์ ํํด์ฃผ์ธ์."
- 0.3 (์๊ฒ)
- 0.5 (๋ณดํต)
- 0.7 (๊ธฐ๋ณธ, Recommended)
- 1.0 (์ต๋)
3๋จ๊ณ์์ ์ฌ์ด๋๊ฐ ๋นํ์ฑํ๋ ๊ฒฝ์ฐ ์ด ์ง๋ฌธ์ ๊ฑด๋๋๋๋ค.
5-c. ์ผ๊ฐ ๋ชจ๋:
"์ผ๊ฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?"
- ์ฌ์ฉ ์ ํจ (๊ธฐ๋ณธ, Recommended)
- ์ฌ์ฉ (22:00~08:00)
6๋จ๊ณ: ์ค์ ์ ์ฅ
์ฌ์ฉ์ ์๋ต์ ๋ฐํ์ผ๋ก ์ค์ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
3๋จ๊ณ์์ ๊ฒฐ์ ํ sound.enabled์ notification.enabled ๊ฐ์ ์ค์ ๊ฐ์ฒด์ ๋ฐ์ํฉ๋๋ค.
์ฌ์ด๋๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ, 4๋จ๊ณ์์ ์ ํํ ์ฌ์ด๋ํฉ ์ด๋ฆ์ sound.pack ํ๋์ ํฌํจํฉ๋๋ค.
์ค์ฝํ์ ๋ฐ๋ผ ์๋ ๋ช
๋ น์ด๋ก ์ค์ ์ ์ ์ฅํฉ๋๋ค:
node "${CLAUDE_PLUGIN_ROOT}/scripts/config-save.mjs" '${CONFIG_JSON}' --scope '${SCOPE}' --cwd "$(pwd)"
${SCOPE}๋ 2๋จ๊ณ์์ ์ ํํ ์ค์ฝํ (global, project, local)
${CONFIG_JSON}์ ์ฌ์ฉ์ ์๋ต์ ๋ฐํ์ผ๋ก ๊ตฌ์ฑํ ์ค์ JSON ๋ฌธ์์ด
์ค์ฝํ๋ณ ๋์:
- Global (
--scope global): ~/.config/dding-dong/config.json์ ์ ์ฒด ์ค์ ์ ์ ์ฅํฉ๋๋ค.
- Project (
--scope project): .dding-dong/config.json์ ์ค๋ฒ๋ผ์ด๋ ํค๋ง (diff-only) ์ ์ฅํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ๊ณผ ๋ค๋ฅธ ํญ๋ชฉ๋ง ์ค์ ๊ฐ์ฒด์ ํฌํจํฉ๋๋ค. config.local.json์ .gitignore์ ์๋์ผ๋ก ์ถ๊ฐํฉ๋๋ค (๊ฐ์ธ ์ค์ ๋ณดํธ).
- Local (
--scope local): .dding-dong/config.local.json์ ์ค๋ฒ๋ผ์ด๋ ํค๋ง (diff-only) ์ ์ฅํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ๊ณผ ๋ค๋ฅธ ํญ๋ชฉ๋ง ์ค์ ๊ฐ์ฒด์ ํฌํจํฉ๋๋ค. .gitignore์ config.local.json ๋ผ์ธ์ด ์์ผ๋ฉด ์ถ๊ฐํฉ๋๋ค.
๊ฒฐ๊ณผ JSON์ success ํ๋๋ก ์ ์ฅ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. error ํ๋๊ฐ ์์ผ๋ฉด ์ฌ์ฉ์์๊ฒ ์๋ดํฉ๋๋ค.
Project/Local ๊ณตํต โ .gitignore ์ฒ๋ฆฌ:
- ํ๋ก์ ํธ ๋ฃจํธ์
.gitignore์ config.local.json ํจํด์ด ์์ผ๋ฉด ์ถ๊ฐํฉ๋๋ค.
- AskUserQuestion์ผ๋ก ์ถ๊ฐ ์ง๋ฌธ (Project ์ค์ฝํ์์๋ง):
".dding-dong/ ๋๋ ํ ๋ฆฌ ์ ์ฒด๋ฅผ .gitignore์ ์ถ๊ฐํ์๊ฒ ์ต๋๊น?"
- "config.local.json๋ง ์ ์ธ (Recommended)" -- ํ ๊ณต์ config.json์ ์ปค๋ฐ, ๊ฐ์ธ ์ค์ ๋ง ์ ์ธ
- "๋๋ ํ ๋ฆฌ ์ ์ฒด ์ ์ธ" -- .dding-dong/ ์ ์ฒด๋ฅผ Git ์ถ์ ์์ ์ ์ธ
6-a๋จ๊ณ: ์ค์ ์๋ฃ ๋ฉํ๋ฐ์ดํฐ ๊ธฐ๋ก
๊ธ๋ก๋ฒ ์ค์ ํ์ผ์ _meta ํ๋๋ฅผ ๊ธฐ๋กํฉ๋๋ค (doctor ์คํฌ์์ ์
์
์๋ฃ ์ฌ๋ถ ํ๋ณ์ ์ฌ์ฉ):
node "${CLAUDE_PLUGIN_ROOT}/skills/dd-setup/scripts/setup-meta.mjs"
๊ฒฐ๊ณผ JSON์ success ํ๋๋ก ๊ธฐ๋ก ์ฑ๊ณต์ ํ์ธํฉ๋๋ค. setupVersion์ plugin.json์์ ์๋์ผ๋ก ์ฝ์ด์ต๋๋ค.
์ด ๋จ๊ณ๋ ์๋์ผ๋ก ์คํ๋ฉ๋๋ค (์ฌ์ฉ์ ์ธํฐ๋์
์์).
6-b๋จ๊ณ: ํ๋ฌ๊ทธ์ธ ์ค์น ๊ฒ์ฆ
ํ๋ฌ๊ทธ์ธ์ด Claude Code์ ๋ฑ๋ก๋์ด ์๋์ง ํ์ธํฉ๋๋ค:
claude plugin list 2>/dev/null | grep -qi dding-dong && echo "REGISTERED" || echo "NOT_REGISTERED"
์ด ํ์ธ์ด ์คํจํด๋ ์
์
์ ์ค๋จํ์ง ์๊ณ ์๋ด๋ง ํฉ๋๋ค.
7๋จ๊ณ: ํ
์คํธ + ์๋ฃ ์์ฝ
ํ
์คํธ ์๋ฆผ์ ์คํํฉ๋๋ค:
node "${CLAUDE_PLUGIN_ROOT}/scripts/notify.mjs" test task.complete
3๋จ๊ณ์์ "OS ์๋ฆผ๋ง"์ ์ ํํ ๊ฒฝ์ฐ, ํ
์คํธ ์ ์๋ฆฌ๊ฐ ๋์ง ์๋ ๊ฒ์ด ์ ์์
๋๋ค. "OS ์๋ฆผ๋ง ๋ชจ๋์
๋๋ค. ์๋ฆฌ ์์ด ๋ฐ์คํฌํฑ ์๋ฆผ๋ง ํ์๋ฉ๋๋ค." ์๋ด๋ฅผ ์ถ๊ฐํฉ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ ์๋ฃ ์์ฝ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํฉ๋๋ค:
์ฑ๊ณต ์:
dding-dong ์ค์ ์๋ฃ!
- ์ค์ ํ์ผ: [์ค์ ํ์ผ ๊ฒฝ๋ก]
- ๋ฒ์: [์ ์ญ/ํ๋ก์ ํธ/๋ด ์ค์ (Local)]
- ์๋ฆผ ๋ฐฉ์: [์ฌ์ด๋ + OS ์๋ฆผ / ์ฌ์ด๋๋ง / OS ์๋ฆผ๋ง]
- ์ฌ์ด๋ ํฉ: [์ ํ๋ ํฉ displayName] (์ฌ์ด๋ ํ์ฑํ ์์๋ง ํ์)
- ํ์ฑ ์ด๋ฒคํธ: [ํ์ฑํ๋ ์ด๋ฒคํธ ๋ชฉ๋ก]
- ๋ณผ๋ฅจ: [์ค์ ๋ ๋ณผ๋ฅจ] (์ฌ์ด๋ ํ์ฑํ ์์๋ง ํ์)
- ์ผ๊ฐ ๋ชจ๋: [ํ์ฑ/๋นํ์ฑ]
ํ
์คํธ ์คํจ ์:
์ค์ ์ด ์ ์ฅ๋์์ง๋ง ํ
์คํธ ์๋ฆผ์ ์คํจํ์ต๋๋ค.
/dding-dong:dd-config show ๋ก ์ค์ ์ ํ์ธํด์ฃผ์ธ์.
8๋จ๊ณ: GitHub ์คํ ์์ฒญ
์ด ๋จ๊ณ๋ ์
์
๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ์ง ์๋ ๋ถ๊ฐ์ ๋จ๊ณ์
๋๋ค.
๋จผ์ gh CLI ์ธ์ฆ ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค:
gh auth status 2>&1 && echo "GH_AUTHENTICATED" || echo "GH_NOT_AUTHENTICATED"
์ธ์ฆ๋ ๊ฒฝ์ฐ (GH_AUTHENTICATED):
AskUserQuestion์ผ๋ก ์ง๋ฌธํฉ๋๋ค:
"dding-dong์ด ๋ง์์ ๋์
จ๋ค๋ฉด GitHub์ ์คํ๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์!"
์ ํ์ง:
- ์คํ ๋จ๊ธฐ๊ธฐ -- "CaesiumY/dding-dong ์ ์ฅ์์ ์คํ๋ฅผ ๋จ๊น๋๋ค."
- ๊ฑด๋๋ฐ๊ธฐ -- "๋ค์์ ๋จ๊ธฐ๊ฒ ์ต๋๋ค."
-
"์คํ ๋จ๊ธฐ๊ธฐ" ์ ํ ์:
gh repo star CaesiumY/dding-dong
์ฑ๊ณต ์: "๊ฐ์ฌํฉ๋๋ค! ์คํ๊ฐ ๋ฑ๋ก๋์์ต๋๋ค." ์๋ด
์คํจ ์: ์ค๋ฅ๋ฅผ ๋ฌด์ํ๊ณ ์กฐ์ฉํ ์งํ
-
"๊ฑด๋๋ฐ๊ธฐ" ์ ํ ์: ๊ทธ๋ฅ ์งํ
๋ฏธ์ธ์ฆ ๋๋ ์คํจํ ๊ฒฝ์ฐ (GH_NOT_AUTHENTICATED):
์ ์ฅ์ URL๋ง ์๋ดํฉ๋๋ค:
dding-dong์ด ๋ง์์ ๋์
จ๋ค๋ฉด GitHub์ ์คํ๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์!
https://github.com/CaesiumY/dding-dong
๊ด๋ จ ์คํฌ
- ์ค์ ์กฐํ/๋ณ๊ฒฝ โ
/dding-dong:dd-config
- ์๋ฆผ ๋ฌธ์ ์ง๋จ โ
/dding-dong:dd-doctor
- ์ ์ฒด ๊ธฐ๋ฅ ์๋ด โ
/dding-dong:dd-help