doque 0.3.2 → 0.3.4
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 +29 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +34 -4
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +10 -9
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
멀티환경 통합 작업 관리 CLI. 프로젝트, 작업, 문서를 터미널에서 관리한다.
|
|
4
4
|
|
|
5
|
+
## 용어
|
|
6
|
+
|
|
7
|
+
| 용어 | 의미 | 비유 |
|
|
8
|
+
|------|------|------|
|
|
9
|
+
| **Namespace** | 사용자 또는 조직 단위의 작업 공간. 로그인하면 개인 namespace가 기본 설정된다. | GitHub의 `@username` 또는 organization |
|
|
10
|
+
| **Vessel** | 프로젝트. namespace 안에 여러 vessel을 만들 수 있다. | GitHub의 repository |
|
|
11
|
+
| **Cargo** | 작업 항목. vessel 안에 무한 뎁스로 중첩 가능하다. epic > story > task 계층 구조. | Jira의 이슈/티켓 |
|
|
12
|
+
| **Journal** | cargo에 딸린 기록 문서. ADR, 세션 기록, 설계 문서 등을 작성한다. | 작업 노트/의사결정 기록 |
|
|
13
|
+
| **Comment** | cargo에 딸린 짧은 댓글. | 이슈 댓글 |
|
|
14
|
+
| **Beacon** | 등록된 디바이스. 로그인 시 자동 등록되어 어떤 기기에서 작업했는지 추적한다. | 접속 디바이스 |
|
|
15
|
+
|
|
16
|
+
### Cargo 타입
|
|
17
|
+
|
|
18
|
+
| 타입 | 용도 |
|
|
19
|
+
|------|------|
|
|
20
|
+
| `epic` | 대규모 기능 단위 (여러 story를 포함) |
|
|
21
|
+
| `story` | 사용자 관점의 기능 단위 |
|
|
22
|
+
| `task` | 실제 수행할 작업 |
|
|
23
|
+
| `todo` | 간단한 할 일 |
|
|
24
|
+
| `bug` | 버그 수정 |
|
|
25
|
+
|
|
26
|
+
### Cargo 상태
|
|
27
|
+
|
|
28
|
+
`backlog` → `in_progress` → `review` → `done`
|
|
29
|
+
|
|
30
|
+
### Journal 타입
|
|
31
|
+
|
|
32
|
+
`adr` (의사결정) / `session` (세션 기록) / `design` (설계) / `note` (메모) / `memo` (일반) / `review` (리뷰) / `test` (테스트)
|
|
33
|
+
|
|
5
34
|
## 설치
|
|
6
35
|
|
|
7
36
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwN3D"}
|
package/dist/commands/auth.js
CHANGED
|
@@ -48,8 +48,9 @@ export function registerAuthCommands(program) {
|
|
|
48
48
|
const spinner = ora('토큰 검증 중...').start();
|
|
49
49
|
try {
|
|
50
50
|
const me = await apiRequestWithToken(server, 'GET', '/api/me', patToken);
|
|
51
|
-
const
|
|
52
|
-
const
|
|
51
|
+
const payload = decodeJwtPayload(patToken);
|
|
52
|
+
const username = payload['sub'] ?? me.displayName;
|
|
53
|
+
const nsSlug = username;
|
|
53
54
|
const config = configStore.load();
|
|
54
55
|
config.auth = { type: 'pat', access_token: patToken };
|
|
55
56
|
config.user = { id: me.id, username, namespace: nsSlug };
|
|
@@ -130,8 +131,6 @@ export function registerAuthCommands(program) {
|
|
|
130
131
|
memberId = me.id;
|
|
131
132
|
if (!username)
|
|
132
133
|
username = me.displayName;
|
|
133
|
-
// 백엔드는 네임스페이스를 user-{userId}로 생성
|
|
134
|
-
namespaceSlug = `user-${me.userId}`;
|
|
135
134
|
}
|
|
136
135
|
catch {
|
|
137
136
|
// API 호출 실패해도 계속
|
|
@@ -190,6 +189,37 @@ export function registerAuthCommands(program) {
|
|
|
190
189
|
console.log(` → ${chalk.cyan('doque auth login')} 을 실행하세요`);
|
|
191
190
|
}
|
|
192
191
|
});
|
|
192
|
+
// doque auth refresh
|
|
193
|
+
auth
|
|
194
|
+
.command('refresh')
|
|
195
|
+
.description('서버에서 최신 사용자/네임스페이스 정보로 config 갱신')
|
|
196
|
+
.action(async (_opts, cmd) => {
|
|
197
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
198
|
+
const server = globalOpts.server ?? configStore.get('server') ?? 'https://doque-api.rn00n.com';
|
|
199
|
+
const token = process.env.DOQUE_TOKEN ?? globalOpts.token ?? configStore.getToken();
|
|
200
|
+
if (!token) {
|
|
201
|
+
console.log(chalk.red('✗ 로그인되지 않음'));
|
|
202
|
+
console.log(` → ${chalk.cyan('doque auth login')} 을 실행하세요`);
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
const spinner = ora('정보 갱신 중...').start();
|
|
206
|
+
try {
|
|
207
|
+
const me = await apiRequestWithToken(server, 'GET', '/api/me', token);
|
|
208
|
+
const payload = decodeJwtPayload(token);
|
|
209
|
+
const username = payload['sub'] ?? me.displayName;
|
|
210
|
+
const config = configStore.load();
|
|
211
|
+
config.user = { id: me.id, username, namespace: username };
|
|
212
|
+
if (!config.context)
|
|
213
|
+
config.context = { namespace: null, vessel: null, vesselId: null };
|
|
214
|
+
config.context.namespace = username;
|
|
215
|
+
configStore.save(config);
|
|
216
|
+
spinner.succeed(chalk.green(`✓ 갱신 완료: @${username}`));
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
spinner.fail('갱신 실패');
|
|
220
|
+
console.log(` → ${chalk.cyan('doque auth login')} 을 실행하세요`);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
193
223
|
// doque auth logout
|
|
194
224
|
auth
|
|
195
225
|
.command('logout')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,KAAK,UAAU,cAAc,CAAC,MAAc,EAAE,KAAa;IACzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/B,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,GAAG,MAAM,wBAAwB,EAAE;YAC7C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,QAAQ;gBACR,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,KAAK;aACZ,CAAC;SACH,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAE1D,mCAAmC;IACnC,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,GAAY,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAuC,CAAC;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAChD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC;QAE/F,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU;YACV,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAiB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACzF,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,4 +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## \
|
|
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## \uC6A9\uC5B4\n\n- Namespace: \uC791\uC5C5 \uACF5\uAC04 (GitHub\uC758 @username \uB610\uB294 organization)\n- Vessel: \uD504\uB85C\uC81D\uD2B8 (GitHub\uC758 repository)\n- Cargo: \uC791\uC5C5 \uD56D\uBAA9. \uBB34\uD55C \uB381\uC2A4 \uC911\uCCA9 \uAC00\uB2A5 (Jira\uC758 \uC774\uC288/\uD2F0\uCF13)\n - \uD0C0\uC785: epic(\uB300\uADDC\uBAA8) / story(\uAE30\uB2A5) / task(\uC791\uC5C5) / todo(\uD560\uC77C) / bug(\uBC84\uADF8)\n - \uC0C1\uD0DC: backlog \u2192 in_progress \u2192 review \u2192 done\n- Journal: cargo\uC758 \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\uC758 \uC9E7\uC740 \uB313\uAE00\n- Beacon: \uB4F1\uB85D\uB41C \uB514\uBC14\uC774\uC2A4 (\uB85C\uADF8\uC778 \uC2DC \uC790\uB3D9 \uB4F1\uB85D)\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
3
|
export declare function registerInitCommand(program: Command): void;
|
|
4
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;AAKpC,eAAO,MAAM,aAAa,
|
|
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,4iMAgHzB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB1D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -7,16 +7,17 @@ doque는 멀티환경 통합 작업 관리 CLI이다.
|
|
|
7
7
|
프로젝트(Vessel), 작업(Cargo), 기록(Journal), 댓글(Comment)을 터미널에서 관리한다.
|
|
8
8
|
이 스킬은 Claude Code가 doque-cli를 사용하여 프로젝트를 관리하는 방법을 정의한다.
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
- Namespace:
|
|
13
|
-
- Vessel:
|
|
14
|
-
- Cargo:
|
|
15
|
-
- 타입: epic / story / task / todo / bug
|
|
16
|
-
- 상태: backlog
|
|
17
|
-
- Journal: cargo
|
|
10
|
+
## 용어
|
|
11
|
+
|
|
12
|
+
- Namespace: 작업 공간 (GitHub의 @username 또는 organization)
|
|
13
|
+
- Vessel: 프로젝트 (GitHub의 repository)
|
|
14
|
+
- Cargo: 작업 항목. 무한 뎁스 중첩 가능 (Jira의 이슈/티켓)
|
|
15
|
+
- 타입: epic(대규모) / story(기능) / task(작업) / todo(할일) / bug(버그)
|
|
16
|
+
- 상태: backlog → in_progress → review → done
|
|
17
|
+
- Journal: cargo의 기록 문서 (ADR, 세션 기록, 설계 문서 등)
|
|
18
18
|
- 타입: adr / session / design / note / memo / review / test
|
|
19
|
-
- Comment: cargo
|
|
19
|
+
- Comment: cargo의 짧은 댓글
|
|
20
|
+
- Beacon: 등록된 디바이스 (로그인 시 자동 등록)
|
|
20
21
|
|
|
21
22
|
## 컨텍스트
|
|
22
23
|
|
|
@@ -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,CAAC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH5B,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"}
|