dsh-output-styles 0.4.0 โ†’ 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md DELETED
@@ -1,217 +0,0 @@
1
- <div align="center">
2
-
3
- # ๐ŸŽจ dsh-output-styles
4
-
5
- **DeepSeek Harness ๅ‘ใ‘ Claude Code `outputStyles`** โ€”โ€” ใƒขใƒ‡ใƒซใฎๅ‡บๅŠ›ใ‚นใ‚ฟใ‚คใƒซใ‚’ๅฎŸ่กŒๆ™‚ใซใ€ใ‚ปใƒƒใ‚ทใƒงใƒณๅ˜ไฝใงใ€ๆฐธ็ถš็š„ใซๅˆ‡ใ‚Šๆ›ฟใˆใพใ™ใ€‚
6
-
7
- [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
8
- [![CI](https://github.com/PerryLink/dsh-output-styles/actions/workflows/ci.yml/badge.svg)](https://github.com/PerryLink/dsh-output-styles/actions/workflows/ci.yml)
9
- [![npm version](https://img.shields.io/npm/v/dsh-output-styles)](https://www.npmjs.com/package/dsh-output-styles)
10
- [![npm downloads](https://img.shields.io/npm/dm/dsh-output-styles)](https://www.npmjs.com/package/dsh-output-styles)
11
- [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
12
- [![DSH](https://img.shields.io/badge/deepseek--harness-0.1.0--rc.6-4d6bfe.svg)](#)
13
- [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg)](#)
14
-
15
- ๐ŸŒ [English](README.md) ยท [ไธญๆ–‡](README.zh.md) ยท [ๆ—ฅๆœฌ่ชž](README.ja.md) ยท [ํ•œ๊ตญ์–ด](README.ko.md) ยท [Espaรฑol](README.es.md)
16
-
17
- </div>
18
-
19
- ---
20
-
21
- `/style concise` โ€”โ€” ใ“ใ‚Œไปฅ้™ใฎ่ฟ”ไฟกใฏใ™ในใฆ็ฐกๆฝ”ใซใชใ‚Šใพใ™ใ€‚`/style step-by-step` โ€”โ€” ใƒขใƒ‡ใƒซใŒ็•ชๅทไป˜ใใฎๆ‰‹้ †ใง่ชฌๆ˜Žใ—ใพใ™ใ€‚`/style off` โ€”โ€” ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใซๆˆปใ‚Šใพใ™ใ€‚ใ‚ปใƒƒใ‚ทใƒงใƒณใ”ใจใซ 1 ใ‚ณใƒžใƒณใƒ‰ใ€ๅ†่ตทๅ‹•ใ‚’ใพใŸใ„ใงไฟๆŒใ•ใ‚Œใ€agent loop ใซใฏไธ€ๅˆ‡ๅค‰ๆ›ดใ‚’ๅŠ ใˆใพใ›ใ‚“ใ€‚
22
-
23
- ## โœจ ๆฉŸ่ƒฝ
24
-
25
- | | |
26
- |---|---|
27
- | ๐Ÿ—‚๏ธ **ใ‚นใ‚ฟใ‚คใƒซใƒฉใ‚คใƒ–ใƒฉใƒช** | ใ‚นใ‚ฟใ‚คใƒซใ”ใจใซ 1 ใคใฎ Markdown ใƒ•ใ‚กใ‚คใƒซ๏ผˆ`styles/*.md`๏ผ‰ใ€‚frontmatter ใซใƒกใ‚ฟใƒ‡ใƒผใ‚ฟใ€ๆœฌๆ–‡ใŒใƒขใƒ‡ใƒซใธใฎๆŒ‡็คบใงใ™ใ€‚`name` ใฏๆ—ขๅฎšใงใƒ•ใ‚กใ‚คใƒซๅใซใชใ‚Šใ€็ฉบ็™ฝใ‚’ๅซใ‚ใพใ™๏ผˆ`Diagrams first`๏ผ‰ใ€‚ๅŒๆขฑใฎ็ต„ใฟ่พผใฟใ‚นใ‚ฟใ‚คใƒซใฏ 6 ็จฎใงใ€Claude Code ใจๅŒ็ญ‰ใฎ `proactive` ใจ `learning` ใ‚’ๅซใฟใพใ™ใ€‚ |
28
- | โŒจ๏ธ **`/style` ใ‚ณใƒžใƒณใƒ‰** | ๅผ•ๆ•ฐใชใ—ใงใ‚นใ‚ฟใ‚คใƒซไธ€่ฆง๏ผˆ่ชฌๆ˜Žไป˜ใ๏ผ‰ใจ็พๅœจใฎ้ธๆŠžใ‚’่กจ็คบใ€‚`/style <name>` ใงๅˆ‡ใ‚Šๆ›ฟใˆใ€`/style off` ใงใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‚’ๅพฉๅ…ƒใ—ใพใ™ใ€‚`/style` ใ‚ˆใ‚ŠๅพŒใฎๆฎ‹ใ‚Šๅ…จไฝ“ใŒใ‚นใ‚ฟใ‚คใƒซๅใงใ™ใ€‚ |
29
- | ๐Ÿ’พ **ใ‚ปใƒƒใ‚ทใƒงใƒณๅ˜ไฝใฎๆฐธ็ถšๅŒ–** | ้ธๆŠžใฏ `output_style` ใ‚นใƒˆใƒฌใƒผใ‚ธใƒ‰ใƒกใ‚คใƒณใซ sessionId ใ‚’ใ‚ญใƒผใจใ—ใฆไฟๆŒใ•ใ‚Œใ€2 ใคใฎใ‚ปใƒƒใ‚ทใƒงใƒณใŒๅนฒๆธ‰ใ™ใ‚‹ใ“ใจใฏใชใใ€้ธๆŠžใฏๅ†่ตทๅ‹•ๅพŒใ‚‚ๆฎ‹ใ‚Šใพใ™ใ€‚ |
30
- | ๐Ÿงฉ **ใ‚ทใ‚นใƒ†ใƒ ใƒ—ใƒญใƒณใƒ—ใƒˆๆณจๅ…ฅ** | `systemPrompt.section()` ใฎ่ฒข็Œฎ๏ผˆorder 90๏ผ‰ใŒใ€ๆฏŽๅ›žใฎ็ต„ใฟ็ซ‹ใฆใง็พๅœจใฎใ‚ปใƒƒใ‚ทใƒงใƒณใฎใ‚นใ‚ฟใ‚คใƒซๆœฌๆ–‡ใ‚’ๆณจๅ…ฅใ—ใพใ™ใ€‚ๆœฌๆ–‡ใฏ่จญๅฎšๅฏ่ƒฝใชใƒใ‚ธใ‚งใƒƒใƒˆใงๅˆ‡ใ‚Š่ฉฐใ‚ใ‚‰ใ‚Œใพใ™ใ€‚ |
31
- | ๐ŸŽญ **Claude Code `keep-coding-instructions`** | `keep-coding-instructions: false`๏ผˆClaude Code ใจๅŒใ˜ๆ—ขๅฎš๏ผ‰ใฎใ‚นใ‚ฟใ‚คใƒซใฏใ‚ทใ‚นใƒ†ใƒ ใƒ—ใƒญใƒณใƒ—ใƒˆๅ…จไฝ“ใ‚’็ฝฎใๆ›ใˆใพใ™โ€”โ€”ใ‚ฝใƒ•ใƒˆใ‚ฆใ‚งใ‚ขใ‚จใƒณใ‚ธใƒ‹ใ‚ขใƒชใƒณใ‚ฐใ‹ใ‚‰้›ขใ‚Œใ‚‹ใ‚นใ‚ฟใ‚คใƒซๅ‘ใ‘ใงใ™ใ€‚ |
32
- | ๐Ÿ“Œ **ๅผทๅˆถใ‚นใ‚ฟใ‚คใƒซ** | Claude Code ใฎ `force-for-plugin`๏ผˆใ‚จใ‚คใƒชใ‚ขใ‚น `force`๏ผ‰ใฏใ‚ปใƒƒใ‚ทใƒงใƒณใฎ้ธๆŠžใ‚’็„ก่ฆ–ใ—ใฆ็„กๆกไปถใซใ‚นใ‚ฟใ‚คใƒซใ‚’้ฉ็”จใ—ใพใ™ใ€‚ๅผทๅˆถใ‚นใ‚ฟใ‚คใƒซใŒ 2 ใคใ‚ใ‚‹ใจ่ชญใฟ่พผใฟใซๅคฑๆ•—ใ—ใพใ™ใ€‚ |
33
- | ๐Ÿ” **Claude Code ไบ’ๆ›ๆ€ง** | `outputStyles` JSON ใ‚ณใƒฌใ‚ฏใ‚ทใƒงใƒณ๏ผˆ`{ name, description, prompt }`๏ผ‰ใ‚’่ชญใฟ่พผใฟใพใ™ใ€‚ๅ˜ไธ€ใ‚จใƒณใƒˆใƒชใพใŸใฏ `settings.json` ๅฝขๅผใฎ้…ๅˆ—ใซๅฏพๅฟœใ—ใ€่งฃๆžไธ่ƒฝใชใ‚จใƒณใƒˆใƒชใฏ่ญฆๅ‘Šไป˜ใใงใ‚นใ‚ญใƒƒใƒ—ใ—ใพใ™ใ€‚ |
34
- | ๐Ÿ“š **ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใฎ้šŽๅฑคๅŒ–** | `stylesDir` ใฏใƒชใ‚นใƒˆใงใ€ๅพŒๆ–นใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใŒๅ‰ๆ–นใฎใ‚‚ใฎใ‚’ไธŠๆ›ธใใ—ใพใ™๏ผˆๅŒๆขฑใฎ `styles/` ใŒๆœ€ไธ‹ๅฑคใงใ€`includeBuiltins: false` ใง็„กๅŠนๅŒ–๏ผ‰ใ€‚ |
35
- | ๐Ÿ”„ **ใƒ›ใƒƒใƒˆใƒชใƒญใƒผใƒ‰** | ใ‚นใ‚ฟใ‚คใƒซใƒ•ใ‚กใ‚คใƒซใฎๅค‰ๆ›ดใฏๅ†่ตทๅ‹•ใชใ—ใงๅๆ˜ ใ•ใ‚Œใพใ™๏ผˆ`watchStyles: false` ใง็„กๅŠนๅŒ–๏ผ‰ใ€‚ |
36
- | โš™๏ธ **settings ใจใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒ‡ใƒ•ใ‚ฉใƒซใƒˆ** | ไธ€ๅบฆใ‚‚้ธๆŠžใ—ใฆใ„ใชใ„ใ‚ปใƒƒใ‚ทใƒงใƒณใฏใ€DSH settings ใฎ `output-style.style`ใ€ๆฌกใ„ใง `defaultStyle` ใซใƒ•ใ‚ฉใƒผใƒซใƒใƒƒใ‚ฏใ—ใพใ™ใ€‚ |
37
- | ๐Ÿ–ฑ๏ธ **Web ใƒ”ใƒƒใ‚ซใƒผ** | `dsh.client` ใ‚จใƒณใƒˆใƒช๏ผˆ`dsh-output-styles/client`๏ผ‰ใŒใ€ใƒ›ใ‚นใƒˆใฎ `/style` ใ‚ณใƒžใƒณใƒ‰ใ‚’ๆŠ•ๅฝฑใƒ™ใƒผใ‚นใฎใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใƒ”ใƒƒใ‚ซใƒผใง่ฃ…้ฃพใ—ใพใ™ใ€‚ |
38
- | ๐Ÿ“Š **ใ‚ปใƒƒใ‚ทใƒงใƒณๆŠ•ๅฝฑ** | Web UI ๅ‘ใ‘ใฎ `style` ๆŠ•ๅฝฑ๏ผˆ`{ options, currentValue }`๏ผ‰ใ€‚ใ‚ปใƒƒใ‚ทใƒงใƒณใƒญใ‚ฐๅ†…ใง็ขบๅฎšใ—ใŸใ‚ณใƒžใƒณใƒ‰ใ‹ใ‚‰ๆŠ˜ใ‚ŠใŸใŸใพใ‚Œใพใ™ใ€‚ |
39
- | ๐Ÿงฏ **ๅคฑๆ•—ใฏๆ˜Ž็คบใ€ใ‚นใ‚ญใƒƒใƒ—ใฏใ‚ฏใƒชใƒผใƒณใซ** | ่จญๅฎšใƒŸใ‚นใฏ่ชญใฟ่พผใฟๆ™‚ใซไพ‹ๅค–ใ‚’ๆŠ•ใ’ใพใ™ใ€‚ไธๆญฃใชใ‚นใ‚ฟใ‚คใƒซใƒ•ใ‚กใ‚คใƒซใฏ่ญฆๅ‘Šไป˜ใใงใ‚นใ‚ญใƒƒใƒ—ใ•ใ‚Œใ€ใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซใ‚’ๅฃŠใ™ใ“ใจใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ |
40
- | ๐ŸŒ **5 ่จ€่ชžใฎใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ** | EN ยท ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž ยท ํ•œ๊ตญ์–ด ยท Espaรฑolใ€‚ |
41
-
42
- ## ๐Ÿš€ ใ‚ฏใ‚คใƒƒใ‚ฏใ‚นใ‚ฟใƒผใƒˆ
43
-
44
- ```sh
45
- # 1. ใ‚คใƒณใ‚นใƒˆใƒผใƒซโ€”โ€”ใ“ใฎใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฏ bundle ใƒฌใ‚คใƒคใƒผใชใฎใงใ€1 ใ‚ณใƒžใƒณใƒ‰ใง
46
- # storage + storage-json + storage-domain + ใƒ—ใƒฉใ‚ฐใ‚คใƒณ่กŒใŒๆง‹ๆˆใ•ใ‚Œใพใ™๏ผš
47
- dsh plugin --profile <name> add dsh-output-styles
48
-
49
- # 2. ่ตทๅ‹•ใ—ใฆๅˆ‡ใ‚Šๆ›ฟใˆ
50
- dsh --profile <name>
51
- /style # โ†’ output style offใ€ใใฎๅพŒใซใ‚นใ‚ฟใ‚คใƒซใ”ใจใซ 1 ่กŒ
52
- /style concise # โ†’ switched to concise
53
- /style Diagrams first # โ†’ ็ฉบ็™ฝใ‚’ๅซใ‚€ๅๅ‰ใ‚‚ไฝฟใˆใพใ™
54
- /style off # โ†’ ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใซๆˆปใ‚‹
55
- ```
56
-
57
- ใ“ใฎใƒฌใ‚คใƒคใƒผใฏ web ใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซใซๅฏพใ—ใฆๅ†ช็ญ‰ใงใ™๏ผˆid ๅ˜ไฝใฎๆŒฟๅ…ฅใŒๅŒ id ใฎ่กŒใ‚’็ฝฎใๆ›ใˆใพใ™๏ผ‰ใ€‚web ใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซใซใฏ `storage` ใŒใ‚ใ‚‰ใ‹ใ˜ใ‚ๅซใพใ‚Œใฆใ„ใพใ™ใ€‚Web ใƒ”ใƒƒใ‚ซใƒผใ‚’ไฝฟใ†ใซใฏใ€ใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซใซใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ่กŒใ‚’่ฟฝๅŠ ใ—ใพใ™๏ผš
58
-
59
- ```yaml
60
- - id: output-styles-client
61
- name: 'dsh-output-styles/client'
62
- ```
63
-
64
- ## ๐ŸŽฌ ใƒ‡ใƒข
65
-
66
- ```
67
- You > /style
68
- output style off
69
- concise โ€” Terse, direct answers โ€” minimal prose, no preamble. (Daily coding work, tool-heavy sessions, or when prompt length matters.)
70
- explanatory โ€” Educational answers with short "Insights" that teach as you work. (Learning a codebase, onboarding, โ€ฆ)
71
- formal โ€” Formal, precise prose with complete sentences and defined terms. (Reports, documentation, release notes, โ€ฆ)
72
- learning โ€” Collaborative learn-by-doing mode with short "Insights" and small hands-on steps for the user. (Pairing, onboarding, โ€ฆ)
73
- proactive โ€” Execute immediately, assume reasonable defaults, and prefer action over planning. (Routine multi-step work, โ€ฆ)
74
- step-by-step โ€” Numbered reasoning steps with explicit intermediate results. (Debugging, design decisions, โ€ฆ)
75
-
76
- You > /style concise
77
- switched to concise
78
-
79
- You > ไธ€ๆ–‡ใ ใ‘ใง่‡ชๅทฑ็ดนไป‹ใ—ใฆใใ ใ•ใ„ใ€‚
80
- AI > ็งใฏ DeepSeek Harness ใƒ—ใƒฉใ‚ฐใ‚คใƒณใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ไธŠใงๅ‹•ไฝœใ™ใ‚‹ใ€deepseek-v4-pro ใƒขใƒ‡ใƒซใƒ™ใƒผใ‚นใฎ AI ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใงใ™ใ€‚
81
- ```
82
-
83
- ## ๐Ÿง  ไป•็ต„ใฟ
84
-
85
- ```mermaid
86
- flowchart LR
87
- U[/style concise ใจๅ…ฅๅŠ›] --> C[ใ‚ณใƒžใƒณใƒ‰ใƒฌใ‚ธใ‚นใƒˆใƒช]
88
- C -->|command/run ใ‚’่จ˜้Œฒ| L[(ใ‚ปใƒƒใ‚ทใƒงใƒณใƒญใ‚ฐ)]
89
- C -->|put {style, source}| D[(output_style ใƒ‰ใƒกใ‚คใƒณ)]
90
- D --> R[OutputStyleRuntime]
91
- R -->|ๆฏŽๅ›žใฎ็ต„ใฟ็ซ‹ใฆใงๆœฌๆ–‡ใ‚’ๆณจๅ…ฅ| S[systemPrompt ใ‚ปใ‚ฏใ‚ทใƒงใƒณ order 90]
92
- S --> M[ใƒขใƒ‡ใƒซใƒชใ‚ฏใ‚จใ‚นใƒˆ]
93
- M -->|ๅฎŒๅ…จใชใ‚ทใ‚นใƒ†ใƒ ใƒ—ใƒญใƒณใƒ—ใƒˆ| H[request/header ใ‚’่จ˜้Œฒ]
94
- ```
95
-
96
- ใƒขใƒ‡ใƒซใŒ่ฆ‹ใ‚‹ใ‚‚ใฎใฏใ™ในใฆใ‚ปใƒƒใ‚ทใƒงใƒณใƒญใ‚ฐใ‹ใ‚‰ๅ†ๆง‹็ฏ‰ใงใใพใ™โ€”โ€”ๆ–ฐใ—ใ„ใ‚ปใƒƒใ‚ทใƒงใƒณใ‚คใƒ™ใƒณใƒˆๅž‹ใ‚‚ agent-loop ใฎๅค‰ๆ›ดใ‚‚ไธ่ฆใงใ™ใ€‚ใ‚นใ‚ฟใ‚คใƒซๅใฏ `command/run` ใ‹ใ‚‰ใ€ๆณจๅ…ฅใ•ใ‚ŒใŸๆญฃ็ขบใชใƒ†ใ‚ญใ‚นใƒˆใฏ `request/header` ใ‹ใ‚‰ๅพ—ใ‚‰ใ‚Œใ€ๅ‡บๆ‰€ใƒžใƒผใ‚ซใƒผ `{ kind: 'plugin', plugin: 'dsh-output-styles' }` ใฏใƒ‰ใƒกใ‚คใƒณใƒฌใ‚ณใƒผใƒ‰ใซๆฎ‹ใ‚Šใพใ™ใ€‚ใ‚นใ‚ฟใ‚คใƒซใฏใƒกใ‚คใƒณไผš่ฉฑใฎใฟใซ้ฉ็”จใ•ใ‚Œใ€ใ‚ตใƒ–ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎใ‚ปใƒƒใ‚ทใƒงใƒณใฏ็‹ฌ่‡ชใฎใƒ—ใƒญใƒณใƒ—ใƒˆใ‚’ไฟๆŒใ—ใพใ™๏ผˆClaude Code ใจไธ€่‡ด๏ผ‰ใ€‚
97
-
98
- ## โš™๏ธ ่จญๅฎš
99
-
100
- ใ™ในใฆใฎ่ชฟๆ•ด้ …็›ฎใฏๆคœ่จผไป˜ใใฎ Schemastery `Config` ใƒ•ใ‚ฃใƒผใƒซใƒ‰ใงใ™๏ผˆไธๆญฃใชๅ€คใฏ่ชญใฟ่พผใฟใซๅคฑๆ•—ใ—ใพใ™๏ผ‰๏ผš
101
-
102
- | ใƒ•ใ‚ฃใƒผใƒซใƒ‰ | ๆ—ขๅฎš | ๆ„ๅ‘ณ |
103
- |---|---|---|
104
- | `stylesDir` | `[]` | ใ‚นใ‚ฟใ‚คใƒซใƒฉใ‚คใƒ–ใƒฉใƒชใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ€‚cwd ใ‚’ๅŸบๆบ–ใซ่งฃๆฑบใ•ใ‚Œใ€ๅพŒๆ–นใฎใ‚จใƒณใƒˆใƒชใŒๅ‰ๆ–นใฎใ‚‚ใฎใ‚’ไธŠๆ›ธใใ—ใพใ™ใ€‚`[]` = ๅŒๆขฑใฎ `styles/` ใฎใฟใ€‚่ฃธใฎๆ–‡ๅญ—ๅˆ—ใฏๅ˜ไธ€ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใฎใƒชใ‚นใƒˆใจใฟใชใ•ใ‚Œใพใ™ใ€‚ |
105
- | `maxStyleChars` | `4000` | ใ‚นใ‚ฟใ‚คใƒซๆœฌๆ–‡ใฎใƒใ‚ธใ‚งใƒƒใƒˆ๏ผˆใ‚ณใƒผใƒ‰ใƒใ‚คใƒณใƒˆใ€โ‰ฅ 1๏ผ‰ใ€‚้•ทใ„ๆœฌๆ–‡ใฏใƒžใƒผใ‚ซใƒผไป˜ใใงๅˆ‡ใ‚Š่ฉฐใ‚ใ‚‰ใ‚Œใพใ™ใ€‚ |
106
- | `defaultStyle` | `''` | ไธ€ๅบฆใ‚‚้ธๆŠžใ—ใฆใ„ใชใ„ใ‚ปใƒƒใ‚ทใƒงใƒณ๏ผˆใ‹ใค settings ใฎๆ—ขๅฎšใ‚‚ใชใ„๏ผ‰ๅ‘ใ‘ใฎใ‚นใ‚ฟใ‚คใƒซใ€‚`''` = ใ‚นใ‚ฟใ‚คใƒซใชใ—ใ€‚ |
107
- | `compatJson` | `true` | Claude Code `outputStyles` ใฎ JSON ใ‚จใƒณใƒˆใƒช๏ผˆๅ˜ไธ€ใ‚ชใƒ–ใ‚ธใ‚งใ‚ฏใƒˆใพใŸใฏ้…ๅˆ—๏ผ‰ใ‚’่ชญใฟ่พผใฟใพใ™ใ€‚ |
108
- | `sectionOrder` | `90` | ๆณจๅ…ฅใ‚ปใ‚ฏใ‚ทใƒงใƒณใฎ้ †ๅบ๏ผˆ0 = personaใ€100โ€“199 = ใƒ„ใƒผใƒซใ‚ฌใ‚คใƒ€ใƒณใ‚น๏ผ‰ใ€‚ |
109
- | `truncationMarker` | `"\n\n[style truncated]"` | ๅˆ‡ใ‚Š่ฉฐใ‚ไฝ็ฝฎใซไป˜ๅŠ ใ•ใ‚Œใ‚‹ใƒžใƒผใ‚ซใƒผใ€‚ |
110
- | `includeBuiltins` | `true` | ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธๅŒๆขฑใฎ `styles/` ใ‚’ๆœ€ๅ„ชๅ…ˆๅบฆใฎไฝŽใ„ใƒฌใ‚คใƒคใƒผใจใ—ใฆๅซใ‚ใพใ™ใ€‚ |
111
- | `watchStyles` | `true` | ใ‚นใ‚ฟใ‚คใƒซใƒ•ใ‚กใ‚คใƒซใŒใƒ‡ใ‚ฃใ‚นใ‚ฏไธŠใงๅค‰ๆ›ดใ•ใ‚ŒใŸใจใใซใƒฉใ‚คใƒ–ใƒฉใƒชใ‚’ๅ†่ชญใฟ่พผใฟใ—ใพใ™ใ€‚ |
112
- | `rules` | `[]` | ใ‚ปใƒƒใ‚ทใƒงใƒณ/ใƒ„ใƒผใƒซๅˆฅใฎๆ็”ปใƒซใƒผใƒซ๏ผš`[{ match: { tool?, contentType?, session? }, style, priority? }]`โ€”โ€”`style` ใฏใƒฌใƒณใƒ€ใƒฉใƒผ id๏ผˆใƒ“ใƒซใƒˆใ‚คใƒณใฏใ‚นใ‚ฟใ‚คใƒซๅใจๅŒๅ๏ผ‰ใ€‚ |
113
- | `enableExport` | `true` | `/export` ใ‚ณใƒžใƒณใƒ‰ใ‚’็™ป้Œฒ๏ผˆMarkdown/HTML ใ‚ปใƒƒใ‚ทใƒงใƒณๆ›ธใๅ‡บใ—ใ€ใƒฌใƒณใƒ€ใƒฉใƒผๅฏพๅฟœ๏ผ‰ใ€‚ |
114
-
115
- ## ๐ŸŽจ ใƒฌใƒณใƒ€ใƒฉใƒผใƒ—ใƒญใƒˆใ‚ณใƒซ
116
-
117
- `output.render.*` ใƒ—ใƒญใƒˆใ‚ณใƒซใฏใƒ—ใƒฌใ‚ผใƒณใƒ†ใƒผใ‚ทใƒงใƒณๅฑคใ‚’ๆ‹กๅผต็‚นใซใ—ใพใ™ใ€‚ใƒฌใƒณใƒ€ใƒฉใƒผใฏ**็ด”็ฒ‹ใช presenter**โ€”โ€”`presenter(text, context)` ใŒๅผ•ๆ•ฐใ‚’่กจ็คบใƒ‡ใƒผใ‚ฟใซๅ†™ใ—ใ€DOM ใซใฏ่งฆใ‚Œใพใ›ใ‚“โ€”โ€”ใƒ„ใƒผใƒซๅใจใ‚ณใƒณใƒ†ใƒณใƒ„ใ‚ฟใ‚คใƒ—ใงใƒžใƒƒใƒใ—ใ€ๅ„ชๅ…ˆๅบฆใงไธฆใณใพใ™ใ€‚ใ‚ตใƒผใƒ‰ใƒ‘ใƒผใƒ†ใ‚ฃใฏ `ctx.outputRenderers.register({ id, match, priority, presenter })` ใง็™ป้Œฒ๏ผˆregister ใฏ disposer ใ‚’่ฟ”ใ—ใ€ๅ‘ผใณๅ‡บใ—ๅดใฎ ctx.effect ใŒๆ‰€ๆœ‰๏ผ‰ใ€‚ๅ„ใƒฌใƒณใƒ€ใƒผใฏใพใš `output.render/before` waterfall๏ผˆใƒชใ‚นใƒŠใƒผใฏๅฟ…ใš `next()`๏ผ‰ใ‚’้€šใ‚Šใ€ๆฌกใซใƒซใƒผใƒซ่กจ๏ผˆใ‚ปใƒƒใ‚ทใƒงใƒณ/ใƒ„ใƒผใƒซๅˆฅ๏ผš`rules: [{ match: { tool: 'bash' }, style: 'concise' }]`ใ€่จญๅฎš็”ป้ข `output-style-rules` ใง็ทจ้›†ๅฏ๏ผ‰ใ€‚ใƒ“ใƒซใƒˆใ‚คใƒณใฏ `concise`๏ผˆ็ฉบ็™ฝๅœง็ธฎ + ไบˆ็ฎ—ๅˆ‡ใ‚Š่ฉฐใ‚๏ผ‰ใจ `step-by-step`๏ผˆๆ‰‹้ †ใฎ้€ฃ็•ชๅŒ–๏ผ‰ใ€‚็›ฃๆŸปๅฏ่ƒฝ๏ผšๅ„็ตๆžœใฏ `{ original, rendered, rendererId, changed }` ใ‚’ๆŒใกใ€ๅŽŸๆ–‡ใฏใ‚ปใƒƒใ‚ทใƒงใƒณใƒญใ‚ฐใใฎใ‚‚ใฎใงๆฑบๅฎš่ซ–็š„ใซๅ†ๆง‹็ฏ‰ใงใใพใ™ใ€‚`/export [markdown|html] [--renderer=<id>]` ใฏๅŒใ˜ใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใง็พๅœจใฎใ‚ปใƒƒใ‚ทใƒงใƒณใ‚’ๆ›ธใๅ‡บใ—ใพใ™ใ€‚ๅฎŒๅ…จใชไป•ๆง˜๏ผšdocs/renderer-protocol.md๏ผˆ่‹ฑ่ชž๏ผ‰/ docs/renderer-protocol.zh.mdใ€‚
118
- ## ๐Ÿ“š ใ‚นใ‚ฟใ‚คใƒซใƒฉใ‚คใƒ–ใƒฉใƒช
119
-
120
- <details>
121
- <summary><code>styles/concise.md</code></summary>
122
-
123
- ```markdown
124
- ---
125
- name: concise
126
- description: Terse, direct answers โ€” minimal prose, no preamble.
127
- whenToUse: Daily coding work, tool-heavy sessions, or when prompt length matters.
128
- keep-coding-instructions: true
129
- ---
130
-
131
- You are in the concise output style for this conversation.
132
- - Lead with the direct answer; skip preamble, restatements, and filler.
133
- - ๅ›ž็ญ”่ฏญ่จ€่ทŸ้š็”จๆˆท่ฏญ่จ€๏ผšไธญๆ–‡ๆ้—ฎ็”จไธญๆ–‡ๅ›ž็ญ”๏ผŒ่‹ฑๆ–‡ๆ้—ฎ็”จ่‹ฑๆ–‡ๅ›ž็ญ”ใ€‚
134
- ```
135
-
136
- </details>
137
-
138
- frontmatter ใƒ•ใ‚ฃใƒผใƒซใƒ‰๏ผš
139
-
140
- | ใƒ•ใ‚ฃใƒผใƒซใƒ‰ | ๆ—ขๅฎš | ๆ„ๅ‘ณ |
141
- |---|---|---|
142
- | `name` | ใƒ•ใ‚กใ‚คใƒซๅ | ๅˆ‡ใ‚Šๆ›ฟใˆๅฏพ่ฑกใ€‚่‹ฑๅญ—ใ€ๆ•ฐๅญ—ใ€็ฉบ็™ฝใ€ใƒใ‚คใƒ•ใƒณ๏ผˆๅ…ˆ้ ญใƒปๆœซๅฐพใฎ็ฉบ็™ฝใฏไธๅฏใ€‚`off` ใฏไบˆ็ด„ๆธˆใฟ๏ผ‰ใ€‚ |
143
- | `description` | โ€”๏ผˆๅฟ…้ ˆ๏ผ‰ | ไธ€่ฆงใจใƒ”ใƒƒใ‚ซใƒผใซ่กจ็คบใ•ใ‚Œใ‚‹ 1 ๆ–‡ใ€‚ |
144
- | `whenToUse` | โ€” | ไธ€่ฆงใซ่ฟฝ่จ˜ใ•ใ‚Œใ‚‹ไปปๆ„ใฎๅˆฉ็”จใ‚ฌใ‚คใƒ€ใƒณใ‚นใ€‚ |
145
- | `keep-coding-instructions` | `false` | `true` ใฎใจใใƒใƒผใƒใ‚นใฎใƒ—ใƒญใƒณใƒ—ใƒˆ๏ผˆใ‚ขใ‚คใƒ‡ใƒณใƒ†ใ‚ฃใƒ†ใ‚ฃใ€personaใ€ใƒ„ใƒผใƒซใ‚ฌใ‚คใƒ€ใƒณใ‚น๏ผ‰ใ‚’ไฟๆŒใ—ใ€`false` ใฎใจใๅฎŒๅ…จใซ็ฝฎใๆ›ใˆใพใ™๏ผˆClaude Code ใฎใ‚ปใƒžใƒณใƒ†ใ‚ฃใ‚ฏใ‚น๏ผ‰ใ€‚ |
146
- | `force-for-plugin` | `false` | Claude Code ๅ…ฌๅผใƒ•ใ‚ฃใƒผใƒซใƒ‰๏ผšใ‚ปใƒƒใ‚ทใƒงใƒณใฎ้ธๆŠžใ‚’็„ก่ฆ–ใ—ใฆ็„กๆกไปถใซ้ฉ็”จใ—ใพใ™ใ€‚`force` ใฏใ‚จใ‚คใƒชใ‚ขใ‚นใงใ€่จญๅฎšใงใใ‚‹ใฎใฏๆœ€ๅคง 1 ใคใฎใ‚นใ‚ฟใ‚คใƒซใงใ™ใ€‚ |
147
-
148
- <details>
149
- <summary>Claude Code <code>outputStyles</code> JSON๏ผˆ<code>compatJson: true</code>๏ผ‰</summary>
150
-
151
- ```json
152
- { "name": "explain", "description": "Explain like a teacher.", "prompt": "Teach in small steps." }
153
- ```
154
-
155
- ใ‚จใƒณใƒˆใƒชใฏ Claude Code ใŒๆ›ธใ่พผใ‚€ใจใŠใ‚Šใซ `keep-coding-instructions` ใจ `force-for-plugin` ใ‚’ๅ—ใ‘ไป˜ใ‘ใพใ™ใ€‚ใƒฌใ‚ฌใ‚ทใƒผใฎ `settings.json` ้…ๅˆ—๏ผˆ`[{ โ€ฆ }, { โ€ฆ }]`๏ผ‰ใฏใใฎใพใพ่ชญใฟ่พผใพใ‚Œใ€ไธๆญฃใชใ‚จใƒณใƒˆใƒชใฏ่ญฆๅ‘Šไป˜ใใงใ‚นใ‚ญใƒƒใƒ—ใ•ใ‚Œใพใ™ใ€‚
156
-
157
- </details>
158
-
159
- ## โŒจ๏ธ ใ‚ณใƒžใƒณใƒ‰ใƒชใƒ•ใ‚กใƒฌใƒณใ‚น
160
-
161
- | ๅ…ฅๅŠ› | ็ตๆžœ |
162
- |---|---|
163
- | `/style` | ็พๅœจใฎ้ธๆŠž + ใ‚นใ‚ฟใ‚คใƒซใ”ใจใซ 1 ่กŒ๏ผˆname โ€” description๏ผ‰ใ‚’ไธ€่ฆง่กจ็คบ |
164
- | `/style concise` | ๅˆ‡ใ‚Šๆ›ฟใˆ๏ผˆๆฐธ็ถšๆ›ธใ่พผใฟ๏ผ‰ใ€`switched to concise` |
165
- | `/style Diagrams first` | ่ค‡ๆ•ฐ่ชžใฎๅๅ‰ใฏๆฎ‹ใ‚Šๅ…จไฝ“ใŒๅฏพ่ฑก |
166
- | `/style off` | ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใ‚’ๅพฉๅ…ƒ๏ผˆsettings ใฎๆ—ขๅฎšใ€ๆฌกใ„ใง `defaultStyle`๏ผ‰ |
167
- | `/style nope` | `error: unknown output style "nope" (available: โ€ฆ)` |
168
-
169
- ## ๐Ÿ–ฑ๏ธ Web ใƒ”ใƒƒใ‚ซใƒผ
170
-
171
- `dsh.client` ใ‚จใƒณใƒˆใƒชใฏใ€ใƒ›ใ‚นใƒˆใฎ `/style` ใ‚ณใƒžใƒณใƒ‰ใฎๅผ•ๆ•ฐใชใ—ๅ‘ผใณๅ‡บใ—ใ‚’ใƒใƒƒใƒ—ใ‚ขใƒƒใƒ—ใƒ”ใƒƒใ‚ซใƒผใง่ฃ…้ฃพใ—ใพใ™๏ผšใ€Œoffใ€่กŒ + ใƒฉใ‚คใƒ–ใƒฉใƒชใฎใ‚นใ‚ฟใ‚คใƒซใ”ใจใซ 1 ่กŒ๏ผˆ`description ยท whenToUse`๏ผ‰ใงใ€ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ–ใช่กŒใŒใƒžใƒผใ‚ฏใ•ใ‚Œใพใ™ใ€‚้ธๆŠžใ™ใ‚‹ใจใ‚ณใƒžใƒณใƒ‰ Remote ใ‚’้€šใ˜ใฆ `/style <name>` ใŒ้€ไฟกใ•ใ‚Œใ‚‹ใŸใ‚ใ€ใฉใฎๅˆ‡ใ‚Šๆ›ฟใˆใ‚‚ใƒ›ใ‚นใƒˆใฎๆฐธ็ถš็š„ใชใ‚ณใƒžใƒณใƒ‰ใƒฉใ‚คใƒ•ใ‚ตใ‚คใ‚ฏใƒซใ‚’็ตŒ็”ฑใ—ใ€`style` ๆŠ•ๅฝฑใŒๅ”ฏไธ€ใฎ่กจ็คบไบ‹ๅฎŸใงใ‚ใ‚Š็ถšใ‘ใพใ™ใ€‚ใƒ”ใƒƒใ‚ซใƒผใฎๆ–‡่จ€ใฏ Web UI ใŒๅŒๆขฑใ™ใ‚‹ `zh`/`en` ใฎ่จ€่ชžใƒšใ‚ขใซๅพ“ใ„ใพใ™ใ€‚
172
-
173
- ## ๐Ÿ” ็ซถๅˆใƒใ‚งใƒƒใ‚ฏ
174
-
175
- ้–‹็™บๅ‰ใซ DSH ใ‚จใ‚ณใ‚ทใ‚นใƒ†ใƒ ใ‚’่ชฟๆŸปใ—ใพใ—ใŸ๏ผˆ2026-08 ใ‚นใƒŠใƒƒใƒ—ใ‚ทใƒงใƒƒใƒˆ๏ผ‰๏ผš[topic:dsh-plugin](https://github.com/topics/dsh-plugin) ้…ไธ‹ใซ `style`/`output-style` ใฎใƒชใƒใ‚ธใƒˆใƒชใฏใชใใ€4 ใคใฎไธป่ฆใช [awesome ใƒชใ‚นใƒˆ](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) ใซ output-style ใ‚ซใƒ†ใ‚ดใƒชใฏใชใใ€[dsh-hub ใ‚ซใ‚ฟใƒญใ‚ฐ](https://github.com/omdsh-dev/dsh-hub-workshop) ใซใ‚‚ใ‚จใƒณใƒˆใƒชใฏใ‚ใ‚Šใพใ›ใ‚“ใ€‚ๆœ€ใ‚‚่ฟ‘ใ„้šฃๆŽฅใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆโ€”โ€”[dsh-soul-md](https://github.com/Scorp1o117/dsh-soul-md)๏ผˆpersona๏ผ‰ใจ [dsh-claude-marketplace](https://github.com/ben7am1n/dsh-claude-marketplace)๏ผˆๅ‡บๅŠ›ใ‚นใ‚ฟใ‚คใƒซใฏๆ˜Ž็คบ็š„ใซ v0.2+ ใธๅ…ˆ้€ใ‚Š๏ผ‰โ€”โ€”ใฏ้šฃๆŽฅใ—ใฆใ„ใฆใ€็ซถๅˆใฏใ—ใพใ›ใ‚“ใ€‚
176
-
177
- ## ๐Ÿ†š Claude Code ใจใฎ้•ใ„
178
-
179
- | | Claude Code | dsh-output-styles |
180
- |---|---|---|
181
- | ใ‚นใ‚ฟใ‚คใƒซใƒ•ใ‚กใ‚คใƒซ | ใƒฆใƒผใ‚ถใƒผ/ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ/ใƒžใƒใƒผใ‚ธใƒ‰้šŽๅฑคใฎ `.claude/output-styles` | `stylesDir` ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒช + ๅŒๆขฑใฎ `styles/`ใ€‚ๅพŒๆ–นใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใŒๅ„ชๅ…ˆ |
182
- | ใ‚ซใ‚นใ‚ฟใƒ ใ‚นใ‚ฟใ‚คใƒซ | Markdownใ€frontmatter `name`/`description`/`keep-coding-instructions`/`force-for-plugin` | ๅŒใ˜ใƒ•ใ‚ฃใƒผใƒซใƒ‰๏ผˆ`force-for-plugin` ใ‚’ใใฎใพใพๅ—ใ‘ไป˜ใ‘ใ€`force` ใฏใ‚จใ‚คใƒชใ‚ขใ‚น๏ผ‰+ `whenToUse` |
183
- | ใƒฌใ‚ฌใ‚ทใƒผ JSON | `settings.json` ๅ†…ใฎ `outputStyles` ้…ๅˆ— | ใใฎใพใพ่ชญใฟ่พผใฟ๏ผˆ`compatJson: true`๏ผ‰ |
184
- | ๅๆ˜ ใ‚ฟใ‚คใƒŸใƒณใ‚ฐ | `/clear` ๅพŒใพใŸใฏๆ–ฐใ—ใ„ใ‚ปใƒƒใ‚ทใƒงใƒณ | ๅณๆ™‚โ€”โ€”ใ‚ทใ‚นใƒ†ใƒ ใƒ—ใƒญใƒณใƒ—ใƒˆใฏใƒชใ‚ฏใ‚จใ‚นใƒˆใ”ใจใซๅ†ๆง‹็ฏ‰ |
185
- | ใ‚ตใƒ–ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆ | ใ‚นใ‚ฟใ‚คใƒซใฏ้ฉ็”จใ•ใ‚Œใชใ„ | ๅŒใ˜โ€”โ€”ใ‚ตใƒ–ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎใ‚ปใƒƒใ‚ทใƒงใƒณใฏ็‹ฌ่‡ชใฎใƒ—ใƒญใƒณใƒ—ใƒˆใ‚’ไฟๆŒ |
186
- | ๅˆ‡ใ‚Šๆ›ฟใˆ | `/config` ใƒกใƒ‹ใƒฅใƒผใพใŸใฏ `outputStyle` ่จญๅฎš๏ผˆ`/output-style` ใ‚ณใƒžใƒณใƒ‰ใฏ v2.1.91 ใงๅ‰Š้™ค๏ผ‰ | `/style` ใ‚ณใƒžใƒณใƒ‰ + Web ใƒ”ใƒƒใ‚ซใƒผ + settings `output-style.style` |
187
-
188
- ## ๐Ÿงช ้–‹็™บ
189
-
190
- ```sh
191
- pnpm install
192
- pnpm run typecheck # ไธกๆ–นใฎ tsc ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆ
193
- pnpm test # vitest โ€” 93 ใƒ†ใ‚นใƒˆ
194
- pnpm run verify # typecheck + ใƒ†ใ‚นใƒˆ + ่‡ชๅทฑๅฎŒ็ตใƒใ‚งใƒƒใ‚ฏ๏ผˆprepublishOnly ใ‚ฒใƒผใƒˆ๏ผ‰
195
- pnpm run build # lib/ ๆˆๆžœ็‰ฉ๏ผˆใƒ›ใ‚นใƒˆ + ใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆ bundle๏ผ‰
196
- pnpm pack # dsh plugin add ็”จใฎ tarball
197
- ```
198
-
199
- ใƒชใƒชใƒผใ‚น๏ผš`package.json` ใฎใƒใƒผใ‚ธใƒงใƒณใจไธ€่‡ดใ™ใ‚‹ๆŽฅๅฐพ่พžใ‚’ๆŒใค `v*` ใ‚ฟใ‚ฐใ‚’ push ใ™ใ‚‹ใจ Publish ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใŒ่ตทๅ‹•ใ—ใพใ™โ€”โ€”ๅฎŒๅ…จๆคœ่จผใฎๅพŒใซ npm ใธๅ…ฌ้–‹๏ผˆprovenance ไป˜ใ๏ผ‰ใ€‚ใ‚ใ‚‰ใ‚†ใ‚‹ `npm publish` ใ‚‚ `prepublishOnly` ็ตŒ็”ฑใง `verify` ใ‚ฒใƒผใƒˆใ‚’้€š้Žใ—ใพใ™ใ€‚
200
-
201
- ๆง‹ๆˆใฏ [omdsh-dev/plugin-template](https://github.com/omdsh-dev/plugin-template) ใซๅพ“ใ„ใพใ™๏ผš`src/index.ts`๏ผˆใƒ—ใƒฉใ‚ฐใ‚คใƒณใƒกใ‚ฟใƒ‡ใƒผใ‚ฟ๏ผ‰ใ€`src/config.ts`๏ผˆใ‚นใ‚ญใƒผใƒž๏ผ‰ใ€`src/runtime.ts`๏ผˆใƒฉใƒณใ‚ฟใ‚คใƒ ใ‚ตใƒผใƒ“ใ‚น + ใ‚ขใ‚ฏใƒ†ใ‚ฃใƒ™ใƒผใ‚ทใƒงใƒณ๏ผ‰ใ€`src/invariant.ts`๏ผˆไธๅค‰ๆกไปถ๏ผ‰ใ€`src/client/`๏ผˆWeb ใƒ”ใƒƒใ‚ซใƒผ๏ผ‰ใ€`styles/`๏ผˆ็ต„ใฟ่พผใฟใ‚นใ‚ฟใ‚คใƒซ๏ผ‰ใ€‚
202
-
203
- ## ๐Ÿ‘ฅ ใ‚ณใƒณใƒˆใƒชใƒ“ใƒฅใƒผใ‚ฟใƒผ
204
-
205
- ๆœฌใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซ่ฒข็Œฎใ—ใฆใใ ใ•ใฃใŸใ™ในใฆใฎๆ–นใซๆ„Ÿ่ฌใ—ใพใ™๏ผš
206
-
207
- - [@PerryLink](https://github.com/PerryLink) โ€” ไฝœ่€…ๅ…ผใƒกใƒณใƒ†ใƒŠใƒผ๏ผšใƒ—ใƒฉใ‚ฐใ‚คใƒณใ‚ขใƒผใ‚ญใƒ†ใ‚ฏใƒใƒฃใ€ใ‚นใ‚ฟใ‚คใƒซใƒฉใ‚คใƒ–ใƒฉใƒชใ€bundle ใ‚คใƒณใ‚นใƒˆใƒผใƒซใ€Web ใƒ”ใƒƒใ‚ซใƒผใ€5 ่จ€่ชžใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใ€CI/ใƒชใƒชใƒผใ‚นใƒ„ใƒผใƒซใ€‚
208
-
209
- ใƒใ‚ฐใ‚„ใ‚ขใ‚คใƒ‡ใ‚ขใŒใ‚ใ‚Œใฐ [issue](https://github.com/PerryLink/dsh-output-styles/issues) ใ‚„ [pull request](https://github.com/PerryLink/dsh-output-styles/pulls) ใ‚’ใฉใ†ใžใ€‚ใฉใฎ่จ€่ชžใงใฎ่ฒข็Œฎใ‚‚ๆญ“่ฟŽใ—ใพใ™ใ€‚
210
-
211
- ## ๐Ÿ“„ ใƒฉใ‚คใ‚ปใƒณใ‚น
212
-
213
- [Apache-2.0](LICENSE) ยฉ 2026 dsh-output-styles contributors
214
-
215
- ---
216
-
217
- <sub>Topics: `dsh` ยท `dsh-plugin` ยท `deepseek-harness` ยท `output-styles` ยท `claude-code`</sub>
package/README.ko.md DELETED
@@ -1,217 +0,0 @@
1
- <div align="center">
2
-
3
- # ๐ŸŽจ dsh-output-styles
4
-
5
- **DeepSeek Harness๋ฅผ ์œ„ํ•œ Claude Code `outputStyles`** โ€”โ€” ๋Ÿฐํƒ€์ž„์—, ์„ธ์…˜๋ณ„๋กœ, ์˜๊ตฌ์ ์œผ๋กœ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ์Šคํƒ€์ผ์„ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
6
-
7
- [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
8
- [![CI](https://github.com/PerryLink/dsh-output-styles/actions/workflows/ci.yml/badge.svg)](https://github.com/PerryLink/dsh-output-styles/actions/workflows/ci.yml)
9
- [![npm version](https://img.shields.io/npm/v/dsh-output-styles)](https://www.npmjs.com/package/dsh-output-styles)
10
- [![npm downloads](https://img.shields.io/npm/dm/dsh-output-styles)](https://www.npmjs.com/package/dsh-output-styles)
11
- [![Node](https://img.shields.io/badge/node-%5E22.19%20%7C%7C%20%3E%3D24-brightgreen.svg)](#)
12
- [![DSH](https://img.shields.io/badge/deepseek--harness-0.1.0--rc.6-4d6bfe.svg)](#)
13
- [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg)](#)
14
-
15
- ๐ŸŒ [English](README.md) ยท [ไธญๆ–‡](README.zh.md) ยท [ๆ—ฅๆœฌ่ชž](README.ja.md) ยท [ํ•œ๊ตญ์–ด](README.ko.md) ยท [Espaรฑol](README.es.md)
16
-
17
- </div>
18
-
19
- ---
20
-
21
- `/style concise` โ€”โ€” ์ด์ œ๋ถ€ํ„ฐ ๋ชจ๋“  ๋‹ต๋ณ€์ด ๊ฐ„๊ฒฐํ•ด์ง‘๋‹ˆ๋‹ค. `/style step-by-step` โ€”โ€” ๋ชจ๋ธ์ด ๋ฒˆํ˜ธ ๋งค๊ธด ๋‹จ๊ณ„๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. `/style off` โ€”โ€” ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜๋‹น ๋ช…๋ น ํ•˜๋‚˜, ์žฌ์‹œ์ž‘์—๋„ ์œ ์ง€๋˜๋ฉฐ agent loop ๋ณ€๊ฒฝ์€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.
22
-
23
- ## โœจ ๊ธฐ๋Šฅ
24
-
25
- | | |
26
- |---|---|
27
- | ๐Ÿ—‚๏ธ **์Šคํƒ€์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ** | ์Šคํƒ€์ผ๋‹น Markdown ํŒŒ์ผ ํ•˜๋‚˜(`styles/*.md`). frontmatter์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ, ๋ณธ๋ฌธ์€ ๋ชจ๋ธ ์ง€์‹œ๋ฌธ์ž…๋‹ˆ๋‹ค. `name`์€ ๊ธฐ๋ณธ๊ฐ’์ด ํŒŒ์ผ๋ช…์ด๋ฉฐ ๊ณต๋ฐฑ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(`Diagrams first`). ๋‚ด์žฅ ์Šคํƒ€์ผ 6์ข…์ด ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉฐ, Claude Code์™€ ๋™๋“ฑํ•œ `proactive`์™€ `learning`์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. |
28
- | โŒจ๏ธ **`/style` ๋ช…๋ น** | ์ธ์ž ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ์Šคํƒ€์ผ ๋ชฉ๋ก(์„ค๋ช… ํฌํ•จ) + ํ˜„์žฌ ์„ ํƒ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. `/style <name>`์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  `/style off`๋กœ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. `/style` ๋’ค์˜ ๋‚˜๋จธ์ง€ ์ „์ฒด๊ฐ€ ์Šคํƒ€์ผ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. |
29
- | ๐Ÿ’พ **์„ธ์…˜ ๋ฒ”์œ„ ์˜์†ํ™”** | ์„ ํƒ์€ `output_style` ์ €์žฅ์†Œ ๋„๋ฉ”์ธ์— sessionId๋ฅผ ํ‚ค๋กœ ์ €์žฅ๋˜์–ด, ๋‘ ์„ธ์…˜์ด ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๊ณ  ์„ ํƒ์€ ์žฌ์‹œ์ž‘ ํ›„์—๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. |
30
- | ๐Ÿงฉ **์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ์ฃผ์ž…** | `systemPrompt.section()` ๊ธฐ์—ฌ(order 90)๊ฐ€ ๋งค ์กฐ๋ฆฝ๋งˆ๋‹ค ํ˜„์žฌ ์„ธ์…˜์˜ ์Šคํƒ€์ผ ๋ณธ๋ฌธ์„ ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ๋ฌธ์€ ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ˆ์‚ฐ์œผ๋กœ ์ž˜๋ฆฝ๋‹ˆ๋‹ค. |
31
- | ๐ŸŽญ **Claude Code `keep-coding-instructions`** | `keep-coding-instructions: false`(Claude Code์™€ ๊ฐ™์€ ๊ธฐ๋ณธ๊ฐ’)์ธ ์Šคํƒ€์ผ์€ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ์ „์ฒด๋ฅผ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค โ€”โ€” ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ์Šคํƒ€์ผ์šฉ์ž…๋‹ˆ๋‹ค. |
32
- | ๐Ÿ“Œ **๊ฐ•์ œ ์Šคํƒ€์ผ** | Claude Code์˜ `force-for-plugin`(๋ณ„์นญ `force`)์ด ์„ธ์…˜ ์„ ํƒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ฌด์กฐ๊ฑด ์Šคํƒ€์ผ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์ œ ์Šคํƒ€์ผ์ด ๋‘˜์ด๋ฉด ๋กœ๋“œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. |
33
- | ๐Ÿ” **Claude Code ํ˜ธํ™˜์„ฑ** | `outputStyles` JSON ์ปฌ๋ ‰์…˜(`{ name, description, prompt }`)์„ ๋กœ๋“œํ•˜๋ฉฐ, ๋‹จ์ผ ํ•ญ๋ชฉ ๋˜๋Š” `settings.json` ์Šคํƒ€์ผ ๋ฐฐ์—ด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ•ด์„ ๋ถˆ๊ฐ€ ํ•ญ๋ชฉ์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. |
34
- | ๐Ÿ“š **๊ณ„์ธตํ™”๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ** | `stylesDir`์€ ๋ชฉ๋ก์ด๋ฉฐ ๋’ค์ชฝ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์•ž์ชฝ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค(๋‚ด์žฅ `styles/`๊ฐ€ ์ตœํ•˜์œ„ ๊ณ„์ธต, `includeBuiltins: false`๋กœ ๋น„ํ™œ์„ฑํ™”). |
35
- | ๐Ÿ”„ **ํ•ซ ๋ฆฌ๋กœ๋“œ** | ์Šคํƒ€์ผ ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ์žฌ์‹œ์ž‘ ์—†์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค(`watchStyles: false`๋กœ ํ•ด์ œ). |
36
- | โš™๏ธ **์„ค์ •๊ณผ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ๊ฐ’** | ํ•œ ๋ฒˆ๋„ ์„ ํƒํ•˜์ง€ ์•Š์€ ์„ธ์…˜์€ DSH ์„ค์ •์˜ `output-style.style`, ๊ทธ๋‹ค์Œ `defaultStyle`๋กœ ํด๋ฐฑํ•ฉ๋‹ˆ๋‹ค. |
37
- | ๐Ÿ–ฑ๏ธ **์›น ํ”ผ์ปค** | `dsh.client` ํ•ญ๋ชฉ(`dsh-output-styles/client`)์ด ํ˜ธ์ŠคํŠธ์˜ `/style` ๋ช…๋ น์„ ํ”„๋กœ์ ์…˜ ๊ธฐ๋ฐ˜ ํŒ์—… ํ”ผ์ปค๋กœ ๊พธ๋ฐ‰๋‹ˆ๋‹ค. |
38
- | ๐Ÿ“Š **์„ธ์…˜ ํ”„๋กœ์ ์…˜** | Web UI์šฉ `style` ํ”„๋กœ์ ์…˜(`{ options, currentValue }`)์œผ๋กœ, ์„ธ์…˜ ๋กœ๊ทธ์—์„œ ํ™•์ •๋œ ๋ช…๋ น์œผ๋กœ๋ถ€ํ„ฐ ํด๋”ฉ๋ฉ๋‹ˆ๋‹ค. |
39
- | ๐Ÿงฏ **๋ช…ํ™•ํ•œ ์‹คํŒจ, ๊น”๋”ํ•œ ๊ฑด๋„ˆ๋œ€** | ์ž˜๋ชป๋œ ์„ค์ •์€ ๋กœ๋“œ ์‹œ ์˜ˆ์™ธ๋ฅผ ๋˜์ง‘๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์Šคํƒ€์ผ ํŒŒ์ผ์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ํ”„๋กœํ•„์„ ๊นจ๋œจ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. |
40
- | ๐ŸŒ **5๊ฐœ ์–ธ์–ด ๋ฌธ์„œ** | EN ยท ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž ยท ํ•œ๊ตญ์–ด ยท Espaรฑol. |
41
-
42
- ## ๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘
43
-
44
- ```sh
45
- # 1. ์„ค์น˜ โ€” ์ด ํŒจํ‚ค์ง€๋Š” ๋ฒˆ๋“ค ๋ ˆ์ด์–ด์ด๋ฏ€๋กœ ํ•œ ๋ช…๋ น์œผ๋กœ
46
- # storage + storage-json + storage-domain + ํ”Œ๋Ÿฌ๊ทธ์ธ ํ–‰์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:
47
- dsh plugin --profile <name> add dsh-output-styles
48
-
49
- # 2. ๋ถ€ํŒ…ํ•˜๊ณ  ์ „ํ™˜
50
- dsh --profile <name>
51
- /style # โ†’ output style off, ๊ทธ๋‹ค์Œ ์Šคํƒ€์ผ๋ณ„ ํ•œ ์ค„
52
- /style concise # โ†’ switched to concise
53
- /style Diagrams first # โ†’ ๊ณต๋ฐฑ ํฌํ•จ ์ด๋ฆ„๋„ ๋™์ž‘
54
- /style off # โ†’ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณต๊ท€
55
- ```
56
-
57
- ์ด ๋ ˆ์ด์–ด๋Š” ์›น ํ”„๋กœํ•„์— ๋Œ€ํ•ด ๋ฉฑ๋“ฑ์ ์ž…๋‹ˆ๋‹ค(id ๊ธฐ์ค€ ์‚ฝ์ž…์ด ๋™์ผ id ํ–‰์„ ๋Œ€์ฒด). ์›น ํ”„๋กœํ•„์€ `storage`๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์›น ํ”ผ์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ”„๋กœํ•„์— ํด๋ผ์ด์–ธํŠธ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:
58
-
59
- ```yaml
60
- - id: output-styles-client
61
- name: 'dsh-output-styles/client'
62
- ```
63
-
64
- ## ๐ŸŽฌ ๋ฐ๋ชจ
65
-
66
- ```
67
- You > /style
68
- output style off
69
- concise โ€” Terse, direct answers โ€” minimal prose, no preamble. (Daily coding work, tool-heavy sessions, or when prompt length matters.)
70
- explanatory โ€” Educational answers with short "Insights" that teach as you work. (Learning a codebase, onboarding, โ€ฆ)
71
- formal โ€” Formal, precise prose with complete sentences and defined terms. (Reports, documentation, release notes, โ€ฆ)
72
- learning โ€” Collaborative learn-by-doing mode with short "Insights" and small hands-on steps for the user. (Pairing, onboarding, โ€ฆ)
73
- proactive โ€” Execute immediately, assume reasonable defaults, and prefer action over planning. (Routine multi-step work, โ€ฆ)
74
- step-by-step โ€” Numbered reasoning steps with explicit intermediate results. (Debugging, design decisions, โ€ฆ)
75
-
76
- You > /style concise
77
- switched to concise
78
-
79
- You > ํ•œ ๋ฌธ์žฅ์œผ๋กœ๋งŒ ์ž๊ธฐ์†Œ๊ฐœํ•ด ์ฃผ์„ธ์š”.
80
- AI > ์ €๋Š” DeepSeek Harness ํ”Œ๋Ÿฌ๊ทธ์ธ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰๋˜๊ณ  deepseek-v4-pro ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.
81
- ```
82
-
83
- ## ๐Ÿง  ๋™์ž‘ ๋ฐฉ์‹
84
-
85
- ```mermaid
86
- flowchart LR
87
- U[/style concise ์ž…๋ ฅ] --> C[๋ช…๋ น ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ]
88
- C -->|command/run ๊ธฐ๋ก| L[(์„ธ์…˜ ๋กœ๊ทธ)]
89
- C -->|put {style, source}| D[(output_style ๋„๋ฉ”์ธ)]
90
- D --> R[OutputStyleRuntime]
91
- R -->|๋งค ์กฐ๋ฆฝ๋งˆ๋‹ค ๋ณธ๋ฌธ ์ฃผ์ž…| S[systemPrompt ์„น์…˜ order 90]
92
- S --> M[๋ชจ๋ธ ์š”์ฒญ]
93
- M -->|์ „์ฒด ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ| H[request/header ๊ธฐ๋ก]
94
- ```
95
-
96
- ๋ชจ๋ธ์ด ๋ณด๋Š” ๋ชจ๋“  ๊ฒƒ์€ ์„ธ์…˜ ๋กœ๊ทธ์—์„œ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€”โ€” ์ƒˆ๋กœ์šด ์„ธ์…˜ ์ด๋ฒคํŠธ ํƒ€์ž…๋„, agent-loop ๋ณ€๊ฒฝ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์Šคํƒ€์ผ ์ด๋ฆ„์€ `command/run`์—์„œ, ์ฃผ์ž…๋œ ์ •ํ™•ํ•œ ํ…์ŠคํŠธ๋Š” `request/header`์—์„œ ๋‚˜์˜ค๋ฉฐ, ์ถœ์ฒ˜ ๋งˆ์ปค `{ kind: 'plugin', plugin: 'dsh-output-styles' }`๋Š” ๋„๋ฉ”์ธ ๋ ˆ์ฝ”๋“œ์— ๋‚จ์Šต๋‹ˆ๋‹ค. ์Šคํƒ€์ผ์€ ๋ฉ”์ธ ๋Œ€ํ™”์—๋งŒ ์ ์šฉ๋˜๋ฉฐ, ํ•˜์œ„ ์—์ด์ „ํŠธ ์„ธ์…˜์€ ์ž์ฒด ํ”„๋กฌํ”„ํŠธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค(Claude Code์™€ ์ผ์น˜).
97
-
98
- ## โš™๏ธ ์„ค์ •
99
-
100
- ๋ชจ๋“  ์กฐ์ • ๊ฐ’์€ ๊ฒ€์ฆ๋œ Schemastery `Config` ํ•„๋“œ์ž…๋‹ˆ๋‹ค(์ž˜๋ชป๋œ ๊ฐ’์€ ๋กœ๋“œ ์‹คํŒจ):
101
-
102
- | ํ•„๋“œ | ๊ธฐ๋ณธ๊ฐ’ | ์˜๋ฏธ |
103
- |---|---|---|
104
- | `stylesDir` | `[]` | ์Šคํƒ€์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋””๋ ‰ํ„ฐ๋ฆฌ. cwd ๊ธฐ์ค€์œผ๋กœ ํ•ด์„๋˜๋ฉฐ ๋’ค์ชฝ ํ•ญ๋ชฉ์ด ์•ž์ชฝ์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. `[]` = ๋‚ด์žฅ `styles/`๋งŒ. ๋‹จ์ˆœ ๋ฌธ์ž์—ด์€ ๋‹จ์ผ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. |
105
- | `maxStyleChars` | `4000` | ์Šคํƒ€์ผ ๋ณธ๋ฌธ ์˜ˆ์‚ฐ(์ฝ”๋“œ ํฌ์ธํŠธ, โ‰ฅ 1). ๋” ๊ธด ๋ณธ๋ฌธ์€ ๋งˆ์ปค์™€ ํ•จ๊ป˜ ์ž˜๋ฆฝ๋‹ˆ๋‹ค. |
106
- | `defaultStyle` | `''` | ํ•œ ๋ฒˆ๋„ ์„ ํƒํ•˜์ง€ ์•Š์€ ์„ธ์…˜(์„ค์ • ๊ธฐ๋ณธ๊ฐ’๋„ ์—†์Œ)์— ์ ์šฉํ•  ์Šคํƒ€์ผ. `''` = ์Šคํƒ€์ผ ์—†์Œ. |
107
- | `compatJson` | `true` | Claude Code `outputStyles` JSON ํ•ญ๋ชฉ(๋‹จ์ผ ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด)์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. |
108
- | `sectionOrder` | `90` | ์ฃผ์ž… ์„น์…˜์˜ ์ˆœ์„œ(0 = persona, 100โ€“199 = ๋„๊ตฌ ์ง€์นจ). |
109
- | `truncationMarker` | `"\n\n[style truncated]"` | ์ž˜๋ฆฐ ์ง€์ ์— ์ถ”๊ฐ€๋˜๋Š” ๋งˆ์ปค. |
110
- | `includeBuiltins` | `true` | ํŒจํ‚ค์ง€ ๋‚ด์žฅ `styles/`๋ฅผ ์ตœ์ € ์šฐ์„ ์ˆœ์œ„ ๊ณ„์ธต์œผ๋กœ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. |
111
- | `watchStyles` | `true` | ๋””์Šคํฌ์—์„œ ์Šคํƒ€์ผ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. |
112
- | `rules` | `[]` | ์„ธ์…˜/๋„๊ตฌ๋ณ„ ๋ Œ๋” ๊ทœ์น™๏ผš`[{ match: { tool?, contentType?, session? }, style, priority? }]`โ€”โ€”`style` ์€ ๋ Œ๋”๋Ÿฌ id๏ผˆ๋‚ด์žฅ์€ ์Šคํƒ€์ผ๊ณผ ๋™๋ช…๏ผ‰ใ€‚ |
113
- | `enableExport` | `true` | `/export` ๋ช…๋ น ๋“ฑ๋ก๏ผˆMarkdown/HTML ์„ธ์…˜ ๋‚ด๋ณด๋‚ด๊ธฐใ€๋ Œ๋”๋Ÿฌ ์ธ์‹๏ผ‰ใ€‚ |
114
-
115
- ## ๐ŸŽจ ๋ Œ๋”๋Ÿฌ ํ”„๋กœํ† ์ฝœ
116
-
117
- `output.render.*` ํ”„๋กœํ† ์ฝœ์€ ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๊ณ„์ธต์„ ํ™•์žฅ์ ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹คใ€‚๋ Œ๋”๋Ÿฌ๋Š” **์ˆœ์ˆ˜ presenter**โ€”โ€”`presenter(text, context)` ๊ฐ€ ์ธ์ž๋ฅผ ํ‘œ์‹œ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ํ•˜๊ณ  DOM ์—๋Š” ์†๋Œ€์ง€ ์•Š์Šต๋‹ˆ๋‹คโ€”โ€”๋„๊ตฌ ์ด๋ฆ„๊ณผ ์ฝ˜ํ…์ธ  ํƒ€์ž…์œผ๋กœ ๋งค์นญ๋˜๊ณ  ์šฐ์„ ์ˆœ์œ„๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹คใ€‚์„œ๋“œํŒŒํ‹ฐ๋Š” `ctx.outputRenderers.register({ id, match, priority, presenter })` ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค๏ผˆregister ๋Š” disposer ๋ฅผ ๋ฐ˜ํ™˜ใ€ํ˜ธ์ถœ์ž์˜ ctx.effect ์†Œ์œ ๏ผ‰ใ€‚๋ชจ๋“  ๋ Œ๋”๋Š” ๋จผ์ € `output.render/before` waterfall๏ผˆ๋ฆฌ์Šค๋„ˆ๋Š” ๋ฐ˜๋“œ์‹œ `next()`๏ผ‰์„ ๊ฑฐ์นœ ๋’ค ๊ทœ์น™ํ‘œ๏ผˆ์„ธ์…˜/๋„๊ตฌ๋ณ„๏ผš`rules: [{ match: { tool: 'bash' }, style: 'concise' }]`ใ€์„ค์ • ํŽ˜์ด์ง€ `output-style-rules` ์—์„œ ํŽธ์ง‘๏ผ‰๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹คใ€‚๋‚ด์žฅ ๋ Œ๋”๋Ÿฌ๋Š” `concise`๏ผˆ๊ณต๋ฐฑ ์••์ถ• + ์˜ˆ์‚ฐ ์ ˆ๋‹จ๏ผ‰์™€ `step-by-step`๏ผˆ๋‹จ๊ณ„ ์ผ๋ จ๋ฒˆํ˜ธ๏ผ‰์ž…๋‹ˆ๋‹คใ€‚๊ฐ์‚ฌ ๊ฐ€๋Šฅ๏ผš๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” `{ original, rendered, rendererId, changed }` ๋ฅผ ๊ฐ€์ง€๋ฉฐ ์›๋ฌธ์€ ์„ธ์…˜ ๋กœ๊ทธ ๊ทธ ์ž์ฒด๋กœ ๊ฒฐ์ •์ ์œผ๋กœ ์žฌ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹คใ€‚`/export [markdown|html] [--renderer=<id>]` ๋Š” ๊ฐ™์€ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ํ˜„์žฌ ์„ธ์…˜์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹คใ€‚์ „์ฒด ๊ทœ๊ฒฉ๏ผšdocs/renderer-protocol.md๏ผˆ์˜์–ด๏ผ‰/ docs/renderer-protocol.zh.mdใ€‚
118
- ## ๐Ÿ“š ์Šคํƒ€์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
119
-
120
- <details>
121
- <summary><code>styles/concise.md</code></summary>
122
-
123
- ```markdown
124
- ---
125
- name: concise
126
- description: Terse, direct answers โ€” minimal prose, no preamble.
127
- whenToUse: Daily coding work, tool-heavy sessions, or when prompt length matters.
128
- keep-coding-instructions: true
129
- ---
130
-
131
- You are in the concise output style for this conversation.
132
- - Lead with the direct answer; skip preamble, restatements, and filler.
133
- - ๅ›ž็ญ”่ฏญ่จ€่ทŸ้š็”จๆˆท่ฏญ่จ€๏ผšไธญๆ–‡ๆ้—ฎ็”จไธญๆ–‡ๅ›ž็ญ”๏ผŒ่‹ฑๆ–‡ๆ้—ฎ็”จ่‹ฑๆ–‡ๅ›ž็ญ”ใ€‚
134
- ```
135
-
136
- </details>
137
-
138
- frontmatter ํ•„๋“œ:
139
-
140
- | ํ•„๋“œ | ๊ธฐ๋ณธ๊ฐ’ | ์˜๋ฏธ |
141
- |---|---|---|
142
- | `name` | ํŒŒ์ผ๋ช… | ์ „ํ™˜ ๋Œ€์ƒ. ๋ฌธ์ž, ์ˆซ์ž, ๊ณต๋ฐฑ, ํ•˜์ดํ”ˆ(์„ ํ–‰/ํ›„ํ–‰ ๊ณต๋ฐฑ ์—†์Œ. `off`๋Š” ์˜ˆ์•ฝ๋จ). |
143
- | `description` | โ€”(ํ•„์ˆ˜) | ๋ชฉ๋ก๊ณผ ํ”ผ์ปค์— ํ‘œ์‹œ๋˜๋Š” ํ•œ ๋ฌธ์žฅ. |
144
- | `whenToUse` | โ€” | ๋ชฉ๋ก์— ๋ง๋ถ™์ด๋Š” ์„ ํƒ์  ์•ˆ๋‚ด. |
145
- | `keep-coding-instructions` | `false` | `true`๋ฉด ํ•˜๋„ค์Šค ํ”„๋กฌํ”„ํŠธ(์ •์ฒด์„ฑ, persona, ๋„๊ตฌ ์ง€์นจ)๋ฅผ ์œ ์ง€ํ•˜๊ณ , `false`๋ฉด ์™„์ „ํžˆ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค(Claude Code ์˜๋ฏธ๋ก ). |
146
- | `force-for-plugin` | `false` | Claude Code ๊ณต์‹ ํ•„๋“œ: ์„ธ์…˜ ์„ ํƒ์„ ๋ฌด์‹œํ•˜๊ณ  ๋ฌด์กฐ๊ฑด ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. `force`๋Š” ๋ณ„์นญ์ด๋ฉฐ ์ตœ๋Œ€ ํ•œ ์Šคํƒ€์ผ๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. |
147
-
148
- <details>
149
- <summary>Claude Code <code>outputStyles</code> JSON(<code>compatJson: true</code>)</summary>
150
-
151
- ```json
152
- { "name": "explain", "description": "Explain like a teacher.", "prompt": "Teach in small steps." }
153
- ```
154
-
155
- ํ•ญ๋ชฉ์€ Claude Code๊ฐ€ ์“ฐ๋Š” ๊ทธ๋Œ€๋กœ `keep-coding-instructions`์™€ `force-for-plugin` ํ•„๋“œ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ `settings.json` ๋ฐฐ์—ด(`[{ โ€ฆ }, { โ€ฆ }]`)์€ ๊ทธ๋Œ€๋กœ ๋กœ๋“œ๋˜๊ณ , ์ž˜๋ชป๋œ ํ•ญ๋ชฉ์€ ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
156
-
157
- </details>
158
-
159
- ## โŒจ๏ธ ๋ช…๋ น ๋ ˆํผ๋Ÿฐ์Šค
160
-
161
- | ์ž…๋ ฅ | ๊ฒฐ๊ณผ |
162
- |---|---|
163
- | `/style` | ํ˜„์žฌ ์„ ํƒ + ์Šคํƒ€์ผ๋ณ„ ํ•œ ์ค„(name โ€” description) ๋‚˜์—ด |
164
- | `/style concise` | ์ „ํ™˜(์˜๊ตฌ ๊ธฐ๋ก), `switched to concise` |
165
- | `/style Diagrams first` | ์—ฌ๋Ÿฌ ๋‹จ์–ด ์ด๋ฆ„์€ ๋‚˜๋จธ์ง€ ์ „์ฒด |
166
- | `/style off` | ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ๊ฐ’ ๋ณต์›(์„ค์ • ๊ธฐ๋ณธ๊ฐ’, ๊ทธ๋‹ค์Œ `defaultStyle`) |
167
- | `/style nope` | `error: unknown output style "nope" (available: โ€ฆ)` |
168
-
169
- ## ๐Ÿ–ฑ๏ธ ์›น ํ”ผ์ปค
170
-
171
- `dsh.client` ํ•ญ๋ชฉ์€ ํ˜ธ์ŠคํŠธ `/style` ๋ช…๋ น์˜ ์ธ์ž ์—†๋Š” ํ˜ธ์ถœ์„ ํŒ์—… ํ”ผ์ปค๋กœ ๊พธ๋ฐ‰๋‹ˆ๋‹ค: ใ€Œoffใ€ ํ–‰ + ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์Šคํƒ€์ผ๋ณ„ ํ•œ ํ–‰(`description ยท whenToUse`), ํ™œ์„ฑ ํ–‰์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•˜๋ฉด ๋ช…๋ น Remote๋ฅผ ํ†ตํ•ด `/style <name>`์„ ์ œ์ถœํ•˜๋ฏ€๋กœ, ๋ชจ๋“  ์ „ํ™˜์ด ํ˜ธ์ŠคํŠธ์˜ ์˜๊ตฌ์ ์ธ ๋ช…๋ น ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  `style` ํ”„๋กœ์ ์…˜์ด ์œ ์ผํ•˜๊ฒŒ ํ‘œ์‹œ๋˜๋Š” ์‚ฌ์‹ค๋กœ ๋‚จ์Šต๋‹ˆ๋‹ค. ํ”ผ์ปค ๋ฌธ๊ตฌ๋Š” Web UI์— ๋‚ด์žฅ๋œ `zh`/`en` ์–ธ์–ด ์Œ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
172
-
173
- ## ๐Ÿ” ์ถฉ๋Œ ๊ฒ€์‚ฌ
174
-
175
- ๊ฐœ๋ฐœ ์ „ DSH ์ƒํƒœ๊ณ„๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค(2026-08 ์Šค๋ƒ…์ƒท): [topic:dsh-plugin](https://github.com/topics/dsh-plugin) ์•„๋ž˜ `style`/`output-style` ์ €์žฅ์†Œ ์—†์Œ, 4๋Œ€ [awesome ๋ชฉ๋ก](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)์— output-style ์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ, [dsh-hub ์นดํƒˆ๋กœ๊ทธ](https://github.com/omdsh-dev/dsh-hub-workshop)์—๋„ ํ•ญ๋ชฉ ์—†์Œ. ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ด์›ƒ์ธ [dsh-soul-md](https://github.com/Scorp1o117/dsh-soul-md)(persona)์™€ [dsh-claude-marketplace](https://github.com/ben7am1n/dsh-claude-marketplace)(์ถœ๋ ฅ ์Šคํƒ€์ผ์„ ๋ช…์‹œ์ ์œผ๋กœ v0.2+๋กœ ์—ฐ๊ธฐ)์€ ์ธ์ ‘ํ•˜์ง€๋งŒ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
176
-
177
- ## ๐Ÿ†š Claude Code์™€์˜ ์ฐจ์ด
178
-
179
- | | Claude Code | dsh-output-styles |
180
- |---|---|---|
181
- | ์Šคํƒ€์ผ ํŒŒ์ผ | ์‚ฌ์šฉ์ž/ํ”„๋กœ์ ํŠธ/๊ด€๋ฆฌ ๊ณ„์ธต์˜ `.claude/output-styles` | `stylesDir` ๋””๋ ‰ํ„ฐ๋ฆฌ + ๋‚ด์žฅ `styles/`, ๋’ค์ชฝ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์šฐ์„  |
182
- | ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํƒ€์ผ | Markdown, frontmatter `name`/`description`/`keep-coding-instructions`/`force-for-plugin` | ๋™์ผ ํ•„๋“œ(`force-for-plugin` ๊ทธ๋Œ€๋กœ ์ˆ˜์šฉ, `force`๋Š” ๋ณ„์นญ) + `whenToUse` |
183
- | ๋ ˆ๊ฑฐ์‹œ JSON | `settings.json`์˜ `outputStyles` ๋ฐฐ์—ด | ๊ทธ๋Œ€๋กœ ๋กœ๋“œ(`compatJson: true`) |
184
- | ์ ์šฉ ์‹œ์  | `/clear` ํ›„ ๋˜๋Š” ์ƒˆ ์„ธ์…˜ | ์ฆ‰์‹œ โ€” ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์š”์ฒญ๋งˆ๋‹ค ์žฌ์กฐ๋ฆฝ |
185
- | ํ•˜์œ„ ์—์ด์ „ํŠธ | ์Šคํƒ€์ผ ๋ฏธ์ ์šฉ | ๋™์ผ โ€” ํ•˜์œ„ ์—์ด์ „ํŠธ ์„ธ์…˜์€ ์ž์ฒด ํ”„๋กฌํ”„ํŠธ ์œ ์ง€ |
186
- | ์ „ํ™˜ | `/config` ๋ฉ”๋‰ด ๋˜๋Š” `outputStyle` ์„ค์ •(`/output-style` ๋ช…๋ น์€ v2.1.91์—์„œ ์ œ๊ฑฐ) | `/style` ๋ช…๋ น + ์›น ํ”ผ์ปค + ์„ค์ • `output-style.style` |
187
-
188
- ## ๐Ÿงช ๊ฐœ๋ฐœ
189
-
190
- ```sh
191
- pnpm install
192
- pnpm run typecheck # ๋‘ tsc ํ”„๋กœ์ ํŠธ
193
- pnpm test # vitest โ€” 93 ํ…Œ์ŠคํŠธ
194
- pnpm run verify # typecheck + ํ…Œ์ŠคํŠธ + ์ž์ฒด ํฌํ•จ ๊ฒ€์‚ฌ(prepublishOnly ๊ฒŒ์ดํŠธ)
195
- pnpm run build # lib/ ์‚ฐ์ถœ๋ฌผ(ํ˜ธ์ŠคํŠธ + ํด๋ผ์ด์–ธํŠธ ๋ฒˆ๋“ค)
196
- pnpm pack # dsh plugin add์šฉ tarball
197
- ```
198
-
199
- ๋ฆด๋ฆฌ์Šค: `package.json` ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ๊ฐ€์ง„ `v*` ํƒœ๊ทธ๋ฅผ pushํ•˜๋ฉด Publish ์›Œํฌํ”Œ๋กœ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค โ€” ์ „์ฒด ๊ฒ€์ฆ ํ›„ npm ๊ฒŒ์‹œ(provenance ํฌํ•จ). ๋ชจ๋“  `npm publish`๋„ `prepublishOnly`๋ฅผ ํ†ตํ•ด `verify` ๊ฒŒ์ดํŠธ๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.
200
-
201
- ๊ตฌ์กฐ๋Š” [omdsh-dev/plugin-template](https://github.com/omdsh-dev/plugin-template)๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค: `src/index.ts`(ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ), `src/config.ts`(์Šคํ‚ค๋งˆ), `src/runtime.ts`(๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค + ํ™œ์„ฑํ™”), `src/invariant.ts`(๋ถˆ๋ณ€์‹), `src/client/`(์›น ํ”ผ์ปค), `styles/`(๋‚ด์žฅ ์Šคํƒ€์ผ).
202
-
203
- ## ๐Ÿ‘ฅ ๊ธฐ์—ฌ์ž
204
-
205
- ์ด ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๊ป˜ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค:
206
-
207
- - [@PerryLink](https://github.com/PerryLink) โ€” ์ž‘์„ฑ์ž์ด์ž ๋ฉ”์ธํ…Œ์ด๋„ˆ: ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜, ์Šคํƒ€์ผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฒˆ๋“ค ์„ค์น˜, ์›น ํ”ผ์ปค, 5๊ฐœ ์–ธ์–ด ๋ฌธ์„œ, CI/๋ฆด๋ฆฌ์Šค ๋„๊ตฌ.
208
-
209
- ๋ฒ„๊ทธ๋‚˜ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ์‹ ๊ฐ€์š”? [issue](https://github.com/PerryLink/dsh-output-styles/issues) ๋˜๋Š” [pull request](https://github.com/PerryLink/dsh-output-styles/pulls)๋ฅผ ๋ณด๋‚ด ์ฃผ์„ธ์š”. ์–ด๋–ค ์–ธ์–ด์˜ ๊ธฐ์—ฌ๋“  ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.
210
-
211
- ## ๐Ÿ“„ ๋ผ์ด์„ ์Šค
212
-
213
- [Apache-2.0](LICENSE) ยฉ 2026 dsh-output-styles contributors
214
-
215
- ---
216
-
217
- <sub>Topics: `dsh` ยท `dsh-plugin` ยท `deepseek-harness` ยท `output-styles` ยท `claude-code`</sub>