| name | dd-config |
| description | View and manage dding-dong notification settings. This skill should be used when the user says "show settings", "change config", "set volume", "reset config", "์ค์ ๋ณด๊ธฐ", "์ค์ ๋ณ๊ฒฝ", "๋ณผ๋ฅจ ๋ณ๊ฒฝ", "์ค์ ์ด๊ธฐํ", or needs to view, modify, or reset notification configuration. ์ค์ ํ์ธ, ๋ณ๊ฒฝ, ์ด๊ธฐํ. |
| allowed-tools | ["Bash","Read","Write","AskUserQuestion"] |
| disable-model-invocation | true |
dding-dong ์ค์ ๊ด๋ฆฌ
์ฌ์ฉ๋ฒ
$ARGUMENTS ๋ฅผ ํ์ฑํ์ฌ ๋์์ ๊ฒฐ์ ํฉ๋๋ค:
show (๊ธฐ๋ณธ)
ํ์ฌ ์ค์ ์ ํ๊ตญ์ด๋ก ํ์ํฉ๋๋ค. ์ค์ฝํ๋ณ ์ค์ ์ถ์ฒ๋ ํจ๊ป ์๋ดํฉ๋๋ค.
node "${CLAUDE_PLUGIN_ROOT}/scripts/check-config.mjs" --cwd "$(pwd)"
๊ฒฐ๊ณผ๋ฅผ ํ์ฑํ์ฌ ์ฌ์ฉ์์๊ฒ ํ๊ตญ์ด๋ก ํ์ํฉ๋๋ค. _meta์ messages ๋ด๋ถ ํ๋๋ ํ์์์ ์ ์ธํฉ๋๋ค:
ํ์ฌ ์ค์ (์ ์ฉ ์ค์ธ ์ค์ฝํ: [์ค์ฝํ ์ ๋ณด])
- ์ ์ญ ์ค์ : [๊ฒฝ๋ก] ([์กด์ฌ/์์])
- ํ๋ก์ ํธ ์ค์ : [๊ฒฝ๋ก] ([์กด์ฌ/์์])
- ๋ด ์ค์ (Local): [๊ฒฝ๋ก] ([์กด์ฌ/์์])
| ์ค์ | ๊ฐ |
|------|-----|
| ํ์ฑํ | config.enabled (์/์๋์ค) |
| ์ธ์ด | config.language |
| ์ฌ์ด๋ | config.sound.enabled (์ผ์ง/๊บผ์ง) |
| ์ฌ์ด๋ ํฉ | config.sound.pack |
| ๋ณผ๋ฅจ | config.sound.volume |
| OS ์๋ฆผ | config.notification.enabled (์ผ์ง/๊บผ์ง) |
| ์ผ๊ฐ ๋ชจ๋ | config.quiet_hours.enabled (๊บผ์ง / ์ผ์ง HH:MM~HH:MM) |
| ์ฟจ๋ค์ด | config.cooldown_seconds์ด |
์ด๋ฒคํธ ์ค์ :
| ์ด๋ฒคํธ | ์ฌ์ด๋ | ์๋ฆผ |
|--------|:------:|:----:|
| task.complete | โ/- | โ/- |
| task.error | โ/- | โ/- |
| input.required | โ/- | โ/- |
| session.start | โ/- | โ/- |
| session.end | โ/- | โ/- |
๊ฐ ์ด๋ฒคํธ์ โ/- ๋ config.sound.events์ config.notification.events์์ ํด๋น ์ด๋ฒคํธ ํค์ true/false๋ฅผ ํ์ธํฉ๋๋ค.
get [key]
๋จ์ผ ์ค์ ํค์ ํ์ฌ ๊ฐ์ ์กฐํํฉ๋๋ค. dot notation ์ง์ (์: sound.volume, quiet_hours.enabled, notification.events.task.complete).
$ARGUMENTS์์ key๋ฅผ ์ถ์ถํ์ฌ ${KEY}๋ก ์นํํฉ๋๋ค.
node "${CLAUDE_PLUGIN_ROOT}/skills/dd-config/scripts/config-get.mjs" '${KEY}' --cwd "$(pwd)"
- ์ฑ๊ณต ์: "
[key] = [value]"
- ํค ์์ ์: "์ค์ ํค๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค:
[key]"
set [key] [value]
์ค์ฒฉ ํค๋ฅผ dot notation์ผ๋ก ์ง์ํฉ๋๋ค (์: sound.volume 0.5, notification.events.session.start true).
--scope ์ต์
์ผ๋ก ๋์ ์ค์ฝํ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค:
--scope global -- ์ ์ญ ์ค์ ์ ๋ฐ์ (๊ธฐ๋ณธ๊ฐ)
--scope project -- ํ๋ก์ ํธ ์ค์ ์ ๋ฐ์ (ํ ๊ณต์ , ์ปค๋ฐ๋จ)
--scope local -- ๋ด ์ค์ ์ ๋ฐ์ (๊ฐ์ธ ์ค๋ฒ๋ผ์ด๋, ์ปค๋ฐ ์ ์ธ)
ํ๋ก์ ํธ/๋ก์ปฌ ์ค์ฝํ ์ง์ ์ ํด๋น ํ์ผ์ ์ค๋ฒ๋ผ์ด๋ ํค๋ง (diff-only) ์ ์ฅํฉ๋๋ค.
$ARGUMENTS์์ key, value, --scope ํ๋๊ทธ๋ฅผ ์ถ์ถํ์ฌ ${KEY}, ${VALUE}, ${SCOPE}๋ก ์นํํฉ๋๋ค.
${SCOPE}๊ฐ ์์ผ๋ฉด global์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
node "${CLAUDE_PLUGIN_ROOT}/skills/dd-config/scripts/config-set.mjs" '${KEY}' '${VALUE}' --scope '${SCOPE}' --cwd "$(pwd)"
- ์ฑ๊ณต ์: "
[key]๋ฅผ [oldValue] โ [newValue]๋ก ๋ณ๊ฒฝํ์ต๋๋ค. (์ค์ฝํ: [scope])"
- ์ด์ ๊ฐ๊ณผ ๋์ผ ์: "
[key]๋ ์ด๋ฏธ [newValue]์
๋๋ค."
- ์ ํจํ์ง ์์ ํค (invalid_key ์๋ฌ): "์ ์ ์๋ ์ค์ ํค:
[key]. ์ฌ์ฉ ๊ฐ๋ฅํ ํค: [validKeys ๋ชฉ๋ก]"
- ๊ทธ๋ฃน ํค (object_key ์๋ฌ): "
[key]๋ ๊ฐ๋ณ ์ค์ ์ด ์๋ ๊ทธ๋ฃน์
๋๋ค. ํ์ ํค๋ฅผ ์ง์ ํ์ธ์ (์: [key].enabled)."
- ํ๋ก์ ํธ ๋ฃจํธ ์์ (exit 1): "ํ๋ก์ ํธ ๋ฃจํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
--scope global์ ์ฌ์ฉํ๊ฑฐ๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ์์ ์คํํ์ธ์."
reset
์ค์ ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ณต์ํฉ๋๋ค.
AskUserQuestion์ผ๋ก ๋์ ์ค์ฝํ๋ฅผ ํ์ธํฉ๋๋ค:
"์ด๋ค ์ค์ ์ ์ด๊ธฐํํ์๊ฒ ์ต๋๊น?"
- "์ ์ญ ์ค์ ์ด๊ธฐํ" --
~/.config/dding-dong/config.json ์ญ์
- "ํ๋ก์ ํธ ์ค์ ์ด๊ธฐํ" --
.dding-dong/config.json ์ญ์ (ํ๋ก์ ํธ ์ค์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ง ํ์)
- "๋ด ์ค์ ์ด๊ธฐํ" --
.dding-dong/config.local.json ์ญ์ (๋ด ์ค์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ง ํ์)
- "์ทจ์"
์ฌ์ฉ์ ํ์ธ ํ, ์ญ์ ์ ์ ๋ฐฑ์
์ ์์ฑํฉ๋๋ค:
node --input-type=module -e "
import { backupConfig } from '${CLAUDE_PLUGIN_ROOT}/scripts/core/config.mjs';
const filePath = process.argv[1];
const result = backupConfig(filePath);
if (result) console.log('๋ฐฑ์
์์ฑ:', result);
else console.log('๋ฐฑ์
๋์ ํ์ผ ์์');
" '${TARGET_FILE_PATH}'
๋ฐฑ์
์์ฑ ํ ํด๋น ์ค์ ํ์ผ์ ์ญ์ ํฉ๋๋ค. ๋ฐฑ์
์คํจ ์์๋ ์ญ์ ๋ ์งํํฉ๋๋ค.
๊ด๋ จ ์คํฌ
- ์ฌ์ด๋ ํฉ ๊ด๋ฆฌ โ
/dding-dong:dd-sounds
- ์๋ฆผ ๋ฌธ์ ์ง๋จ โ
/dding-dong:dd-doctor
- ์ ์ฒด ๊ธฐ๋ฅ ์๋ด โ
/dding-dong:dd-help