@decencia/ch-cli 1.33.5 → 1.34.1

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.33.5
6
+ version: 1.34.1
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.33.5
6
+ version: 1.34.1
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.33.5
6
+ version: 1.34.1
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -1,5 +1,14 @@
1
1
  import { Command } from 'commander';
2
- /** 시나리오가 판정을 기록하는 TC id 전부 (steps[].tcRefs + closingTcRef). */
2
+ /**
3
+ * 시나리오 통과 현황 — 자기 스텝·종료 판정에서 계산한다(ch-api isScenarioPassed와 같은 규칙).
4
+ * 통과 = 스텝 전부 yes + closingResult yes. 스텝 0개면 미통과.
5
+ */
6
+ export declare function computeScenarioStepProgress(scenario: any): {
7
+ passedChecks: number;
8
+ totalChecks: number;
9
+ passed: boolean;
10
+ };
11
+ /** [레거시 Run 열람 전용] 시나리오가 판정을 기록하던 TC id 전부 (steps[].tcRefs + closingTcRef). */
3
12
  export declare function collectScenarioTcRefs(scenario: any): string[];
4
13
  export interface ScenarioRunStatus {
5
14
  id: string;
@@ -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,+DAA+D;AAC/D,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,CAyxBzD"}
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,CAq1BzD"}
@@ -36,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.computeScenarioStepProgress = computeScenarioStepProgress;
39
40
  exports.collectScenarioTcRefs = collectScenarioTcRefs;
40
41
  exports.computeScenarioRunStatus = computeScenarioRunStatus;
41
42
  exports.registerSqaCommand = registerSqaCommand;
@@ -69,7 +70,22 @@ function readScenarioFile(filePath) {
69
70
  }
70
71
  return parsed;
71
72
  }
