@crewx/doc 0.1.2 → 0.1.3
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/SKILL.md +392 -0
- package/package.json +3 -3
package/SKILL.md
ADDED
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc
|
|
3
|
+
description: Document management and knowledge tools. TOC extraction, section reader, frontmatter indexing, BM25 search, knowledge graph, and tag aggregation.
|
|
4
|
+
version: 0.2.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Doc Skill
|
|
8
|
+
|
|
9
|
+
문서 관리 및 지식 도구입니다. 마크다운 문서의 목차 추출, 섹션 읽기, 프론트매터 기반 인덱싱, BM25 검색, 문서 간 지식 그래프, 태그 집계를 제공합니다.
|
|
10
|
+
|
|
11
|
+
## When to Use This Skill
|
|
12
|
+
|
|
13
|
+
다음 상황에서 이 스킬을 사용하세요:
|
|
14
|
+
|
|
15
|
+
- "새 문서 만들어줘" / "연구 문서 생성해줘"
|
|
16
|
+
- "설계서 목차 보여줘" / "TOC 추출해줘"
|
|
17
|
+
- "설계서에서 API 설계 부분만 봐줘"
|
|
18
|
+
- "구현 상태 요약해줘"
|
|
19
|
+
- 긴 마크다운 문서를 분석하기 전에 구조 파악이 필요할 때
|
|
20
|
+
- "문서 검색해줘" / "온보딩 관련 문서 찾아줘"
|
|
21
|
+
- "문서 간 관계를 보여줘" / "지식 그래프 보여줘"
|
|
22
|
+
- "어떤 태그가 많이 쓰이는지 알려줘"
|
|
23
|
+
- docs/ 디렉토리의 문서 현황을 한눈에 파악하고 싶을 때
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 새 문서 생성
|
|
29
|
+
npx doc create docs/research "새 문서 제목" --tags=tag1,tag2 --category=research
|
|
30
|
+
|
|
31
|
+
# 목차 추출
|
|
32
|
+
npx doc toc docs/설계서.md
|
|
33
|
+
|
|
34
|
+
# 특정 섹션만 추출
|
|
35
|
+
npx doc section docs/설계서.md "API 설계"
|
|
36
|
+
|
|
37
|
+
# 구현 상태 요약
|
|
38
|
+
npx doc summary docs/설계서.md
|
|
39
|
+
|
|
40
|
+
# 문서 인덱싱 (프론트매터 기반)
|
|
41
|
+
npx doc index
|
|
42
|
+
|
|
43
|
+
# BM25 문서 검색
|
|
44
|
+
npx doc find "온보딩"
|
|
45
|
+
|
|
46
|
+
# 문서 간 지식 그래프
|
|
47
|
+
npx doc graph
|
|
48
|
+
|
|
49
|
+
# 태그 집계
|
|
50
|
+
npx doc tags
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Commands
|
|
54
|
+
|
|
55
|
+
### create - 새 문서 생성
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx doc create <dir> "<title>" [--tags=t1,t2] [--category=cat] [--author=agent] [--body="content"]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
지정한 디렉토리에 프론트매터가 포함된 새 마크다운 문서를 생성합니다.
|
|
62
|
+
|
|
63
|
+
**인수:**
|
|
64
|
+
- `dir`: 생성할 디렉토리 경로 (없으면 자동 생성)
|
|
65
|
+
- `title`: 문서 제목 (파일명 슬러그로 변환됨)
|
|
66
|
+
|
|
67
|
+
**옵션:**
|
|
68
|
+
- `--tags=t1,t2`: 태그 목록 (쉼표 구분)
|
|
69
|
+
- `--category=cat`: 카테고리 (기본값: `general`)
|
|
70
|
+
- `--author=agent`: 작성자 (에이전트 ID 등)
|
|
71
|
+
- `--body="내용"`: 본문 내용
|
|
72
|
+
|
|
73
|
+
**파일명 규칙:**
|
|
74
|
+
- 영문: kebab-case로 변환 (소문자, 공백→하이픈)
|
|
75
|
+
- 한글: 그대로 유지
|
|
76
|
+
- 예) `"테스트 문서"` → `테스트-문서.md`
|
|
77
|
+
- 예) `"My API Design"` → `my-api-design.md`
|
|
78
|
+
|
|
79
|
+
**출력 예시:**
|
|
80
|
+
```
|
|
81
|
+
Created: docs/research/테스트-문서.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**예시:**
|
|
85
|
+
```bash
|
|
86
|
+
# 기본 생성
|
|
87
|
+
npx doc create docs/research "테스트 문서" --tags=test --category=research
|
|
88
|
+
|
|
89
|
+
# 작성자와 본문 포함
|
|
90
|
+
npx doc create docs/research "API 설계서" --tags=api,design --category=design --author=core_dev --body="## 개요\n\nAPI 설계서입니다."
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**주의:** 동일한 경로의 파일이 이미 존재하면 에러가 발생합니다.
|
|
94
|
+
|
|
95
|
+
### toc - 목차 추출
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npx doc toc <file> [--depth=N]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
마크다운 파일에서 모든 헤딩(#, ##, ### 등)을 추출하여 트리 형태로 출력합니다.
|
|
102
|
+
|
|
103
|
+
**옵션:**
|
|
104
|
+
- `--depth=N`: 최대 헤딩 깊이 (기본값: 6)
|
|
105
|
+
|
|
106
|
+
**출력 예시:**
|
|
107
|
+
```
|
|
108
|
+
L1 # Aden 설계서
|
|
109
|
+
L8 ## 목차
|
|
110
|
+
L20 ## 개요
|
|
111
|
+
L22 ### 인프라
|
|
112
|
+
L32 ### 기술 스택
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### section - 특정 섹션 추출
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
npx doc section <file> <heading>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
특정 헤딩과 그 하위 내용을 추출합니다. 전체 문서를 읽지 않고 필요한 부분만 볼 때 유용합니다.
|
|
122
|
+
|
|
123
|
+
**예시:**
|
|
124
|
+
```bash
|
|
125
|
+
# "API 설계" 섹션만 추출
|
|
126
|
+
npx doc section docs/설계서.md "API 설계"
|
|
127
|
+
|
|
128
|
+
# ID로 검색
|
|
129
|
+
npx doc section docs/설계서.md "api-설계"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### status - 상태 마커와 함께 목차 보기
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npx doc status <file>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
목차를 출력하면서 각 섹션의 구현 상태를 표시합니다.
|
|
139
|
+
|
|
140
|
+
**인식되는 상태 마커:**
|
|
141
|
+
- ✅ / `[x]` / `구현됨` → Done
|
|
142
|
+
- ❌ / `[ ]` / `미구현` → Todo
|
|
143
|
+
- ⚠️ / `부분` → Partial
|
|
144
|
+
- 🚧 / `진행` → WIP
|
|
145
|
+
|
|
146
|
+
### summary - 구현 상태 요약
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npx doc summary <file>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
문서 전체의 구현 상태를 집계하여 요약합니다.
|
|
153
|
+
|
|
154
|
+
### index - 문서 인덱싱
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx doc index [dir]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
디렉토리 내 마크다운 파일의 프론트매터를 파싱하여 인덱싱합니다.
|
|
161
|
+
|
|
162
|
+
**옵션:**
|
|
163
|
+
- `dir`: 대상 디렉토리 (기본값: `docs/`)
|
|
164
|
+
|
|
165
|
+
**인덱싱 조건:** 프론트매터에 `type` 또는 `summary` 중 하나 이상 있어야 인덱싱됩니다.
|
|
166
|
+
|
|
167
|
+
**출력 예시:**
|
|
168
|
+
```
|
|
169
|
+
Indexed 17 documents from docs/
|
|
170
|
+
CLI-설계서 (design) [cli, routing, architecture] — CrewX CLI 설계서 — 라우팅 아키텍처, 빌트인 도구, 서브커맨드 확장
|
|
171
|
+
PRD (prd) [product, requirements] — 제품 요구사항 문서
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### find - BM25 문서 검색
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
npx doc find <query> [dir]
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
프론트매터 기반 BM25 검색으로 관련 문서를 찾습니다.
|
|
181
|
+
|
|
182
|
+
**옵션:**
|
|
183
|
+
- `query`: 검색 키워드 (필수)
|
|
184
|
+
- `dir`: 대상 디렉토리 (기본값: `docs/`)
|
|
185
|
+
|
|
186
|
+
**필드 가중치:** `summary: 3`, `tags: 2`, `body: 1`
|
|
187
|
+
|
|
188
|
+
**출력 예시:**
|
|
189
|
+
```
|
|
190
|
+
Found 3 results:
|
|
191
|
+
[4.52] CLI-설계서 — CrewX CLI 설계서
|
|
192
|
+
[2.31] cli-proxy-design — CLI 프록시 설계
|
|
193
|
+
[1.87] PRD — 제품 요구사항 문서
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### graph - 문서 지식 그래프
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npx doc graph [dir]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
문서 간 관계를 자동 분석하여 지식 그래프를 생성합니다.
|
|
203
|
+
|
|
204
|
+
**옵션:**
|
|
205
|
+
- `dir`: 대상 디렉토리 (기본값: `docs/`)
|
|
206
|
+
|
|
207
|
+
**엣지 유형 (자동 추론):**
|
|
208
|
+
- `shared-tags`: 공통 태그가 있는 문서 (가중치: 0.4 + (공통태그수 - 1) × 0.1, 최대 0.8)
|
|
209
|
+
- `same-category`: 같은 카테고리의 문서 (가중치: 0.2, `general` 제외)
|
|
210
|
+
- `same-day`: 같은 날짜의 문서
|
|
211
|
+
|
|
212
|
+
**출력 예시:**
|
|
213
|
+
```
|
|
214
|
+
Graph: 17 nodes, 22 edges
|
|
215
|
+
Edges:
|
|
216
|
+
CLI-설계서 ↔ cli-proxy-design (shared-tags, w=0.6)
|
|
217
|
+
PRD ↔ 설계서 (same-category, w=0.2)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### tags - 태그 집계
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
npx doc tags [dir]
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
모든 문서의 태그를 수집하여 사용 빈도순으로 집계합니다.
|
|
227
|
+
|
|
228
|
+
**옵션:**
|
|
229
|
+
- `dir`: 대상 디렉토리 (기본값: `docs/`)
|
|
230
|
+
|
|
231
|
+
**출력 예시:**
|
|
232
|
+
```
|
|
233
|
+
Tags (51 unique):
|
|
234
|
+
architecture: 5
|
|
235
|
+
cli: 4
|
|
236
|
+
api: 3
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### properties - 프론트매터 속성값 조회
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
npx doc properties [dir]
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
문서들에서 사용된 프론트매터 속성의 고유값을 수집하여 표시합니다. 현재 `type`과 `category` 필드를 집계합니다.
|
|
246
|
+
|
|
247
|
+
**옵션:**
|
|
248
|
+
- `dir`: 대상 디렉토리 (기본값: `docs/`)
|
|
249
|
+
|
|
250
|
+
**출력 예시:**
|
|
251
|
+
```
|
|
252
|
+
Frontmatter properties:
|
|
253
|
+
type: document
|
|
254
|
+
category: design, guide, prd, research
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Frontmatter Schema
|
|
258
|
+
|
|
259
|
+
`doc index`가 인식하는 프론트매터 필드입니다. 문서 상단에 YAML 프론트매터로 작성합니다.
|
|
260
|
+
|
|
261
|
+
### 필수 조건
|
|
262
|
+
|
|
263
|
+
`type` 또는 `summary` 중 **하나 이상** 있어야 인덱싱됩니다.
|
|
264
|
+
|
|
265
|
+
### 필드 목록
|
|
266
|
+
|
|
267
|
+
| 필드 | 타입 | 기본값 | 설명 |
|
|
268
|
+
|------|------|--------|------|
|
|
269
|
+
| `type` | `'document' \| 'memory'` | `'document'` | 엔트리 유형 |
|
|
270
|
+
| `category` | `string` | `'general'` | 문서 분류 (design, guide, prd, research 등) |
|
|
271
|
+
| `tags` | `string[]` | `[]` | 태그 목록 (kebab-case 권장) |
|
|
272
|
+
| `summary` | `string` | `''` | 한 줄 요약 (index/find 출력에 표시) |
|
|
273
|
+
| `date` | `string` | `''` | 날짜 (YYYY-MM-DD) |
|
|
274
|
+
|
|
275
|
+
### 프론트매터 예시
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
---
|
|
279
|
+
type: document
|
|
280
|
+
category: design
|
|
281
|
+
tags: [cli, routing, architecture]
|
|
282
|
+
summary: CrewX CLI 설계서 — 라우팅 아키텍처, 빌트인 도구, 서브커맨드 확장
|
|
283
|
+
date: 2026-02-20
|
|
284
|
+
---
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Document Graph Connections
|
|
288
|
+
|
|
289
|
+
`doc graph`는 명시적 연결 필드 없이 **프론트매터 메타데이터로 관계를 자동 추론**합니다.
|
|
290
|
+
|
|
291
|
+
### 연결이 생성되는 조건
|
|
292
|
+
|
|
293
|
+
1. **공통 태그** (`shared-tags`): 두 문서가 같은 태그를 1개 이상 공유하면 연결됩니다. 공통 태그가 많을수록 가중치가 높습니다.
|
|
294
|
+
2. **같은 카테고리** (`same-category`): 같은 `category`를 가진 문서는 연결됩니다. (`general`은 제외)
|
|
295
|
+
3. **같은 날짜** (`same-day`): 같은 `date`를 가진 문서는 연결됩니다.
|
|
296
|
+
|
|
297
|
+
### 그래프 연결을 강화하는 방법
|
|
298
|
+
|
|
299
|
+
```yaml
|
|
300
|
+
# 관련 문서들에 공통 태그를 부여하면 자동으로 연결됩니다
|
|
301
|
+
---
|
|
302
|
+
tags: [cli, routing] # CLI-설계서
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
tags: [cli, proxy] # cli-proxy-design → 'cli' 태그로 연결
|
|
307
|
+
---
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
- 태그를 **구체적이고 일관되게** 사용하면 의미 있는 연결이 생깁니다
|
|
311
|
+
- 같은 `category`를 사용하면 추가 연결이 생깁니다
|
|
312
|
+
- `general` 카테고리는 그래프 연결에서 제외됩니다
|
|
313
|
+
|
|
314
|
+
## 추천 워크플로우
|
|
315
|
+
|
|
316
|
+
### 1. 큰 설계서 분석 시
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
# 1. 먼저 목차 구조 파악
|
|
320
|
+
npx doc toc docs/설계서.md --depth=2
|
|
321
|
+
|
|
322
|
+
# 2. 관심 있는 섹션만 상세 조회
|
|
323
|
+
npx doc section docs/설계서.md "정산 관리"
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### 2. 구현 진행 상황 추적
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# 상태 요약 확인
|
|
330
|
+
npx doc summary docs/설계서.md
|
|
331
|
+
|
|
332
|
+
# 상세 목차에서 미구현 항목 확인
|
|
333
|
+
npx doc status docs/설계서.md
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### 3. Knowledge Graph 활용
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
# 1. 전체 문서 현황 파악
|
|
340
|
+
npx doc index
|
|
341
|
+
|
|
342
|
+
# 2. 관련 문서 검색
|
|
343
|
+
npx doc find "인증"
|
|
344
|
+
|
|
345
|
+
# 3. 문서 간 관계 시각화
|
|
346
|
+
npx doc graph
|
|
347
|
+
|
|
348
|
+
# 4. 태그 분포 확인 — 분류 체계 점검
|
|
349
|
+
npx doc tags
|
|
350
|
+
|
|
351
|
+
# 5. 속성값 현황 — 프론트매터 일관성 검증
|
|
352
|
+
npx doc properties
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### 4. 새 문서 작성 시 프론트매터 추가
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
# 1. 기존 카테고리/태그 확인
|
|
359
|
+
npx doc properties
|
|
360
|
+
npx doc tags
|
|
361
|
+
|
|
362
|
+
# 2. 적절한 프론트매터로 문서 작성
|
|
363
|
+
# 3. 인덱싱 확인
|
|
364
|
+
npx doc index
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## 설계서 작성 권장사항
|
|
368
|
+
|
|
369
|
+
구현 상태를 효과적으로 추적하려면 다음 형식을 사용하세요:
|
|
370
|
+
|
|
371
|
+
```markdown
|
|
372
|
+
## API 설계
|
|
373
|
+
|
|
374
|
+
### GLD001. 혈맹 정보 조회 ❌ 미구현
|
|
375
|
+
### GLD002. 혈맹 쿼터 조회 ✅ 구현됨
|
|
376
|
+
### GLD003. 혈맹 설정 변경 🚧 진행중
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
또는 별도의 "구현 상태" 섹션을 만들어 테이블로 관리:
|
|
380
|
+
|
|
381
|
+
```markdown
|
|
382
|
+
# 구현 상태
|
|
383
|
+
|
|
384
|
+
| ID | 항목 | 상태 |
|
|
385
|
+
|----|------|------|
|
|
386
|
+
| GLD001 | 혈맹 정보 조회 | ❌ 미구현 |
|
|
387
|
+
| GLD002 | 혈맹 쿼터 조회 | ✅ 구현됨 |
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## 의존성
|
|
391
|
+
|
|
392
|
+
- `@crewx/knowledge-core`: 프론트매터 파싱, BM25 검색, 그래프 빌더
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewx/doc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Markdown TOC extraction and section management for CrewX",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/src/engine.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"bin": { "doc": "./dist/cli.js" },
|
|
15
|
-
"files": ["dist"],
|
|
15
|
+
"files": ["dist", "SKILL.md"],
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc",
|
|
18
18
|
"dev": "ts-node cli.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"keywords": ["crewx", "markdown", "toc", "documentation"],
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@crewx/knowledge-core": "^0.1.
|
|
24
|
+
"@crewx/knowledge-core": "^0.1.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^20.0.0",
|