@bifos/dooray-cli 0.14.1 → 0.15.0

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 CHANGED
@@ -24,11 +24,12 @@ dooray setup
24
24
  ```
25
25
 
26
26
  아래 순서로 진행합니다:
27
+
27
28
  1. API Endpoint 선택
28
29
  2. API Key 입력
29
30
  3. 연결 테스트
30
31
  4. 메일 설정 (선택)
31
- API 토큰은 `https://{tenant}.dooray.com/setting/api/token`에서 발급할 수 있습니다.
32
+ API 토큰은 `https://{tenant}.dooray.com/setting/api/token`에서 발급할 수 있습니다.
32
33
 
33
34
  수동 설정도 가능합니다:
34
35
 
@@ -38,6 +39,25 @@ dooray config set api-key <YOUR_API_TOKEN>
38
39
  dooray doctor
39
40
  ```
40
41
 
42
+ ## Claude Code 스킬 관리
43
+
44
+ AI 에이전트용 스킬은 CLI와 별도로 상태를 확인하고 갱신할 수 있습니다.
45
+
46
+ ```bash
47
+ dooray skill status # 설치 상태 확인
48
+ dooray skill install # 최초 설치
49
+ dooray skill update # 현재 CLI 버전의 스킬로 갱신
50
+ dooray skill status --json # 자동화용 상태 확인
51
+ ```
52
+
53
+ Node 버전 관리자를 사용하면 전역 npm 설치 경로가 Node 버전별로 달라질 수 있습니다.
54
+ 스킬은 npm 패키지 경로를 직접 가리키지 않고 관리 저장소를 거쳐 연결됩니다.
55
+ 절대 경로 `XDG_DATA_HOME`이 있으면 `$XDG_DATA_HOME/dooray-cli/skills/`를 사용하고, 없거나 상대 경로이면 `~/.local/share/dooray-cli/skills/`를 사용합니다.
56
+ 그래서 Node 버전 경로가 바뀌어도 Claude Code 활성 링크는 안정적으로 유지됩니다.
57
+ 다만 `npm install -g @bifos/dooray-cli@latest`로 CLI를 갱신한 뒤에는 새 스킬 파일을 반영하기 위해 `dooray skill update`를 명시적으로 실행하세요.
58
+ 기존 경로가 직접 만든 파일이나 디렉터리라면 기본 갱신은 중단됩니다.
59
+ 그 경우 내용을 확인한 뒤 `dooray skill update --force`를 사용하면 기존 항목을 `.backup-<timestamp>` 경로로 백업하고 교체합니다.
60
+
41
61
  ## 사용법 (Usage)
42
62
 
43
63
  ### 프로젝트
@@ -80,12 +100,12 @@ dooray post get <project> 42 --json # JSON 출력
80
100
 
81
101
  #### 업무 식별 방식 (post 하위 16개 명령 공통)
82
102
 
83
- | 방식 | 예시 |
84
- |---|---|
85
- | `<project> <number>` | `dooray post get <project> 42` |
86
- | Dooray URL positional | `dooray post get https://x.dooray.com/task/to/<postId>` |
87
- | `--id <postId>` | `dooray post get --id <postId>` |
88
- | `--url <url>` | `dooray post get --url https://x.dooray.com/task/to/<postId>` |
103
+ | 방식 | 예시 |
104
+ | --------------------- | ------------------------------------------------------------- |
105
+ | `<project> <number>` | `dooray post get <project> 42` |
106
+ | Dooray URL positional | `dooray post get https://x.dooray.com/task/to/<postId>` |
107
+ | `--id <postId>` | `dooray post get --id <postId>` |
108
+ | `--url <url>` | `dooray post get --url https://x.dooray.com/task/to/<postId>` |
89
109
 
90
110
  지원 URL 형식 3종 (positional 첫 인자 / `--url` 공통):
91
111
 
@@ -315,6 +335,7 @@ dooray post create <project> --title "..." --cc 1234567890123456789
315
335
  ```
316
336
 
317
337
  분기 규칙 (`resolveMember` 자동 판단):
338
+
318
339
  - `^\d{15,}$` — memberId 직접 사용
319
340
  - `^[^\s@]+@[^\s@]+\.[^\s@]+$` — 이메일, `searchMembers` exact 조회
320
341
  - 그 외 — 이름 부분일치
@@ -453,6 +474,7 @@ SNIPPET=$(dooray wiki page file upload <project> <page-id> --file ./diagram.png
453
474
  ```
454
475
 
455
476
  **주의**:
477
+
456
478
  - `upload` 시 multipart 필드 순서 (`type` → `file`) 가 중요.
457
479
  클라이언트가 자동으로 강제
458
480
  - `inline_image` 로 올린 파일은 본문에 markdown 으로 박혀야 위키에서 보임.