72
- /** 시나리오가 판정을 기록하는 TC id 전부 (steps[].tcRefs + closingTcRef). */
73
+ /**
74
+ * 시나리오 통과 현황 — 자기 스텝·종료 판정에서 계산한다(ch-api isScenarioPassed와 같은 규칙).
75
+ * 통과 = 스텝 전부 yes + closingResult yes. 스텝 0개면 미통과.
76
+ */
77
+ function computeScenarioStepProgress(scenario) {
78
+ const steps = Array.isArray(scenario?.steps) ? scenario.steps : [];
79
+ const totalChecks = steps.length + 1; // + 종료 정합 확인
80
+ const passedChecks = steps.filter((s) => s?.result === 'yes').length +
81
+ (scenario?.closingResult === 'yes' ? 1 : 0);
82
+ return {
83
+ passedChecks,
84
+ totalChecks,
85
+ passed: steps.length > 0 && passedChecks === totalChecks,
86
+ };
87
+ }
88
+ /** [레거시 Run 열람 전용] 시나리오가 판정을 기록하던 TC id 전부 (steps[].tcRefs + closingTcRef). */
73
89
  function collectScenarioTcRefs(scenario) {
74
90
  const steps = Array.isArray(scenario?.steps) ? scenario.steps : [];
75
91
  const refs = [];
@@ -164,13 +180,16 @@ function registerSqaCommand(program) {
164
180
  const { scenarios: _scenarios, ...rest } = data;
165
181
  (0, output_1.formatOutput)(rest, globalOpts);
166
182
  (0, output_1.printInfo)(`검증 시나리오 ${scenarios.length}건 (Sprint 완료조건) — 전제·스텝·종료 본문은 --json으로 확인`);
167
- (0, output_1.printTable)(['id', 'name', 'steps', 'TCs', 'userflow'], scenarios.map((s) => [
168
- String(s?.id ?? ''),
169
- String(s?.name ?? ''),
170
- String(Array.isArray(s?.steps) ? s.steps.length : 0),
171
- String(collectScenarioTcRefs(s).length),
172
- String(s?.userflowRef ?? ''),
173
- ]));
183
+ (0, output_1.printTable)(['id', 'name', 'steps', '판정', 'userflow'], scenarios.map((s) => {
184
+ const p = computeScenarioStepProgress(s);
185
+ return [
186
+ String(s?.id ?? ''),
187
+ String(s?.name ?? ''),
188
+ String(Array.isArray(s?.steps) ? s.steps.length : 0),
189
+ p.passed ? '통과' : `${p.passedChecks}/${p.totalChecks}`,
190
+ String(s?.userflowRef ?? ''),
191
+ ];
192
+ }));
174
193
  }
175
194
  catch (error) {
176
195
  // Error already handled
@@ -462,16 +481,15 @@ function registerSqaCommand(program) {
462
481
  "userflowRef": "<userflowId>", // 선택
463
482
  "precondition": "일반 회원, 포인트 5,000, 재고 3",
464
483
  "steps": [
465
- { "action": "...", "checkpoint": "...", "tcRefs": ["item-..."] }
484
+ { "action": "...", "checkpoint": "..." }
466
485
  ],
467
- "closing": "ORDERS canceled, 포인트 5,000, 재고 3",
468
- "closingTcRef": "item-..." // 선택
486
+ "closing": "ORDERS canceled, 포인트 5,000, 재고 3"
469
487
  }
470
488
 
471
489
  BOM·CRLF는 자동 정제된다 (PowerShell Out-File 호환).
472
- tcRefs·closingTcRef**같은 시트의 항목 id**여야 하고 userflowRef는 실존
473
- 유저플로우여야 한다 아니면 서버가 400으로 거절한다(끊긴 링크 방지).
474
- 항목 id'ch sqa get <sheetId> --json'의 items[].id에서 확인한다.
490
+ userflowRef실존 유저플로우여야 한다 아니면 서버가 400으로 거절한다.
491
+ 판정은 TC 매핑이 아니라 스텝 자체에 기록한다 'ch sqa check-scenario' 참고.
492
+ (구 양식의 tcRefs·closingTcRef보내도 무시된다.)
475
493
  `;
476
494
  // ch sqa add-scenario <sheetId> — 시트에 검증 시나리오 추가
477
495
  sqa
@@ -649,6 +667,54 @@ function registerSqaCommand(program) {
649
667
  // Error already handled
650
668
  }
651
669
  });
670
+ // ch sqa check-scenario <sheetId> <scenarioId> — 시나리오 스텝·종료 판정
671
+ sqa
672
+ .command('check-scenario <sheetId> <scenarioId>')
673
+ .description('SQA 시나리오 스텝·종료 판정 기록 (판정은 스텝 자체에 산다)')
674
+ .option('--step <n>', '판정할 스텝 번호 (1부터). --closing과 배타')
675
+ .option('--closing', '종료 정합 확인(closing)을 판정한다. --step과 배타')
676
+ .requiredOption('--result <result>', '결과 (yes|no|clear — clear는 판정 해제)')
677
+ .addHelpText('after', `
678
+ 시나리오 통과 = 스텝 전부 yes + 종료 정합(closing) yes. 실행하면서 스텝을 지날 때마다 기록한다.
679
+ ch sqa check-scenario <sheetId> SCN-001 --step 1 --result yes
680
+ ch sqa check-scenario <sheetId> SCN-001 --closing --result yes
681
+ ch sqa check-scenario <sheetId> SCN-001 --step 2 --result clear # 판정 해제
682
+ `)
683
+ .action(async (sheetId, scenarioId, options) => {
684
+ const globalOpts = program.opts();
685
+ try {
686
+ const hasStep = options.step !== undefined;
687
+ const hasClosing = options.closing === true;
688
+ if (hasStep === hasClosing) {
689
+ (0, output_1.failInput)('--step <n> 또는 --closing 중 정확히 하나를 지정하세요.');
690
+ return;
691
+ }
692
+ if (!['yes', 'no', 'clear'].includes(options.result)) {
693
+ (0, output_1.failInput)('--result는 yes, no 또는 clear여야 합니다.');
694
+ return;
695
+ }
696
+ const stepIndex = hasStep ? Number(options.step) - 1 : undefined;
697
+ if (hasStep && (!Number.isInteger(stepIndex) || stepIndex < 0)) {
698
+ (0, output_1.failInput)('--step은 1 이상의 정수여야 합니다.');
699
+ return;
700
+ }
701
+ if (globalOpts.dryRun) {
702
+ (0, output_1.printInfo)(`[DRY-RUN] 시나리오 "${scenarioId}" ${hasClosing ? '종료 정합' : `스텝 ${options.step}`} 판정 요청`);
703
+ return;
704
+ }
705
+ const client = (0, client_1.createClient)({ projectId: globalOpts.project });
706
+ const body = {
707
+ result: options.result === 'clear' ? null : options.result,
708
+ ...(hasClosing ? { closing: true } : { stepIndex }),
709
+ };
710
+ const { data } = await client.patch(`/sqa/${sheetId}/scenarios/${scenarioId}/step-result`, body);
711
+ (0, output_1.formatOutput)(data, globalOpts);
712
+ (0, output_1.printSuccess)('시나리오 판정이 기록되었습니다.');
713
+ }
714
+ catch (error) {
715
+ // Error already handled
716
+ }
717
+ });
652
718
  // ch sqa check-bulk <sheetId> — 시트 항목 일괄 판정
653
719
  sqa
654
720
  .command('check-bulk <sheetId>')
@@ -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.33.5",
3
+ "version": "1.34.1",
4
4
  "description": "Decencia Communication Channel CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: 2t-decencia-channel-change-manager
3
- description: 기존 소통채널 프로젝트의 기능 추가/수정을 사용자와 대화로 명확화 → 전파 스킬로 연관 PRD/spec/DB/SQA 일괄 갱신 → 변경으로 생긴 새 할일을 GitHub 이슈로 발행하는 오케스트레이터 스킬. (1)대화로 변경 내용 확정 → (2)[게이트] 영향 범위 확인 후 전파 적용 → (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.33.5
5
+ version: 1.34.1
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -83,7 +83,7 @@ ch check
83
83
 
84
84
  ## 2. 영향 전파 (게이트 ①)
85
85
  *(기획 변경으로 분류된 경우만 — 버그는 §1.5에서 §3으로 건너뜀)*
86
- - `2t-decencia-channel-change-propagation-v2`로 **영향 분석**: 이 변경이 닿는 PRD·spec(ui·logic·dbTableRefs·points)·**screens(route·목적·접근권한·relatedSpecIds)**·db-schema/db-tables·SQA·workStatus를 빠짐없이 식별.
86
+ - `2t-decencia-channel-change-propagation-v2`로 **영향 분석**: 이 변경이 닿는 PRD·spec(story·preconditions·logic·dbTableRefs·points)·**유저플로우·정책정의서·IA**·**screens(표시 데이터·액션·검증 규칙·접근권한·relatedSpecIds)**·db-schema/db-tables·SQA(TC·시나리오)·workStatus를 빠짐없이 식별.
87
87
  - → **[게이트] 영향 범위를 사용자에게 제시하고 확인받는다** (어떤 문서가 어떻게 바뀌는지 요약). **붙는 화면 / 새로 생기는 화면**도 요약에 포함한다. 승인 전에는 문서를 건드리지 않는다.
88
88
  - 승인되면 전파 스킬 절차대로 **연관 문서를 순차 갱신**. `spec.dbTableRefs` ↔ `dbTable.relatedSpecIds` 양방향 동기화 유지.
89
89
  - 전파로 **화면이 바뀌었으면** 디자이너에게 안내한다: 바뀐 화면은 **핸드오프를 다시 받아** Claude Design에 재투입한다(핸드오프는 매번 최신 화면에서 새로 생성된다). 웹 [통합 핸드오프 zip 받기] / `ch handoff export --dir`, 화면 하나면 화면 상세 [이 화면 프롬프트 복사] / `ch handoff screen <화면id>`. 절차는 `docs/design-handoff-sop.md`.
@@ -2,15 +2,16 @@
2
2
  name: 2t-decencia-channel-change-propagation-v2
3
3
  description: |
4
4
  [2t][v2] 소통채널 변경 전파(Change Propagation) 표준 가이드.
5
- 한 기능을 변경할 때 PRD/spec(ui·logic·dbTableRefs·points)/db-schema/db-tables/SQA/workStatus까지
6
- 연관된 모든 곳을 빠짐없이 갱신·동기화하기 위한 영향 분석 + 순차 적용 워크플로우.
5
+ 한 기능을 변경할 때 PRD/spec/유저플로우/정책정의서/IA/화면설계서(screens)/db-schema/db-tables/
6
+ SQA(TC·시나리오)/workStatus까지 연관된 모든 곳을 빠짐없이 갱신·동기화하기 위한
7
+ 영향 분석 + 순차 적용 워크플로우.
7
8
  Use when:
8
9
  (1) 기존 기능을 수정·확장하려고 할 때 (DB 컬럼 추가, 화면 요구사항 변경, 권한 정책 변경 등),
9
10
  (2) "이 기능 바꿀 건데 다른 곳에 영향 가는 거 다 찾아줘" 류 요청 시,
10
11
  (3) 명세·DB·SQA가 서로 어긋나 있는 의심이 들 때 (정합성 점검),
11
12
  (4) PRD 갱신 후 하위 spec/db/SQA로 변경분을 흘려보내야 할 때,
12
13
  (5) Sprint 진행 중 도메인 규칙·스키마가 흔들렸을 때 연쇄 갱신이 필요할 때.
13
- version: 1.33.5
14
+ version: 1.34.1
14
15
  ---
15
16
 
16
17
  <!-- ch-version-gate -->
@@ -28,9 +29,9 @@ ch check
28
29
  구버전 스킬·CLI 사용을 막기 위한 게이트다. 건너뛰지 말 것.
29
30
 
30
31
 
31
- # 변경 전파(Change Propagation) — PRD spec ↔ DB ↔ SQA 동기화
32
+ # 변경 전파(Change Propagation) — 기획 문서 전체 동기화
32
33
 
33
- 소통채널은 PRD / spec(ui·logic·dbTableRefs·points) / db-schema(전체) / db-tables(per-table) / SQA(시트·항목) / workStatus가 서로를 참조한다. 한 곳을 바꾸면 다른 곳도 같이 흔들린다. 이 스킬은 **변경의 진앙(epicenter)을 식별 → 영향 범위를 매트릭스로 산출 → 순차로 안전하게 적용 → 정합성 검증**까지의 표준 절차다.
34
+ 소통채널은 PRD / spec(Story) / 유저플로우 / 정책정의서 / IA / 화면설계서(screens) / db-schema(전체) / db-tables(per-table) / SQA(TC·시나리오) / workStatus가 서로를 참조한다. 한 곳을 바꾸면 다른 곳도 같이 흔들린다. 이 스킬은 **변경의 진앙(epicenter)을 식별 → 영향 범위를 매트릭스로 산출 → 순차로 안전하게 적용 → 정합성 검증**까지의 표준 절차다.
34
35
 
35
36
  ---
36
37
 
@@ -39,7 +40,7 @@ ch check
39
40
  1. **Read-before-Write** — 모든 리소스는 현재 상태를 먼저 가져온 뒤 머지 → 쓰기. 직접 덮어쓰기 금지.
40
41
  2. **진앙 우선 적용 금지** — 진앙(예: DB 컬럼 추가)을 먼저 적용한 뒤 의존 리소스를 고치는 게 자연스러워 보이지만, **계획부터 먼저 합의**한다. 진앙 + 영향 리소스 전체를 한 PR/한 세션 안에 마무리해야 어긋난 상태로 멈추지 않는다.
41
42
  3. **사용자 컨펌 게이트** — §3에서 작성한 영향 매트릭스를 사용자에게 보여주고 동의받은 뒤에야 적용 시작.
42
- 4. **하나라도 실패하면 롤백 가능 상태 유지** — RunSQA 결과가 박힌 후라면 시트 항목 변경은 진행 Run에 반영되지 않음(2t-decencia-channel-sqa-v2 §3.5 참조). 변경 도중 멈출 거면 어디서 멈췄는지 workStatus에 [BLOCK] 엔트리로 기록.
43
+ 4. **하나라도 실패하면 롤백 가능 상태 유지** — 변경 도중 멈출 거면 어디서 멈췄는지 workStatus[BLOCK] 엔트리로 기록. TC·시나리오 스텝의 정의를 고쳤으면 판정을 지워 재검증 대상으로 표시한다([[2t-decencia-channel-sqa-v2]] §3.5).
43
44
  5. **SSOT 수렴(convergent) 원칙** — 전파는 단순히 변경을 흘려보내는 데 그치지 않고, **지나가는 길에 발견한 SSOT 위반을 함께 교정**한다. 스키마 정의(컬럼 type/nullable/index/보안규칙/enum)가 PRD나 spec에 새어 들어가 있으면, 그 자리에서 db-tables로 이관하고 링크/이름 참조로 치환한다. DB 스키마의 SSOT는 `db-schema`/`db-tables`뿐 — [[2t-decencia-channel-db-schema-v2]] §SSOT 원칙. 전파를 거칠수록 정합성이 좋아지는 방향으로 수렴해야 한다.
44
45
 
45
46
  ---
@@ -111,11 +112,15 @@ ch check
111
112
  | 리소스 | 외부로 노출하는 참조 | 외부에서 참조받는 키 |
112
113
  |---|---|---|
113
114
  | PRD | Epic 명, spec 제목 (기능 관점만 — 스키마/테이블 미포함) | (텍스트만 — 자동 링크 없음) |
114
- | spec | `epic`, `dbTableRefs[]`, `ui.screenRefs[]` | `relatedSpec` (SQA), spec.dbTableRefs ↔ table.relatedSpecIds |
115
- | screens | route·access·figmaNodeId·file(페이지 파일)·목적·states, `relatedSpecIds[]` | spec.ui.screenRefs screen.relatedSpecIds 양방향 |
115
+ | spec | `epic`, `dbTableRefs[]`, `ui.screenRefs[]` | `relatedSpec` (SQA 항목), `relatedSpecIds` (정책·화면), spec.dbTableRefs ↔ table.relatedSpecIds |
116
+ | 유저플로우 | (참조 없음 — 여정 분기의 정본) | SQA 시나리오 `userflowRef`, 여정형 spec 경계 TC 도출 근거, IA 루트(여정 시작점) 근거 |
117
+ | 정책정의서 | `relatedSpecIds[]` (정책→spec 단방향) | 화면 검증 규칙·spec businessRules가 Policy ID로 참조 |
118
+ | IA | `tree[].screenId` (화면 참조) | (파생 소비자 없음 — 화면설계서 PDF·핸드오프가 자동 반영) |
119
+ | screens | route·access·areas/actions/inputRules·states·`actions[].targetScreenId`, `relatedSpecIds[]` | spec.ui.screenRefs ↔ screen.relatedSpecIds 양방향, IA tree.screenId |
116
120
  | db-schema (전체) | 테이블 인벤토리 (텍스트) | (텍스트만) |
117
- | db-tables (per) | `relatedSpecIds[]`, `stateMachines[].transitions[].specRef` | 다른 테이블의 FK 주석 |
118
- | SQA 항목 | `relatedSpec` | — |
121
+ | db-tables (per) | `relatedSpecIds[]`, `stateMachines[].transitions[].specRef` | 다른 테이블의 FK 주석, 흐름 refs의 tableId·field |
122
+ | SQA 항목(TC) | `relatedSpec`, `dbTableRefs[]` | — |
123
+ | SQA 시나리오 | `userflowRef` | Sprint `relatedScenarios` (sheetId:scenarioId 좌표) |
119
124
  | spec.workStatus | (자유 텍스트) | — |
120
125
 
121
126
  ---
@@ -130,22 +135,29 @@ ch check
130
135
  |---|---|---|---|
131
136
  | A | **DB 컬럼/인덱스/securityRules/stateMachines** 변경 | `db-tables/<id>` | db-schema 마이그레이션 노트, 해당 테이블 참조 spec(logic, *이름 참조만*), SQA(데이터 검증 TC). **stateMachines 변경 시** 추가로: 상태전이 SQA TC(§sqa-v2 4.3.5), 전이의 `specRef`가 가리키는 spec, spec.logic.stateTransitions와 경계 중복 없는지. **PRD 무영향**(스키마는 PRD에 없음) |
132
137
  | B | **새 테이블 추가/삭제** | `db-tables` 신규/삭제 | db-schema 인벤토리·ERD(테이블 단위), 영향 spec.dbTableRefs, SQA(신규 검증 TC). **PRD 무영향**(새 *기능*이면 그건 C/H 진앙) |
133
- | C | **spec UI 요구사항** 변경 | `spec.ui` | 같은 화면 참조하는 다른 spec, **screens(화면 목적·핵심 액션·접근권한·figmaNodeId·file)**, SQA(UI 검증 TC), PRD 화면 절. **새 화면이 필요한 기능 추가도 진앙 C**다. `interactionMap`을 고치면 화면 상세의 집계 뷰가 같이 바뀐다 — 화면 쪽을 따로 고칠 필요는 없다 |
138
+ | C | **화면설계서(screens)** 변경 표시 데이터·액션·입력 검증·예외상태·와이어프레임·접근권한 | `screens/<id>` | 같은 화면을 참조하는 spec(`relatedSpecIds`), 이동으로 연결된 다른 화면(`actions[].targetScreenId`), IA(화면 추가·삭제 시 트리 배치), SQA(UI 검증 TC), PRD 화면 절. **새 화면이 필요한 기능 추가도 진앙 C**다 |
134
139
  | D | **spec 의 비즈니스 규칙(logic)** 변경 | `spec.logic` | 의존 spec, SQA(정상/비정상 TC), db-tables(검증 규칙·trigger), PRD 도메인 규칙 절 |
135
140
  | E | **권한/역할 정책** 변경 | 영향 spec.logic, db-tables.securityRules | 모든 영향 spec의 SQA(접근권한 TC), db-schema 보안 일관성 절, PRD 권한 절 |
136
141
  | F | **Story Point(points) 변경** | `spec.points` | Sprint 용량 산정, workStatus |
137
142
  | G | **Epic 명/범위 변경** | `spec.epic`, PRD 기능 요구사항 카테고리 절 | 모든 같은 Epic 산하 spec 재태깅, Sprint 묶음 |
138
143
  | H | **PRD 본문 변경** | `prd` | 그 PRD에서 파생된 spec, db-schema, SQA 시트 — **전수 리뷰 트리거** |
144
+ | I | **유저플로우 변경** — 여정의 분기·순서가 바뀜 | `userflows/<id>` | 그 플로우를 근거로 한 **SQA 시나리오**(`userflowRef` — 스텝·확인 포인트 재작성, 바뀐 스텝 판정 리셋), 여정형 spec의 경계·예외 TC(분기당 1개 — 분기가 늘거나 줄면 재도출), 정책 재수확(새 분기에 "정해진 게 없는" 질문이 생겼는지 — [[2t-decencia-channel-policy-v2]] §2①), IA 루트 배치(여정 시작점이 바뀌었으면) |
145
+ | J | **정책정의서 변경** — 수치·기한·처리방향이 바뀜 | `policies/<id>` | `relatedSpecIds`의 spec(businessRules·preconditions에 반영), 그 정책이 결정한 db-tables 컬럼·stateMachines(만료·타임아웃·상태), 정책을 참조하는 화면 검증 규칙, SQA(정책 위반 TC — 수치가 바뀌면 TC 문구·판정 리셋), PRD 정책 절 |
146
+ | K | **IA 재배치** — 화면 배치·분류만 바뀜 | `ia` (tree) | **대개 전파 없음** — IA는 파생 소비자가 없다(화면설계서 PDF·핸드오프가 자동 반영). 화면 자체가 생기고 없어지는 변경이면 그건 진앙 C다 |
139
147
 
140
- > **스토리 명세 프로젝트**(`storySpecsEnabled=true` — [[2t-decencia-channel-spec-v2]] §0)에서는 이렇게 읽는다:
141
- > C(UI 변경) = 화면 연결(`ui.screenRefs`)·화면(screens) 변경. interactionMap UI 상세는 없다.
142
- > D(logic 변경) = 사용자 스토리(`story`)·사전 조건(`preconditions`)·로직 플로우(`dataFlowScenarios`)·비즈니스 규칙 변경. stateTransitions는 없다.
148
+ > **레거시 프로젝트**(`storySpecsEnabled` 미설정·false)에서는 이렇게 읽는다:
149
+ > C = `spec.ui`(interactionMap·primaryActions·keyInformation) 변경 화면 상세의 집계 뷰가 같이 바뀐다.
150
+ > D = `spec.logic`(dataFlow·stateTransitions 포함) 변경. 유저플로우·정책정의서·IA(I·J·K) 스토리 명세 전용 문서라 레거시에는 없다.
151
+ > 스토리 명세 프로젝트의 D(logic 변경) = 사용자 스토리(`story`)·사전 조건(`preconditions`)·로직 플로우(`dataFlowScenarios` — 시스템형만, [[2t-decencia-channel-spec-v2]] §7-0)·비즈니스 규칙 변경.
143
152
 
144
153
  사용자 발화 → 진앙 매핑 예시:
145
154
  - "users 테이블에 last_login_at 추가" → **A**
146
155
  - "회원 등급에 VIP 추가, 권한도 더 줘야 함" → **E** (+ D)
147
156
  - "로그인 화면에 SNS 로그인 버튼 추가" → **C** (+ E if 권한)
148
157
  - "이 spec의 규모(Story Point)를 다시 매김" → **F** (규모가 너무 크면 spec 자체를 여러 Story로 분리 — [[2t-decencia-channel-spec-v2]] §2·§14)
158
+ - "결제 실패 시 재시도 흐름을 여정에 추가" → **I** (+ 새 분기에 정책 질문이 생기면 J)
159
+ - "무응답 자동취소를 24시간에서 48시간으로" → **J**
160
+ - "장바구니 화면에 쿠폰 입력란 추가" → **C** (+ 검증 규칙이 새 정책을 만들면 J)
149
161
 
150
162
  ---
151
163
 
@@ -162,9 +174,14 @@ ch specs list --json --per-page 100 > /tmp/specs.json
162
174
  # 모든 db-table
163
175
  ch db-tables list --json > /tmp/tables.json
164
176
 
165
- # 모든 SQA 시트
177
+ # 모든 SQA 시트 (items·scenarios 포함)
166
178
  ch sqa list --json > /tmp/sheets.json
167
179
 
180
+ # 유저플로우·정책정의서·IA (스토리 명세 프로젝트)
181
+ ch userflows list --json > /tmp/userflows.json
182
+ ch policies list --json > /tmp/policies.json
183
+ ch ia get --json > /tmp/ia.json 2>/dev/null || true
184
+
168
185
  # (필요 시) PRD content
169
186
  ch prd get --json > /tmp/prd.json
170
187
  ```
@@ -246,6 +263,35 @@ OLD_EPIC="..."
246
263
  jq -r --arg e "$OLD_EPIC" '.data[] | select(.epic == $e) | .id + "\t" + .title' /tmp/specs.json
247
264
  ```
248
265
 
266
+ #### I (유저플로우 변경) — 이 플로우를 근거로 한 시나리오·spec 찾기
267
+
268
+ ```bash
269
+ FLOW_ID="<userflowId>"
270
+
271
+ # 이 플로우를 근거로 한 SQA 시나리오 (스텝·확인 포인트가 여정을 따라간다)
272
+ for SHEET in $(jq -r '.data[].id' /tmp/sheets.json); do
273
+ ch sqa get "$SHEET" --json | jq -r --arg f "$FLOW_ID" '.scenarios[]? | select(.userflowRef == $f) | "[" + "'$SHEET'" + "] " + .id + " " + .name'
274
+ done
275
+
276
+ # 여정형 spec의 경계 TC — 이 여정이 관통하는 spec은 자동 링크가 없다.
277
+ # 플로우 이름·노드 라벨의 화면/기능 키워드로 spec을 좁히고 사람이 확정한다.
278
+ ```
279
+
280
+ #### J (정책 변경) — 이 정책이 적용되는 spec·화면·테이블 찾기
281
+
282
+ ```bash
283
+ POLICY_ID="<policyId>"
284
+
285
+ # 정책 → spec (단방향 링크)
286
+ jq -r --arg pid "$POLICY_ID" '.[]? // .data[]? | select(.id == $pid) | .relatedSpecIds[]?' /tmp/policies.json
287
+
288
+ # 정책 ID를 본문에서 참조하는 화면 (검증 규칙 "정책은 참조만" 규칙 덕에 ID 텍스트 매칭이 든다)
289
+ ch screens list --json | jq -r --arg pid "$POLICY_ID" '.data[]? // .[]? | select(tostring | contains($pid)) | .id + " " + .name'
290
+
291
+ # 정책 수치가 결정한 컬럼·상태머신은 자동 링크가 없다 — 정책 본문의 수치·기한 키워드로
292
+ # db-tables를 grep해 후보를 찾고 사람이 확정한다.
293
+ ```
294
+
249
295
  #### H (PRD 전체 변경) — 전수 리뷰
250
296
 
251
297
  PRD에서 변경된 절(예: "권한 모델")을 식별 → 모든 spec/db-table에 동일 키워드 grep → 변경 영향 후보 도출. 자동화 한계 있음, 사람이 리뷰 필요.
@@ -300,8 +346,10 @@ ch prd get --json | jq -r '.content' | grep -niE "데이터 모델|컬럼|nullab
300
346
  ```
301
347
  1) db-tables(진앙이면) ← 데이터 모델 변경의 최저층 (스키마 정의의 유일한 거처)
302
348
  2) db-schema 전체 문서 (인벤토리/ERD/마이그레이션 노트) ← 1) 반영, 테이블 단위까지만
