@decencia/ch-cli 1.35.0 → 1.37.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.
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-issue-coder
3
3
  description: GitHub issue 1개를 입력으로 받아 끝까지 처리하는 코딩 에이전트. 이슈 읽기 → 소통채널 spec/SQA 확인 → git worktree+브랜치에서 구현 → 자체 소프트리뷰 루프 → unittest + SQA → PR 생성 → 소통채널 workStatus·이슈 기록. 다수 병렬 실행 전제, PR까지만(머지·base 브랜치 직접 push·이슈 close는 사람).
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
5
  model: opus
6
- version: 1.35.0
6
+ version: 1.37.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-pr-merger
3
3
  description: issue-coder가 낸 PR을 기본 완전 자율로 base 브랜치(기본 브랜치 또는 sprint 통합 브랜치)에 머지하는 에이전트. 핵심 역량은 다수 병렬 worktree가 만든 충돌을 작업 의도 기반(semantic)으로 해결하는 것. CI green+충돌없음이면 바로 squash 머지, 충돌이면 의도대로 해결 후 테스트로 검증하여 머지. 재SQA·전면 재리뷰는 하지 않음. 다수 PR은 직렬 머지.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash
5
5
  model: opus
6
- version: 1.35.0
6
+ version: 1.37.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-terraformer
3
3
  description: 소통채널을 쓰지 않던 기존 코드베이스를 역분석하여 소통채널 프로젝트로 편입(terraforming)하는 자율 에이전트. 코드가 single source of truth — 코드를 읽어 DB 스키마 → 기능명세(spec) → PRD를 bottom-up으로 역생성한다(SQA 제외). 대량 분석은 서브에이전트 병렬, 코드로 못 메우는 의도는 [추정]으로 채우고 "사람확인 질문 리스트"를 산출물로 남긴다. PR/머지·이슈 발행은 하지 않음.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
5
  model: opus
6
- version: 1.35.0
6
+ version: 1.37.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -8,28 +8,5 @@ export declare function computeScenarioStepProgress(scenario: any): {
8
8
  totalChecks: number;
9
9
  passed: boolean;
10
10
  };
11
- /** [레거시 Run 열람 전용] 시나리오가 판정을 기록하던 TC id 전부 (steps[].tcRefs + closingTcRef). */
12
- export declare function collectScenarioTcRefs(scenario: any): string[];
13
- export interface ScenarioRunStatus {
14
- id: string;
15
- name: string;
16
- /** 매핑 TC 중 Pass 개수 */
17
- passedTcs: number;
18
- /** 매핑 TC 총 개수 */
19
- totalTcs: number;
20
- passed: boolean;
21
- }
22
- /**
23
- * Run 스냅샷의 시나리오별 통과 현황을 계산한다.
24
- *
25
- * 시나리오 자체는 결과를 갖지 않는다 — "판정·기록은 TC 단위"라서, 통과 = 매핑된 TC가
26
- * 전부 Pass(result='yes')다. 매핑 TC가 하나도 없거나 Run 항목에 없는 id를 가리키면
27
- * 미통과로 센다. 통과로 세면 검증 없이 Sprint가 닫힌다.
28
- *
29
- * 판정 규칙은 ch-api `SqaService.getScenarioPassStatus`와 같아야 한다. 여기서 다시
30
- * 계산하는 이유는 `/sqa/runs/:runId/summary`가 시나리오를 싣지 않기 때문이다
31
- * (Sprint 쪽 현황은 서버가 계산한 값을 그대로 쓴다 — `ch sprints progress`).
32
- */
33
- export declare function computeScenarioRunStatus(scenarios: any[], runItems: any[]): ScenarioRunStatus[];
34
11
  export declare function registerSqaCommand(program: Command): void;
35
12
  //# sourceMappingURL=sqa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqa.d.ts","sourceRoot":"","sources":["../../src/commands/sqa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,GAAG,GAAG;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB,CAWA;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,EAAE,CAU7D;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,GAAG,EAAE,EAChB,QAAQ,EAAE,GAAG,EAAE,GACd,iBAAiB,EAAE,CAmBrB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA21BzD"}
1
+ {"version":3,"file":"sqa.d.ts","sourceRoot":"","sources":["../../src/commands/sqa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,GAAG,GAAG;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB,CAWA;AA4ED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyyBzD"}
@@ -37,8 +37,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.computeScenarioStepProgress = computeScenarioStepProgress;
40
- exports.collectScenarioTcRefs = collectScenarioTcRefs;
41
- exports.computeScenarioRunStatus = computeScenarioRunStatus;
42
40
  exports.registerSqaCommand = registerSqaCommand;
43
41
  const fs = __importStar(require("fs"));
44
42
  const path = __importStar(require("path"));
@@ -85,46 +83,70 @@ function computeScenarioStepProgress(scenario) {
85
83
  passed: steps.length > 0 && passedChecks === totalChecks,
86
84
  };
87
85
  }