@@ -491,6 +513,7 @@ dooray wiki page comment list "https://<tenant>.dooray.com/wiki/<wikiId>/<pageId
491
513
  ```
492
514
 
493
515
  **post comment 와의 차이**:
516
+
494
517
  - mention / cc / 받는 사람 미지원 — wiki API 부재
495
518
  - 첨부 파일 미지원 — wiki comment 전용 endpoint 부재 (페이지 본문 파일은 `wiki page file` 사용)
496
519
  - 본문은 markdown 그대로 전송 (mimeType 자동)
@@ -501,7 +524,7 @@ IMAP을 통해 Dooray 메일을 조회할 수 있습니다. 메일 설정은 `do
501
524
 
502
525
  ```bash
503
526
  # 수동 설정 (dooray setup 사용 시 불필요)
504
- dooray config set imap-username your@email.com
527
+ dooray config set imap-username user@example.com
505
528
  dooray config set imap-password <IMAP_APP_PASSWORD>
506
529
 
507
530
  # 메일 조회
@@ -514,8 +537,8 @@ dooray mail get <uid> --json # JSON 출력
514
537
 
515
538
  # 메일 발송
516
539
  dooray mail send --to "user@example.com" --subject "제목" --body "본문"
517
- dooray mail send --to "a@b.com" --cc "c@d.com" --subject "제목" --body-file ./content.md
518
- dooray mail send --to "a@b.com" --subject "HTML 메일" --body "<h1>Hello</h1>" --html
540
+ dooray mail send --to "recipient@example.com" --cc "copy@example.com" --subject "제목" --body-file ./content.md
541
+ dooray mail send --to "recipient@example.com" --subject "HTML 메일" --body "<h1>Hello</h1>" --html
519
542
 
520
543
  # 메일 답장 (스레드 유지)
521
544
  dooray mail reply <uid> --body "답장 내용"
@@ -585,6 +608,7 @@ dooray post file upload <project> <number> ./report.pdf --json
585
608
  ```
586
609
 
587
610
  URL/`--id`/`--url` 모드에서는 sub-id를 옵션으로 전달:
611
+
588
612
  ```bash
589
613
  dooray post file download --url <url> --file-id <fileId> -o ./downloads
590
614
  dooray post file delete --url <url> --file-id <fileId>
@@ -618,11 +642,11 @@ dooray post comment file delete <project> <post-num> <comment-id> <file-id> --ye
618
642
 
619
643
  ## 출력 모드
620
644
 
621
- | 플래그 | 설명 | 용도 |
622
- |--------|------|------|
623
- | (없음) | 테이블 출력 | 사람이 읽기 좋음 |
624
- | `--json` | JSON 출력 | 파싱, 파이프라인 |
625
- | `--quiet` | ID만 출력 | 스크립팅 |
645
+ | 플래그 | 설명 | 용도 |
646
+ | --------- | ----------- | ---------------- |
647
+ | (없음) | 테이블 출력 | 사람이 읽기 좋음 |
648
+ | `--json` | JSON 출력 | 파싱, 파이프라인 |
649
+ | `--quiet` | ID만 출력 | 스크립팅 |
626
650
 
627
651
  ```bash
628
652
  # 파이프라인 예시
@@ -636,8 +660,9 @@ dooray post list <project> --quiet | xargs -I{} dooray post done <project> {}
636
660
  Claude Code 등의 AI 에이전트에서 dooray-cli를 자동으로 활용할 수 있도록 의도→커맨드 매핑, 체이닝 예시, 에러 핸들링 가이드가 포함되어 있습니다.
637
661
 
638
662
  ```bash
639
- # 스킬 파일 복사 (Claude Code 예시)
640
- cp -r skills/dooray-cli ~/.claude/skills/
663
+ # Claude Code 스킬 상태 확인과 설치
664
+ dooray skill status
665
+ dooray skill install
641
666
  ```
642
667
 
643
668
  ## 피드백 (GitHub Issue 등록)
@@ -696,11 +721,13 @@ dooray --help
696
721
  이 레포는 두 개의 워크플로를 사용합니다:
697
722
 
698
723
  ### CI (`.github/workflows/ci.yml`)
724
+
699
725
  - 트리거: `main` 으로 push, `main` 대상 PR
700
726
  - 동작: `pnpm install --frozen-lockfile`, `pnpm test`, `pnpm build` (Node 18, ubuntu-latest)
701
727
  - 별도 secret 불필요
702
728
 
703
729
  ### Claude code review (`.github/workflows/claude-code-review.yml`)
730
+
704
731
  - 트리거: PR opened, PR 댓글에 `/review` 포함
705
732
  - 동작: 4 병렬 specialist 에이전트 (TypeScript / Conventions / Security / Architecture) 가 인라인 리뷰 + 요약 댓글 1개 게시
706
733
  - 필요 secret: `CLAUDE_CODE_OAUTH_TOKEN`