303
- 3) spec (logic/ui/dbTableRefs/points) ← 1·2) 반영, 컬럼은 이름 참조만
304
- 4) SQA 시트 항목 ← 3) 의 변경된 동작을 검증
349
+ 3) spec (story/preconditions/logic/dbTableRefs/points) ← 1·2) 반영, 컬럼은 이름 참조만
350
+ 3.5) 유저플로우·정책정의서 ← 3) 의 여정·정책 변화 반영 (진앙이면 먼저)
351
+ 3.7) IA·screens (화면설계서) ← 화면 추가·삭제·검증 규칙 변화 반영
352
+ 4) SQA — 항목(TC) + 시나리오 ← 위 전부의 변경된 동작을 검증. 정의를 고친 TC·스텝은 판정 리셋
305
353
  5) PRD ← **기능/정책 변화가 있을 때만**. 순수 스키마 변경(A/B)은 PRD 무관
306
354
  6) workStatus ← 각 spec에 "전파 작업 완료" 1줄 추가
307
355
  ```
@@ -309,16 +357,19 @@ ch prd get --json | jq -r '.content' | grep -niE "데이터 모델|컬럼|nullab
309
357
  이유:
310
358
  - DB는 모든 위의 진실이라 먼저 확정
311
359
  - spec은 DB를 참조하므로 DB 다음 (단, 정의가 아니라 *이름 참조*만)
312
- - SQA는 spec의 행동을 검증하므로 spec 다음
360
+ - 유저플로우·정책·화면은 spec의 여정·규칙·표시를 구체화한 문서라 spec 다음
361
+ - SQA는 그 전부의 행동을 검증하므로 마지막 — 시나리오는 유저플로우를, TC는 spec·정책을 따라간다
313
362
  - PRD는 *기능 narrative*만 담는다 — 스키마/데이터 모델은 PRD에 없으므로 DB만 바뀐 전파에선 PRD를 건드리지 않는다([[2t-decencia-channel-prd-v2]])
314
363
 
315
364
  ### 진앙별 변형
316
365
  - **A (DB 컬럼/인덱스/보안규칙)**: 1 → 2(마이그레이션 노트) → 3(이름 참조) → 4 → 6. **5(PRD) 스킵**
317
366
  - **B (새 테이블)**: 1 → 2(인벤토리/ERD, 테이블 단위) → 3(dbTableRefs) → 4 → 6. **5(PRD) 스킵** (새 *기능*이면 그건 C/H로 별도)
318
- - **C (UI만 변경)**: 1·2 스킵하고 3 → 4 → 5 → 6
319
- - **E (권한)**: 1(securityRules) + 3(logic) 거의 동시 → 2 → 4 → 5(권한 *정책* 절 — 기능이므로 PRD 가능) → 6
367
+ - **C (화면 변경)**: 1·2 스킵하고 3.7(screens·IA 배치) 3(연결 spec 확인) → 4 → 5 → 6
368
+ - **E (권한)**: 1(securityRules) + 3(logic) 거의 동시 → 2 → 3.7(화면 접근권한) → 4 → 5(권한 *정책* 절) → 6
320
369
  - **G (Epic 변경)**: 3(spec.epic 재태깅) → 5(PRD 기능 요구사항 카테고리) → 6
321
370
  - **H (PRD 변경)**: 5(PRD) → 영향 재조사 → 1~4 순차 → 6
371
+ - **I (유저플로우 변경)**: 3.5(userflows) → 3(여정형 spec의 규칙·TC 재검토) → 4(시나리오 스텝 재작성 — 바뀐 스텝 판정 리셋) → (새 질문이 나오면 J 착수) → 6
372
+ - **J (정책 변경)**: 3.5(policies) → 1(정책이 결정한 컬럼·상태머신) → 3(관련 spec businessRules·preconditions) → 3.7(화면 검증 규칙 참조 확인) → 4(정책 위반 TC 갱신·판정 리셋) → 5(PRD 정책 절) → 6
322
373
 
323
374
  ---
324
375
 
@@ -342,18 +393,31 @@ ch specs get <specId> --json > /tmp/s.json
342
393
  # … 편집 (ui/logic/dbTableRefs/points) …
343
394
  ch specs update <specId> --file /tmp/s.json --no-version
344
395
 
345
- # 3.5) screens (화면 모드 프로젝트) [[2t-decencia-channel-cli-v2]] §3
396
+ # 3.5) 유저플로우·정책정의서 [[2t-decencia-channel-userflow-v2]] / [[2t-decencia-channel-policy-v2]]
397
+ ch userflows get <flowId> --json | jq -r '.mermaid' > /tmp/flow.mmd # Read
398
+ ch userflows update <flowId> --file /tmp/flow.mmd
399
+ ch policies get <policyId> --json | jq -r '.content' > /tmp/policy.md
400
+ ch policies update <policyId> --file /tmp/policy.md
401
+
402
+ # 3.7) IA — [[2t-decencia-channel-ia-v2]] (트리 통째 교체 — Read-before-Write)
403
+ ch ia get --json > /tmp/ia.json
404
+ ch ia set --title "정보구조" --file /tmp/ia-tree.json --content /tmp/ia.md
405
+
406
+ # 3.7) screens (화면 모드 프로젝트) — [[2t-decencia-channel-cli-v2]] §3
346
407
  ch screens list --json # 후보 화면 확인
347
408
  ch screens create --id SCR-XXX --name "..." --route /xxx --purpose "..." --access developer \
348
409
  --figma-node-id 123:456 --page-file src/app/xxx/page.tsx
349
410
  ch screens update <screenId> --purpose "..." # 지정한 필드만 PATCH
350
411
  ch screens update <screenId> --page-file src/app/xxx/page.tsx # 페이지 파일이 바뀌면 여기를 고친다 (--file은 purpose 본문이다)
351
412
 
352
- # 4) SQA 시트 항목 — [[2t-decencia-channel-sqa-v2]] §3.5
413
+ # 4) SQA 항목(TC)과 시나리오 — [[2t-decencia-channel-sqa-v2]] §3.5·§4.6.5
353
414
  ch sqa get <sheetId> --json | jq '.items' > /tmp/items.json
354
415
  ch sqa add-items <sheetId> --file /tmp/new-items.json # 신규
355
416
  ch sqa update-item <sheetId> <itemId> --test "..." --spec <specId>
356
417
  ch sqa delete-item <sheetId> <itemId> # 불필요해진 항목
418
+ ch sqa update-scenario <sheetId> <scenarioId> --file /tmp/scenario.json # 시나리오 스텝 재작성
419
+ # → 정의가 바뀐 스텝은 판정이 자동 리셋된다(같은 자리·같은 정의는 승계)
420
+ ch sqa check <sheetId> <itemId> --result yes # 정의를 고친 TC는 재검증 후 다시 판정
357
421
 
358
422
  # 5) PRD — [[2t-decencia-channel-prd-v2]]
359
423
  ch prd get --json | jq -r '.content' > /tmp/prd.md
@@ -413,7 +477,7 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
413
477
  ### 6.4 자가 점검 체크리스트
414
478
 
415
479
  - [ ] §3 영향 매트릭스를 작성하고 사용자 컨펌을 받았는가?
416
- - [ ] §4 적용 순서를 지켰는가? (DB → schema → spec → SQA → PRD → workStatus)
480
+ - [ ] §4 적용 순서를 지켰는가? (DB → schema → spec → 유저플로우·정책 → IA·화면 → SQA → PRD → workStatus)
417
481
  - [ ] spec.dbTableRefs ↔ db-table.relatedSpecIds 양방향 일치?
418
482
  - [ ] 변경된 모든 spec에 SQA 항목이 갱신·신규 추가됐는가?
419
483
  - [ ] 불필요해진 SQA 항목이 남아 있지 않은가? (delete-item)
@@ -421,7 +485,9 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
421
485
  - [ ] **SSOT 역검사(§6.3) 통과 — PRD/spec에 컬럼 정의가 새어 들어가 있지 않은가?**
422
486
  - [ ] 진앙 주변에서 발견한 기존 SSOT 위반을 §3.4대로 함께 정리했는가?
423
487
  - [ ] 영향 spec들의 workStatus에 [PROPAGATE] 엔트리 1줄씩 남겼는가?
424
- - [ ] 진행 Run이 있다면 Run은 시트 항목 변경에 소급 적용되지 않으니 별도로 사용자에게 보고했는가?
488
+ - [ ] 유저플로우를 고쳤다면 플로우를 근거로 시나리오(userflowRef)의 스텝·확인 포인트를 따라 고쳤는가? 여정형 spec의 경계 TC(분기당 1개)를 재도출했는가?
489
+ - [ ] 정책을 고쳤다면 — relatedSpecIds의 spec·화면 검증 규칙·정책 위반 TC가 새 수치·기한을 반영하는가?
490
+ - [ ] 정의를 고친 TC·시나리오 스텝의 판정을 지워 재검증 대상으로 표시했는가?
425
491
 
426
492
  ---
427
493
 
@@ -431,7 +497,9 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
431
497
  - **스키마를 여러 곳에 복제** — 컬럼 정의를 db-tables뿐 아니라 PRD/spec에도 적어두면, 컬럼 하나 바꿀 때 손댈 곳이 3곳이 되고 반드시 한 곳을 빠뜨린다. 정의는 db-tables 한 곳, 나머지는 이름 참조 + 링크(§0-5, §6.3).
432
498
  - **PRD를 먼저 바꾸고 spec/DB를 안 따라간다** — PRD가 최신, 코드/스펙이 옛 상태로 분기.
433
499
  - **SQA를 신규 추가만 하고 기존 항목 삭제를 안 한다** — 사라진 동작을 검증하는 좀비 TC가 영원히 남음.
434
- - **진행 Run이 있는 상태에서 시트 항목 변경** Run에 소급 됨. Run 끝낸 변경하거나, Run에는 수동으로 결과를 메모.
500
+ - **정의를 고치고 판정을 지운다** 낡은 판정이 정의를 통과로 위장한다. TC 문구·시나리오 스텝을 고쳤으면 판정을 지워 재검증 대상으로 만든다(시나리오 스텝은 서버가 자동 리셋).
501
+ - **유저플로우만 고치고 시나리오를 안 따라간다** — 시나리오는 유저플로우 기반이다(userflowRef). 여정의 분기가 바뀌면 스텝·확인 포인트도 낡는다.
502
+ - **정책만 고치고 spec·TC를 안 따라간다** — 정책의 수치·기한이 spec businessRules·정책 위반 TC 문구에 복제돼 있으면 그 자리도 같이 고친다(가급적 수치는 정책에만 두고 참조로).
435
503
  - **양방향 ref를 한쪽만 수동 갱신** — 보통 API가 양방향 sync 하지만, 직접 Firestore 조작이나 임시 수정 시 한쪽만 바꾸면 어긋남.
436
504
  - **변경 진앙을 한 번에 여러 개 잡아서 매트릭스가 폭발** — 가능하면 한 세션 = 한 진앙. 진앙이 여러 개면 각각을 별도 PR로 쪼개길 권장.
437
505
  - **CRLF 오염** — 파일 기반 입력 시 spec/sheet 참조 ID 끝에 `\r`이 붙어 링크 깨짐. 항상 정제.
@@ -463,19 +531,38 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
463
531
  6) workStatus
464
532
  ```
