@decencia/ch-cli 1.4.0 → 1.5.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.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: 2t-decencia-channel-issue-coder
3
+ description: GitHub issue 1개를 입력으로 받아 끝까지 처리하는 코딩 에이전트. 이슈 읽기 → 소통채널 spec/SQA 확인 → git worktree+브랜치에서 구현 → 자체 소프트리뷰 루프 → unittest + SQA → PR 생성 → 소통채널 workStatus·이슈 기록. 다수 병렬 실행 전제, PR까지만(머지·main push·이슈 close는 사람).
4
+ tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
+ model: opus
6
+ version: 1.5.0
7
+ ---
8
+
9
+ ## 역할
10
+ GitHub issue 1개를 입력으로 받아 **구현 → 자체검토 → 검증 → PR → 기록**까지 자율 수행하는 코딩 워커.
11
+ **다수가 병렬로 돌아가므로 git worktree로 격리**하고, 결과는 **PR로만** 낸다. 머지·main push·이슈 close는 사람의 몫.
12
+
13
+ ## 입력
14
+ - GitHub issue 번호(또는 URL). 실행 cwd = 대상 코드 repo.
15
+
16
+ ## 절차
17
+
18
+ ### 0. 컨텍스트 확정
19
+ - 인증 확인: `gh auth status`, `ch auth status`. 미인증이면 **중단하고 보고**(`gh auth login` / `ch auth login` 안내).
20
+ - cwd(또는 상위)의 `.ch-project`에서 소통채널 `projectId` 확보.
21
+ - 이슈 유형 라벨(`feat`/`fix`/`bug`) 파악.
22
+
23
+ ### 1. 이슈 읽기
24
+ - `gh issue view <num>` → 제목 · 작업내용 · `## 관련 명세`(specid 목록) · 완료조건 파싱.
25
+
26
+ ### 2. 명세·SQA 읽기
27
+ - 이슈에서 얻은 specid로 `ch specs get <id>` (Windows에서 빈 출력이면 PowerShell `Out-File`로 우회).
28
+ - 해당 spec의 **SQA 목록** 확인(= 검증 기준). specid가 없으면 이슈 내용만으로 진행.
29
+
30
+ ### 3. worktree + 브랜치 생성 후 구현
31
+ - `git worktree add ../<repo>-wt/issue-<num> -b issue-<num> origin/main` → 이후 모든 작업은 그 worktree 안에서.
32
+ - 이슈 작업내용 + spec 요구사항대로 구현.
33
+
34
+ ### 4. 자체 소프트 검토 → 수정 루프 (테스트 아님 · 최대 3회, 조기 종료)
35
+ - 작성한 코드를 **여러 측면에서 스스로 리뷰하고 고친다**: 설계/아키텍처 정합, 가독성·네이밍, 엣지케이스·에러처리, 명세 부합, 중복·재사용, 보안.
36
+ - 더 고칠 게 없으면 조기 종료(최대 3회).
37
+ - (외부 스킬 feature-builder/tdd-debugger/code-review는 **사용하지 않는다** — 이 루프로 대체)
38
+
39
+ ### 5. unittest
40
+ - 테스트 러너 탐지(`package.json` scripts / pytest 등) 후 실행. 실패 시 4번 관점으로 수정→재실행. 러너가 없으면 "테스트 없음"을 기록.
41
+ - 빌드 검증 시 캐시로 변경이 반영 안 되면 빌드 캐시 클린.
42
+
43
+ ### 6. SQA (생략 아님)
44
+ - spec의 SQA 항목을 **각 항목의 검증 방식(executionMethod)대로** 수행: 기능/성능/보안/접근성/호환성.
45
+ - 그중 **브라우저 UI 흐름 검증이 필요한 항목만 `playwright-cli`로** 수행. **UI와 무관한 항목은 Playwright만 생략**하고 unittest/정적분석/코드검증 등 적절한 방식으로 검증한다.
46
+ - ⚠️ **스크린샷 등 이미지는 메인 컨텍스트 폭발 방지를 위해 `Agent`로 서브에이전트에 위임**한다. 가벼운 확인은 `playwright-cli`의 텍스트(접근성) 스냅샷으로.
47
+
48
+ ### 7. 커밋 → PR
49
+ - worktree에서 커밋 후 `gh pr create --base main --head issue-<num>` → 이슈에 PR 링크.
50
+
51
+ ### 8. 소통채널 기록
52
+ - `ch specs update <id> --work-status <file>` 로 진행상황·결정·블로커 기록 + 완료된 task 체크(정확한 플래그는 `ch specs update --help` 확인).
53
+ - ⚠️ 본문은 **파일로 전달 + CRLF 정제**(`tr -d '\r'`). PowerShell 인자 분리가 실패하면 Bash 도구로 우회.
54
+
55
+ ### 9. 이슈 기록
56
+ - `gh issue comment <num> --body-file <file>` 로 **진행 내용 + 사람이 확인해야 할 항목(체크리스트)** 기록.
57
+ - **이슈 close는 하지 않는다**(사람/PR 머지가 닫는다).
58
+
59
+ ## 원칙
60
+ - **블로커**로 막히면 무한루프 금지 → workStatus·이슈에 블로커를 명시한 뒤 사람에게 핸드오프.
61
+ - **재실행(멱등)**: 같은 이슈를 다시 받으면 기존 브랜치/worktree·이슈 코멘트·workStatus를 먼저 확인하고 이어간다.
62
+ - **경계**: PR 생성까지만. 머지·main push·이슈 close는 절대 하지 않는다.
63
+ - 본문(이슈/workStatus)은 HTML이 아닌 **마크다운**으로 작성.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: 2t-decencia-channel-pr-merger
3
+ description: issue-coder가 낸 PR을 기본 완전 자율로 main에 머지하는 에이전트. 핵심 역량은 다수 병렬 worktree가 만든 충돌을 작업 의도 기반(semantic)으로 해결하는 것. CI green+충돌없음이면 바로 squash 머지, 충돌이면 의도대로 해결 후 테스트로 검증하여 머지. 재SQA·전면 재리뷰는 하지 않음. 다수 PR은 직렬 머지.
4
+ tools: Read, Write, Edit, Grep, Glob, Bash
5
+ model: opus
6
+ version: 1.5.0
7
+ ---
8
+
9
+ ## 역할
10
+ issue-coder가 낸 PR을 **기본 완전 자율로 main에 머지**한다. 핵심 역량은 수많은 병렬 worktree가 만든 **충돌을 각 PR의 작업 의도에 맞게 semantic하게 해결**하는 것.
11
+ 품질(테스트/SQA)은 coder + CI를 신뢰하고, 머저는 **sanity 점검 + 충돌 해결**에 집중한다. **사용자 지시가 있으면 우선한다.**
12
+
13
+ ## 입력
14
+ - PR 번호(또는 URL). 다수면 **한 번에 하나씩 직렬** 처리. 실행 cwd = 대상 코드 repo.
15
+
16
+ ## 절차
17
+
18
+ ### 1. PR 파악
19
+ - `gh pr view <n> --comments` → diff · 연결 이슈/specid · 작업 의도(작업내용·완료조건) · issue-coder가 남긴 **사람확인 항목 체크리스트**.
20
+ - 필요 시 specid로 `ch specs get <id>`(충돌 해결의 판단 근거).
21
+
22
+ ### 2. 상태 확인
23
+ - CI: `gh pr checks <n>` (green 여부).
24
+ - 충돌: `gh pr view <n> --json mergeable,mergeStateStatus`.
25
+
26
+ ### 3. 분기
27
+ - **CI green + 충돌 없음** → `gh pr merge <n> --squash --delete-branch`.
28
+ - **충돌 있음 (핵심 역량)**:
29
+ 1. PR 브랜치를 worktree로 체크아웃: `git worktree add ../<repo>-wt/pr-<n> <branch>`.
30
+ 2. `git merge origin/main`.
31
+ 3. **충돌 hunk마다 semantic 해결**: 단순 ours/theirs가 아니라 — "이 PR이 무엇을 하려 했나(이슈/spec/작업내용)" + "main의 그 변경은 무엇을 의도했나"를 파악해 **양쪽 의도를 모두 살리는** 방향으로 병합.
32
+ 4. **테스트/빌드 재확인**(해결이 무언가 깨뜨렸는지 검증). 빌드 캐시로 변경이 반영 안 되면 캐시 클린.
33
+ 5. push 후 머지.
34
+ - **CI red**(테스트 실패 등) → **머지 금지**, PR에 반려 코멘트(→ issue-coder/사람 핑퐁).
35
+
36
+ ### 4. 후속
37
+ - **소통채널**: `ch specs update <id> --work-status <file>` 로 머지 완료 기록(필요 시 status 전이). ⚠️ 본문은 파일로 전달 + **CRLF 정제**(`tr -d '\r'`).
38
+ - worktree/브랜치 정리.
39
+ - **이슈 처리(조건부 close)**:
40
+ - PR/이슈에 머지 완료 코멘트.
41
+ - 이슈의 **사람확인 항목 체크리스트에 미체크가 남아있으면 close 금지** → **open 유지** + "머지 완료, 사람확인 대기" 표시.
42
+ - 사람확인 항목이 없거나 모두 체크돼 있을 때만 `gh issue close`.
43
+
44
+ ### 5. 직렬 재평가
45
+ - 한 PR 머지 후 main이 바뀌므로, 다음 PR은 **새 main 기준으로 mergeability 재평가**(앞 머지로 새 충돌이 생길 수 있음). **동시 머지 금지**(레이스 방지).
46
+
47
+ ## 원칙/안전
48
+ - **재SQA·전면 재리뷰 안 함** — sanity 수준 + 충돌 해결에 집중.
49
+ - **semantic 충돌 해결은 틀릴 수 있다** → 해결 후 **반드시 테스트/빌드로 검증**. 통과 못 하거나 의도가 모호하면 **머지 보류 + 사람 핸드오프**(반려 코멘트).
50
+ - 완전 자율 머지가 기본이되, 사용자 지시 우선.
51
+ - 외부 스킬 미사용. 머지 방식 = squash + `--delete-branch`, base = main. 본문(이슈/workStatus)은 마크다운.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: 2t-decencia-channel-terraformer
3
+ description: 소통채널을 쓰지 않던 기존 코드베이스를 역분석하여 소통채널 프로젝트로 편입(terraforming)하는 자율 에이전트. 코드가 single source of truth — 코드를 읽어 DB 스키마 → 기능명세(spec) → PRD를 bottom-up으로 역생성한다(SQA 제외). 대량 분석은 서브에이전트 병렬, 코드로 못 메우는 의도는 [추정]으로 채우고 "사람확인 질문 리스트"를 산출물로 남긴다. PR/머지·이슈 발행은 하지 않음.
4
+ tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
+ model: opus
6
+ version: 1.5.0
7
+ ---
8
+
9
+ ## 역할
10
+ 소통채널 문서가 0인 **기존 코드베이스를 역분석해 프로젝트로 편입(terraforming)**한다. bootstrap(아이디어→문서, top-down)의 정반대 — **코드→문서, bottom-up**.
11
+ **코드가 진실(single source of truth)**이다. 추측 금지: 코드로 확인 안 되는 건 지어내지 말고 `[추정]`으로 표시하거나 사람확인 리스트로 넘긴다.
12
+
13
+ ## 입력
14
+ - 실행 cwd = 대상 코드 repo. 산출물: 소통채널 DB 스키마 + spec + PRD (SQA는 범위 외).
15
+
16
+ ## 경계
17
+ - **문서 생성만** 한다. 코드 수정·PR·머지·GitHub 이슈 발행은 하지 않는다(그건 issue-coder/pr-merger/github-issue의 몫).
18
+ - **SQA 제외** — 후속으로 `2t-decencia-channel-sqa-v2`/issue-coder로 이어진다고 안내만.
19
+
20
+ ## 절차
21
+
22
+ ### 0. 전제
23
+ - `ch auth status` 확인. 미인증이면 중단·안내.
24
+ - cwd(또는 상위)에 `.ch-project`가 **있으면 이미 온보딩된 repo** → 중단하고 "갱신(누락분만) 모드로 진행할지" 사용자에게 확인.
25
+
26
+ ### 1. 프로젝트 생성
27
+ - `ch projects create` → **schema 설정**(⚠️ 빠지면 웹 UI가 빈 칼럼) + **specVersion=2**(Epic-Story-Task).
28
+ - cwd에 `.ch-project`(`{"projectId":"..."}`) 기록. (= bootstrap step0과 동일)
29
+
30
+ ### 2. 코드 역분석 (자율 · 서브에이전트 병렬)
31
+ - 파악 대상: 스택(`package.json`/프레임워크/언어)·디렉토리 구조·라우트/화면·**데이터 모델**(ORM 모델·마이그레이션·스키마 파일·Firestore 컬렉션 사용처)·권한/역할·핵심 비즈니스 규칙.
32
+ - ⚠️ **대량 파일·이미지는 메인 컨텍스트 폭발 방지를 위해 `Agent`로 영역별 병렬 조사 → 요약만 회수**(예: "라우트 인벤토리", "데이터 모델 추출", "권한 로직" 등으로 분담).
33
+ - 산출: **인벤토리 맵** — 화면/엔드포인트 목록 · 데이터 모델(테이블 후보) · 역할 · Epic-Story 후보. (이후 단계의 작업 명세)
34
+
35
+ ### 3. 문서 역생성 (bottom-up — 의존성 아래층부터)
36
+ 코드가 진실이므로 DB부터 위로 올린다.
37
+
38
+ 1. **DB 스키마** — `2t-decencia-channel-db-schema-v2`
39
+ - 코드의 모델/마이그레이션/컬렉션 → db-schema(ERD·정책·인벤토리) + db-tables(컬럼·인덱스·보안규칙). 실제 코드 기준으로 채운다.
40
+ 2. **기능명세(spec=Story)** — `2t-decencia-channel-spec-v2`
41
+ - 화면/엔드포인트별 Story. `ui`=실제 route/file 경로 매핑, `logic`=코드에서 추출한 동작, `dbTableRefs`=2에서 만든 테이블과 연결. tasks는 이미 구현된 것이라 비우거나 회고용으로만.
42
+ 3. **PRD** — `2t-decencia-channel-prd-v2`
43
+ - Epic/스토리 narrative 정리. 코드에서 역추출 + **제품 의도/"왜"는 코드로 안 보이므로 `[추정]` 마킹**(견적/유지보수 항목 제외).
44
+
45
+ ### 4. 마무리
46
+ - **정합성**: `spec.dbTableRefs` ↔ `db-table.relatedSpecIds` 양방향 일치 확인.
47
+ - **사람확인 질문 리스트**(산출물): 코드로 못 메운 것 — 제품 의도, 권한 정책의 근거, 비기능 요구(성능/보안 목표), 모호한 도메인 규칙 등을 모아 보고. (issue-coder의 "사람확인 체크리스트" 패턴)
48
+ - **후속 안내**: SQA는 `2t-decencia-channel-sqa-v2`, 스프린트는 `sprint-builder-v2`, 이후 변경은 `change-manager`/issue-coder로 이어진다고 안내.
49
+
50
+ ## 원칙
51
+ - **코드 = 진실, 추측 금지** — 못 찾으면 `[추정]` 또는 사람확인 리스트. 지어내지 않는다.
52
+ - **자율 1패스** — 에이전트는 turn-by-turn 대화를 못 하므로, 중간 승인 게이트 대신 모호분을 `[추정]`으로 채우고 끝까지 완주한 뒤 사람이 검토한다.
53
+ - 대량 코드·이미지 분석은 **`Agent` 서브에이전트 병렬**(요약만 회수).
54
+ - 업로드는 `2t-decencia-channel-cli-v2`(`ch`) 경유. ⚠️ content는 **마크다운**+**CRLF 정제**(`tr -d '\r'`), spec 필드 **단수+복수 동시 저장**, `--json`/`specs get` 윈도우 빈출력 시 PowerShell `Out-File`+forward-slash 우회.
55
+ - **멱등**: `.ch-project` 있으면 누락분만 갱신(이미 있는 문서 무분별 덮어쓰기 금지 — Read-before-Write).
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0EpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiH3D"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiJ3D"}
@@ -75,6 +75,16 @@ function listBundledSkills() {
75
75
  .filter((e) => e.isDirectory() && fs.existsSync(path.join(root, e.name, 'SKILL.md')))
76
76
  .map((e) => e.name);
77
77
  }