88
- /** [레거시 Run 열람 전용] 시나리오가 판정을 기록하던 TC id 전부 (steps[].tcRefs + closingTcRef). */
89
- function collectScenarioTcRefs(scenario) {
90
- const steps = Array.isArray(scenario?.steps) ? scenario.steps : [];
91
- const refs = [];
92
- for (const step of steps) {
93
- if (Array.isArray(step?.tcRefs)) {
94
- refs.push(...step.tcRefs.map((id) => String(id)));
86
+ /**
87
+ * 증빙 첨부 현황 한 줄 — 사람용 출력에만 붙인다.
88
+ * 기계 모드는 서버 응답(items[].evidenceFiles, scenarios[].steps[].evidenceFiles)에
89
+ * 파일명·크기·URL이 그대로 실려 오므로 따로 요약하지 않는다.
90
+ */
91
+ function printEvidenceSummary(sheet) {
92
+ const items = Array.isArray(sheet?.items) ? sheet.items : [];
93
+ const scenarios = Array.isArray(sheet?.scenarios) ? sheet.scenarios : [];
94
+ const count = (files) => (Array.isArray(files) ? files.length : 0);
95
+ let files = 0;
96
+ let places = 0;
97
+ const bump = (n) => {
98
+ if (n > 0) {
99
+ files += n;
100
+ places += 1;
95
101
  }
102
+ };
103
+ for (const item of items)
104
+ bump(count(item?.evidenceFiles));
105
+ for (const scenario of scenarios) {
106
+ for (const step of Array.isArray(scenario?.steps) ? scenario.steps : []) {
107
+ bump(count(step?.evidenceFiles));
108
+ }
109
+ bump(count(scenario?.closingEvidenceFiles));
96
110
  }
97
- if (scenario?.closingTcRef)
98
- refs.push(String(scenario.closingTcRef));
99
- return refs;
111
+ if (files === 0)
112
+ return;
113
+ (0, output_1.printInfo)(`증빙 첨부 ${files}건 (${places}곳) — 파일명·URL은 --json으로 확인`);
100
114
  }
101
115
  /**
102
- * Run 스냅샷의 시나리오별 통과 현황을 계산한다.
116
+ * 판정 증빙 첨부 업로드.
103
117
  *
104
- * 시나리오 자체는 결과를 갖지 않는다"판정·기록은 TC 단위"라서, 통과 = 매핑된 TC가
105
- * 전부 Pass(result='yes')다. 매핑 TC가 하나도 없거나 Run 항목에 없는 id를 가리키면
106
- * 미통과로 센다. 통과로 세면 검증 없이 Sprint가 닫힌다.
118
+ * 판정 기록(JSON)과 파일 업로드(multipart)는 요청이 나뉜다 판정을 먼저 남기고 파일을 붙인다.
119
+ * 업로드가 실패해도 판정은 이미 기록돼 있으므로, 실패는 경고로 알리고 종료코드로 드러낸다.
107
120
  *
108
- * 판정 규칙은 ch-api `SqaService.getScenarioPassStatus`와 같아야 한다. 여기서 다시
109
- * 계산하는 이유는 `/sqa/runs/:runId/summary`가 시나리오를 싣지 않기 때문이다
110
- * (Sprint 쪽 현황은 서버가 계산한 값을 그대로 쓴다 — `ch sprints progress`).
121
+ * `key`는 증빙이 붙을 자리다(ch-api 같은 규칙):
122
+ * 항목 = itemId / 시나리오 = `scn-<scenarioId>-step<N>`(N은 0부터) 또는 `scn-<scenarioId>-closing`
111
123
  */
112
- function computeScenarioRunStatus(scenarios, runItems) {
113
- const resultById = new Map((Array.isArray(runItems) ? runItems : []).map((item) => [
114
- String(item?.id),
115
- item?.result,
116
- ]));
117
- return scenarios.map((scenario) => {
118
- const tcIds = collectScenarioTcRefs(scenario);
119
- const passedTcs = tcIds.filter((id) => resultById.get(id) === 'yes').length;
120
- return {
121
- id: String(scenario?.id ?? ''),
122
- name: String(scenario?.name ?? ''),
123
- passedTcs,
124
- totalTcs: tcIds.length,
125
- passed: tcIds.length > 0 && passedTcs === tcIds.length,
126
- };
124
+ async function uploadEvidenceFiles(client, sheetId, key, filePaths) {
125
+ const form = new form_data_1.default();
126
+ form.append('key', key);
127
+ for (const filePath of filePaths) {
128
+ form.append('files', fs.createReadStream(path.resolve(filePath)));
129
+ }
130
+ const { data } = await client.post(`/sqa/${sheetId}/evidence`, form, {
131
+ headers: { ...form.getHeaders() },
127
132
  });
133
+ return data?.files ?? [];
134
+ }
135
+ /**
136
+ * 없는 첨부 경로를 모두 찾아 돌려준다(빈 배열이면 전부 존재).
137
+ * 요청을 보내기 전에 확인해야 판정만 남고 증빙이 빠지는 절반 상태를 막는다.
138
+ */
139
+ function missingAttachPaths(filePaths) {
140
+ return filePaths.filter((f) => !fs.existsSync(path.resolve(f)));
141
+ }
142
+ /** `--attach "a.png, b.png"` → 경로 배열. 빈 항목은 버린다. */
143
+ function parseAttachPaths(attach) {
144
+ if (!attach)
145
+ return [];
146
+ return attach
147
+ .split(',')
148
+ .map((f) => f.trim())
149
+ .filter(Boolean);
128
150
  }
129
151
  function registerSqaCommand(program) {
130
152
  const sqa = program
@@ -173,6 +195,8 @@ function registerSqaCommand(program) {
173
195
  // scenarios[]를 편집해 update-scenario에 다시 넣는다.
174
196
  if (isMachineOutput(globalOpts) || scenarios.length === 0) {
175
197
  (0, output_1.formatOutput)(data, globalOpts);
198
+ if (!isMachineOutput(globalOpts))
199
+ printEvidenceSummary(data);
176
200
  return;
177
201
  }
178
202
  // 사람용: 시나리오는 key-value 표에 원문 JSON으로 쏟지 않고 한 눈에 보이는
@@ -190,6 +214,7 @@ function registerSqaCommand(program) {
190
214
  String(s?.userflowRef ?? ''),
191
215
  ];
192
216
  }));
217
+ printEvidenceSummary(data);
193
218
  }
194
219
  catch (error) {
195
220
  // Error already handled
@@ -598,49 +623,6 @@ function registerSqaCommand(program) {
598
623
  // Error already handled
599
624
  }
600
625
  });
601
- // ══════════════════════════════════════════════════
602
- // Run (수행) commands
603
- // ══════════════════════════════════════════════════
604
- // start-run 은 제거됐다(Run 폐지) — 판정은 check/check-bulk 로 시트에 직접 기록한다.
605
- // ch sqa runs — 수행 목록
606
- sqa
607
- .command('runs')
608
- .description('SQA 수행 목록 조회')
609
- .option('--sort <field>', '정렬 필드')
610
- .option('--desc', '내림차순 정렬')
611
- .option('--page <number>', '페이지 번호', '1')
612
- .action(async (options) => {
613
- const globalOpts = program.opts();
614
- try {
615
- const client = (0, client_1.createClient)({ projectId: globalOpts.project });
616
- const params = {};
617
- if (options.sort)
618
- params.sortBy = options.sort;
619
- if (options.desc)
620
- params.sortOrder = 'desc';
621
- params.page = parseInt(options.page, 10);
622
- const { data } = await client.get('/sqa/runs/list', { params });
623
- (0, output_1.formatOutput)(data, globalOpts);
624
- }
625
- catch (error) {
626
- // Error already handled
627
- }
628
- });
629
- // ch sqa run <runId> — 수행 상세
630
- sqa
631
- .command('run <runId>')
632
- .description('SQA 수행 상세 조회')
633
- .action(async (runId) => {
634
- const globalOpts = program.opts();
635
- try {
636
- const client = (0, client_1.createClient)({ projectId: globalOpts.project });
637
- const { data } = await client.get(`/sqa/runs/${runId}`);
638
- (0, output_1.formatOutput)(data, globalOpts);
639
- }
640
- catch (error) {
641
- // Error already handled
642
- }
643
- });
644
626
  // ch sqa check <sheetId> <itemId> — 시트 항목 판정 기록 (Run 폐지 — 시트가 살아 있는 체크리스트)
645
627
  sqa
646
628
  .command('check <sheetId> <itemId>')
@@ -648,12 +630,22 @@ function registerSqaCommand(program) {
648
630
  // 값 검증은 ch-api DTO(CheckSqaItemDto)가 수행한다. na는 "해당 없음".
649
631
  .requiredOption('--result <result>', '결과 (yes|no|na)')
650
632
  .option('--note <note>', '비고')
651
- .option('--evidence <text>', '증빙 — URL 또는 설명 텍스트 (파일 첨부는 웹에서)')
633
+ .option('--evidence <text>', '증빙 — URL 또는 설명 텍스트')
634
+ .option('--attach <filePaths>', '증빙 첨부파일 경로 (쉼표 구분). 기존 첨부 뒤에 덧붙는다')
652
635
  .action(async (sheetId, itemId, options) => {
653
636
  const globalOpts = program.opts();
654
637
  try {
638
+ const attachPaths = parseAttachPaths(options.attach);
639
+ const missing = missingAttachPaths(attachPaths);
640
+ if (missing.length > 0) {
641
+ (0, output_1.failInput)(`첨부파일을 찾을 수 없습니다: ${missing.join(', ')}`);
642
+ return;
643
+ }
655
644
  if (globalOpts.dryRun) {
656
645
  (0, output_1.printInfo)(`[DRY-RUN] SQA 시트 "${sheetId}" 항목 "${itemId}" 판정 요청`);
646
+ if (attachPaths.length > 0) {
647
+ (0, output_1.printInfo)(`[DRY-RUN] 증빙 ${attachPaths.length}건 첨부 요청`);
648
+ }
657
649
  return;
658
650
  }
659
651
  const client = (0, client_1.createClient)({ projectId: globalOpts.project });
@@ -663,8 +655,15 @@ function registerSqaCommand(program) {
663
655
  if (options.evidence)
664
656
  body.evidence = options.evidence;
665
657
  const { data } = await client.patch(`/sqa/${sheetId}/items/${itemId}/result`, body);
666
- (0, output_1.formatOutput)(data, globalOpts);
658
+ let uploaded = [];
659
+ if (attachPaths.length > 0) {
660
+ uploaded = await uploadEvidenceFiles(client, sheetId, itemId, attachPaths);
661
+ }
662
+ (0, output_1.formatOutput)(uploaded.length > 0 ? { ...data, files: uploaded } : data, globalOpts);
667
663
  (0, output_1.printSuccess)('검토결과가 기록되었습니다.');
664
+ if (uploaded.length > 0) {
665
+ (0, output_1.printInfo)(`증빙 ${uploaded.length}건 첨부됨`);
666
+ }
668
667
  }
669
668
  catch (error) {
670
669
  // Error already handled
@@ -678,7 +677,8 @@ function registerSqaCommand(program) {
678
677
  .option('--closing', '종료 정합 확인(closing)을 판정한다. --step과 배타')
679
678
  .requiredOption('--result <result>', '결과 (yes|no|clear — clear는 판정 해제)')
680
679
  .option('--note <note>', '비고 — 재현 조건·판정 사유')
681
- .option('--evidence <text>', '증빙 — URL 또는 설명 텍스트 (파일 첨부는 웹에서)')
680
+ .option('--evidence <text>', '증빙 — URL 또는 설명 텍스트')
681
+ .option('--attach <filePaths>', '증빙 첨부파일 경로 (쉼표 구분). 기존 첨부 뒤에 덧붙는다')
682
682
  .addHelpText('after', `
683
683
  시나리오 통과 = 스텝 전부 yes + 종료 정합(closing) yes. 실행하면서 스텝을 지날 때마다 기록한다.
684
684
  ch sqa check-scenario <sheetId> SCN-001 --step 1 --result yes
@@ -703,8 +703,17 @@ function registerSqaCommand(program) {
703
703
  (0, output_1.failInput)('--step은 1 이상의 정수여야 합니다.');
704
704
  return;
705
705
  }
706
+ const attachPaths = parseAttachPaths(options.attach);
707
+ const missingAttach = missingAttachPaths(attachPaths);
708
+ if (missingAttach.length > 0) {
709
+ (0, output_1.failInput)(`첨부파일을 찾을 수 없습니다: ${missingAttach.join(', ')}`);
710
+ return;
711
+ }
706
712
  if (globalOpts.dryRun) {
707
713
  (0, output_1.printInfo)(`[DRY-RUN] 시나리오 "${scenarioId}" ${hasClosing ? '종료 정합' : `스텝 ${options.step}`} 판정 요청`);
714
+ if (attachPaths.length > 0) {
715
+ (0, output_1.printInfo)(`[DRY-RUN] 증빙 ${attachPaths.length}건 첨부 요청`);
716
+ }
708
717
  return;
709
718
  }
710
719
  const client = (0, client_1.createClient)({ projectId: globalOpts.project });
@@ -717,8 +726,19 @@ function registerSqaCommand(program) {
717
726
  if (options.evidence)
718
727
  body.evidence = options.evidence;
719
728
  const { data } = await client.patch(`/sqa/${sheetId}/scenarios/${scenarioId}/step-result`, body);
720
- (0, output_1.formatOutput)(data, globalOpts);
729
+ let uploaded = [];
730
+ if (attachPaths.length > 0) {
731
+ // 증빙 자리 좌표는 ch-api와 같은 규칙 — 스텝 번호는 0부터다(CLI 인자는 1부터).
732
+ const key = hasClosing
733
+ ? `scn-${scenarioId}-closing`
734
+ : `scn-${scenarioId}-step${stepIndex}`;
735
+ uploaded = await uploadEvidenceFiles(client, sheetId, key, attachPaths);
736
+ }
737
+ (0, output_1.formatOutput)(uploaded.length > 0 ? { ...data, files: uploaded } : data, globalOpts);
721
738
  (0, output_1.printSuccess)('시나리오 판정이 기록되었습니다.');
739
+ if (uploaded.length > 0) {
740
+ (0, output_1.printInfo)(`증빙 ${uploaded.length}건 첨부됨`);
741
+ }
722
742
  }
723
743
  catch (error) {
724
744
  // Error already handled
@@ -729,7 +749,11 @@ function registerSqaCommand(program) {
729
749
  .command('check-bulk <sheetId>')
730
750
  .description('SQA 시트 여러 항목 검토결과 일괄 기록')
731
751
  // 각 항목 result는 yes|no|na (값 검증은 ch-api DTO가 수행).
732
- .requiredOption('--file <filePath>', '결과 JSON 파일 경로 ({items:[{itemId,result,note?}]})')
752
+ .requiredOption('--file <filePath>', '결과 JSON 파일 경로 ({items:[{itemId,result,note?,attach?:[경로]}]})')
753
+ .addHelpText('after', `
754
+ 항목마다 attach 배열로 증빙을 함께 붙일 수 있다. 판정을 먼저 일괄 기록한 뒤 항목별로 업로드한다.
755
+ { "items": [ { "itemId": "item-1-...", "result": "yes", "attach": ["a.png", "log.txt"] } ] }
756
+ `)
733
757
  .action(async (sheetId, options) => {
734
758
  const globalOpts = program.opts();
735
759
  try {
@@ -751,94 +775,36 @@ function registerSqaCommand(program) {
751
775
  (0, output_1.printError)('파일이 올바른 JSON 형식이 아닙니다.');
752
776
  return;
753
777
  }
778
+ // 첨부는 판정 본문에 섞지 않는다 — ch-api의 일괄 판정 DTO는 판정 필드만 받는다.
779
+ const attachByItem = new Map();
780
+ for (const item of Array.isArray(results?.items) ? results.items : []) {
781
+ const paths = Array.isArray(item?.attach)
782
+ ? item.attach.filter((p) => typeof p === 'string')
783
+ : [];
784
+ if (paths.length > 0)
785
+ attachByItem.set(item.itemId, paths);
786
+ delete item.attach;
787
+ }
788
+ // 없는 파일은 판정을 보내기 전에 걸러낸다 — 절반만 붙은 상태로 끝나지 않게.
789
+ for (const [itemId, paths] of attachByItem) {
790
+ const missing = missingAttachPaths(paths);
791
+ if (missing.length > 0) {
792
+ (0, output_1.failInput)(`첨부파일을 찾을 수 없습니다 (${itemId}): ${missing.join(', ')}`);
793
+ return;
794
+ }
795
+ }
754
796
  const client = (0, client_1.createClient)({ projectId: globalOpts.project });
755
797
  const { data } = await client.post(`/sqa/${sheetId}/items/result-bulk`, results);
756
- (0, output_1.formatOutput)(data, globalOpts);
757
- (0, output_1.printSuccess)('일괄 판정이 완료되었습니다.');
758
- }
759
- catch (error) {
760
- // Error already handled
761
- }
762
- });
763
- // complete 는 제거됐다(Run 폐지) — 완료 개념 없이 시트의 판정 현황이 곧 상태다.
764
- // ch sqa summary <runId> — 수행 집계 (+ 시나리오 통과 현황)
765
- sqa
766
- .command('summary <runId>')
767
- .description('SQA 수행 Pass/Fail 집계 + 시나리오 통과 현황 조회')
768
- .action(async (runId) => {
769
- const globalOpts = program.opts();
770
- try {
771
- const client = (0, client_1.createClient)({ projectId: globalOpts.project });
772
- // 집계 엔드포인트는 TC만 센다. 시나리오 통과 현황은 Run 상세의 스냅샷
773
- // (run.scenarios)과 항목 결과로 여기서 계산한다. 두 요청을 병렬로 묶지
774
- // 않는 것은 없는 runId일 때 같은 404를 두 번 찍지 않으려는 것이다.
775
- const { data: summary } = await client.get(`/sqa/runs/${runId}/summary`);
776
- const { data: run } = await client.get(`/sqa/runs/${runId}`);
777
- const scenarios = Array.isArray(run?.scenarios)
778
- ? run.scenarios
779
- : [];
780
- // 시나리오가 없는 Run의 출력은 종전 그대로다 — 안 쓰는 프로젝트에 없던 키를
781
- // 들이밀지 않는다.
782
- if (scenarios.length === 0) {
783
- (0, output_1.formatOutput)(summary, globalOpts);
784
- return;
785
- }
786
- const statuses = computeScenarioRunStatus(scenarios, run?.items ?? []);
787
- const passed = statuses.filter((s) => s.passed).length;
788
- if (isMachineOutput(globalOpts)) {
789
- (0, output_1.formatOutput)({
790
- ...summary,
791
- scenarios: { passed, total: statuses.length, items: statuses },
792
- }, globalOpts);
793
- return;
798
+ let uploadedCount = 0;
799
+ for (const [itemId, paths] of attachByItem) {
800
+ const files = await uploadEvidenceFiles(client, sheetId, itemId, paths);
801
+ uploadedCount += files.length;
794
802
  }
795
- (0, output_1.formatOutput)(summary, globalOpts);
796
- (0, output_1.printInfo)(`시나리오 통과 ${passed}/${statuses.length} — 시나리오 통과 = 매핑 TC 전부 Pass (Sprint 완료조건)`);
797
- (0, output_1.printTable)(['id', 'name', 'TC(Pass/전체)', '통과'], statuses.map((s) => [
798
- s.id,
799
- s.name,
800
- `${s.passedTcs}/${s.totalTcs}`,
801
- s.passed ? 'Y' : 'N',
802
- ]));
803
- }
804
- catch (error) {
805
- // Error already handled
806
- }
807
- });
808
- // ch sqa export <runId> — 수행 엑셀 Export
809
- sqa
810
- .command('export <runId>')
811
- .description('SQA 수행 엑셀 Export')
812
- .requiredOption('--output <filePath>', '출력 파일 경로')
813
- .action(async (runId, options) => {
814
- const globalOpts = program.opts();
815
- try {
816
- const client = (0, client_1.createClient)({ projectId: globalOpts.project });
817
- const response = await client.get(`/sqa/runs/${runId}/export`, {
818
- responseType: 'arraybuffer',
819
- });
820
- const outputPath = path.resolve(options.output);
821
- fs.writeFileSync(outputPath, Buffer.from(response.data));
822
- (0, output_1.printSuccess)(`엑셀 파일이 저장되었습니다: ${outputPath}`);
823
- }
824
- catch (error) {
825
- // Error already handled
826
- }
827
- });
828
- // ch sqa delete-run <runId> — 수행 삭제
829
- sqa
830
- .command('delete-run <runId>')
831
- .description('SQA 수행 삭제')
832
- .action(async (runId) => {
833
- const globalOpts = program.opts();
834
- try {
835
- if (globalOpts.dryRun) {
836
- (0, output_1.printInfo)(`[DRY-RUN] SQA Run "${runId}" 삭제 요청`);
837
- return;
803
+ (0, output_1.formatOutput)(uploadedCount > 0 ? { ...data, attachedFiles: uploadedCount } : data, globalOpts);
804
+ (0, output_1.printSuccess)('일괄 판정이 완료되었습니다.');
805
+ if (uploadedCount > 0) {
806
+ (0, output_1.printInfo)(`증빙 ${uploadedCount}건 첨부됨 (항목 ${attachByItem.size}개)`);
838
807
  }
839
- const client = (0, client_1.createClient)({ projectId: globalOpts.project });
840
- await client.delete(`/sqa/runs/${runId}`);
841
- (0, output_1.printSuccess)('SQA 수행이 삭제되었습니다.');
842
808
  }
843
809
  catch (error) {
844
810
  // Error already handled
@@ -1 +1 @@
1
- {"version":3,"file":"sqa.js","sourceRoot":"","sources":["../../src/commands/sqa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqa.js","sourceRoot":"","sources":["../../src/commands/sqa.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.35.0",
3
+ "version": "1.37.0",
4
4
  "description": "Decencia Communication Channel CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-change-manager
3
3
  description: 기존 소통채널 프로젝트의 기능 추가/수정을 사용자와 대화로 명확화 → 전파 스킬로 연관 PRD/spec/유저플로우/정책/IA/화면/DB/SQA 일괄 갱신 → 변경으로 생긴 새 할일을 GitHub 이슈로 발행하는 오케스트레이터 스킬. (1)대화로 변경 내용 확정 → (2)[게이트] 영향 범위 확인 후 전파 적용 → (3)[게이트] 할일 목록 확인 후 이슈 발행. "이 기능 바꿀래"·"기획 수정"·"이거 추가해줘(기존 프로젝트)" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Bash(gh:*) Read Write
5
- version: 1.35.0
5
+ version: 1.37.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -11,7 +11,7 @@ description: |
11
11
  (3) 명세·DB·SQA가 서로 어긋나 있는 의심이 들 때 (정합성 점검),
12
12
  (4) PRD 갱신 후 하위 spec/db/SQA로 변경분을 흘려보내야 할 때,
13
13
  (5) Sprint 진행 중 도메인 규칙·스키마가 흔들렸을 때 연쇄 갱신이 필요할 때.
14
- version: 1.35.0
14
+ version: 1.37.0
15
15
  ---
16
16
 
17
17
  <!-- ch-version-gate -->
@@ -10,7 +10,7 @@ description: |
10
10
  (4) ch screens 명령(list/get/create/update/delete/migrate)으로 화면을 다루거나 레거시 프로젝트를 화면 모드로 이관할 때,
11
11
  (5) spec의 화면 연결을 CLI로 걸거나 풀 때 (`ch specs screen-refs`),
12
12
  (6) Spec ID를 JIRA 스타일(`LOGIN-001`)로 직접 지정할 때 (`ch specs create --id`).
13
- version: 1.35.0
13
+ version: 1.37.0
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (2) DB 테이블 단위로 컬럼·인덱스·보안규칙을 등록·수정할 때,
9
9
  (3) 새 테이블을 추가하면서 전체 인벤토리도 함께 업데이트할 때,
10
10
  (4) spec.dbTableRefs와 양방향 동기화가 필요한 작업 시.
11
- version: 1.35.0
11
+ version: 1.37.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.35.0
5
+ version: 1.37.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-ia-v2
3
3
  description: |
4
4
  [2t][v2] 소통채널 화면 IA(정보구조) 설계. 화면들의 도달 구조를 트리로 세운다 — 관문이 부모다.
5
5
  Use when: (1) 화면설계서 전에 화면 배치를 정할 때, (2) 기존 IA 재배치를 검토할 때.
6
- version: 1.35.0
6
+ version: 1.37.0
7
7
  ---
8
8
 
9
9
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-orchestrator
3
3
  description: 소통채널 작업의 단일 진입점(디스패처). 사용자 요청을 듣고 7종(bootstrap·terraformer·change-manager·github-issue·issue-coder·pr-merger·sprint-runner) 중 적절한 곳으로 라우팅하고, 필요하면 여러 단계를 순차 오케스트레이션한다. 대화형 스킬은 메인 세션에서 Skill로, 자율 에이전트는 Agent로 위임. "소통채널 작업 해줘"·"이거 어떻게 처리하지?"처럼 무엇부터 할지 모를 때, 또는 신규기획/코드편입/기획변경/이슈/구현/머지/스프린트실행 어디로든 시작할 때.
4
4
  allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
5
- version: 1.35.0
5
+ version: 1.37.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (1) 정책정의서를 새로 쓰거나 수정할 때,
9
9
  (2) 유저플로우·기능명세를 검토하다 "이건 정해진 게 없다"는 질문이 나왔을 때,
10
10
  (3) 알림 발송 매트릭스·크레딧 지급 기준·타임아웃 처리 같은 횡단 정책을 정리할 때.
11
- version: 1.35.0
11
+ version: 1.37.0
12
12
  ---
13
13
 
14
14
  <!-- 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.35.0
10
+ version: 1.37.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) 내용 확정 → (3)spec 업로드 → (4)유저플로우 → (5)정책정의서 → (6)DB 스키마·spec 연결 → (7)화면설계서(화면 생성·연결) → (8)검증기준서(SQA). 각 단계 사용자 승인 게이트, 작성 디테일은 기존 2t-decencia-channel-*-v2 스킬을 적극 재사용. "새 기획 만들어줘"·"프로젝트 처음부터 세팅" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Read Write
5
- version: 1.35.0
5
+ version: 1.37.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -9,7 +9,7 @@ description: |
9
9
  (1) 화면(screens) 문서를 작성·수정할 때,
10
10
  (2) 화면의 표시 데이터·액션·입력 검증·예외상태를 기재할 때,
11
11
  (3) 웹 "화면" 탭의 화면 구조 뷰·화면 상세에 올릴 내용을 쓸 때.
12
- version: 1.35.0
12
+ version: 1.37.0
13
13
  ---
14
14
 
15
15
  <!-- ch-version-gate -->
@@ -12,7 +12,7 @@ description: |
12
12
  (3) 사용자 스토리·사전 조건·로직 플로우·비즈니스 규칙을 작성할 때,
13
13
  (4) Story 규모를 Story Point(`--points`)로 매길 때,
14
14
  (5) 신규 spec ID를 `AUTH-001` 같은 JIRA 스타일로 부여할 때 (`ch specs create --id`).
15
- version: 1.35.0
15
+ version: 1.37.0
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -7,7 +7,7 @@ description: |
7
7
  (1) sprint를 구성할 때,
8
8
  (2) Σ spec.points 기반 sprint 용량 산정이 필요할 때,
9
9
  (3) Epic·도메인·의존성을 함께 고려해 spec을 sprint에 배분할 때.
10
- version: 1.35.0
10
+ version: 1.37.0
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-sprint-runner
3
3
  description: 특정 Sprint를 끝까지 실행(run)하는 오케스트레이터 스킬. Sprint의 spec을 시드로 이슈 목록을 분해·발행(github-issue)하고, GitHub milestone에 묶인 이슈를 상태별로 분류해 issue-coder(병렬)·pr-merger(직렬)로 전진시킨 뒤, 사람확인이 필요한 곳에서 멈춘다. 사람이 확인·체크 후 재호출하면 멱등하게 이어간다(반복 루프). "스프린트 돌려줘"·"sprint N 실행"·"이 스프린트 개발 진행해줘" 류 요청 시.
4
4
  allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
5
- version: 1.35.0
5
+ version: 1.37.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -12,7 +12,7 @@ description: |
12
12
  (4) 보안/성능/접근성/호환성 비기능 TC를 시트에 채워야 할 때,
13
13
  (5) 명세 영역별 완성형 TC 번들(퍼블리싱/프론트/백엔드 디센시아 운영 관점 포함)을 가져다 쓸 때,
14
14
  (6) Sprint 종료 전 spec별 TC 통과·시나리오 통과 여부를 점검할 때.
15
- version: 1.35.0
15
+ version: 1.37.0
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -126,7 +126,13 @@ ch sqa reorder-items <sheetId> --file order.json # ["id1","id2",...] 또는 {
126
126
  - `<itemId>`는 `ch sqa get <sheetId> --json`의 `items[].id`. 항상 최신값을 먼저 확보(§0).
127
127
  - **`dbTableRefs`(SSOT 링크)**: 항목이 검증하는 DB 테이블을 `tableId`로 가리킨다(쉼표 구분). 서버가 실존 검증(없는 tableId → 400). 컬럼 정의·스키마는 절대 항목 문구에 적지 말 것 — db-tables가 SSOT([[2t-decencia-channel-db-schema-v2]] §SSOT 원칙). `update-item --db-tables`는 통째 교체. 이 직접 링크로 "테이블 변경 → 영향 SQA 항목"을 1-hop으로 추적한다(spec.relatedSpec 우회 불필요).
128
128
  - **판정은 시트 항목에 직접 기록한다(Run 폐지)**: `ch sqa check <sheetId> <itemId> --result yes|no|na --note ... --evidence ...` / `check-bulk <sheetId> --file`. (`na` = 해당 없음, 값 검증은 ch-api DTO)
129
- - **판정에는 비고·증빙을 남길 수 있다** — 비고(`--note`)·증빙 텍스트/URL(`--evidence`) CLI로, **증빙 파일(스크린샷 등)은 웹에서**(시트 항목 클릭 사이드 패널, 시나리오 스텝의 "비고·증빙"). 시나리오 스텝도 동일: `ch sqa check-scenario ... --note ... --evidence ...`.
129
+ - **판정에는 비고·증빙을 남길 수 있다** — 비고(`--note`)·증빙 텍스트/URL(`--evidence`), 그리고 **증빙 파일은 `--attach`로 CLI에서 바로 붙인다**(쉼표 구분, 여러 가능). 웹에서도 같은 자리에 올릴 있다(시트 항목 클릭 사이드 패널).
130
+ - 항목: `ch sqa check <sheetId> <itemId> --result yes --note "…" --attach "a.png,log.txt"`
131
+ - 시나리오: `ch sqa check-scenario <sheetId> <scenarioId> --step 3 --result yes --attach "step3.png"`
132
+ - 일괄: `check-bulk`의 JSON 항목에 `"attach": ["a.png"]`를 넣는다.
133
+ - 스크린샷뿐 아니라 **실행 로그·판정 매트릭스(.txt/.csv)도 받는다** — 그쪽이 더 정확한 증빙일 때가 많다.
134
+ - 첨부는 **덧붙는다**(기존 것을 지우지 않는다). 재판정으로 결과가 뒤집혀도 이전 증빙이 남아 정정 이력이 읽힌다.
135
+ - 붙은 파일은 `ch sqa get --json`의 `items[].evidenceFiles`(시나리오는 `steps[].evidenceFiles`)에 파일명·크기·**열리는 URL**로 실려 온다.
130
136
  - 항목 정의를 고쳤으면 그 항목만 다시 판정하면 된다 — 스냅샷이 없으니 실행이 낡을 일이 없다. 기획 변경 전파 시 영향받은 항목의 결과를 지워 재검증 대상으로 표시한다.
131
137
 
132
138
  ## 4. SQA 시트 구성 표준 — 무엇을 넣어야 하는가
@@ -496,7 +502,7 @@ ch specs update <specId> --status completed --no-version
496
502
  - **TC를 시나리오 판정 기록처로 쓰지 말 것** — 시나리오 실행 중 개별 결함을 발견하면 그 TC에도 no를 남기는 건 정당하지만, 스텝 통과를 TC에 기록하는 건 옛 방식이다. 스텝 판정은 스텝에.
497
503
  - **TC를 발명하지 말 것** — spec에서 도출한다(§2, 플로우 있으면 분기당·없으면 규칙당). 번들 전개·역할 전수 조합으로 TC를 불리는 것이 가장 흔한 실수다. 반대로 §4.2 핵심 9개 미등록도 누락이다.
498
504
  - §4.3 번들을 **별도 시트 묶음으로 등록**하지 말 것 — 각 명세의 A축 항목으로 풀어 써야 한다. 추상 문구 그대로 박아넣지 말 것.
499
- - 판정(`check`/`check-bulk`)은 시트 항목에 직접 남는다. 과거 수행 기록(Run)은 열람 전용 레거시다.
505
+ - 판정(`check`/`check-bulk`)은 시트 항목에 직접 남는다. 시트가 살아 있는 체크리스트다.
500
506
  - `update-item`/`delete-item`/`reorder-items`는 `itemId` 키 기반 → 반드시 `ch sqa get --json`으로 최신 id 확보 후 실행(stale id 주의).
501
507
  - `reorder-items`의 `--order`는 현재 모든 항목 id를 빠짐없이·중복없이 나열해야 함. 일부만 주면 400.
502
508
  - `ch sqa create`는 서버 DTO상 `performDate`가 필수 — CLI에서 `--date` 생략하면 오늘 날짜로 자동 채워지지만, 명시적 날짜가 필요하면 `--date YYYY-MM-DD` 지정.
@@ -8,7 +8,7 @@ description: |
8
8
  (1) 유저플로우(사용자 여정 분기도)를 새로 그리거나 수정할 때,
9
9
  (2) PRD·Epic-Story 목록에서 플로우로 그릴 대상을 고를 때,
10
10
  (3) 웹 "유저플로우" 탭에 올릴 Mermaid 코드를 작성할 때.
11
- version: 1.35.0
11
+ version: 1.37.0
12
12
  ---
13
13
 
14
14
  <!-- 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.35.0
11
+ version: 1.37.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->