465
533
 
466
- ### C: 화면 요구사항 변경
534
+ ### C: 화면설계서(screens) 변경
467
535
  ```
468
536
  1) (DB 변경 없음 → 스킵)
469
537
  2) (스킵)
470
- 3) ch specs update <id> — ui 갱신 (interactionMap·primaryActions·keyInformation)
471
- 3-b) 화면 모드에서 figmaNodeId·file(페이지 파일) 바뀌면 spec 아니라 화면을 고친다:
472
- ch screens update <screenId> --figma-node-id 123:456 --page-file src/app/xxx/page.tsx
473
- (레거시 프로젝트는 종전대로 spec.ui에 있다 → 3)에서 함께 갱신)
538
+ 3) ch screens update <screenId> — 표시 데이터·액션·검증 규칙·예외상태·와이어프레임 갱신
539
+ 화면 추가·삭제면 IA 배치도 갱신(ch ia set) + 연결 spec screen-refs 확인
540
+ (레거시 프로젝트는 spec.ui의 interactionMap·primaryActions·keyInformation을 갱신)
474
541
  4) SQA — UI 검증 TC update-item/add-items
475
542
  5) PRD 화면 절
476
543
  6) workStatus
477
544
  ```
478
545
 
546
+ ### I: 유저플로우 변경
547
+ ```
548
+ 1) ch userflows update <flowId> — 여정 분기·순서 갱신 (여정 분기의 정본)
549
+ 2) 여정형 spec 재검토 — 새 분기의 규칙이 businessRules에 필요한지, 경계 TC(분기당 1개) 재도출
550
+ 3) 시나리오 갱신 — ch sqa update-scenario (userflowRef로 찾은 시나리오의 스텝·확인 포인트 재작성,
551
+ 바뀐 스텝은 판정 자동 리셋)
552
+ 4) 새 분기에 "정해진 게 없는" 질문이 나오면 → 진앙 J(정책)로 이어서
553
+ 5) workStatus
554
+ ```
555
+
556
+ ### J: 정책정의서 변경
557
+ ```
558
+ 1) ch policies update <policyId> — 수치·기한·처리방향 갱신 (판정 가능한 문장 유지)
559
+ 2) 정책이 결정한 컬럼·상태머신 — ch db-tables update (만료·타임아웃·상태값)
560
+ 3) relatedSpecIds의 spec — businessRules·preconditions에 새 수치 반영(가급적 참조로)
561
+ 4) 화면 검증 규칙 — 정책 ID 참조가 새 내용과 맞는지 확인
562
+ 5) SQA — 정책 위반 TC 문구 갱신 + 판정 리셋(재검증)
563
+ 6) PRD 정책 절 + workStatus ([DECISION] 변경 사유)
564
+ ```
565
+
479
566
  ### E: 권한 정책 변경
