vibe-commander 0.1.0

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 (117) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/cli/commands/context-resolver.d.ts +29 -0
  3. package/dist/adapters/cli/commands/context-resolver.js +93 -0
  4. package/dist/adapters/cli/commands/context.d.ts +26 -0
  5. package/dist/adapters/cli/commands/context.js +39 -0
  6. package/dist/adapters/cli/commands/git-helpers.d.ts +43 -0
  7. package/dist/adapters/cli/commands/git-helpers.js +99 -0
  8. package/dist/adapters/cli/commands/init-helpers.d.ts +30 -0
  9. package/dist/adapters/cli/commands/init-helpers.js +112 -0
  10. package/dist/adapters/cli/commands/init-interactive.d.ts +25 -0
  11. package/dist/adapters/cli/commands/init-interactive.js +143 -0
  12. package/dist/adapters/cli/commands/init.d.ts +25 -0
  13. package/dist/adapters/cli/commands/init.js +73 -0
  14. package/dist/adapters/cli/commands/io-helpers.d.ts +45 -0
  15. package/dist/adapters/cli/commands/io-helpers.js +144 -0
  16. package/dist/adapters/cli/commands/list-units.d.ts +39 -0
  17. package/dist/adapters/cli/commands/list-units.js +92 -0
  18. package/dist/adapters/cli/commands/prompt-helpers.d.ts +36 -0
  19. package/dist/adapters/cli/commands/prompt-helpers.js +113 -0
  20. package/dist/adapters/cli/commands/set-unit.d.ts +44 -0
  21. package/dist/adapters/cli/commands/set-unit.js +90 -0
  22. package/dist/adapters/cli/commands/skill-install.d.ts +31 -0
  23. package/dist/adapters/cli/commands/skill-install.js +85 -0
  24. package/dist/adapters/cli/commands/state-helpers.d.ts +28 -0
  25. package/dist/adapters/cli/commands/state-helpers.js +55 -0
  26. package/dist/adapters/cli/commands/update-commit.d.ts +42 -0
  27. package/dist/adapters/cli/commands/update-commit.js +180 -0
  28. package/dist/adapters/cli/commands/validate.d.ts +40 -0
  29. package/dist/adapters/cli/commands/validate.js +219 -0
  30. package/dist/adapters/cli/formatters-list.d.ts +36 -0
  31. package/dist/adapters/cli/formatters-list.js +106 -0
  32. package/dist/adapters/cli/formatters-unit.d.ts +44 -0
  33. package/dist/adapters/cli/formatters-unit.js +287 -0
  34. package/dist/adapters/cli/formatters.d.ts +2 -0
  35. package/dist/adapters/cli/formatters.js +3 -0
  36. package/dist/adapters/cli/index.d.ts +17 -0
  37. package/dist/adapters/cli/index.js +60 -0
  38. package/dist/adapters/cli/output.d.ts +58 -0
  39. package/dist/adapters/cli/output.js +159 -0
  40. package/dist/adapters/cli/router.d.ts +99 -0
  41. package/dist/adapters/cli/router.js +419 -0
  42. package/dist/adapters/cli/scanner.d.ts +19 -0
  43. package/dist/adapters/cli/scanner.js +227 -0
  44. package/dist/adapters/pipe/stdin-reader.d.ts +23 -0
  45. package/dist/adapters/pipe/stdin-reader.js +56 -0
  46. package/dist/config/loader.d.ts +27 -0
  47. package/dist/config/loader.js +84 -0
  48. package/dist/config/resolver.d.ts +71 -0
  49. package/dist/config/resolver.js +124 -0
  50. package/dist/config/schema.d.ts +205 -0
  51. package/dist/config/schema.js +186 -0
  52. package/dist/core/parsers/backlog-parser.d.ts +25 -0
  53. package/dist/core/parsers/backlog-parser.js +255 -0
  54. package/dist/core/parsers/dep-line-parser.d.ts +36 -0
  55. package/dist/core/parsers/dep-line-parser.js +176 -0
  56. package/dist/core/parsers/dependency-extractor.d.ts +64 -0
  57. package/dist/core/parsers/dependency-extractor.js +193 -0
  58. package/dist/core/parsers/index.d.ts +20 -0
  59. package/dist/core/parsers/index.js +20 -0
  60. package/dist/core/parsers/md-utils.d.ts +81 -0
  61. package/dist/core/parsers/md-utils.js +144 -0
  62. package/dist/core/parsers/metadata-parser.d.ts +49 -0
  63. package/dist/core/parsers/metadata-parser.js +133 -0
  64. package/dist/core/parsers/pairing-question-extractor.d.ts +42 -0
  65. package/dist/core/parsers/pairing-question-extractor.js +146 -0
  66. package/dist/core/parsers/plan-parser-helpers.d.ts +61 -0
  67. package/dist/core/parsers/plan-parser-helpers.js +90 -0
  68. package/dist/core/parsers/plan-parser.d.ts +55 -0
  69. package/dist/core/parsers/plan-parser.js +69 -0
  70. package/dist/core/parsers/title-extractor.d.ts +36 -0
  71. package/dist/core/parsers/title-extractor.js +101 -0
  72. package/dist/core/renderers/index.d.ts +15 -0
  73. package/dist/core/renderers/index.js +18 -0
  74. package/dist/core/renderers/interpolate.d.ts +92 -0
  75. package/dist/core/renderers/interpolate.js +117 -0
  76. package/dist/core/renderers/marker-utils.d.ts +60 -0
  77. package/dist/core/renderers/marker-utils.js +85 -0
  78. package/dist/core/renderers/section-renderer.d.ts +31 -0
  79. package/dist/core/renderers/section-renderer.js +171 -0
  80. package/dist/core/renderers/section-updater.d.ts +72 -0
  81. package/dist/core/renderers/section-updater.js +175 -0
  82. package/dist/core/renderers/template-engine.d.ts +69 -0
  83. package/dist/core/renderers/template-engine.js +92 -0
  84. package/dist/core/renderers/updater-helpers.d.ts +45 -0
  85. package/dist/core/renderers/updater-helpers.js +83 -0
  86. package/dist/core/resolvers/commit-filter.d.ts +84 -0
  87. package/dist/core/resolvers/commit-filter.js +95 -0
  88. package/dist/core/resolvers/config-generator.d.ts +32 -0
  89. package/dist/core/resolvers/config-generator.js +112 -0
  90. package/dist/core/resolvers/config-merger.d.ts +26 -0
  91. package/dist/core/resolvers/config-merger.js +89 -0
  92. package/dist/core/resolvers/config-validator.d.ts +42 -0
  93. package/dist/core/resolvers/config-validator.js +61 -0
  94. package/dist/core/resolvers/dep-commit-resolver.d.ts +63 -0
  95. package/dist/core/resolvers/dep-commit-resolver.js +158 -0
  96. package/dist/core/resolvers/dep-doc-resolver.d.ts +70 -0
  97. package/dist/core/resolvers/dep-doc-resolver.js +84 -0
  98. package/dist/core/resolvers/index.d.ts +15 -0
  99. package/dist/core/resolvers/index.js +12 -0
  100. package/dist/index.d.ts +8 -0
  101. package/dist/index.js +8 -0
  102. package/dist/types/config.d.ts +10 -0
  103. package/dist/types/config.js +10 -0
  104. package/dist/types/context.d.ts +55 -0
  105. package/dist/types/context.js +10 -0
  106. package/dist/types/index.d.ts +15 -0
  107. package/dist/types/index.js +10 -0
  108. package/dist/types/init.d.ts +56 -0
  109. package/dist/types/init.js +10 -0
  110. package/dist/types/tool-result.d.ts +75 -0
  111. package/dist/types/tool-result.js +40 -0
  112. package/dist/types/unit.d.ts +118 -0
  113. package/dist/types/unit.js +10 -0
  114. package/package.json +71 -0
  115. package/skills/claude/SKILL.md +375 -0
  116. package/skills/common/cli-reference.md +251 -0
  117. package/skills/cursor/SKILL.md +353 -0
