@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.
Files changed (2) hide show
  1. package/SKILL.md +392 -0
  2. 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.2",
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.2"
24
+ "@crewx/knowledge-core": "^0.1.3"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^20.0.0",