480
567
  ```
481
568
  1) ch db-tables update — securityRules
@@ -507,7 +594,11 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
507
594
  | 무엇을 어디에 적용할지 결정 | **이 스킬** (영향 분석·매트릭스) | — |
508
595
  | 실제 spec 필드 편집 패턴 | 위임 | [[2t-decencia-channel-spec-v2]] |
509
596
  | db-tables JSON 구조 | 위임 | [[2t-decencia-channel-db-schema-v2]] |
510
- | SQA 시트 항목 CRUD | 위임 | [[2t-decencia-channel-sqa-v2]] §3.5 |
597
+ | SQA 시트 항목·시나리오 CRUD | 위임 | [[2t-decencia-channel-sqa-v2]] §3.5·§4.6.5 |
598
+ | 유저플로우 작성 패턴 | 위임 | [[2t-decencia-channel-userflow-v2]] |
599
+ | 정책 문장 규칙(판정 가능) | 위임 | [[2t-decencia-channel-policy-v2]] |
600
+ | IA 배치 원리(관문이 부모) | 위임 | [[2t-decencia-channel-ia-v2]] |
601
+ | 화면 기재항목·디스크립션 규칙 | 위임 | [[2t-decencia-channel-screen-v2]] |
511
602
  | PRD 작성 패턴 | 위임 | [[2t-decencia-channel-prd-v2]] |
512
603
  | Sprint 재구성 | 위임 | [[2t-decencia-channel-sprint-builder-v2]] |
513
604
  | workStatus 기록 형식 | 위임 | [[2t-decencia-channel-work-status-v2]] |
@@ -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.33.5
13
+ version: 1.34.1
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.33.5
11
+ version: 1.34.1
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.33.5
5
+ version: 1.34.1
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.33.5
6
+ version: 1.34.1
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.33.5
5
+ version: 1.34.1
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.33.5
11
+ version: 1.34.1
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.33.5
10
+ version: 1.34.1
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.33.5
5
+ version: 1.34.1
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.33.5
12
+ version: 1.34.1
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.33.5
15
+ version: 1.34.1
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.33.5
10
+ version: 1.34.1
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.33.5
5
+ version: 1.34.1
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -52,7 +52,7 @@ ch check
52
52
  | 이슈 ↔ spec | 이슈 본문 `## 관련 명세`의 specid 백링크 (없어도 된다 = 인프라 등 비-spec 작업) |
