@bifos/dooray-cli 0.17.0 → 0.19.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
@@ -32,6 +32,19 @@ dooray setup
32
32
  dooray doctor # 설정이 제대로 됐는지 확인
33
33
  ```
34
34
 
35
+ 개별 값만 바꾸려면 `dooray config set` 을 쓴다. 값 자리에 `-` 를 주면 stdin 에서 읽는다.
36
+
37
+ ```bash
38
+ printf '%s' "$TOKEN" | dooray config set api-key -
39
+ ```
40
+
41
+ 토큰을 명령 인자로 넘기면 셸 기록과 프로세스 목록에 남는다. 에이전트가 대신 실행하면 실행 로그에도 남는다.
42
+ stdin 으로 받은 값은 양끝 공백을 지운 뒤 저장하고, 비어 있으면 저장하지 않고 종료 코드 3 으로 끝낸다.
43
+
44
+ `api-key` 나 `base-url` 을 바꾸면 캐시를 함께 비우고 그 사실을 알린다.
45
+ 캐시는 계정과 접속 환경별로 나뉘지 않아서, 비우지 않으면 이전 계정의 프로젝트와 멤버가 남아 잘못 매칭된다.
46
+ 같은 값을 다시 설정하는 경우와 최초 설정에서는 비우지 않는다.
47
+
35
48
  에이전트에서 쓰려면 스킬을 설치한다. Claude Code 가 이 CLI 의 사용법을 알게 된다.
36
49
 
37
50
  ```bash
@@ -41,6 +54,41 @@ dooray skill status
41
54
 
42
55
  CLI 를 새 버전으로 올린 뒤에는 `dooray skill update` 를 실행해야 스킬도 갱신된다.
43
56
 
57
+ ## Dooray 문체 페르소나
58
+
59
+ `dooray-persona` 스킬은 Dooray에 쌓인 본인 업무 글과 댓글을 모아 개인 업무 문체 문서를 만든다.
60
+ 완성한 문서를 AI 에이전트의 규칙으로 연결하면 업무와 댓글 초안을 본인 문체에 맞춰 작성할 수 있다.
61
+
62
+ 이 스킬은 사용자 글을 로컬에서 분석하는 별도 워크플로우이므로 `dooray skill install`의 설치 대상이 아니다.
63
+ 저장소를 내려받은 뒤 스킬 디렉터리를 `~/.claude/skills/` 아래에 링크하거나 복사한다.
64
+
65
+ ```bash
66
+ git clone https://github.com/jon890/dooray-cli.git
67
+ cd dooray-cli
68
+ mkdir -p ~/.claude/skills
69
+ ln -s "$PWD/skills/dooray-persona" ~/.claude/skills/dooray-persona
70
+ ```
71
+
72
+ 링크 대신 복사해서 사용하려면 마지막 명령을 다음 명령으로 바꾼다.
73
+
74
+ ```bash
75
+ cp -R skills/dooray-persona ~/.claude/skills/
76
+ ```
77
+
78
+ 설정 파일은 `~/.claude/dooray-persona.config.json`이며, 최초 실행에서는 후보 프로젝트를 탐색해 대상을 고른 뒤 본인 글을 수집한다.
79
+ 인증은 `dooray setup`이 만든 `~/.dooray/config.json`을 읽어 사용하므로 토큰을 따로 입력하지 않는다.
80
+
81
+ ### 터미널에 익숙하지 않은 동료에게 넘기기
82
+
83
+ `skills/dooray-persona/references/bootstrap.md`에 붙여넣기용 프롬프트가 있다.
84
+ 그 블록을 복사해 전달하면 받는 사람은 Claude Code에 한 번 붙여넣는 것으로 CLI 설치, 인증 설정, 스킬 연결, 수집, 문서 생성, 주입까지 진행한다.
85
+
86
+ 받는 사람이 직접 해야 하는 것은 둘이다. Claude Code 설치와 Dooray 개인 인증 토큰 발급이다.
87
+ 토큰 발급은 웹 로그인이 필요해 자동화할 수 없고, 프롬프트가 발급 화면 주소까지만 안내한다.
88
+
89
+ Claude 데스크톱 앱은 사용자 컴퓨터의 파일과 명령을 기본 상태로 다루지 못한다.
90
+ 문서는 Claude Code에서 만들고, 완성한 문서를 데스크톱 앱의 프로젝트 지식이나 스타일 설정에 붙여넣어 쓴다.
91
+
44
92
  ## 사용법
45
93
 
46
94
  설정을 마치면 에이전트에게 한국어로 시키면 된다.