@@ -0,0 +1,353 @@
1
+ ---
2
+ name: vibe-commander
3
+ description: vibe-commander CLI(vc)를 활용하여 유닛 기반 워크플로우를 자동화합니다. 유닛 전환, 커밋 추적, 컨텍스트 수집, 설정 검증 요청 시 사용합니다.
4
+ metadata:
5
+ version: 1.0.0
6
+ category: workflow-automation
7
+ tags: [vc, vibe-commander, unit, set-unit, update-commit, list-units, context, validate, init, workflow, 유닛, 커맨드]
8
+ ---
9
+
10
+ # vibe-commander CLI 사용 가이드
11
+
12
+ vibe-commander(`vc`)는 유닛 기반 바이브 코딩 워크플로우를 자동화하는 CLI 도구입니다.
13
+ 유닛 ID 하나로 커맨드 파일 섹션을 자동 생성하여, 에이전트의 컨텍스트 준비 시간을 단축합니다.
14
+
15
+ ## Instructions (Synced from skills/common/cli-reference.md)
16
+
17
+ ### Step 1: 프로젝트 설정 확인
18
+
19
+ 작업 시작 전, 프로젝트 루트에 `vibe-commander.config.json`이 있는지 확인합니다.
20
+
21
+ ```bash
22
+ vc validate
23
+ ```
24
+
25
+ 설정이 없으면 초기화합니다:
26
+
27
+ ```bash
28
+ vc init --from-existing # 기존 파일 스캔으로 자동 감지
29
+ vc init # 대화형으로 직접 입력
30
+ ```
31
+
32
+ ### Step 2: 유닛 전환 워크플로우
33
+
34
+ 에이전트가 유닛 작업을 수행할 때의 표준 흐름:
35
+
36
+ ```
37
+ 1. vc list-units → 착수 가능 유닛 확인
38
+ 2. vc set-unit <unitId> → 커맨드 파일 자동 구성
39
+ 3. (에이전트가 코드 작업 수행)
40
+ 4. vc update-commit → HEAD 커밋 SHA 자동 추적
41
+ 5. vc set-unit <nextUnitId> → 다음 유닛 전환
42
+ ```
43
+
44
+ ### Step 3: 컨텍스트 조회 (읽기 전용)
45
+
46
+ 커맨드 파일을 수정하지 않고 유닛 정보만 확인할 때:
47
+
48
+ ```bash
49
+ vc context <unitId> --json
50
+ ```
51
+
52
+ ## CLI 레퍼런스
53
+
54
+ ### `vc set-unit <unitId>` — 현재 작업 유닛 설정
55
+
56
+ 커맨드 파일의 해당 섹션을 자동으로 구성합니다.
57
+
58
+ ```bash
59
+ vc set-unit "U-013[Mvp]"
60
+ vc set-unit "U-013[Mvp]" --request mcp-nanobanana,doc-update
61
+ vc set-unit "U-013[Mvp]" --no-prompt # 페어링 질문 프롬프트 비활성화
62
+ vc set-unit "U-013[Mvp]" --json # JSON ToolResult 출력
63
+ ```
64
+
65
+ **동작**: 유닛 ID → 유형 자동 매칭 → 계획서 파싱 → 의존성 문서/커밋 수집 → 커맨드 파일 섹션 교체
66
+
67
+ **옵션**:
68
+ | 옵션 | 설명 |
69
+ |------|------|
70
+ | `--request <key1,key2>` | `customRequests`에서 키로 특별 요청사항 선택 |
71
+ | `--no-prompt` | 페어링 질문 인터랙티브 프롬프트 비활성화 |
72
+ | `--json` | JSON ToolResult 구조로 출력 |
73
+ | `--stdin` | stdin에서 JSON 입력 (`{"unitId":"..."}`) |
74
+
75
+ ### `vc update-commit [sha|N]` — 커밋 SHA 업데이트
76
+
77
+ ```bash
78
+ vc update-commit # HEAD SHA 자동 감지
79
+ vc update-commit 3 # 최근 3개 커밋 SHA
80
+ vc update-commit abc1234 # 특정 SHA 지정
81
+ vc update-commit abc1234 --mode append # 기존 값에 추가
82
+ ```
83
+
84
+ **옵션**:
85
+ | 옵션 | 설명 |
86
+ |------|------|
87
+ | `--mode replace\|append` | 값 교체(기본) 또는 기존 값에 추가 |
88
+ | `--section <name>` | 대상 섹션 지정 (미지정 시 자동 감지) |
89
+
90
+ ### `vc list-units` — 미완료 유닛 목록
91
+
92
+ ```bash
93
+ vc list-units # 전체 미완료 유닛
94
+ vc list-units --phase Mvp # 특정 phase 필터
95
+ vc list-units --json # JSON 출력
96
+ ```
97
+
98
+ **출력 분류**: `ready`(착수 가능), `inProgress`(진행중), `blocked`(의존성 미충족)
99
+
100
+ ### `vc context <unitId>` — 유닛 컨텍스트 조회
101
+
102
+ `set-unit`과 동일한 파싱을 수행하되, 커맨드 파일을 수정하지 않습니다.
103
+
104
+ ```bash
105
+ vc context "U-013[Mvp]" --json
106
+ ```
107
+
108
+ ### `vc validate` — 설정 검증
109
+
110
+ 설정 파일의 스키마, 경로 존재, 정규식 유효성, 패턴 충돌을 4단계로 검증합니다.
111
+
112
+ ```bash
113
+ vc validate # 사람용 포맷 리포트
114
+ vc validate --json # JSON ToolResult
115
+ ```
116
+
117
+ ### `vc init` — 프로젝트 초기화
118
+
119
+ ```bash
120
+ vc init # 대화형 설정 생성
121
+ vc init --from-existing # 기존 .md 파일 스캔 → 패턴 자동 감지 → 설정 생성
122
+ ```
123
+
124
+ `--from-existing`은 기존 설정이 있으면 커스텀 필드를 보존하며 병합합니다.
125
+
126
+ ### 파이프 모드 (에이전트/오케스트레이터 연동)
127
+
128
+ 모든 명령어에 `--json`과 `--stdin`을 조합하여 프로그래밍 방식으로 사용할 수 있습니다.
129
+
130
+ ```bash
131
+ echo '{"unitId":"U-013[Mvp]"}' | vc set-unit --stdin --json
132
+ echo '{"count":3}' | vc update-commit --stdin --json
133
+ echo '{}' | vc list-units --stdin --json
134
+ echo '{"unitId":"U-013[Mvp]"}' | vc context --stdin --json
135
+ ```
136
+
137
+ **출력 규약**:
138
+ - `stdout`: JSON ToolResult만 출력 (파이프라인 호환)
139
+ - `stderr`: 로그, 경고, 에러 메시지
140
+
141
+ ## Rules
142
+
143
+ ### 에이전트 워크플로우에서의 사용 패턴
144
+
145
+ **Do ✅ — 유닛 시작 시**:
146
+
147
+ 1. `vc set-unit <unitId> --json --no-prompt`으로 커맨드 파일 구성
148
+ 2. 반환된 JSON에서 `pairingQuestions` 확인 → 미결정 항목이 있으면 사용자에게 전달
149
+ 3. `docsFound`의 의존성 문서를 `@` 참조로 컨텍스트에 포함
150
+
151
+ **Do ✅ — 커밋 후**:
152
+
153
+ 1. `vc update-commit`으로 HEAD SHA 자동 업데이트
154
+ 2. 여러 커밋이 누적되었으면 `vc update-commit N`으로 최근 N개 수집
155
+
156
+ **Do ✅ — 다음 유닛 확인 시**:
157
+
158
+ 1. `vc list-units --json`으로 착수 가능 유닛 목록 확인
159
+ 2. `ready` 목록에서 사용자가 선택한 유닛으로 `vc set-unit` 실행
160
+
161
+ **Don't ❌**:
162
+
163
+ - 커맨드 파일을 직접 편집하여 유닛 정보 삽입 (반드시 `vc set-unit` 사용)
164
+ - `--json` 없이 파이프라인에서 사용 (stdout에 사람용 포맷 출력됨)
165
+ - 유효하지 않은 유닛 ID로 `set-unit` 호출 (설정의 `idPattern`에 매칭되어야 함)
166
+
167
+ ### ToolResult 응답 처리
168
+
169
+ 모든 `--json` 출력은 아래 구조를 따릅니다:
170
+
171
+ ```json
172
+ {
173
+ "success": true,
174
+ "data": { /* 명령어별 결과 데이터 */ }
175
+ }
176
+ ```
177
+
178
+ 실패 시:
179
+
180
+ ```json
181
+ {
182
+ "success": false,
183
+ "error": {
184
+ "code": "PLAN_NOT_FOUND",
185
+ "message": "계획서를 찾을 수 없음: vibe/unit-plans/U-999.md"
186
+ }
187
+ }
188
+ ```
189
+
190
+ 주요 에러 코드:
191
+ | 코드 | 의미 |
192
+ |------|------|
193
+ | `CONFIG_NOT_FOUND` | 설정 파일 없음 → `vc init` 실행 |
194
+ | `CONFIG_INVALID` | 설정 파일 스키마 오류 → `vc validate`로 확인 |
195
+ | `PLAN_NOT_FOUND` | 계획서 파일 없음 → 경로 확인 |
196
+ | `UNIT_TYPE_NOT_FOUND` | ID가 어떤 unitType에도 매칭 안 됨 → 설정의 idPattern 확인 |
197
+ | `COMMANDS_FILE_NOT_FOUND` | 커맨드 파일 없음 → `paths.commands` 경로 확인 |
198
+ | `ROADMAP_NOT_CONFIGURED` | 로드맵 미설정 → `paths.roadmap` 설정 필요 |
199
+
200
+ ## 설정 파일 가이드
201
+
202
+ ### 최소 필수 구조
203
+
204
+ ```jsonc
205
+ {
206
+ "version": 1,
207
+ "paths": {
208
+ "commands": "vibe/commands.md", // 커맨드 파일 경로 (필수)
209
+ "roadmap": "vibe/roadmap.md", // null이면 list-units 비활성화
210
+ "docRoots": {
211
+ "plan": "vibe/unit-plans", // 계획서 디렉토리
212
+ "result": "vibe/unit-results" // 결과 보고서 디렉토리
213
+ }
214
+ },
215
+ "unitTypes": [
216
+ {
217
+ "key": "implement",
218
+ "idPattern": "^(U-\\d+|CP-).*", // 정규식으로 유닛 ID 매칭
219
+ "planDir": "plan", // docRoots 키 참조
220
+ "commandSection": "# 유닛 구현", // 커맨드 파일 섹션 헤더
221
+ "collectDeps": true, // 의존성 수집 여부
222
+ "headerTemplate": "### 현재 구현 유닛: {{title}}\n- 계획서: @{{planPath}}"
223
+ }
224
+ ],
225
+ "docDiscovery": {
226
+ "plan": { "pattern": "{{unitId}}.md" },
227
+ "result": { "pattern": "{{unitId}}.md" }
228
+ },
229
+ "planParsing": {
230
+ "titleSource": "h1",
231
+ "dependsSource": "section",
232
+ "dependsSectionName": "이전 작업에서 가져올 것",
233
+ "pairingQuestionSection": "페어링 질문"
234
+ }
235
+ }
236
+ ```
237
+
238
+ ### 템플릿 변수
239
+
240
+ `headerTemplate`에서 사용 가능한 변수:
241
+
242
+ | 변수 | 설명 | 예시 |
243
+ |------|------|------|
244
+ | `{{unitId}}` | 원본 유닛 ID | `U-118[Mmp]` |
245
+ | `{{shortId}}` | phase 제거 | `U-118` |
246
+ | `{{title}}` | 전체 제목 (ID 포함) | `U-118[Mmp]: 마크다운 이미지 링크 삽입` |
247
+ | `{{titleOnly}}` | 제목만 (ID 제외) | `마크다운 이미지 링크 삽입` |
248
+ | `{{planPath}}` | 계획서 상대 경로 | `vibe/unit-plans/U-118[Mmp].md` |
249
+ | `{{phase}}` | phase 문자열 | `Mmp` |
250
+
251
+ ### 유닛 유형 우선순위
252
+
253
+ `unitTypes` 배열 순서가 매칭 우선순위입니다. 더 구체적인 패턴을 앞에 배치하세요.
254
+
255
+ ```jsonc
256
+ "unitTypes": [
257
+ { "key": "refactor-sub", "idPattern": "^RU-\\d+-[A-Z]\\d+$" }, // 구체적 → 먼저
258
+ { "key": "implement", "idPattern": "^(U-\\d+|CP-).*" }, // 일반적 → 나중
259
+ { "key": "refactor", "idPattern": "^RU-\\d+\\[.*\\]$" }
260
+ ]
261
+ ```
262
+
263
+ ## Cursor 통합
264
+
265
+ ### SKILL 설치 위치
266
+
267
+ 이 SKILL 파일은 `vc skill install --cursor` 실행 시 아래 경로에 자동 설치됩니다:
268
+
269
+ ```
270
+ .cursor/skills/vibe-commander/SKILL.md
271
+ ```
272
+
273
+ ### .cursor/rules 연동
274
+
275
+ 프로젝트에 `.cursor/rules/` 디렉토리가 있다면, vibe-commander 관련 규칙 파일을 추가하여
276
+ 에이전트가 자동으로 `vc` CLI를 활용하도록 설정할 수 있습니다.
277
+
278
+ ```yaml
279
+ # .cursor/rules/vc-workflow.mdc
280
+ ---
281
+ description: vibe-commander 워크플로우 자동화
282
+ applyTo: "**/vibe/commands*.md"
283
+ ---
284
+ 유닛 전환 시 `vc set-unit` 명령어를 사용하고, 커밋 후 `vc update-commit`을 실행하세요.
285
+ ```
286
+
287
+ ### 파일 참조 패턴
288
+
289
+ Cursor에서는 `@` 기호로 파일을 참조합니다. `vc set-unit` 결과의 의존성 문서 경로를
290
+ `@` 참조로 에이전트 컨텍스트에 포함할 수 있습니다:
291
+
292
+ ```
293
+ @vibe/unit-plans/U-117[Mmp].md
294
+ @vibe/unit-results/U-117[Mmp].md
295
+ ```
296
+
297
+ ## Examples
298
+
299
+ ### Example 1: 새 유닛 작업 시작
300
+
301
+ 사용자가 "U-112[Mmp] 유닛 구현해줘"라고 요청한 경우:
302
+
303
+ 1. `vc set-unit "U-112[Mmp]" --json --no-prompt` 실행
304
+ 2. 커맨드 파일이 자동 구성됨 — 계획서, 의존성 문서, 커밋 SHA 포함
305
+ 3. 반환된 JSON의 `planPath`에서 계획서를 읽어 작업 시작
306
+ 4. 작업 중 커밋 발생 시 `vc update-commit` 실행
307
+
308
+ ### Example 2: 다음 착수 가능 유닛 확인
309
+
310
+ 사용자가 "다음에 뭐 하면 돼?"라고 질문한 경우:
311
+
312
+ 1. `vc list-units --json` 실행
313
+ 2. `ready` 목록에서 착수 가능 유닛 제시
314
+ 3. 사용자가 선택하면 `vc set-unit` 실행
315
+
316
+ ### Example 3: 파이프라인 연동
317
+
318
+ 오케스트레이터가 JSON 파이프로 유닛을 설정하는 경우:
319
+
320
+ ```bash
321
+ echo '{"unitId":"U-013[Mvp]"}' | vc set-unit --stdin --json
322
+ ```
323
+
324
+ 결과를 파싱하여 에이전트에 컨텍스트를 주입합니다.
325
+
326
+ ## Troubleshooting
327
+
328
+ ### Error: CONFIG_NOT_FOUND
329
+ **원인**: 프로젝트 루트에 `vibe-commander.config.json`이 없음
330
+ **해결**: `vc init` 또는 `vc init --from-existing` 실행
331
+
332
+ ### Error: UNIT_TYPE_NOT_FOUND
333
+ **원인**: 입력한 유닛 ID가 설정의 어떤 `idPattern`에도 매칭되지 않음
334
+ **해결**: `vibe-commander.config.json`의 `unitTypes[].idPattern` 정규식 확인. `vc validate`로 패턴 충돌 여부 점검
335
+
336
+ ### Error: PLAN_NOT_FOUND
337
+ **원인**: 해당 유닛의 계획서 파일이 `docRoots.plan` 디렉토리에 없음
338
+ **해결**: 계획서 파일명이 `docDiscovery.plan.pattern`과 일치하는지 확인 (기본: `{{unitId}}.md`)
339
+
340
+ ### Error: COMMANDS_FILE_NOT_FOUND
341
+ **원인**: `paths.commands`에 지정된 커맨드 파일이 없음
342
+ **해결**: 파일을 생성하거나 `paths.commands` 경로 수정
343
+
344
+ ### Error: set-unit 후 섹션이 갱신되지 않음
345
+ **원인**: 커맨드 파일에 HTML 주석 마커(`<!-- vc:begin:key -->`)가 없거나 섹션 헤더 불일치
346
+ **해결**: `commandSections.useMarkers: true`이면 마커 존재 확인. 마커가 없으면 `commandSection` 헤더 텍스트가 정확한지 확인
347
+
348
+ ## References
349
+
350
+ - CLI 도움말: `vc --help`
351
+ - 설정 파일 예시: 프로젝트 루트의 `vibe-commander.config.json`
352
+ - PRD: `vibe/prd.md` §6 기능 명세, §7.2 SKILL 파일 인터페이스
353
+ - 아키텍처: `vibe/architecture.md`