53
53
  | 카드 ↔ 이슈 | **요청사항 카드(E18) 1개 = 이슈 1건** — 제목 `[REQ-###]`, 카드 진행상황(`planned`→`inProgress`→`done`)은 이슈 진척에 맞춰 sprint-runner가 전이 (§3-1·§7-1) |
54
54
  | 사람확인 항목 | **소통채널 DB가 정본** — issue-coder가 `ch github checklist set`으로 등록하고, 사람이 웹 실행 탭에서 체크·메모하며, pr-merger가 `ch github checklist get`으로 close를 판단한다 (GitHub 코멘트가 아니다) |
55
- | 이슈 ↔ spec **status** | 착수는 issue-coder가 `developing`, PR은 issue-coder가 `testing`, completed는 러너가 롤업한다 (그 spec 백링크된 이슈가 전부 DONE일 때만) |
55
+ | 이슈 ↔ spec **status** | 착수는 issue-coder가 `developing`, PR은 issue-coder가 `testing`, completed는 러너가 롤업한다 (백링크 이슈 전부 DONE **+ 그 spec TC 전부 통과**일 때만 — §7) |
56
56
 
57
57
  ## 브랜치와 worktree의 큰 그림
58
58
 
@@ -145,7 +145,14 @@ green인 PR은 pr-merger에 하나씩 직렬로 위임한다. 한 번 머지하
145
145
 