@@ -56,7 +104,7 @@ CLI 를 새 버전으로 올린 뒤에는 `dooray skill update` 를 실행해야
56
104
  ```
57
105
 
58
106
  에이전트가 알맞은 `dooray` 명령으로 옮기고, 필요하면 프로젝트 코드나 업무 번호를 먼저 조회한다.
59
- 업무 URL 을 그대로 붙여도 된다 에이전트가 URL 에서 대상을 찾아낸다.
107
+ 업무 URL 을 그대로 붙여도 된다. 에이전트가 URL 에서 대상을 찾아낸다.
60
108
 
61
109
  에이전트가 쓰는 명령 카탈로그와 판단 기준은 [스킬 문서](skills/dooray-cli/SKILL.md)에 있다.
62
110
 
@@ -71,6 +119,11 @@ dooray post get <project> 42 # 업무 상세
71
119
  dooray post create <project> --title "제목" # 업무 생성
72
120
  dooray post comment add <project> 42 --body "댓글"
73
121
  dooray wiki pages <project> # 위키 페이지 목록
122
+ dooray wiki page get --id <page-id> # 페이지 ID 하나로 조회 (project 불필요)
123
+ dooray wiki list --search 설계 # 위키 이름으로 찾기 (대소문자 무시)
124
+ dooray wiki page get --url "https://<tenant>.dooray.com/wiki/<wikiId>/<pageId>"
125
+ dooray wiki page move --id <page-id> --parent <parent-page-id>
126
+ dooray wiki page move --id <page-id> --parent <parent-page-id> --no-children
74
127
  dooray mail list --unread # 안 읽은 메일
75
128
  ```
76
129
 
@@ -125,6 +178,31 @@ CLI로 올린 파일은 댓글의 첨부 카드가 아니라 본문 링크로
125
178
  플래그가 없으면 삭제 API를 호출하기 전에 종료 코드 3으로 끝난다.
126
179
  기존 삭제 자동화에는 명시적인 yes 플래그를 추가해야 한다.
127
180
 
181
+ ### 프로젝트 태그 만들기
182
+
183
+ 업무에 붙일 태그를 CLI 에서 만든다.
184
+
185
+ ```bash
186
+ dooray project tags <project> # 태그 목록
187
+ dooray project tags list <project> # 같은 동작
188
+ dooray project tags create <project> --name "배포환경:staging" # 그룹에 속한 태그
189
+ dooray project tags create <project> --name "긴급" --color c6eab3 # 그룹 없는 태그
190
+ dooray project tags group <project> "배포환경" --select-one # 그룹에서 하나만 고르게
191
+ ```
192
+
193
+ `--name` 은 `"그룹명:태그명"` 형식이고 그룹명은 생략할 수 있다.
194
+ 같은 그룹명으로 여러 번 만들면 그 그룹에 태그가 쌓인다.
195
+ `--color` 를 생략하면 회색이 붙는다.
196
+
197
+ `group` 은 그룹의 필수 여부(`--mandatory`)와 단일 선택 여부(`--select-one`)를 바꾼다.
198
+ 해제는 `--no-mandatory` 와 `--no-select-one` 이고, 지정하지 않은 쪽은 그대로 둔다.
199
+ 태그가 하나도 없는 그룹은 대상이 되지 않는다.
200
+
201
+ 프로젝트 코드가 `list`, `create`, `group` 중 하나와 같으면 그 인자가 하위 명령으로 먼저 읽힌다.
202
+ 그때는 `dooray project tags list <project>` 로 목록을 조회한다.
203
+
204
+ 태그 이름·색상 수정과 태그 삭제는 Dooray API 에 경로가 없어 웹 설정 화면에서 한다.
205
+
128
206
  ## 프로젝트 구조
129
207
 
130
208
  ```
@@ -133,7 +211,8 @@ src/
133
211
  api/ Dooray REST API 클라이언트 (ky), IMAP·SMTP 클라이언트
134
212
  cache/ ~/.dooray/cache/ 파일 캐시
135
213
  config/ ~/.dooray/config.json 스키마와 읽기·쓰기
136
- resolvers/ 이름·이메일·URL 을 ID 로 바꾸는 계층
214
+ resolvers/ 이름·이메일·URL 을 ID 로 바꾸는 읽기 계층
215
+ services/ 상태를 바꾸는 API 를 호출하고 그 엔티티의 캐시를 지우는 계층
137
216
  commands/ Commander.js 명령 정의
138
217
  formatters/ 표·JSON·quiet 출력
139
218
  editor/ $EDITOR 연동
@@ -141,7 +220,10 @@ src/
141
220
  utils/ 에러, 스피너, 종료 코드
142
221
  ```
143
222
 
144
- 의존 방향은 `api/` `resolvers/` → `commands/` → `formatters/` 다.
223
+ 의존 방향은 읽기와 쓰기로 나뉜다.
224
+ 읽기는 `api/` → `resolvers/` → `commands/` → `formatters/` 다.
225
+ 쓰기는 `commands/` → `services/` → `api/` 와 `cache/` 다.
226
+ `services/` 는 `resolvers/` 를 의존하지 않는다. 이름을 ID 로 바꾸는 일과 바꾸는 일을 조합하는 것은 `commands/` 다.
145
227
 
146
228
  | 문서 | 담는 것 |
147
229
  | --- | --- |