doque 0.2.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/api/client.d.ts.map +1 -1
- package/dist/api/client.js +8 -4
- package/dist/api/client.js.map +1 -1
- package/dist/commands/activity.d.ts +3 -0
- package/dist/commands/activity.d.ts.map +1 -0
- package/dist/commands/activity.js +36 -0
- package/dist/commands/activity.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +12 -8
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/cargo.d.ts.map +1 -1
- package/dist/commands/cargo.js +36 -0
- package/dist/commands/cargo.js.map +1 -1
- package/dist/commands/comment.d.ts +3 -0
- package/dist/commands/comment.d.ts.map +1 -0
- package/dist/commands/comment.js +45 -0
- package/dist/commands/comment.js.map +1 -0
- package/dist/commands/dump.d.ts +3 -0
- package/dist/commands/dump.d.ts.map +1 -0
- package/dist/commands/dump.js +214 -0
- package/dist/commands/dump.js.map +1 -0
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +134 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/journal.d.ts +3 -0
- package/dist/commands/journal.d.ts.map +1 -0
- package/dist/commands/journal.js +166 -0
- package/dist/commands/journal.js.map +1 -0
- package/dist/commands/ns.js +1 -1
- package/dist/commands/ns.js.map +1 -1
- package/dist/commands/vessel.js +1 -1
- package/dist/commands/vessel.js.map +1 -1
- package/dist/commands/whoami.js +3 -3
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +66 -25
- package/dist/index.js.map +1 -1
- package/package.json +14 -6
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { configStore } from '../config/store.js';
|
|
3
|
+
import { createApiClient } from '../api/client.js';
|
|
4
|
+
import { statusIcon, typeLabel, formatJson } from '../utils/output.js';
|
|
5
|
+
async function getVesselId(client, vesselSlug, namespace) {
|
|
6
|
+
if (vesselSlug)
|
|
7
|
+
return client.resolveVesselId(namespace, vesselSlug);
|
|
8
|
+
const ctx = configStore.getContext();
|
|
9
|
+
if (ctx.vessel) {
|
|
10
|
+
if (ctx.vesselId !== null)
|
|
11
|
+
return ctx.vesselId;
|
|
12
|
+
return client.resolveVesselId(namespace, ctx.vessel);
|
|
13
|
+
}
|
|
14
|
+
console.error(chalk.red('✗ vessel이 선택되지 않았습니다'));
|
|
15
|
+
console.error(` → ${chalk.cyan('doque vessel use <slug>')} 로 먼저 선택하세요`);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
function renderTreeNode(node, prefix, isLast) {
|
|
19
|
+
const connector = isLast ? '└─' : '├─';
|
|
20
|
+
const icon = statusIcon(node.status);
|
|
21
|
+
const typeLbl = typeLabel(node.type);
|
|
22
|
+
console.log(`${prefix}${connector} ${chalk.gray(`#${node.id}`)} ${node.title} ${typeLbl} ${icon} ${chalk.gray(node.status)}`);
|
|
23
|
+
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
24
|
+
node.children.forEach((child, i) => {
|
|
25
|
+
renderTreeNode(child, childPrefix, i === node.children.length - 1);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function renderTree(roots) {
|
|
29
|
+
if (roots.length === 0) {
|
|
30
|
+
console.log(chalk.gray(' (결과 없음)'));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
roots.forEach((root, i) => {
|
|
34
|
+
const isLast = i === roots.length - 1;
|
|
35
|
+
const icon = statusIcon(root.status);
|
|
36
|
+
const typeLbl = typeLabel(root.type);
|
|
37
|
+
console.log(`${isLast ? '└─' : '├─'} ${chalk.gray(`#${root.id}`)} ${root.title} ${typeLbl} ${icon} ${chalk.gray(root.status)}`);
|
|
38
|
+
const childPrefix = isLast ? ' ' : '│ ';
|
|
39
|
+
root.children.forEach((child, ci) => {
|
|
40
|
+
renderTreeNode(child, childPrefix, ci === root.children.length - 1);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function renderMarkdownTree(roots, depth = 0) {
|
|
45
|
+
for (const node of roots) {
|
|
46
|
+
const indent = ' '.repeat(depth);
|
|
47
|
+
const icon = statusIcon(node.status);
|
|
48
|
+
console.log(`${indent}- ${chalk.gray(`#${node.id}`)} **${node.title}** \`${node.type}\` ${icon} ${node.status}`);
|
|
49
|
+
if (node.children.length > 0) {
|
|
50
|
+
renderMarkdownTree(node.children, depth + 1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function renderFullNode(node, journals, prefix, isLast) {
|
|
55
|
+
const connector = isLast ? '└─' : '├─';
|
|
56
|
+
const icon = statusIcon(node.status);
|
|
57
|
+
const typeLbl = typeLabel(node.type);
|
|
58
|
+
console.log(`${prefix}${connector} ${chalk.gray(`#${node.id}`)} ${node.title} ${typeLbl} ${icon} ${chalk.gray(node.status)}`);
|
|
59
|
+
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
60
|
+
// journals for this cargo
|
|
61
|
+
const nodeJournals = journals.filter((j) => j.cargoId === node.id);
|
|
62
|
+
for (const j of nodeJournals) {
|
|
63
|
+
console.log(`${childPrefix} ${chalk.cyan(`[${j.type}]`)} ${j.title}`);
|
|
64
|
+
if (j.content) {
|
|
65
|
+
const lines = j.content.split('\n').slice(0, 3);
|
|
66
|
+
for (const line of lines) {
|
|
67
|
+
console.log(`${childPrefix} ${chalk.gray(line)}`);
|
|
68
|
+
}
|
|
69
|
+
if (j.content.split('\n').length > 3) {
|
|
70
|
+
console.log(`${childPrefix} ${chalk.gray('...')}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
node.children.forEach((child, i) => {
|
|
75
|
+
renderFullNode(child, journals, childPrefix, i === node.children.length - 1);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function renderMarkdownFull(node, journals, depth = 0) {
|
|
79
|
+
const heading = '#'.repeat(Math.min(depth + 2, 6));
|
|
80
|
+
const icon = statusIcon(node.status);
|
|
81
|
+
console.log(`\n${heading} #${node.id} ${node.title}`);
|
|
82
|
+
console.log(`> \`${node.type}\` | ${icon} ${node.status}`);
|
|
83
|
+
if (node.description) {
|
|
84
|
+
console.log(`\n${node.description}`);
|
|
85
|
+
}
|
|
86
|
+
const nodeJournals = journals.filter((j) => j.cargoId === node.id);
|
|
87
|
+
if (nodeJournals.length > 0) {
|
|
88
|
+
console.log(`\n**Journals:**`);
|
|
89
|
+
for (const j of nodeJournals) {
|
|
90
|
+
console.log(`\n#### [${j.type}] ${j.title}`);
|
|
91
|
+
if (j.content)
|
|
92
|
+
console.log(j.content);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
for (const child of node.children) {
|
|
96
|
+
renderMarkdownFull(child, journals, depth + 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function findCargoById(nodes, id) {
|
|
100
|
+
for (const node of nodes) {
|
|
101
|
+
if (node.id === id)
|
|
102
|
+
return node;
|
|
103
|
+
const found = findCargoById(node.children, id);
|
|
104
|
+
if (found)
|
|
105
|
+
return found;
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
export function registerDumpCommands(program) {
|
|
110
|
+
const dump = program.command('dump').description('프로젝트 데이터 덤프');
|
|
111
|
+
// doque dump tree [-v vessel] [-f format]
|
|
112
|
+
dump
|
|
113
|
+
.command('tree')
|
|
114
|
+
.description('Cargo 트리 (제목/상태만)')
|
|
115
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
116
|
+
.option('-f, --format <format>', '출력 형식 (table|json|markdown)', 'table')
|
|
117
|
+
.action(async (opts, cmd) => {
|
|
118
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
119
|
+
const client = createApiClient(globalOpts);
|
|
120
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
121
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
122
|
+
const cargos = await client.get(`/api/vessels/${vesselId}/cargos`);
|
|
123
|
+
const format = globalOpts.format ?? opts.format ?? 'table';
|
|
124
|
+
if (format === 'json') {
|
|
125
|
+
formatJson(cargos);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (format === 'markdown') {
|
|
129
|
+
console.log('# Cargo Tree\n');
|
|
130
|
+
renderMarkdownTree(cargos);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
renderTree(cargos);
|
|
134
|
+
});
|
|
135
|
+
// doque dump full [-v vessel] [-f format]
|
|
136
|
+
dump
|
|
137
|
+
.command('full')
|
|
138
|
+
.description('Cargo + Journal 내용 전체')
|
|
139
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
140
|
+
.option('-f, --format <format>', '출력 형식 (table|json|markdown)', 'table')
|
|
141
|
+
.action(async (opts, cmd) => {
|
|
142
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
143
|
+
const client = createApiClient(globalOpts);
|
|
144
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
145
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
146
|
+
const [cargos, journals] = await Promise.all([
|
|
147
|
+
client.get(`/api/vessels/${vesselId}/cargos`),
|
|
148
|
+
client.get(`/api/vessels/${vesselId}/journals`),
|
|
149
|
+
]);
|
|
150
|
+
const format = globalOpts.format ?? opts.format ?? 'table';
|
|
151
|
+
if (format === 'json') {
|
|
152
|
+
formatJson({ cargos, journals });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (format === 'markdown') {
|
|
156
|
+
for (const root of cargos) {
|
|
157
|
+
renderMarkdownFull(root, journals);
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (cargos.length === 0) {
|
|
162
|
+
console.log(chalk.gray(' (결과 없음)'));
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
cargos.forEach((root, i) => {
|
|
166
|
+
renderFullNode(root, journals, '', i === cargos.length - 1);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
// doque dump cargo <id> [--deep] [-v vessel] [-f format]
|
|
170
|
+
dump
|
|
171
|
+
.command('cargo <id>')
|
|
172
|
+
.description('특정 Cargo + 하위 + Journal')
|
|
173
|
+
.option('--deep', '하위 cargo 및 journal 포함')
|
|
174
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
175
|
+
.option('-f, --format <format>', '출력 형식 (table|json|markdown)', 'table')
|
|
176
|
+
.action(async (id, opts, cmd) => {
|
|
177
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
178
|
+
const client = createApiClient(globalOpts);
|
|
179
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
180
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
181
|
+
const allCargos = await client.get(`/api/vessels/${vesselId}/cargos`);
|
|
182
|
+
const targetId = Number(id);
|
|
183
|
+
const node = findCargoById(allCargos, targetId);
|
|
184
|
+
if (!node) {
|
|
185
|
+
console.error(chalk.red(`✗ Cargo #${targetId}를 찾을 수 없습니다`));
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
const format = globalOpts.format ?? opts.format ?? 'table';
|
|
189
|
+
if (!opts.deep) {
|
|
190
|
+
// 단순 정보 출력
|
|
191
|
+
if (format === 'json') {
|
|
192
|
+
formatJson(node);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
const icon = statusIcon(node.status);
|
|
196
|
+
console.log(`${chalk.gray(`#${node.id}`)} ${chalk.bold(node.title)} ${typeLabel(node.type)} ${icon} ${chalk.gray(node.status)}`);
|
|
197
|
+
if (node.description)
|
|
198
|
+
console.log(` ${chalk.gray(node.description)}`);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
// deep: cargo + 하위 + journals
|
|
202
|
+
const journals = await client.get(`/api/vessels/${vesselId}/journals?cargoId=${targetId}`);
|
|
203
|
+
if (format === 'json') {
|
|
204
|
+
formatJson({ cargo: node, journals });
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (format === 'markdown') {
|
|
208
|
+
renderMarkdownFull(node, journals);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
renderFullNode(node, journals, '', true);
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=dump.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dump.js","sourceRoot":"","sources":["../../src/commands/dump.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
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";
|
|
3
|
+
export declare function registerInitCommand(program: Command): void;
|
|
4
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
export const SKILL_CONTENT = `# Doque — 프로젝트 관리 CLI
|
|
5
|
+
|
|
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
|
+
\`\`\`
|
|
52
|
+
|
|
53
|
+
## 작업 관리
|
|
54
|
+
|
|
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 (인증과 독립, 재설치해도 유지)
|
|
115
|
+
`;
|
|
116
|
+
export function registerInitCommand(program) {
|
|
117
|
+
program
|
|
118
|
+
.command('init')
|
|
119
|
+
.description('현재 디렉토리에 .claude/skills/doque/SKILL.md 생성')
|
|
120
|
+
.action(() => {
|
|
121
|
+
const skillDir = path.join(process.cwd(), '.claude', 'skills', 'doque');
|
|
122
|
+
const skillPath = path.join(skillDir, 'SKILL.md');
|
|
123
|
+
if (!fs.existsSync(skillDir)) {
|
|
124
|
+
fs.mkdirSync(skillDir, { recursive: true });
|
|
125
|
+
}
|
|
126
|
+
if (fs.existsSync(skillPath)) {
|
|
127
|
+
console.log(chalk.yellow(`! SKILL.md가 이미 존재합니다: ${skillPath}`));
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
fs.writeFileSync(skillPath, SKILL_CONTENT, 'utf-8');
|
|
131
|
+
console.log(chalk.green(`✓ SKILL.md 생성됨: ${chalk.cyan(skillPath)}`));
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/commands/journal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkK9D"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { configStore } from '../config/store.js';
|
|
3
|
+
import { createApiClient } from '../api/client.js';
|
|
4
|
+
import { formatTable, formatJson, formatDetail } from '../utils/output.js';
|
|
5
|
+
async function readStdin() {
|
|
6
|
+
if (process.stdin.isTTY)
|
|
7
|
+
return '';
|
|
8
|
+
const chunks = [];
|
|
9
|
+
for await (const chunk of process.stdin)
|
|
10
|
+
chunks.push(chunk);
|
|
11
|
+
return Buffer.concat(chunks).toString('utf-8');
|
|
12
|
+
}
|
|
13
|
+
function journalTypeLabel(type) {
|
|
14
|
+
switch (type.toLowerCase()) {
|
|
15
|
+
case 'adr': return chalk.magenta('[adr]');
|
|
16
|
+
case 'session': return chalk.blue('[session]');
|
|
17
|
+
case 'design': return chalk.cyan('[design]');
|
|
18
|
+
case 'note': return chalk.yellow('[note]');
|
|
19
|
+
case 'memo': return chalk.gray('[memo]');
|
|
20
|
+
default: return chalk.gray(`[${type}]`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async function getVesselId(client, vesselSlug, namespace) {
|
|
24
|
+
if (vesselSlug)
|
|
25
|
+
return client.resolveVesselId(namespace, vesselSlug);
|
|
26
|
+
const ctx = configStore.getContext();
|
|
27
|
+
if (ctx.vessel) {
|
|
28
|
+
if (ctx.vesselId !== null)
|
|
29
|
+
return ctx.vesselId;
|
|
30
|
+
return client.resolveVesselId(namespace, ctx.vessel);
|
|
31
|
+
}
|
|
32
|
+
console.error(chalk.red('✗ vessel이 선택되지 않았습니다'));
|
|
33
|
+
console.error(` → ${chalk.cyan('doque vessel use <slug>')} 로 먼저 선택하세요`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
export function registerJournalCommands(program) {
|
|
37
|
+
const journal = program.command('journal').description('Journal(기록) 관리');
|
|
38
|
+
// doque journal list <cargo-id> [-v vessel] [-f format]
|
|
39
|
+
journal
|
|
40
|
+
.command('list <cargo-id>')
|
|
41
|
+
.description('Cargo의 Journal 목록 조회')
|
|
42
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
43
|
+
.option('-f, --format <format>', '출력 형식 (table|json)', 'table')
|
|
44
|
+
.action(async (cargoId, opts, cmd) => {
|
|
45
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
46
|
+
const client = createApiClient(globalOpts);
|
|
47
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
48
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
49
|
+
const journals = await client.get(`/api/vessels/${vesselId}/journals?cargoId=${cargoId}`);
|
|
50
|
+
const format = opts.format ?? globalOpts.format ?? 'table';
|
|
51
|
+
if (format === 'json') {
|
|
52
|
+
formatJson(journals);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (journals.length === 0) {
|
|
56
|
+
console.log(chalk.gray(' (결과 없음)'));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
formatTable(journals.map((j) => ({
|
|
60
|
+
ID: chalk.gray(`#${j.id}`),
|
|
61
|
+
타입: journalTypeLabel(j.type),
|
|
62
|
+
제목: j.title,
|
|
63
|
+
작성일: new Date(j.createdAt).toLocaleDateString(),
|
|
64
|
+
})), ['ID', '타입', '제목', '작성일']);
|
|
65
|
+
});
|
|
66
|
+
// doque journal create <cargo-id> --title "..." --type adr|... [--content "..." | --stdin]
|
|
67
|
+
journal
|
|
68
|
+
.command('create <cargo-id>')
|
|
69
|
+
.description('Journal 생성')
|
|
70
|
+
.requiredOption('--title <title>', '제목')
|
|
71
|
+
.option('--type <type>', '타입 (adr|session|design|note|memo)', 'memo')
|
|
72
|
+
.option('--content <content>', '내용')
|
|
73
|
+
.option('--stdin', 'stdin에서 내용 읽기')
|
|
74
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
75
|
+
.action(async (cargoId, opts, cmd) => {
|
|
76
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
77
|
+
const client = createApiClient(globalOpts);
|
|
78
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
79
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
80
|
+
let content = opts.content ?? '';
|
|
81
|
+
if (opts.stdin) {
|
|
82
|
+
content = await readStdin();
|
|
83
|
+
}
|
|
84
|
+
const j = await client.post(`/api/vessels/${vesselId}/journals`, {
|
|
85
|
+
cargoId: Number(cargoId),
|
|
86
|
+
type: opts.type,
|
|
87
|
+
title: opts.title,
|
|
88
|
+
content,
|
|
89
|
+
});
|
|
90
|
+
console.log(chalk.green(`✓ Journal 생성됨: #${j.id} "${j.title}"`));
|
|
91
|
+
});
|
|
92
|
+
// doque journal read <journal-id> [-v vessel] [-f format]
|
|
93
|
+
journal
|
|
94
|
+
.command('read <journal-id>')
|
|
95
|
+
.description('Journal 상세 조회 (내용 포함)')
|
|
96
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
97
|
+
.option('-f, --format <format>', '출력 형식 (table|json)', 'table')
|
|
98
|
+
.action(async (journalId, opts, cmd) => {
|
|
99
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
100
|
+
const client = createApiClient(globalOpts);
|
|
101
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
102
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
103
|
+
const allJournals = await client.get(`/api/vessels/${vesselId}/journals`);
|
|
104
|
+
const j = allJournals.find((x) => x.id === Number(journalId));
|
|
105
|
+
if (!j) {
|
|
106
|
+
console.error(chalk.red(`✗ Journal #${journalId}를 찾을 수 없습니다`));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
const format = opts.format ?? globalOpts.format ?? 'table';
|
|
110
|
+
if (format === 'json') {
|
|
111
|
+
formatJson(j);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
formatDetail(chalk.bold(`#${j.id} ${j.title}`), [
|
|
115
|
+
['타입', journalTypeLabel(j.type)],
|
|
116
|
+
['Cargo', j.cargoId ? `#${j.cargoId}` : null],
|
|
117
|
+
['작성일', new Date(j.createdAt).toLocaleString()],
|
|
118
|
+
['수정일', new Date(j.updatedAt).toLocaleString()],
|
|
119
|
+
]);
|
|
120
|
+
console.log();
|
|
121
|
+
console.log(j.content);
|
|
122
|
+
});
|
|
123
|
+
// doque journal update <journal-id> [--content "..." | --stdin] [-v vessel]
|
|
124
|
+
journal
|
|
125
|
+
.command('update <journal-id>')
|
|
126
|
+
.description('Journal 수정')
|
|
127
|
+
.option('--title <title>', '새 제목')
|
|
128
|
+
.option('--content <content>', '새 내용')
|
|
129
|
+
.option('--stdin', 'stdin에서 내용 읽기')
|
|
130
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
131
|
+
.action(async (journalId, opts, cmd) => {
|
|
132
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
133
|
+
const client = createApiClient(globalOpts);
|
|
134
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
135
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
136
|
+
const allJournalsForUpdate = await client.get(`/api/vessels/${vesselId}/journals`);
|
|
137
|
+
const existing = allJournalsForUpdate.find((x) => x.id === Number(journalId));
|
|
138
|
+
if (!existing) {
|
|
139
|
+
console.error(chalk.red(`✗ Journal #${journalId}를 찾을 수 없습니다`));
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
let content = opts.content ?? existing.content;
|
|
143
|
+
if (opts.stdin) {
|
|
144
|
+
content = await readStdin();
|
|
145
|
+
}
|
|
146
|
+
const j = await client.put(`/api/vessels/${vesselId}/journals/${journalId}`, {
|
|
147
|
+
title: opts.title ?? existing.title,
|
|
148
|
+
content,
|
|
149
|
+
});
|
|
150
|
+
console.log(chalk.green(`✓ Journal 수정됨: #${j.id} "${j.title}"`));
|
|
151
|
+
});
|
|
152
|
+
// doque journal delete <journal-id> [-v vessel]
|
|
153
|
+
journal
|
|
154
|
+
.command('delete <journal-id>')
|
|
155
|
+
.description('Journal 삭제')
|
|
156
|
+
.option('-v, --vessel <slug>', 'Vessel slug 지정')
|
|
157
|
+
.action(async (journalId, opts, cmd) => {
|
|
158
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
159
|
+
const client = createApiClient(globalOpts);
|
|
160
|
+
const ns = await client.resolveNamespace(globalOpts.namespace);
|
|
161
|
+
const vesselId = await getVesselId(client, opts.vessel, ns);
|
|
162
|
+
await client.delete(`/api/vessels/${vesselId}/journals/${journalId}`);
|
|
163
|
+
console.log(chalk.green(`✓ Journal #${journalId} 삭제됨`));
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=journal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journal.js","sourceRoot":"","sources":["../../src/commands/journal.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ns.js
CHANGED
package/dist/commands/ns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ns.js","sourceRoot":"","sources":["../../src/commands/ns.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ns.js","sourceRoot":"","sources":["../../src/commands/ns.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/vessel.js
CHANGED