146
146
  ### 7. spec의 status를 롤업한다 (전역 시야가 있는 러너만 할 수 있다)
147
147
 
148
- 이슈들의 `## 관련 명세` 백링크를 모아 spec마다 걸린 이슈들을 역으로 정리한다. 어떤 spec에 백링크된 이슈가 전부 DONE(close)이면 `ch specs set-status <specid> completed`로 올린다. 하나라도 안 끝났으면(TODO·IN_PR·AWAIT_HUMAN·FEEDBACK) 올리지 않고 둔다. 이미 completed면 건너뛰고, 백링크된 이슈가 없는 spec은 대상이 아니다.
148
+ 이슈들의 `## 관련 명세` 백링크를 모아 spec마다 걸린 이슈들을 역으로 정리한다. completed 조건은 **둘 다**다:
149
+
150
+ 1. 그 spec에 백링크된 이슈가 **전부 DONE**(close)이고,
151
+ 2. 그 spec에 연결된 **SQA TC가 전부 통과**(result=yes)다 — spec의 공식 완료는 SQA가 판정한다([[2t-decencia-channel-sqa-v2]] §1·§5). 이슈 close는 구현이 끝났다는 뜻이지 검증이 끝났다는 뜻이 아니다.
152
+
153
+ TC 통과 점검: `ch sqa list --json`으로 시트를 훑고, 각 시트에서 `ch sqa get <sheetId> --json`의 `items[]` 중 `relatedSpec == <specid>`인 항목의 `result`가 전부 `yes`인지 본다. 연결된 TC가 하나도 없는 spec은 검증 대상이 정의되지 않은 것이므로 completed로 올리지 않고 §8 보고에 "TC 미등록"으로 남긴다(비-spec 작업 이슈만 백링크된 경우는 애초에 롤업 대상이 아니다).
154
+
155
+ 둘 다 충족하면 `ch specs set-status <specid> completed`. 이슈가 하나라도 안 끝났으면(TODO·IN_PR·AWAIT_HUMAN·FEEDBACK) 올리지 않고, 이슈는 다 끝났는데 TC가 남았으면 **올리지 않고 §8 보고에 "검증 대기"로 분류**한다 — 판정은 사람 몫이라 러너가 대신 찍지 않는다. 이미 completed면 건너뛰고, 백링크된 이슈가 없는 spec은 대상이 아니다.
149
156
 
150
157
  ### 7-1. 완료된 요청사항 카드를 done으로 올린다
151
158
 
@@ -157,7 +164,7 @@ spec의 completed 롤업(§7)과 다르다. 카드는 카드 1개 = 이슈 1건
157
164
 
158
165
  ### 8. 더 진행할 것이 없으면 멈추고 보고한다
159
166
 
160
- 더 전진시킬 것이 없으면 멈춘다. 보고하기 전에 메인 폴더를 `git fetch origin sprint-<id>` 후 `git checkout sprint-<id> && git pull --ff-only`로 최신 통합 상태에 맞춰(메인이 더티라 막히면 덮지 말고 멈춰 알린다), 사람이 보는 상태가 그때까지 머지된 전체와 일치하게 한다. 그다음 현황을 요약 보고한다. 완료(DONE) 개수, 사람 확인 대기(AWAIT_HUMAN) 이슈와 각각의 링크·미체크 항목, 막힌(블로커) 이슈와 그 이유(어느 이슈·PR인지) 적는다. 그리고 사용자가 확인·피드백 후 같은 Sprint로 다시 부르면 이어서 진행한다고 안내한다.
167
+ 더 전진시킬 것이 없으면 멈춘다. 보고하기 전에 메인 폴더를 `git fetch origin sprint-<id>` 후 `git checkout sprint-<id> && git pull --ff-only`로 최신 통합 상태에 맞춰(메인이 더티라 막히면 덮지 말고 멈춰 알린다), 사람이 보는 상태가 그때까지 머지된 전체와 일치하게 한다. 그다음 현황을 요약 보고한다. 완료(DONE) 개수, 사람 확인 대기(AWAIT_HUMAN) 이슈와 각각의 링크·미체크 항목, 막힌(블로커) 이슈와 그 이유(어느 이슈·PR인지), 그리고 **검증 대기 spec**(이슈는 전부 DONE인데 TC 미통과·미판정·미등록 — 어느 시트의 어떤 항목이 남았는지)을 적는다. 그리고 사용자가 확인·피드백 후 같은 Sprint로 다시 부르면 이어서 진행한다고 안내한다.
161
168
 
162
169
  ### 9. 다시 불리면 이어서 진행한다 (멱등)
163
170
 
@@ -4,7 +4,7 @@ description: |
4
4
  [2t][v2] 소통채널 SQA(검증기준서) 운영 가이드 — 검증 = TC 검증 + 시나리오 검증.
5
5
  TC는 Story 완료조건(2겹: 해피패스(결과 상태까지)·경계/예외 — spec에서 도출, ⑤ 검증기준서에서 일괄 등록 — §2),
6
6
  시나리오는 Sprint 완료조건(유저플로우 기반 5~10개, 상태 누적·역할 여정 검증 — §4.6).
7
- 권한·상태반영은 시나리오+B축(핵심 9개)이 담당. 실행은 시나리오로 하되 판정·기록은 TC 단위.
7
+ 권한·상태반영은 시나리오+B축(핵심 9개)이 담당. 판정은 각자 기록 TC 항목에, 시나리오는 스텝 자체에.
8
8
  Use when:
9
9
  (1) SQA 시트를 새로 작성하거나 항목을 보강할 때,
10
10
  (2) spec에서 도출한 검증 항목(TC)을 SQA 시트에 등록할 때,
@@ -12,7 +12,7 @@ description: |
12
12
  (4) 보안/성능/접근성/호환성 비기능 TC를 시트에 채워야 할 때,
13
13
  (5) 명세 영역별 완성형 TC 번들(퍼블리싱/프론트/백엔드 디센시아 운영 관점 포함)을 가져다 쓸 때,
14
14
  (6) Sprint 종료 전 spec별 TC 통과·시나리오 통과 여부를 점검할 때.
15
- version: 1.33.5
15
+ version: 1.34.1
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -50,7 +50,7 @@ ch check
50
50
  | 완료조건 | Story(spec) 완료 | Sprint 완료 |
51
51
  | 작성 | §2~§4.5 | §4.6 |
52
52
 
53
- **실행은 시나리오로 하되, 판정·기록은 TC 단위로 남긴다** 시나리오 스텝마다 매핑된 TC에 Pass/Fail을 기록한다.
53
+ **판정은 각자 기록한다** TC 항목의 result에(고립 검증), 시나리오는 **스텝 자체의 result**에(여정 검증). 같은 동작이라도 고립 검증과 여정 검증은 다른 검증이라 기록도 섞지 않는다. 시나리오 통과 = 스텝 전부 Pass + 종료 정합 Pass.
54
54
 
55
55
  별도 acceptanceCriteria 필드 없음. **공식 완료는 SQA**가 판정한다. spec 규모는 Story Point(`spec.points`)로 표현하고, 진행률(%)·Task 체크박스 개념은 없다.
56
56
 
@@ -388,11 +388,11 @@ ch specs list --json --per-page 100 | node -e "
388
388
  |---|---|
389
389
  | Scenario ID | `SCN-001` 형식 |
390
390
  | 전제 | 계정(역할)·데이터의 **시작 상태** — 어떤 상태에서 출발하는가 |
