doque 0.3.0 → 0.3.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.md +197 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +107 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/package.json +14 -6
package/README.md
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# doque
|
|
2
|
+
|
|
3
|
+
멀티환경 통합 작업 관리 CLI. 프로젝트, 작업, 문서를 터미널에서 관리한다.
|
|
4
|
+
|
|
5
|
+
## 설치
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g doque
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 빠른 시작
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# 로그인 (브라우저가 열리고 인증 진행)
|
|
15
|
+
doque auth login
|
|
16
|
+
|
|
17
|
+
# 네임스페이스 확인
|
|
18
|
+
doque ns list
|
|
19
|
+
|
|
20
|
+
# 프로젝트 선택
|
|
21
|
+
doque vessel list
|
|
22
|
+
doque vessel use my-project
|
|
23
|
+
|
|
24
|
+
# 작업 관리
|
|
25
|
+
doque cargo list
|
|
26
|
+
doque cargo create --title "API 구현" --type task
|
|
27
|
+
doque cargo start 1
|
|
28
|
+
doque cargo done 1
|
|
29
|
+
|
|
30
|
+
# 작업 트리 (중첩 구조)
|
|
31
|
+
doque cargo tree
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 명령어
|
|
35
|
+
|
|
36
|
+
### 인증
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
auth login Device Flow 또는 PAT(--token)으로 로그인
|
|
40
|
+
auth status 현재 인증 상태 확인
|
|
41
|
+
auth logout 로그아웃
|
|
42
|
+
whoami 사용자 + 컨텍스트 + 디바이스 정보
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 네임스페이스
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
ns list 내 네임스페이스 목록
|
|
49
|
+
ns use <slug> 네임스페이스 전환
|
|
50
|
+
ns info [slug] 네임스페이스 상세 정보
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 프로젝트 (Vessel)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
vessel list 현재 네임스페이스의 프로젝트 목록
|
|
57
|
+
vessel use <slug> 프로젝트 선택
|
|
58
|
+
vessel create <slug> 프로젝트 생성
|
|
59
|
+
vessel info <slug> 프로젝트 상세 정보
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 작업 (Cargo)
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
cargo list 현재 프로젝트의 작업 목록
|
|
66
|
+
cargo tree 작업 트리 (중첩 구조)
|
|
67
|
+
cargo create 작업 생성 (--title, --type, --parent)
|
|
68
|
+
cargo info <id> 작업 상세 정보
|
|
69
|
+
cargo update <id> 작업 수정
|
|
70
|
+
cargo start <id> 작업 시작 (-> in_progress)
|
|
71
|
+
cargo done <id> 작업 완료 (-> done)
|
|
72
|
+
cargo status <id> <s> 상태 변경 (backlog/in_progress/review/done)
|
|
73
|
+
cargo delete <id> 작업 삭제
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Cargo 타입: `epic` / `story` / `task` / `todo` / `bug`
|
|
77
|
+
|
|
78
|
+
### 기록 (Journal)
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
journal list <cargo-id> 목록
|
|
82
|
+
journal create <cargo-id> --title "..." 생성 (--type adr/session/design/note/memo)
|
|
83
|
+
journal create <cargo-id> --stdin stdin에서 내용 읽기
|
|
84
|
+
journal read <journal-id> 내용 조회
|
|
85
|
+
journal update <journal-id> --content "." 수정
|
|
86
|
+
journal delete <journal-id> 삭제
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 댓글 (Comment)
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
comment list <cargo-id> 댓글 목록
|
|
93
|
+
comment add <cargo-id> "내용" 댓글 추가
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 덤프 (벌크 조회)
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
dump tree Cargo 트리 (제목/상태만)
|
|
100
|
+
dump full Cargo + Journal 전체 내용
|
|
101
|
+
dump cargo <id> --deep 특정 Cargo + 하위 + Journal
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
`--format json` / `--format markdown` 지원.
|
|
105
|
+
|
|
106
|
+
### 활동/디바이스/설정
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
activity list 내 최근 활동
|
|
110
|
+
beacon list 내 등록 디바이스 목록
|
|
111
|
+
beacon delete <id> 디바이스 삭제
|
|
112
|
+
config list 전체 설정 조회
|
|
113
|
+
config set <key> <value> 설정값 변경
|
|
114
|
+
status 현재 컨텍스트 확인
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## 컨텍스트
|
|
118
|
+
|
|
119
|
+
CLI는 "현재 네임스페이스"와 "현재 프로젝트"를 기억한다.
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
doque ns use my-org # 네임스페이스 전환
|
|
123
|
+
doque vessel use my-project # 프로젝트 선택
|
|
124
|
+
doque status # 현재 컨텍스트 확인
|
|
125
|
+
|
|
126
|
+
# 이후 cargo/journal/comment 명령어는 선택된 프로젝트 기준으로 동작
|
|
127
|
+
doque cargo list # my-org/my-project의 작업 목록
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
설정은 `~/.doque/config.json`에 저장된다.
|
|
131
|
+
|
|
132
|
+
## Claude Code 연동
|
|
133
|
+
|
|
134
|
+
AI 에이전트(Claude Code)가 프로젝트 컨텍스트를 로드하고 작업 문서화하는 데 사용한다.
|
|
135
|
+
|
|
136
|
+
### 초기 설정
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
cd ~/projects/my-project
|
|
140
|
+
doque init
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
`.claude/skills/doque/SKILL.md`가 생성되어 Claude Code가 doque 사용법을 자동 참조한다.
|
|
144
|
+
|
|
145
|
+
### Claude Code 워크플로우
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# 세션 시작 - 전체 구조 파악
|
|
149
|
+
doque status
|
|
150
|
+
doque dump tree
|
|
151
|
+
|
|
152
|
+
# 필요한 작업 상세 로드
|
|
153
|
+
doque dump cargo 1 --deep
|
|
154
|
+
|
|
155
|
+
# 작업 중 - 상태 변경 + 기록
|
|
156
|
+
doque cargo start 1
|
|
157
|
+
doque journal create 1 --title "SESSION-001" --type session --stdin
|
|
158
|
+
|
|
159
|
+
# 세션 종료 - 완료 기록
|
|
160
|
+
doque cargo done 1
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 출력 형식
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
doque cargo list --format json # JSON (파싱용)
|
|
167
|
+
doque dump full --format markdown # Markdown (컨텍스트용)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 인증 방식
|
|
171
|
+
|
|
172
|
+
### Device Flow (기본)
|
|
173
|
+
```bash
|
|
174
|
+
doque auth login
|
|
175
|
+
# 브라우저가 열리고 로그인 + 승인 진행
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Personal Access Token (브라우저 없는 환경)
|
|
179
|
+
```bash
|
|
180
|
+
doque auth login --token
|
|
181
|
+
# 또는
|
|
182
|
+
DOQUE_TOKEN=xxx doque cargo list
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
토큰 우선순위: `DOQUE_TOKEN` 환경변수 > `--token` 플래그 > `~/.doque/config.json`
|
|
186
|
+
|
|
187
|
+
## 서버 설정
|
|
188
|
+
|
|
189
|
+
기본값:
|
|
190
|
+
- API 서버: `https://doque-api.rn00n.com`
|
|
191
|
+
- 인증 서버: `https://auth.rn00n.com`
|
|
192
|
+
|
|
193
|
+
변경:
|
|
194
|
+
```bash
|
|
195
|
+
doque config set server http://localhost:8080
|
|
196
|
+
doque config set authServer http://localhost:8081
|
|
197
|
+
```
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
export declare const SKILL_CONTENT = "# Doque \u2014 \uD504\uB85C\uC81D\uD2B8 \uAD00\uB9AC CLI\n\ndoque\uB294 \uBA40\uD2F0\uD658\uACBD \uD1B5\uD569 \uC791\uC5C5 \uAD00\uB9AC CLI\uC774\uB2E4.\n\uD504\uB85C\uC81D\uD2B8(Vessel), \uC791\uC5C5(Cargo), \uAE30\uB85D(Journal), \uB313\uAE00(Comment)\uC744 \uD130\uBBF8\uB110\uC5D0\uC11C \uAD00\uB9AC\uD55C\uB2E4.\n\uC774 \uC2A4\uD0AC\uC740 Claude Code\uAC00 doque-cli\uB97C \uC0AC\uC6A9\uD558\uC5EC \uD504\uB85C\uC81D\uD2B8\uB97C \uAD00\uB9AC\uD558\uB294 \uBC29\uBC95\uC744 \uC815\uC758\uD55C\uB2E4.\n\n## \uD575\uC2EC \uAC1C\uB150\n\n- Namespace: \uC0AC\uC6A9\uC790 \uACC4\uC815 \uB610\uB294 \uC870\uC9C1 \uB2E8\uC704. \uB85C\uADF8\uC778 \uC2DC \uAE30\uBCF8 namespace\uAC00 \uC124\uC815\uB41C\uB2E4.\n- Vessel: \uD504\uB85C\uC81D\uD2B8. namespace \uC548\uC5D0 \uC5EC\uB7EC vessel\uC744 \uAC00\uC9C4\uB2E4.\n- Cargo: \uC791\uC5C5. vessel \uC548\uC5D0 \uBB34\uD55C \uB381\uC2A4\uB85C \uC911\uCCA9 \uAC00\uB2A5 (epic > story > task).\n - \uD0C0\uC785: epic / story / task / todo / bug\n - \uC0C1\uD0DC: backlog / in_progress / review / done\n- Journal: cargo\uC5D0 \uB538\uB9B0 \uAE30\uB85D \uBB38\uC11C. ADR, \uC138\uC158 \uAE30\uB85D, \uC124\uACC4 \uBB38\uC11C \uB4F1.\n - \uD0C0\uC785: adr / session / design / note / memo / review / test\n- Comment: cargo\uC5D0 \uB538\uB9B0 \uB313\uAE00.\n\n## \uCEE8\uD14D\uC2A4\uD2B8\n\nCLI\uB294 \"\uD604\uC7AC namespace\"\uC640 \"\uD604\uC7AC vessel\"\uC744 \uAE30\uC5B5\uD55C\uB2E4.\nnamespace/vessel\uC744 \uC120\uD0DD\uD558\uBA74 \uC774\uD6C4 \uBA85\uB839\uC5B4\uB294 \uD574\uB2F9 \uCEE8\uD14D\uC2A4\uD2B8 \uAE30\uC900\uC73C\uB85C \uB3D9\uC791\uD55C\uB2E4.\n\n## \uC138\uC158 \uC2DC\uC791 \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n### 1. \uC778\uC99D \uD655\uC778\n```bash\ndoque auth status\n# \uC778\uC99D \uC548 \uB410\uC73C\uBA74:\ndoque auth login\n```\n\n### 2. \uCEE8\uD14D\uC2A4\uD2B8 \uD655\uC778 \uBC0F \uC124\uC815\n```bash\ndoque status # \uD604\uC7AC namespace, vessel, \uC11C\uBC84 \uD655\uC778\ndoque ns list # \uB0B4 namespace \uBAA9\uB85D\ndoque ns use <slug> # namespace \uC804\uD658 (\uD544\uC694 \uC2DC)\ndoque vessel list # \uD604\uC7AC namespace\uC758 \uD504\uB85C\uC81D\uD2B8 \uBAA9\uB85D\ndoque vessel use <slug> # \uD504\uB85C\uC81D\uD2B8 \uC120\uD0DD\n```\n\n### 3. \uC804\uCCB4 \uAD6C\uC870 \uD30C\uC545\n```bash\ndoque dump tree # \uC804\uCCB4 cargo \uD2B8\uB9AC (\uC81C\uBAA9/\uC0C1\uD0DC\uB9CC, \uBE60\uB984)\ndoque dump tree --format json # JSON\uC73C\uB85C \uD30C\uC2F1 \uAC00\uB2A5\uD55C \uD615\uD0DC\ndoque dump full # cargo + journal \uC804\uCCB4 \uB0B4\uC6A9 (\uC0C1\uC138)\ndoque dump full --format markdown # \uB9C8\uD06C\uB2E4\uC6B4 \uD615\uC2DD (\uCEE8\uD14D\uC2A4\uD2B8 \uB85C\uB529\uC5D0 \uC801\uD569)\ndoque dump cargo <id> --deep # \uD2B9\uC815 cargo + \uD558\uC704 + journal \uC0C1\uC138\n```\n\n## \uC791\uC5C5 \uAD00\uB9AC\n\n### Cargo CRUD\n```bash\ndoque cargo list # \uD604\uC7AC vessel\uC758 cargo \uBAA9\uB85D\ndoque cargo list --status in_progress # \uC0C1\uD0DC \uD544\uD130\ndoque cargo list --format json # JSON \uCD9C\uB825\ndoque cargo tree # \uD2B8\uB9AC \uBDF0 (\uC911\uCCA9 \uAD6C\uC870)\ndoque cargo create --title \"\uC81C\uBAA9\" --type task # \uC0DD\uC131\ndoque cargo create --title \"\uD558\uC704\" --type task --parent <id> # \uC911\uCCA9 \uC0DD\uC131\ndoque cargo info <id> # \uC0C1\uC138 \uC870\uD68C\ndoque cargo update <id> --title \"\uC0C8 \uC81C\uBAA9\" # \uC218\uC815\ndoque cargo start <id> # \uC2DC\uC791 (-> in_progress)\ndoque cargo done <id> # \uC644\uB8CC (-> done)\ndoque cargo status <id> review # \uC0C1\uD0DC \uBCC0\uACBD\ndoque cargo delete <id> # \uC0AD\uC81C\n```\n\n### Journal CRUD\n```bash\ndoque journal list <cargo-id> # journal \uBAA9\uB85D\ndoque journal create <cargo-id> --title \"ADR-001\" --type adr --content \"\uB0B4\uC6A9\"\ndoque journal create <cargo-id> --title \"SESSION-001\" --type session --stdin # stdin \uC785\uB825\ndoque journal read <journal-id> # journal \uB0B4\uC6A9 \uC77D\uAE30\ndoque journal update <journal-id> --content \"\uC218\uC815 \uB0B4\uC6A9\"\ndoque journal update <journal-id> --stdin # stdin\uC73C\uB85C \uC218\uC815\ndoque journal delete <journal-id> # \uC0AD\uC81C\n```\n\n### Comment\n```bash\ndoque comment list <cargo-id> # \uB313\uAE00 \uBAA9\uB85D\ndoque comment add <cargo-id> \"\uB0B4\uC6A9\" # \uB313\uAE00 \uCD94\uAC00\n```\n\n## \uC138\uC158 \uC885\uB8CC \uC6CC\uD06C\uD50C\uB85C\uC6B0\n\n1. \uC9C4\uD589\uD55C \uC791\uC5C5\uC744 journal\uB85C \uAE30\uB85D\n2. cargo \uC0C1\uD0DC \uC5C5\uB370\uC774\uD2B8 (start/done)\n3. \uBBF8\uC644\uB8CC \uC791\uC5C5 \uD655\uC778: doque cargo list --status in_progress\n\n## \uAE30\uD0C0 \uBA85\uB839\uC5B4\n\n```bash\ndoque whoami # \uC0AC\uC6A9\uC790 + \uCEE8\uD14D\uC2A4\uD2B8 + \uB514\uBC14\uC774\uC2A4 \uC815\uBCF4\ndoque activity list # \uB0B4 \uCD5C\uADFC \uD65C\uB3D9 \uC774\uB825\ndoque beacon list # \uB0B4 \uB4F1\uB85D \uB514\uBC14\uC774\uC2A4 \uBAA9\uB85D\ndoque config list # \uC124\uC815 \uC870\uD68C\ndoque config set <key> <value> # \uC124\uC815 \uBCC0\uACBD\n```\n\n## \uCD9C\uB825 \uD615\uC2DD\n\n\uBAA8\uB4E0 \uBAA9\uB85D/\uC870\uD68C \uBA85\uB839\uC5B4\uC5D0 --format \uC635\uC158 \uC0AC\uC6A9 \uAC00\uB2A5:\n- table (\uAE30\uBCF8): \uC0AC\uB78C\uC774 \uC77D\uAE30 \uC88B\uC740 \uD14C\uC774\uBE14\n- json: \uD30C\uC2F1 \uAC00\uB2A5\uD55C JSON\n- markdown: dump \uBA85\uB839\uC5B4 \uC804\uC6A9, \uCEE8\uD14D\uC2A4\uD2B8 \uB85C\uB529\uC5D0 \uC801\uD569\n\n## \uC124\uC815 \uD30C\uC77C\n\n- ~/.doque/config.json: \uC11C\uBC84 URL, \uC778\uC99D \uD1A0\uD070, \uCEE8\uD14D\uC2A4\uD2B8 (namespace, vessel)\n- ~/.doque/device.json: \uB514\uBC14\uC774\uC2A4 ID (\uC778\uC99D\uACFC \uB3C5\uB9BD, \uC7AC\uC124\uCE58\uD574\uB3C4 \uC720\uC9C0)\n";
|
|
2
3
|
export declare function registerInitCommand(program: Command): void;
|
|
3
4
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,o/LA+GzB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB1D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,21 +1,117 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
3
|
import * as path from 'path';
|
|
4
|
-
const SKILL_CONTENT = `# Doque 프로젝트 관리
|
|
4
|
+
export const SKILL_CONTENT = `# Doque — 프로젝트 관리 CLI
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
doque는 멀티환경 통합 작업 관리 CLI이다.
|
|
7
|
+
프로젝트(Vessel), 작업(Cargo), 기록(Journal), 댓글(Comment)을 터미널에서 관리한다.
|
|
8
|
+
이 스킬은 Claude Code가 doque-cli를 사용하여 프로젝트를 관리하는 방법을 정의한다.
|
|
9
|
+
|
|
10
|
+
## 핵심 개념
|
|
11
|
+
|
|
12
|
+
- Namespace: 사용자 계정 또는 조직 단위. 로그인 시 기본 namespace가 설정된다.
|
|
13
|
+
- Vessel: 프로젝트. namespace 안에 여러 vessel을 가진다.
|
|
14
|
+
- Cargo: 작업. vessel 안에 무한 뎁스로 중첩 가능 (epic > story > task).
|
|
15
|
+
- 타입: epic / story / task / todo / bug
|
|
16
|
+
- 상태: backlog / in_progress / review / done
|
|
17
|
+
- Journal: cargo에 딸린 기록 문서. ADR, 세션 기록, 설계 문서 등.
|
|
18
|
+
- 타입: adr / session / design / note / memo / review / test
|
|
19
|
+
- Comment: cargo에 딸린 댓글.
|
|
20
|
+
|
|
21
|
+
## 컨텍스트
|
|
22
|
+
|
|
23
|
+
CLI는 "현재 namespace"와 "현재 vessel"을 기억한다.
|
|
24
|
+
namespace/vessel을 선택하면 이후 명령어는 해당 컨텍스트 기준으로 동작한다.
|
|
25
|
+
|
|
26
|
+
## 세션 시작 워크플로우
|
|
27
|
+
|
|
28
|
+
### 1. 인증 확인
|
|
29
|
+
\`\`\`bash
|
|
30
|
+
doque auth status
|
|
31
|
+
# 인증 안 됐으면:
|
|
32
|
+
doque auth login
|
|
33
|
+
\`\`\`
|
|
34
|
+
|
|
35
|
+
### 2. 컨텍스트 확인 및 설정
|
|
36
|
+
\`\`\`bash
|
|
37
|
+
doque status # 현재 namespace, vessel, 서버 확인
|
|
38
|
+
doque ns list # 내 namespace 목록
|
|
39
|
+
doque ns use <slug> # namespace 전환 (필요 시)
|
|
40
|
+
doque vessel list # 현재 namespace의 프로젝트 목록
|
|
41
|
+
doque vessel use <slug> # 프로젝트 선택
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
### 3. 전체 구조 파악
|
|
45
|
+
\`\`\`bash
|
|
46
|
+
doque dump tree # 전체 cargo 트리 (제목/상태만, 빠름)
|
|
47
|
+
doque dump tree --format json # JSON으로 파싱 가능한 형태
|
|
48
|
+
doque dump full # cargo + journal 전체 내용 (상세)
|
|
49
|
+
doque dump full --format markdown # 마크다운 형식 (컨텍스트 로딩에 적합)
|
|
50
|
+
doque dump cargo <id> --deep # 특정 cargo + 하위 + journal 상세
|
|
51
|
+
\`\`\`
|
|
10
52
|
|
|
11
53
|
## 작업 관리
|
|
12
|
-
- doque cargo create --title "..." --type task --parent <id>
|
|
13
|
-
- doque cargo start <id> / doque cargo done <id>
|
|
14
|
-
- doque journal create <cargo-id> --title "ADR-xxx" --type adr --stdin
|
|
15
54
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
55
|
+
### Cargo CRUD
|
|
56
|
+
\`\`\`bash
|
|
57
|
+
doque cargo list # 현재 vessel의 cargo 목록
|
|
58
|
+
doque cargo list --status in_progress # 상태 필터
|
|
59
|
+
doque cargo list --format json # JSON 출력
|
|
60
|
+
doque cargo tree # 트리 뷰 (중첩 구조)
|
|
61
|
+
doque cargo create --title "제목" --type task # 생성
|
|
62
|
+
doque cargo create --title "하위" --type task --parent <id> # 중첩 생성
|
|
63
|
+
doque cargo info <id> # 상세 조회
|
|
64
|
+
doque cargo update <id> --title "새 제목" # 수정
|
|
65
|
+
doque cargo start <id> # 시작 (-> in_progress)
|
|
66
|
+
doque cargo done <id> # 완료 (-> done)
|
|
67
|
+
doque cargo status <id> review # 상태 변경
|
|
68
|
+
doque cargo delete <id> # 삭제
|
|
69
|
+
\`\`\`
|
|
70
|
+
|
|
71
|
+
### Journal CRUD
|
|
72
|
+
\`\`\`bash
|
|
73
|
+
doque journal list <cargo-id> # journal 목록
|
|
74
|
+
doque journal create <cargo-id> --title "ADR-001" --type adr --content "내용"
|
|
75
|
+
doque journal create <cargo-id> --title "SESSION-001" --type session --stdin # stdin 입력
|
|
76
|
+
doque journal read <journal-id> # journal 내용 읽기
|
|
77
|
+
doque journal update <journal-id> --content "수정 내용"
|
|
78
|
+
doque journal update <journal-id> --stdin # stdin으로 수정
|
|
79
|
+
doque journal delete <journal-id> # 삭제
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
### Comment
|
|
83
|
+
\`\`\`bash
|
|
84
|
+
doque comment list <cargo-id> # 댓글 목록
|
|
85
|
+
doque comment add <cargo-id> "내용" # 댓글 추가
|
|
86
|
+
\`\`\`
|
|
87
|
+
|
|
88
|
+
## 세션 종료 워크플로우
|
|
89
|
+
|
|
90
|
+
1. 진행한 작업을 journal로 기록
|
|
91
|
+
2. cargo 상태 업데이트 (start/done)
|
|
92
|
+
3. 미완료 작업 확인: doque cargo list --status in_progress
|
|
93
|
+
|
|
94
|
+
## 기타 명령어
|
|
95
|
+
|
|
96
|
+
\`\`\`bash
|
|
97
|
+
doque whoami # 사용자 + 컨텍스트 + 디바이스 정보
|
|
98
|
+
doque activity list # 내 최근 활동 이력
|
|
99
|
+
doque beacon list # 내 등록 디바이스 목록
|
|
100
|
+
doque config list # 설정 조회
|
|
101
|
+
doque config set <key> <value> # 설정 변경
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
## 출력 형식
|
|
105
|
+
|
|
106
|
+
모든 목록/조회 명령어에 --format 옵션 사용 가능:
|
|
107
|
+
- table (기본): 사람이 읽기 좋은 테이블
|
|
108
|
+
- json: 파싱 가능한 JSON
|
|
109
|
+
- markdown: dump 명령어 전용, 컨텍스트 로딩에 적합
|
|
110
|
+
|
|
111
|
+
## 설정 파일
|
|
112
|
+
|
|
113
|
+
- ~/.doque/config.json: 서버 URL, 인증 토큰, 컨텍스트 (namespace, vessel)
|
|
114
|
+
- ~/.doque/device.json: 디바이스 ID (인증과 독립, 재설치해도 유지)
|
|
19
115
|
`;
|
|
20
116
|
export function registerInitCommand(program) {
|
|
21
117
|
program
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+G5B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import { registerJournalCommands } from './commands/journal.js';
|
|
|
12
12
|
import { registerCommentCommands } from './commands/comment.js';
|
|
13
13
|
import { registerDumpCommands } from './commands/dump.js';
|
|
14
14
|
import { registerActivityCommands } from './commands/activity.js';
|
|
15
|
-
import { registerInitCommand } from './commands/init.js';
|
|
15
|
+
import { registerInitCommand, SKILL_CONTENT } from './commands/init.js';
|
|
16
16
|
import { configStore } from './config/store.js';
|
|
17
17
|
const program = new Command();
|
|
18
18
|
program
|
|
@@ -80,6 +80,7 @@ ${chalk.bold('설정')}
|
|
|
80
80
|
${chalk.cyan('config set <k> <v>')} 설정값 변경
|
|
81
81
|
${chalk.cyan('status')} 현재 컨텍스트 확인
|
|
82
82
|
${chalk.cyan('init')} .claude/skills/doque/SKILL.md 생성
|
|
83
|
+
${chalk.cyan('guide')} 전체 기능 가이드 출력 (Claude Code 시작점)
|
|
83
84
|
`);
|
|
84
85
|
registerAuthCommands(program);
|
|
85
86
|
registerNsCommands(program);
|
|
@@ -93,6 +94,13 @@ registerCommentCommands(program);
|
|
|
93
94
|
registerDumpCommands(program);
|
|
94
95
|
registerActivityCommands(program);
|
|
95
96
|
registerInitCommand(program);
|
|
97
|
+
// doque guide — Claude Code 시작 가이드 (전체 기능 출력)
|
|
98
|
+
program
|
|
99
|
+
.command('guide')
|
|
100
|
+
.description('doque 전체 기능 가이드 출력 (Claude Code 시작점)')
|
|
101
|
+
.action(() => {
|
|
102
|
+
console.log(SKILL_CONTENT);
|
|
103
|
+
});
|
|
96
104
|
// doque status
|
|
97
105
|
program
|
|
98
106
|
.command('status')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "doque",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Doque CLI - Manage your projects and tasks from the terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -45,16 +45,24 @@
|
|
|
45
45
|
"typescript": "^5.7.0"
|
|
46
46
|
},
|
|
47
47
|
"release": {
|
|
48
|
-
"branches": [
|
|
48
|
+
"branches": [
|
|
49
|
+
"main"
|
|
50
|
+
],
|
|
49
51
|
"plugins": [
|
|
50
52
|
"@semantic-release/commit-analyzer",
|
|
51
53
|
"@semantic-release/release-notes-generator",
|
|
52
54
|
"@semantic-release/changelog",
|
|
53
55
|
"@semantic-release/npm",
|
|
54
|
-
[
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
[
|
|
57
|
+
"@semantic-release/git",
|
|
58
|
+
{
|
|
59
|
+
"assets": [
|
|
60
|
+
"package.json",
|
|
61
|
+
"CHANGELOG.md"
|
|
62
|
+
],
|
|
63
|
+
"message": "chore(release): ${nextRelease.version}"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
58
66
|
"@semantic-release/github"
|
|
59
67
|
]
|
|
60
68
|
}
|