@simplysm/sd-claude 13.0.57 → 13.0.59
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.md +152 -60
- package/claude/skills/sd-check/SKILL.md +8 -0
- package/package.json +1 -1
- package/claude/hooks/sd-notify.py +0 -17
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @simplysm/sd-claude
|
|
2
2
|
|
|
3
|
-
Simplysm Claude Code CLI — asset installer and cross-platform npx wrapper. Automatically installs Claude Code assets (skills, agents, rules) via `postinstall` when added as a dev dependency. Provides opinionated development workflows including TDD, systematic debugging, code review, planning, brainstorming, and git worktree management.
|
|
3
|
+
Simplysm Claude Code CLI — asset installer and cross-platform npx wrapper. Automatically installs Claude Code assets (skills, agents, rules, refs, hooks) via `postinstall` when added as a dev dependency. Provides opinionated development workflows including TDD, systematic debugging, code review, planning, brainstorming, and git worktree management.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -10,13 +10,13 @@ pnpm add -D @simplysm/sd-claude
|
|
|
10
10
|
npm install --save-dev @simplysm/sd-claude
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
Skills, agents, and
|
|
13
|
+
Skills, agents, rules, refs, and hooks are automatically installed to `.claude/` on `pnpm install` / `npm install`.
|
|
14
14
|
|
|
15
15
|
## How It Works
|
|
16
16
|
|
|
17
17
|
When installed as a dependency, the `postinstall` script (`scripts/postinstall.mjs`) invokes the `sd-claude install` CLI command, which:
|
|
18
18
|
|
|
19
|
-
1. Copies all `sd-*` assets (skills, agents, rules, statusline) to the project's `.claude/` directory
|
|
19
|
+
1. Copies all `sd-*` assets (skills, agents, rules, refs, hooks, statusline) to the project's `.claude/` directory
|
|
20
20
|
2. Configures `statusLine` in `.claude/settings.json` to use `sd-statusline.js`
|
|
21
21
|
3. Configures MCP servers in `.mcp.json` (context7 and playwright) using the cross-platform npx wrapper
|
|
22
22
|
4. Existing `sd-*` entries are replaced with the latest version on each install
|
|
@@ -40,15 +40,23 @@ Updates also trigger reinstallation (`pnpm up @simplysm/sd-claude`).
|
|
|
40
40
|
claude/
|
|
41
41
|
sd-statusline.js # Status line script
|
|
42
42
|
rules/
|
|
43
|
-
sd-
|
|
43
|
+
sd-refs-linker.md # Reference guide rule (reads .claude/refs/ before work)
|
|
44
44
|
sd-language.md # Language response rule
|
|
45
|
-
|
|
46
|
-
sd-
|
|
45
|
+
refs/
|
|
46
|
+
sd-code-conventions.md # Code style and naming conventions reference
|
|
47
|
+
sd-directories.md # Directory layout reference (.cache/, .tmp/playwright/)
|
|
48
|
+
sd-simplysm-docs.md # @simplysm/* package documentation lookup reference
|
|
49
|
+
sd-workflow.md # Workflow behavior and problem-solving principles
|
|
50
|
+
sd-solid.md # SolidJS / @simplysm/solid / Tailwind guidelines
|
|
51
|
+
sd-orm.md # ORM query patterns and SQL injection prevention
|
|
52
|
+
sd-service.md # Service layer guidelines
|
|
47
53
|
agents/
|
|
48
54
|
sd-code-reviewer.md # Code review agent
|
|
49
55
|
sd-code-simplifier.md # Code simplification agent
|
|
50
56
|
sd-api-reviewer.md # API/DX review agent
|
|
51
57
|
sd-security-reviewer.md # ORM SQL injection and input validation agent
|
|
58
|
+
hooks/
|
|
59
|
+
sd-notify.py # Windows toast notification hook (Stop event)
|
|
52
60
|
skills/
|
|
53
61
|
sd-brainstorm/ # Brainstorming skill
|
|
54
62
|
sd-plan/ # Plan writing skill
|
|
@@ -64,6 +72,8 @@ Updates also trigger reinstallation (`pnpm up @simplysm/sd-claude`).
|
|
|
64
72
|
sd-use/ # Auto skill/agent router
|
|
65
73
|
sd-skill/ # Skill authoring skill
|
|
66
74
|
sd-api-name-review/ # API naming review skill
|
|
75
|
+
sd-discuss/ # Standards-based technical discussion skill
|
|
76
|
+
sd-eml-analyze/ # EML email file analysis skill
|
|
67
77
|
```
|
|
68
78
|
|
|
69
79
|
## CLI Commands
|
|
@@ -126,29 +136,7 @@ Collaborative design exploration before implementation. Helps turn ideas into fu
|
|
|
126
136
|
- Presents design in 200-300 word sections with validation
|
|
127
137
|
- Saves validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md`
|
|
128
138
|
- Commits the design document to git
|
|
129
|
-
|
|
130
|
-
**Next Steps Guide:**
|
|
131
|
-
|
|
132
|
-
After design is complete, presents two workflow paths and recommends one based on scope:
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
--- Path A: With branch isolation (recommended for features/large changes) ---
|
|
136
|
-
1. /sd-worktree add <name>
|
|
137
|
-
2. /sd-plan
|
|
138
|
-
3. /sd-plan-dev
|
|
139
|
-
4. /sd-check
|
|
140
|
-
5. /sd-commit
|
|
141
|
-
6. /sd-worktree merge
|
|
142
|
-
7. /sd-worktree clean
|
|
143
|
-
|
|
144
|
-
--- Path B: Direct on current branch (quick fixes/small changes) ---
|
|
145
|
-
1. /sd-plan
|
|
146
|
-
2. /sd-plan-dev
|
|
147
|
-
3. /sd-check
|
|
148
|
-
4. /sd-commit
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
**Yolo mode**: Respond with "Path A: yolo" or "Path B: yolo" to auto-execute all steps sequentially.
|
|
139
|
+
- Stops after saving the design — does not auto-proceed to `/sd-plan`
|
|
152
140
|
|
|
153
141
|
### sd-plan
|
|
154
142
|
|
|
@@ -185,30 +173,22 @@ Creates comprehensive implementation plans with TDD, assuming the implementer ha
|
|
|
185
173
|
|
|
186
174
|
### sd-plan-dev
|
|
187
175
|
|
|
188
|
-
Executes implementation plans
|
|
176
|
+
Executes implementation plans via parallel Task agents with dependency-aware scheduling.
|
|
189
177
|
|
|
190
178
|
```
|
|
191
179
|
/sd-plan-dev
|
|
192
180
|
```
|
|
193
181
|
|
|
194
|
-
**
|
|
195
|
-
-
|
|
196
|
-
- **Agent Mode** — otherwise: parallel Task agents with dependency-aware scheduling
|
|
197
|
-
|
|
198
|
-
**Direct Mode process:**
|
|
199
|
-
1. Read plan, implement tasks in dependency order
|
|
200
|
-
2. For each task: implement, write tests, self-review
|
|
201
|
-
3. After all tasks: `pnpm typecheck` + `pnpm lint` + `pnpm vitest` on affected packages
|
|
202
|
-
|
|
203
|
-
**Agent Mode process:**
|
|
204
|
-
- Reads plan, extracts full task text, creates TaskCreate
|
|
182
|
+
**Process:**
|
|
183
|
+
- Reads plan, extracts full task text
|
|
205
184
|
- Analyzes file dependencies to build a task graph
|
|
206
185
|
- Groups independent tasks into parallel batches
|
|
207
186
|
- Each task agent: implements, launches parallel spec + quality review sub-Tasks, fixes issues
|
|
208
|
-
- Repeats review cycle until both reviewers approve
|
|
187
|
+
- Repeats review cycle until both reviewers approve
|
|
188
|
+
- Runs batch integration check (typecheck + lint) between batches
|
|
209
189
|
- Final review Task across entire implementation
|
|
210
190
|
|
|
211
|
-
**Agents used per task
|
|
191
|
+
**Agents used per task:**
|
|
212
192
|
- **Task agent** (implementer) — implements the task, runs sub-Tasks for review
|
|
213
193
|
- **Spec reviewer** sub-Task (`model: opus`) — verifies spec compliance
|
|
214
194
|
- **Quality reviewer** sub-Task (`model: opus`) — reviews code quality
|
|
@@ -216,11 +196,9 @@ Executes implementation plans with right-sized process: direct execution for sma
|
|
|
216
196
|
|
|
217
197
|
**If task agent returns questions:** orchestrator answers and re-launches that agent; other parallel agents continue unaffected.
|
|
218
198
|
|
|
219
|
-
**After all batches complete:** if working inside a `.worktrees/` directory, guides user to run `/sd-worktree merge`.
|
|
220
|
-
|
|
221
199
|
### sd-tdd
|
|
222
200
|
|
|
223
|
-
Test-driven development workflow. Enforces the Red-Green-Refactor cycle. Internally used by other skills; typically not invoked directly by the user.
|
|
201
|
+
Test-driven development workflow. Enforces the Red-Green-Refactor cycle. Internally used by other skills (`user-invocable: false`); typically not invoked directly by the user.
|
|
224
202
|
|
|
225
203
|
**Iron Law:** No production code without a failing test first.
|
|
226
204
|
|
|
@@ -245,7 +223,7 @@ Systematic debugging workflow. Enforces root-cause investigation before any fix
|
|
|
245
223
|
|
|
246
224
|
**Four Phases:**
|
|
247
225
|
|
|
248
|
-
1. **Root Cause Investigation** — Read error messages carefully, reproduce consistently,
|
|
226
|
+
1. **Root Cause Investigation** — Read error messages carefully, reproduce consistently, read source code directly (not git diff), gather evidence by adding diagnostic instrumentation at each component boundary, trace data flow backward through the call stack
|
|
249
227
|
2. **Pattern Analysis** — Find working examples in the codebase, compare against references, identify differences, understand dependencies
|
|
250
228
|
3. **Hypothesis and Testing** — Form a single specific hypothesis, make the smallest possible change to test it, verify before continuing
|
|
251
229
|
4. **Implementation** — Create a failing test case (use `sd-tdd`), implement single fix addressing the root cause, verify fix
|
|
@@ -259,18 +237,22 @@ Systematic debugging workflow. Enforces root-cause investigation before any fix
|
|
|
259
237
|
|
|
260
238
|
### sd-check
|
|
261
239
|
|
|
262
|
-
Verifies code via typecheck, lint, and tests
|
|
240
|
+
Verifies code via typecheck, lint, and tests. Fixes errors automatically and re-runs until all checks pass.
|
|
263
241
|
|
|
264
242
|
```
|
|
265
243
|
/sd-check
|
|
266
244
|
/sd-check packages/core-common
|
|
245
|
+
/sd-check test
|
|
246
|
+
/sd-check packages/core-common lint
|
|
267
247
|
```
|
|
268
248
|
|
|
269
|
-
**Process (
|
|
270
|
-
1. **
|
|
271
|
-
2. **
|
|
272
|
-
3. **
|
|
273
|
-
|
|
249
|
+
**Process (fix-and-retry):**
|
|
250
|
+
1. **Run** `pnpm check [path] [--type typecheck|lint|test]` (timeout: 600000ms)
|
|
251
|
+
2. **All passed?** Report with actual output numbers — done
|
|
252
|
+
3. **Errors?** Fix in priority order: typecheck → lint → test
|
|
253
|
+
- E2E test failures: use Playwright MCP to inspect page state before fixing
|
|
254
|
+
- Stuck after 2-3 attempts → recommend `/sd-debug`
|
|
255
|
+
4. **Re-run ALL checks** after any fix — never assume other checks still pass
|
|
274
256
|
|
|
275
257
|
**No path argument:** defaults to verifying the entire project.
|
|
276
258
|
|
|
@@ -386,7 +368,7 @@ Auto skill/agent router. Analyzes the user request and selects the best matching
|
|
|
386
368
|
# Selects sd-review and executes it
|
|
387
369
|
```
|
|
388
370
|
|
|
389
|
-
**Catalog includes:** `sd-brainstorm`, `sd-debug`, `sd-tdd`, `sd-plan`, `sd-plan-dev`, `sd-explore`, `sd-review`, `sd-check`, `sd-commit`, `sd-readme`, `sd-api-name-review`, `sd-worktree`, `sd-skill` (skills), and `sd-code-reviewer`, `sd-code-simplifier`, `sd-api-reviewer
|
|
371
|
+
**Catalog includes:** `sd-brainstorm`, `sd-debug`, `sd-tdd`, `sd-plan`, `sd-plan-dev`, `sd-explore`, `sd-review`, `sd-check`, `sd-commit`, `sd-readme`, `sd-discuss`, `sd-api-name-review`, `sd-worktree`, `sd-skill` (skills), and `sd-code-reviewer`, `sd-code-simplifier`, `sd-api-reviewer` (agents).
|
|
390
372
|
|
|
391
373
|
### sd-skill
|
|
392
374
|
|
|
@@ -423,6 +405,58 @@ Reviews a library's public API naming for consistency and industry standard alig
|
|
|
423
405
|
| **P2** | Better industry term exists (optional) |
|
|
424
406
|
| **Keep** | Already aligned with standards |
|
|
425
407
|
|
|
408
|
+
### sd-discuss
|
|
409
|
+
|
|
410
|
+
Standards-based technical discussion skill. Evaluates code design decisions against industry standards and project conventions before forming opinions.
|
|
411
|
+
|
|
412
|
+
```
|
|
413
|
+
/sd-discuss class vs functional components for this use case
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
**When to use:** Evaluating code design decisions — class vs functional, pattern choices, architecture trade-offs, technology selection.
|
|
417
|
+
|
|
418
|
+
**Process:**
|
|
419
|
+
1. Asks one question to understand the user's motivation and constraints
|
|
420
|
+
2. Researches BEFORE forming any opinion:
|
|
421
|
+
- Project research (Read/Grep): reads related source code, CLAUDE.md, existing patterns
|
|
422
|
+
- Industry research (WebSearch): community consensus, specifications, benchmarks, comparable libraries
|
|
423
|
+
3. Presents each option with equal depth, advocating FOR each
|
|
424
|
+
4. Provides a decision matrix comparing options across criteria
|
|
425
|
+
5. Asks which criteria matter most to the user — does NOT give a unilateral recommendation
|
|
426
|
+
|
|
427
|
+
**Key rules:** Research first, opinion last. Equal advocacy for each option. Evidence over intuition. No "obvious" answers.
|
|
428
|
+
|
|
429
|
+
### sd-eml-analyze
|
|
430
|
+
|
|
431
|
+
EML email file analysis skill. Parses `.eml` files and extracts content from all attachments into a structured markdown report.
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
/sd-eml-analyze path/to/email.eml
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
**When to use:** When a user provides a `.eml` file to analyze, summarize, or extract attachments from (PDF, XLSX, PPTX).
|
|
438
|
+
|
|
439
|
+
**Internally runs:**
|
|
440
|
+
```bash
|
|
441
|
+
python .claude/skills/sd-eml-analyze/eml-analyzer.py <eml_file_path>
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
First run auto-installs required Python packages: `pdfminer.six`, `python-pptx`, `openpyxl`.
|
|
445
|
+
|
|
446
|
+
**Output:** Markdown report with mail info table, body text, and per-attachment extracted content.
|
|
447
|
+
|
|
448
|
+
**Supported attachments:**
|
|
449
|
+
|
|
450
|
+
| Format | Method |
|
|
451
|
+
|--------|--------|
|
|
452
|
+
| PDF | pdfminer.six text extraction |
|
|
453
|
+
| XLSX/XLS | openpyxl cell data as markdown table |
|
|
454
|
+
| PPTX | python-pptx slide text + tables + notes |
|
|
455
|
+
| Text files (.txt, .csv, .json, .xml, .html, .md) | UTF-8/CP949 decode |
|
|
456
|
+
| Images | Filename and size only |
|
|
457
|
+
|
|
458
|
+
Handles Korean encodings (EUC-KR, CP949, ks_c_5601-1987) automatically.
|
|
459
|
+
|
|
426
460
|
## Agents
|
|
427
461
|
|
|
428
462
|
Agents are used by skills as subagents via the Task tool, or can be invoked directly.
|
|
@@ -475,6 +509,45 @@ Reviews ORM queries and service endpoints for SQL injection and input validation
|
|
|
475
509
|
|
|
476
510
|
## Rules
|
|
477
511
|
|
|
512
|
+
Rules are loaded automatically by Claude Code for all conversations in the project.
|
|
513
|
+
|
|
514
|
+
### sd-refs-linker
|
|
515
|
+
|
|
516
|
+
Instructs Claude to read the relevant reference file from `.claude/refs/` before starting work. Maps task types to specific reference files:
|
|
517
|
+
|
|
518
|
+
| When | Reference file |
|
|
519
|
+
|------|----------------|
|
|
520
|
+
| Writing or modifying code | `sd-code-conventions.md` |
|
|
521
|
+
| Working with `.cache/` or Playwright screenshots | `sd-directories.md` |
|
|
522
|
+
| Using `@simplysm/*` package APIs | `sd-simplysm-docs.md` |
|
|
523
|
+
| Debugging, problem-solving, or planning | `sd-workflow.md` |
|
|
524
|
+
| SolidJS / @simplysm/solid / Tailwind work | `sd-solid.md` |
|
|
525
|
+
| Using `@simplysm/orm-*` | `sd-orm.md` |
|
|
526
|
+
| Using `@simplysm/service-*` | `sd-service.md` |
|
|
527
|
+
|
|
528
|
+
### sd-language
|
|
529
|
+
|
|
530
|
+
Instructs Claude to respond in the system's configured language setting, while keeping technical terms, code identifiers, and library names unchanged. English error messages and logs are preserved in their original form.
|
|
531
|
+
|
|
532
|
+
## Refs
|
|
533
|
+
|
|
534
|
+
Reference files in `.claude/refs/` are consumed by Claude when the `sd-refs-linker` rule directs it to read them.
|
|
535
|
+
|
|
536
|
+
### sd-code-conventions
|
|
537
|
+
|
|
538
|
+
Code style and naming conventions for the simplysm monorepo:
|
|
539
|
+
- Generic type parameter naming (`TItem`, `TData`, not plain `T`)
|
|
540
|
+
- Prototype extension methods available from `@simplysm/core-common`
|
|
541
|
+
- Function naming: no `Async` suffix (async is the default); `Sync` suffix for synchronous variants
|
|
542
|
+
- File naming: auxiliary files prefixed with the main file name
|
|
543
|
+
- JSDoc: optional, use Korean when written
|
|
544
|
+
|
|
545
|
+
### sd-directories
|
|
546
|
+
|
|
547
|
+
Directory layout reference:
|
|
548
|
+
- `.cache/` — build cache (`eslint.cache`, `typecheck-{env}.tsbuildinfo`, `dts.tsbuildinfo`). Reset by deleting `.cache/`
|
|
549
|
+
- `.tmp/playwright/` — Playwright MCP output directory; screenshots must always be saved here
|
|
550
|
+
|
|
478
551
|
### sd-simplysm-docs
|
|
479
552
|
|
|
480
553
|
Instructs Claude to read `@simplysm/*` package documentation from local `node_modules/` README.md files. Includes an embedded package list so Claude can immediately identify which package to look up.
|
|
@@ -484,17 +557,35 @@ Instructs Claude to read `@simplysm/*` package documentation from local `node_mo
|
|
|
484
557
|
node_modules/@simplysm/{package-name}/README.md
|
|
485
558
|
```
|
|
486
559
|
|
|
487
|
-
### sd-
|
|
560
|
+
### sd-workflow
|
|
488
561
|
|
|
489
|
-
|
|
562
|
+
Workflow behavior and problem-solving principles:
|
|
563
|
+
- No auto-proceeding after skill completion (report and stop; exception: yolo mode)
|
|
564
|
+
- Root cause first — investigate before fixing; no band-aid patches
|
|
565
|
+
- Pre-coding checklist: read similar files before creating new ones
|
|
566
|
+
- Memory policy: do not use auto memory; all persistent knowledge belongs in `.claude/rules/` or project docs
|
|
567
|
+
|
|
568
|
+
### sd-solid
|
|
569
|
+
|
|
570
|
+
SolidJS / `@simplysm/solid` / Tailwind CSS guidelines covering component model differences from React, props design rules, compound component patterns, Tailwind semantic color/z-index tokens, and application view naming conventions.
|
|
571
|
+
|
|
572
|
+
### sd-orm
|
|
573
|
+
|
|
574
|
+
ORM query patterns and SQL injection prevention for simplysm ORM, which uses string escaping rather than parameter binding. Covers table definition syntax and mandatory input validation before queries.
|
|
575
|
+
|
|
576
|
+
### sd-service
|
|
577
|
+
|
|
578
|
+
Service layer guidelines for `ServiceServer`, `ServiceClient`, and `ServiceProtocol`.
|
|
579
|
+
|
|
580
|
+
## Hooks
|
|
490
581
|
|
|
491
|
-
|
|
582
|
+
Hooks run automatically at Claude Code lifecycle events.
|
|
492
583
|
|
|
493
|
-
|
|
584
|
+
### sd-notify.py
|
|
494
585
|
|
|
495
|
-
|
|
586
|
+
Windows toast notification hook. Fires on the `Stop` event (when Claude Code finishes a task) and displays a Windows balloon tip notification showing the current folder name and a completion message.
|
|
496
587
|
|
|
497
|
-
|
|
588
|
+
Requires Python 3 and PowerShell (Windows only). Uses `System.Windows.Forms.NotifyIcon` via PowerShell.
|
|
498
589
|
|
|
499
590
|
## Status Line
|
|
500
591
|
|
|
@@ -525,6 +616,7 @@ Runs before `npm pack` / `npm publish` (via `prepack` script). Syncs `sd-*` asse
|
|
|
525
616
|
- If using `onlyBuiltDependencies` in `pnpm-workspace.yaml`, add `@simplysm/sd-claude` to the list
|
|
526
617
|
- Skills and agents use the `sd-` prefix to distinguish them from user-defined assets
|
|
527
618
|
- Existing `sd-*` entries are always replaced with the latest version on install
|
|
619
|
+
- `sd-notify.py` hook requires Windows and Python 3
|
|
528
620
|
|
|
529
621
|
## Dependencies
|
|
530
622
|
|
|
@@ -29,6 +29,13 @@ Multiple types: `--type typecheck,lint`. No path = full project. No type = all c
|
|
|
29
29
|
2. **All passed?** Report with actual output numbers → done
|
|
30
30
|
3. **Errors?** Fix in priority order: typecheck → lint → test (fixes cascade)
|
|
31
31
|
- Test failures: run `git diff` to decide — update test or fix source
|
|
32
|
+
- **E2E test failures** (browser/solid/service project): use Playwright MCP to investigate before fixing
|
|
33
|
+
1. `browser_navigate` to the target URL
|
|
34
|
+
2. `browser_snapshot` / `browser_take_screenshot` (save to `.tmp/playwright/`) to see page state
|
|
35
|
+
3. `browser_console_messages` for JS errors
|
|
36
|
+
4. `browser_network_requests` for failed API calls
|
|
37
|
+
5. Interact with the page following the test steps to reproduce the failure
|
|
38
|
+
6. Fix based on observed evidence, not guesswork
|
|
32
39
|
- Stuck after 2-3 attempts → recommend `/sd-debug`
|
|
33
40
|
4. **Go to 1** — always re-run ALL checks after any fix
|
|
34
41
|
|
|
@@ -38,3 +45,4 @@ Multiple types: `--type typecheck,lint`. No path = full project. No type = all c
|
|
|
38
45
|
- **Report with evidence** — cite actual numbers (e.g., "0 errors, 47 tests passed"), not "should work"
|
|
39
46
|
- **No build, no dev server** — typecheck + lint + test only
|
|
40
47
|
- **Run Bash directly** — no Task/agent/team overhead
|
|
48
|
+
- **Never run in background** — always run Bash in foreground (do NOT set `run_in_background: true`), wait for result before proceeding
|
package/package.json
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
import json, sys, os, subprocess
|
|
3
|
-
|
|
4
|
-
data = json.load(sys.stdin)
|
|
5
|
-
|
|
6
|
-
dir_name = os.path.basename(data.get("cwd", ""))
|
|
7
|
-
|
|
8
|
-
ps_cmd = (
|
|
9
|
-
"Add-Type -AssemblyName System.Windows.Forms; "
|
|
10
|
-
"$notify = New-Object System.Windows.Forms.NotifyIcon; "
|
|
11
|
-
"$notify.Icon = [System.Drawing.SystemIcons]::Information; "
|
|
12
|
-
"$notify.Visible = $true; "
|
|
13
|
-
f"$notify.ShowBalloonTip(3000, 'Claude Code', '[{dir_name}] 작업 완료', "
|
|
14
|
-
"[System.Windows.Forms.ToolTipIcon]::Info); "
|
|
15
|
-
"Start-Sleep -Milliseconds 3500"
|
|
16
|
-
)
|
|
17
|
-
subprocess.run(["powershell.exe", "-Command", ps_cmd])
|