391
- | 스텝 | **행동 + 확인 포인트 + TC 매핑** — 각 스텝이 무엇을 하고, 무엇을 확인하고, 어느 TC로 기록되는가 |
391
+ | 스텝 | **행동 + 확인 포인트** — 각 스텝이 무엇을 하고, 무엇을 확인하는가. 판정은 스텝 자체에 기록한다 |
392
392
  | 종료 | **최종 데이터 정합 확인** — 여정이 끝난 뒤 DB·화면 상태가 맞는가 |
393
393
 
394
394
  - 스텝의 확인 포인트는 단순 TC 재확인이 아니다. **이 스텝까지 오면서 변한 상태**를 본다.
395
- - **상태 누적·권한(역할별 여정) 검증은 시나리오의 몫이다** — Story TC(2겹)에는 없다. 확인 포인트에 대응하는 TC가 시트에 없으면 **이때 등록해 매핑**한다(스텝·종료 모두) "판정·기록은 TC 단위" 원칙.
395
+ - **상태 누적·권한(역할별 여정) 검증은 시나리오의 몫이다** — Story TC(2겹)에는 없다. TC 매핑은 폐지됐다 실행하면서 스텝마다 Pass/Fail을 스텝 자체에 남긴다( 시트 상세 또는 `ch sqa check-scenario`).
396
396
  - 시나리오가 참조하는 유저플로우가 있으면 링크한다.
397
397
 
398
398
  ### 4.6.3 Sprint 연결 — Sprint의 완료조건
@@ -411,6 +411,8 @@ ch specs list --json --per-page 100 | node -e "
411
411
  ch sqa add-scenario <sheetId> --file scenario.json # 시나리오 추가
412
412
  ch sqa update-scenario <sheetId> <scenarioId> --file scenario.json
413
413
  ch sqa delete-scenario <sheetId> <scenarioId>
414
+ ch sqa check-scenario <sheetId> <scenarioId> --step 1 --result yes # 스텝 판정 (1부터)
415
+ ch sqa check-scenario <sheetId> <scenarioId> --closing --result yes # 종료 정합 판정
414
416
  ch sprints add-scenarios <sprintId> <sheetId>:<scenarioId>[,...] # Sprint에 할당
415
417
  ch sprints remove-scenarios <sprintId> <sheetId>:<scenarioId>[,...] # 할당 해제
416
418
  ```
@@ -428,14 +430,11 @@ ch sprints remove-scenarios <sprintId> <sheetId>:<scenarioId>[,...] # 할당 해
428
430
  "precondition": "일반 회원 계정, 잔여 포인트 5,000, 재고 3개인 상품 1종",
429
431
  "steps": [
430
432
  { "action": "상품을 장바구니에 담고 포인트 2,000을 적용해 결제한다",
431
- "checkpoint": "결제 완료 + 포인트 잔액 3,000 + 재고 2로 감소",
432
- "tcRefs": ["item-..."] },
433
+ "checkpoint": "결제 완료 + 포인트 잔액 3,000 + 재고 2로 감소" },
433
434
  { "action": "주문을 취소한다",
434
- "checkpoint": "PG 취소 + 포인트 2,000 복원 + 재고 3 복원 + 취소 알림톡 발송",
435
- "tcRefs": ["item-..."] }
435
+ "checkpoint": "PG 취소 + 포인트 2,000 복원 + 재고 3 복원 + 취소 알림톡 발송" }
436
436
  ],
437
- "closing": "ORDERS 상태 canceled, 포인트 원장 합계 5,000, 재고 3 — 시작 상태와 정합",
438
- "closingTcRef": "item-..."
437
+ "closing": "ORDERS 상태 canceled, 포인트 원장 합계 5,000, 재고 3 — 시작 상태와 정합"
439
438
  }
440
439
  ```
441
440
 
@@ -477,7 +476,7 @@ ch specs update <specId> --status completed --no-version
477
476
  - [ ] A축: 모든 Story에 TC 2겹(해피패스(결과 상태까지)·경계/예외)이 spec에서 도출돼 있는가(플로우 있으면 분기당, 없으면 규칙당)? Story당 2~5개 범위인가? (§2)
478
477
  - [ ] A축 항목 작성 시 §4.3 영역별 번들(Functional/Publishing/Frontend/Backend)을 명세 성격에 맞게 적용했는가?
479
478
  - [ ] 시나리오: 유저플로우 기반 5~10개 — 돈 경로·최빈 경로·역방향·역할별 1개 포함? (§4.6.1)
480
- - [ ] 시나리오: 스텝마다 확인 포인트·TC 매핑이 있고, 종료 정합 TC가 있는가? Sprint에 할당했는가?
479
+ - [ ] 시나리오: 스텝마다 확인 포인트가 있고, 종료 정합 확인이 있는가? Sprint에 할당했는가?
481
480
  - [ ] B축: 핵심 9개(§4.2) 포함? `category != functional` 카운트로 확인 (필요 이상으로 불리지 않았는가?)
482
481
  - [ ] High 우선순위 TC가 60% 이상인가? (`items[].priority` 기준)
483
482
  - [ ] 정상 경로 + 비정상 경로(에러) 모두 커버?
@@ -492,8 +491,8 @@ ch specs update <specId> --status completed --no-version
492
491
  - 구현이 끝났다고 판단해도 연결된 SQA가 통과하기 전에는 spec.status를 완료로 바꾸지 않음.
493
492
  - **Story TC가 다 통과했다고 Sprint를 닫지 말 것** — Sprint 완료조건은 할당된 시나리오 통과다(§4.6.3).
494
493
  - **시나리오를 TC 재확인 목록으로 쓰지 말 것** — 확인 포인트는 플로우에 따라 변한 상태(잔액·재고·상태 컬럼·알림)다.
495
- - **시나리오 통과는 시트 판정에서 즉시 계산된다(Run 폐지)** — 매핑 TC의 result 전부 yes 면 통과다. 항목 결과를 지우면순간부터 미통과로 집계된다(재검증 대기).
496
- - **시나리오가 참조 중인 TC 항목은 삭제할 없다(400)** 시나리오의 매핑(tcRefs·종료 정합 TC)을 먼저 제거한 항목을 지운다.
494
+ - **시나리오 통과는 스텝 판정에서 즉시 계산된다(Run 폐지·TC 매핑 폐지)** — 스텝 전부 yes + 종료 정합 yes 면 통과다. 스텝 정의를 고치면스텝의 판정만 리셋된다(정의가 같은 자리는 승계). 스텝 판정을 지우면 그 순간부터 미통과로 집계된다.
495
+ - **TC를 시나리오 판정 기록처로 쓰지 것**시나리오 실행 개별 결함을 발견하면 그 TC에도 no를 남기는 정당하지만, 스텝 통과를 TC에 기록하는 건 옛 방식이다. 스텝 판정은 스텝에.
497
496
  - **TC를 발명하지 말 것** — spec에서 도출한다(§2, 플로우 있으면 분기당·없으면 규칙당). 번들 전개·역할 전수 조합으로 TC를 불리는 것이 가장 흔한 실수다. 반대로 §4.2 핵심 9개 미등록도 누락이다.
498
497
  - §4.3 번들을 **별도 시트 묶음으로 등록**하지 말 것 — 각 명세의 A축 항목으로 풀어 써야 한다. 추상 문구 그대로 박아넣지 말 것.
499
498
  - 판정(`check`/`check-bulk`)은 시트 항목에 직접 남는다. 과거 수행 기록(Run)은 열람 전용 레거시다.
@@ -8,7 +8,7 @@ description: |
8
8
  (1) 유저플로우(사용자 여정 분기도)를 새로 그리거나 수정할 때,
9
9
  (2) PRD·Epic-Story 목록에서 플로우로 그릴 대상을 고를 때,
10
10
  (3) 웹 "유저플로우" 탭에 올릴 Mermaid 코드를 작성할 때.
11
- version: 1.33.5
11
+ version: 1.34.1
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.33.5
11
+ version: 1.34.1
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->