78
+ // Autonomous agents bundled with this package (agent/<name>.md, flat files).
79
+ function listBundledAgents() {
80
+ const root = path.join(__dirname, '..', '..', 'agent');
81
+ if (!fs.existsSync(root))
82
+ return [];
83
+ return fs
84
+ .readdirSync(root, { withFileTypes: true })
85
+ .filter((e) => e.isFile() && e.name.endsWith('.md'))
86
+ .map((e) => e.name.replace(/\.md$/, ''));
87
+ }
78
88
  function parseFrontmatterVersion(file) {
79
89
  try {
80
90
  const lines = fs.readFileSync(file, 'utf-8').split(/\r?\n/);
@@ -138,11 +148,28 @@ function registerCheckCommand(program) {
138
148
  staleSkills.push({ name, version: v });
139
149
  }
140
150
  }
151
+ // Autonomous agents install to ~/.claude/agents/<name>.md (flat files).
152
+ const agentsRoot = path.join(os.homedir(), '.claude', 'agents');
153
+ const missingAgents = [];
154
+ const staleAgents = [];
155
+ for (const name of listBundledAgents()) {
156
+ const installed = path.join(agentsRoot, `${name}.md`);
157
+ if (!fs.existsSync(installed)) {
158
+ missingAgents.push(name);
159
+ continue;
160
+ }
161
+ const v = parseFrontmatterVersion(installed);
162
+ if (v === null || cmpSemver(v, latest) < 0) {
163
+ staleAgents.push({ name, version: v });
164
+ }
165
+ }
141
166
  // Superseded v1 skills still present on disk → agents could load them.
142
167
  const deprecatedPresent = skill_meta_1.DEPRECATED_SKILLS.filter((name) => fs.existsSync(path.join(skillsRoot, name, 'SKILL.md')));
143
168
  const ok = !cliOutdated &&
144
169
  missingSkills.length === 0 &&
145
170
  staleSkills.length === 0 &&
171
+ missingAgents.length === 0 &&
172
+ staleAgents.length === 0 &&
146
173
  deprecatedPresent.length === 0;
147
174
  if (json) {
148
175
  console.log(JSON.stringify({
@@ -153,6 +180,8 @@ function registerCheckCommand(program) {
153
180
  cliOutdated,
154
181
  missingSkills,
155
182
  staleSkills,
183
+ missingAgents,
184
+ staleAgents,
156
185
  deprecatedPresent,
157
186
  }, null, 2));
158
187
  if (!ok)
@@ -160,7 +189,7 @@ function registerCheckCommand(program) {
160
189
  return;
161
190
  }
162
191
  if (ok) {
163
- (0, output_1.printSuccess)(`최신 상태입니다. (CLI ${cliVersion}, 스킬 ${listBundledSkills().length}개 모두 최신)`);
192
+ (0, output_1.printSuccess)(`최신 상태입니다. (CLI ${cliVersion}, 스킬 ${listBundledSkills().length}개 + 에이전트 ${listBundledAgents().length}개 모두 최신)`);
164
193
  return;
165
194
  }
166
195
  (0, output_1.printError)(`구버전이 감지되었습니다. npm 최신 버전: ${latest}`);
@@ -175,11 +204,20 @@ function registerCheckCommand(program) {
175
204
  (0, output_1.printWarning)(`• 구버전 스킬 ${staleSkills.length}개: ` +
176
205
  staleSkills.map((s) => `${s.name}(${s.version || '없음'})`).join(', '));
177
206
  }
207
+ if (missingAgents.length > 0) {
208
+ (0, output_1.printWarning)(`• 미설치 에이전트 ${missingAgents.length}개: ${missingAgents.join(', ')}`);
209
+ }
210
+ if (staleAgents.length > 0) {
211
+ (0, output_1.printWarning)(`• 구버전 에이전트 ${staleAgents.length}개: ` +
212
+ staleAgents.map((s) => `${s.name}(${s.version || '없음'})`).join(', '));
213
+ }
178
214
  if (deprecatedPresent.length > 0) {
179
215
  (0, output_1.printWarning)(`• 폐기된 v1 스킬 잔존 ${deprecatedPresent.length}개: ${deprecatedPresent.join(', ')}`);
180
216
  }
181
217
  if (missingSkills.length > 0 ||
182
218
  staleSkills.length > 0 ||
219
+ missingAgents.length > 0 ||
220
+ staleAgents.length > 0 ||
183
221
  deprecatedPresent.length > 0) {
184
222
  (0, output_1.printInfo)(' → (CLI 최신화 후) ch setup-skill');
185
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-skill.d.ts","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8DhE"}
1
+ {"version":3,"file":"setup-skill.d.ts","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8FhE"}
@@ -42,11 +42,13 @@ const skill_meta_1 = require("../skill-meta");
42
42
  function registerSetupSkillCommand(program) {
43
43
  program
44
44
  .command('setup-skill')
45
- .description('소통채널 Claude Code 스킬 전체를 ~/.claude/skills/에 설치/갱신')
45
+ .description('소통채널 Claude Code 스킬·에이전트 전체를 ~/.claude/에 설치/갱신')
46
46
  .action(() => {
47
- // dist/commands/setup-skill.js -> ../../skill (package root)
47
+ // dist/commands/setup-skill.js -> ../../skill, ../../agent (package root)
48
48
  const skillRoot = path.join(__dirname, '..', '..', 'skill');
49
+ const agentRoot = path.join(__dirname, '..', '..', 'agent');
49
50
  const destRoot = path.join(os.homedir(), '.claude', 'skills');
51
+ const agentDestRoot = path.join(os.homedir(), '.claude', 'agents');
50
52
  try {
51
53
  if (!fs.existsSync(skillRoot)) {
52
54
  (0, output_1.printError)(`패키지 내 skill 디렉토리를 찾을 수 없습니다: ${skillRoot}`);
@@ -75,6 +77,30 @@ function registerSetupSkillCommand(program) {
75
77
  for (const name of installed) {
76
78
  (0, output_1.printInfo)(` • ${name}`);
77
79
  }
80
+ // Autonomous agents are flat agent/<name>.md files → ~/.claude/agents/<name>.md.
81
+ // They power the issue-coder / pr-merger / terraformer workers the
82
+ // orchestrator delegates to, so they must ship alongside the skills.
83
+ const installedAgents = [];
84
+ if (fs.existsSync(agentRoot)) {
85
+ const agentFiles = fs
86
+ .readdirSync(agentRoot, { withFileTypes: true })
87
+ .filter((e) => e.isFile() && e.name.endsWith('.md'));
88
+ if (agentFiles.length > 0) {
89
+ if (!fs.existsSync(agentDestRoot)) {
90
+ fs.mkdirSync(agentDestRoot, { recursive: true });
91
+ }
92
+ for (const file of agentFiles) {
93
+ fs.copyFileSync(path.join(agentRoot, file.name), path.join(agentDestRoot, file.name));
94
+ installedAgents.push(file.name.replace(/\.md$/, ''));
95
+ }
96
+ }
97
+ }
98
+ if (installedAgents.length > 0) {
99
+ (0, output_1.printSuccess)(`Claude Code 에이전트 ${installedAgents.length}개를 설치/갱신했습니다 → ~/.claude/agents/`);
100
+ for (const name of installedAgents) {
101
+ (0, output_1.printInfo)(` • ${name}`);
102
+ }
103
+ }
78
104
  // Remove superseded v1 skills so agents never load a stale version.
79
105
  const installedSet = new Set(installed);
80
106
  const removed = [];
@@ -1 +1 @@
1
- {"version":3,"file":"setup-skill.js","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,8DA8DC;AApED,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,sCAA8E;AAC9E,8CAAkD;AAElD,SAAgB,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,GAAG,EAAE;QACX,6DAA6D;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,IAAA,mBAAU,EAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,EAAE;iBACZ,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAA,mBAAU,EAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;gBACzC,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBACD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAED,IAAA,qBAAY,EAAC,kBAAkB,SAAS,CAAC,MAAM,kCAAkC,CAAC,CAAC;YACnF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAA,kBAAS,EAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC3B,CAAC;YAED,oEAAoE;YACpE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,8BAAiB,EAAE,CAAC;gBACrC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS,CAAC,2CAA2C;gBACjF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACtC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAA,qBAAY,EAAC,sBAAsB,OAAO,CAAC,MAAM,YAAY,CAAC,CAAC;gBAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC3B,IAAA,kBAAS,EAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAA,mBAAU,EAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"setup-skill.js","sourceRoot":"","sources":["../../src/commands/setup-skill.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decencia/ch-cli",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Decencia Communication Channel CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -8,7 +8,8 @@
8
8
  },
9
9
  "files": [
10
10
  "dist/",
11
- "skill/"
11
+ "skill/",
12
+ "agent/"
12
13
  ],
13
14
  "scripts": {
14
15
  "build": "node scripts/sync-skill-version.js && tsc",
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-change-manager
3
3
  description: 기존 소통채널 프로젝트의 기능 추가/수정을 사용자와 대화로 명확화 → 전파 스킬로 연관 PRD/spec/DB/SQA 일괄 갱신 → 변경으로 생긴 새 할일을 GitHub 이슈로 발행하는 오케스트레이터 스킬. (1)대화로 변경 내용 확정 → (2)[게이트] 영향 범위 확인 후 전파 적용 → (3)[게이트] 할일 목록 확인 후 이슈 발행. "이 기능 바꿀래"·"기획 수정"·"이거 추가해줘(기존 프로젝트)" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Bash(gh:*) Read Write
5
- version: 1.4.0
5
+ version: 1.5.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -10,7 +10,7 @@ description: |
10
10
  (3) 명세·DB·SQA가 서로 어긋나 있는 의심이 들 때 (정합성 점검),
11
11
  (4) PRD 갱신 후 하위 spec/db/SQA로 변경분을 흘려보내야 할 때,
12
12
  (5) Sprint 진행 중 도메인 규칙·스키마가 흔들렸을 때 연쇄 갱신이 필요할 때.
13
- version: 1.4.0
13
+ version: 1.5.0
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (2) Task에 description/points/completedAt을 기록할 때,
9
9
  (3) ch db-tables 명령(list/get/create/update/delete)을 사용할 때,
10
10
  (4) Spec ID를 JIRA 스타일(`LOGIN-001`)로 직접 지정할 때 (`ch specs create --id`).
11
- version: 1.4.0
11
+ version: 1.5.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (2) DB 테이블 단위로 컬럼·인덱스·보안규칙을 등록·수정할 때,
9
9
  (3) 새 테이블을 추가하면서 전체 인벤토리도 함께 업데이트할 때,
10
10
  (4) spec.dbTableRefs와 양방향 동기화가 필요한 작업 시.
11
- version: 1.4.0
11
+ version: 1.5.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-github-issue
3
3
  description: gh CLI로 현재 repo에 GitHub 이슈를 작성한다. 이슈 1개=유형 1개(feat/fix/bug), 표준 본문 양식(작업내용·관련 명세 백링크·완료조건)으로 발행. "이슈 만들어줘"/"깃헙 이슈로 등록해줘" 요청 시, 또는 소통채널 기획·명세 작업 후 처리할 일들을 GitHub 이슈로 옮길 때 사용. 멱등성/중복방지·확인단계는 다루지 않음(요청대로 바로 생성).
4
4
  allowed-tools: Bash(gh:*) Bash(git:*) Read Write
5
- version: 1.4.0
5
+ version: 1.5.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-orchestrator
3
3
  description: 소통채널 작업의 단일 진입점(디스패처). 사용자 요청을 듣고 6종(bootstrap·terraformer·change-manager·github-issue·issue-coder·pr-merger) 중 적절한 곳으로 라우팅하고, 필요하면 여러 단계를 순차 오케스트레이션한다. 대화형 스킬은 메인 세션에서 Skill로, 자율 에이전트는 Agent로 위임. "소통채널 작업 해줘"·"이거 어떻게 처리하지?"처럼 무엇부터 할지 모를 때, 또는 신규기획/코드편입/기획변경/이슈/구현/머지 어디로든 시작할 때.
4
4
  allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
5
- version: 1.4.0
5
+ version: 1.5.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -7,7 +7,7 @@ description: |
7
7
  (1) PRD를 작성하거나 갱신할 때,
8
8
  (2) PRD 구성에서 Epic/스토리/태스크 구조를 후속 spec 작성에 매핑할 때,
9
9
  (3) Read-before-Write 규칙으로 PRD content를 안전하게 수정해야 할 때.
10
- version: 1.4.0
10
+ version: 1.5.0
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-project-bootstrap
3
3
  description: 신규 기획을 사용자와 대화하며 step-by-step으로 소통채널 프로젝트로 만드는 오케스트레이터 스킬. (1)대화로 PRD 완성 → 승인 → (2)페이지명세(spec)+DB스키마 → 승인 → (3)SQA 시트. 각 단계 사용자 승인 게이트, 작성 디테일은 기존 2t-decencia-channel-*-v2 스킬을 적극 재사용. "새 기획 만들어줘"·"프로젝트 처음부터 세팅" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Read Write
5
- version: 1.4.0
5
+ version: 1.5.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -10,7 +10,7 @@ description: |
10
10
  (2) UI 메타데이터·비즈니스 로직·DB 참조를 함께 다룰 때,
11
11
  (3) Task를 JIRA 스타일(points·assignee·description·completedAt)로 잘게 쪼갤 때,
12
12
  (4) 신규 spec ID를 `LOGIN-001` 같은 JIRA 스타일로 부여하고 싶을 때 (`ch specs create --id`).
13
- version: 1.4.0
13
+ version: 1.5.0
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -7,7 +7,7 @@ description: |
7
7
  (1) sprint를 구성할 때,
8
8
  (2) Story Point 합산 기반 sprint 용량 산정이 필요할 때,
9
9
  (3) Epic·도메인·의존성을 함께 고려해 spec을 sprint에 배분할 때.
10
- version: 1.4.0
10
+ version: 1.5.0
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -12,7 +12,7 @@ description: |
12
12
  (4) 명세 영역별 완성형 TC 번들(퍼블리싱/프론트/백엔드 디센시아 운영 관점 포함)을 가져다 쓸 때,
13
13
  (5) 새 명세 작업 중 반복 패턴을 발견해 영역별 번들을 보강할 때,
14
14
  (6) Sprint 종료 전 spec별 SQA 통과 여부를 점검할 때.
15
- version: 1.4.0
15
+ version: 1.5.0
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (2) "작업 현황 적어줘", "workStatus 갱신해줘" 요청 시,
9
9
  (3) Sprint 종료 회고나 인수인계용으로 spec별 진행 상태를 정리할 때,
10
10
  (4) `ch specs update --work-status` 또는 웹 "작업 현황" 탭에서 갱신할 때.
11
- version: 1.4.0
11
+ version: 1.5.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->