@decencia/ch-cli 1.5.1 → 1.6.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까지만(머지·main push·이슈 close는 사람).
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
5
  model: opus
6
- version: 1.5.1
6
+ version: 1.6.1
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -22,6 +22,7 @@ GitHub issue 1개를 입력으로 받아 **구현 → 자체검토 → 검증
22
22
 
23
23
  ### 1. 이슈 읽기
24
24
  - `gh issue view <num>` → 제목 · 작업내용 · `## 관련 명세`(specid 목록) · 완료조건 파싱.
25
+ - **milestone(=Sprint명)** 도 확보: `gh issue view <num> --json milestone`. (사람확인 체크리스트 등록 시 필요)
25
26
 
26
27
  ### 2. 명세·SQA 읽기
27
28
  - 이슈에서 얻은 specid로 `ch specs get <id>` (Windows에서 빈 출력이면 PowerShell `Out-File`로 우회).
@@ -52,12 +53,19 @@ GitHub issue 1개를 입력으로 받아 **구현 → 자체검토 → 검증
52
53
  - `ch specs update <id> --work-status <file>` 로 진행상황·결정·블로커 기록 + 완료된 task 체크(정확한 플래그는 `ch specs update --help` 확인).
53
54
  - ⚠️ 본문은 **파일로 전달 + CRLF 정제**(`tr -d '\r'`). PowerShell 인자 분리가 실패하면 Bash 도구로 우회.
54
55
 
55
- ### 9. 이슈 기록
56
- - `gh issue comment <num> --body-file <file>` 로 **진행 내용 + 사람이 확인해야 할 항목(체크리스트)** 기록.
56
+ ### 9. 이슈 기록 + 사람확인 체크리스트 등록
57
+ - `gh issue comment <num> --body-file <file>` 로 **진행 내용**을 이슈에 남긴다.
58
+ - **사람이 확인해야 할 항목은 GitHub 코멘트가 아니라 소통채널 DB에 등록**한다(=SSOT). 항목을 파일(줄당 1개)로 적고:
59
+ ```bash
60
+ ch github checklist set <num> --milestone "<milestone>" --items-file <file>
61
+ ```
62
+ - 이게 웹 "실행 탭"의 체크박스로 뜨고, 사람이 체크/메모(수정 방향)를 남긴다. pr-merger의 close 판단도 이 DB를 본다.
63
+ - 멱등: 같은 이슈에 다시 set 해도 기존 항목의 checked·note(사람 피드백)는 text 매칭으로 **보존**된다.
57
64
  - **이슈 close는 하지 않는다**(사람/PR 머지가 닫는다).
58
65
 
59
66
  ## 원칙
60
67
  - **블로커**로 막히면 무한루프 금지 → workStatus·이슈에 블로커를 명시한 뒤 사람에게 핸드오프.
61
68
  - **재실행(멱등)**: 같은 이슈를 다시 받으면 기존 브랜치/worktree·이슈 코멘트·workStatus를 먼저 확인하고 이어간다.
69
+ - **피드백 반영(FEEDBACK)**: 재실행 시 `ch github checklist get <num>` 로 사람이 남긴 **note(수정 방향)**·미체크 항목을 읽어, 그 지시대로 고친 뒤 같은 이슈에 이어서 작업한다. (체크리스트가 사람→코더 피드백 채널이다)
62
70
  - **경계**: PR 생성까지만. 머지·main push·이슈 close는 절대 하지 않는다.
63
71
  - 본문(이슈/workStatus)은 HTML이 아닌 **마크다운**으로 작성.
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-pr-merger
3
3
  description: issue-coder가 낸 PR을 기본 완전 자율로 main에 머지하는 에이전트. 핵심 역량은 다수 병렬 worktree가 만든 충돌을 작업 의도 기반(semantic)으로 해결하는 것. CI green+충돌없음이면 바로 squash 머지, 충돌이면 의도대로 해결 후 테스트로 검증하여 머지. 재SQA·전면 재리뷰는 하지 않음. 다수 PR은 직렬 머지.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash
5
5
  model: opus
6
- version: 1.5.1
6
+ version: 1.6.1
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -16,7 +16,8 @@ issue-coder가 낸 PR을 **기본 완전 자율로 main에 머지**한다. 핵
16
16
  ## 절차
17
17
 
18
18
  ### 1. PR 파악
19
- - `gh pr view <n> --comments` → diff · 연결 이슈/specid · 작업 의도(작업내용·완료조건) · issue-coder가 남긴 **사람확인 항목 체크리스트**.
19
+ - `gh pr view <n> --comments` → diff · 연결 이슈/specid · 작업 의도(작업내용·완료조건).
20
+ - **사람확인 항목은 소통채널 DB**에서 본다: `ch github checklist get <이슈번호>` → 항목별 checked·note.
20
21
  - 필요 시 specid로 `ch specs get <id>`(충돌 해결의 판단 근거).
21
22
 
22
23
  ### 2. 상태 확인
@@ -38,8 +39,9 @@ issue-coder가 낸 PR을 **기본 완전 자율로 main에 머지**한다. 핵
38
39
  - worktree/브랜치 정리.
39
40
  - **이슈 처리(조건부 close)**:
40
41
  - PR/이슈에 머지 완료 코멘트.
41
- - 이슈의 **사람확인 항목 체크리스트에 미체크가 남아있으면 close 금지** → **open 유지** + "머지 완료, 사람확인 대기" 표시.
42
- - 사람확인 항목이 없거나 모두 체크돼 있을 때만 `gh issue close`.
42
+ - `ch github checklist get <이슈번호>` 로 확인 — **미체크 항목이 남아있으면 close 금지** → **open 유지** + "머지 완료, 사람확인 대기" 표시.
43
+ - 항목이 없거나(체크리스트 미등록) 모두 checked일 때만 `gh issue close`.
44
+ - ⚠️ note(수정 방향)가 달렸는데 미체크면 사람이 재작업을 요청한 것 → close하지 말고 issue-coder 재투입 대상(FEEDBACK)으로 남긴다.
43
45
 
44
46
  ### 5. 직렬 재평가
45
47
  - 한 PR 머지 후 main이 바뀌므로, 다음 PR은 **새 main 기준으로 mergeability 재평가**(앞 머지로 새 충돌이 생길 수 있음). **동시 머지 금지**(레이스 방지).
@@ -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.5.1
6
+ version: 1.6.1
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerGithubCommand(program: Command): void;
3
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/commands/github.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+D5D"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.registerGithubCommand = registerGithubCommand;
37
+ const fs = __importStar(require("fs"));
38
+ const client_1 = require("../client");
39
+ const output_1 = require("../output");
40
+ function registerGithubCommand(program) {
41
+ const github = program
42
+ .command('github')
43
+ .description('GitHub 연동 (Sprint 실행 보드 · 사람확인 체크리스트)');
44
+ const checklist = github
45
+ .command('checklist')
46
+ .description('이슈 사람확인 체크리스트 (우리 DB가 SSOT)');
47
+ // ch github checklist get <issueNumber>
48
+ // pr-merger: close 판단(전부 checked?) / issue-coder: note(수정 방향) 읽기
49
+ checklist
50
+ .command('get <issueNumber>')
51
+ .description('이슈 체크리스트 항목 조회 (text·checked·note)')
52
+ .action(async (issueNumber) => {
53
+ const globalOpts = program.opts();
54
+ try {
55
+ const client = (0, client_1.createClient)({ projectId: globalOpts.project });
56
+ const { data } = await client.get(`/github/checklist/${encodeURIComponent(issueNumber)}`);
57
+ (0, output_1.formatOutput)(data, globalOpts);
58
+ }
59
+ catch {
60
+ // Error already handled by client interceptor
61
+ }
62
+ });
63
+ // ch github checklist set <issueNumber> --milestone <m> --items-file <path>
64
+ // issue-coder: 사람확인 항목 일괄 등록 (기존 checked/note는 text 매칭으로 보존)
65
+ checklist
66
+ .command('set <issueNumber>')
67
+ .description('사람확인 항목 일괄 등록 (issue-coder)')
68
+ .requiredOption('--milestone <name>', 'milestone(=Sprint명)')
69
+ .option('--items-file <path>', '항목 파일 (줄당 1개)')
70
+ .option('--items <text...>', '항목 텍스트 (반복 가능)')
71
+ .action(async (issueNumber, options) => {
72
+ const globalOpts = program.opts();
73
+ try {
74
+ let items = [];
75
+ if (options.itemsFile) {
76
+ const raw = fs.readFileSync(options.itemsFile, 'utf-8');
77
+ items = raw
78
+ .split(/\r?\n/)
79
+ .map((l) => l.trim())
80
+ .filter((l) => l.length > 0);
81
+ }
82
+ else if (options.items) {
83
+ items = options.items;
84
+ }
85
+ if (items.length === 0) {
86
+ (0, output_1.printError)('등록할 항목이 없습니다. --items-file 또는 --items 를 지정하세요.');
87
+ return;
88
+ }
89
+ const client = (0, client_1.createClient)({ projectId: globalOpts.project });
90
+ const { data } = await client.put(`/github/checklist/${encodeURIComponent(issueNumber)}`, { milestone: options.milestone, items });
91
+ (0, output_1.printSuccess)(`체크리스트 ${items.length}개 항목을 등록했습니다 (이슈 #${issueNumber}).`);
92
+ (0, output_1.formatOutput)(data, globalOpts);
93
+ }
94
+ catch {
95
+ // Error already handled by client interceptor
96
+ }
97
+ });
98
+ }
99
+ //# sourceMappingURL=github.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/commands/github.ts"],"names":[],"mappings":"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"}
@@ -135,7 +135,7 @@ function registerSpecsCommand(program) {
135
135
  .option('--logic <jsonFile>', '비즈니스 로직 JSON 파일 (SpecLogic)')
136
136
  .option('--db-tables <ids>', '연관 DB 테이블 ID (쉼표 구분)')
137
137
  .option('--work-status <mdFile>', '작업 현황 마크다운 파일')
138
- .addHelpText('after', `\nJSON 파일 형식 예시:\n tasks.json:\n [\n {"id": "", "title": "로그인 폼 구현", "done": false, "estimate": 4, "points": 3, "description": "## 세부\\n- ..."},\n {"id": "", "title": "유효성 검증", "done": true, "completedAt": "2026-05-29T00:00:00Z"}\n ]\n\n ui.json:\n {\n "figmaNodeId": "123:456",\n "route": "/login",\n "file": "src/app/login/page.tsx",\n "access": "public",\n "interactionMap": "## 인터랙션\\n- 입력 → 검증 → 제출"\n }\n\n logic.json:\n {\n "dataFlow": "...",\n "stateTransitions": "...",\n "businessRules": "..."\n }\n\n --work-status <mdFile>: 마크다운 파일 (예: work-status.md)\n`)
138
+ .addHelpText('after', `\nJSON 파일 형식 예시:\n tasks.json:\n [\n {"id": "", "title": "로그인 폼 구현", "done": false, "estimate": 4, "points": 3, "description": "## 세부\\n- ..."},\n {"id": "", "title": "유효성 검증", "done": true, "completedAt": "2026-05-29T00:00:00Z"}\n ]\n\n ui.json:\n {\n "figmaNodeId": "123:456",\n "route": "/login",\n "file": "src/app/login/page.tsx",\n "access": "public",\n "interactionMap": "## 인터랙션\\n- 입력 → 검증 → 제출"\n }\n\n logic.json:\n {\n "dataFlow": "...",\n "dataFlowRefs": [{ "tableId": "tbl_users", "field": "lastLoginAt", "direction": "WRITE", "note": "로그인 시 갱신" }],\n "stateTransitions": "...",\n "businessRules": "...",\n "businessRuleRefs": [{ "tableId": "tbl_users", "field": "lockedUntil" }]\n }\n (SSOT: dataFlowRefs/businessRuleRefs는 db-tables의 tableId/field를 가리키는 구조적 참조 — 스키마 정의는 db-tables에만)\n\n --work-status <mdFile>: 마크다운 파일 (예: work-status.md)\n`)
139
139
  .action(async (options) => {
140
140
  const globalOpts = program.opts();
141
141
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"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"}
@@ -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;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAskBzD"}
1
+ {"version":3,"file":"sqa.d.ts","sourceRoot":"","sources":["../../src/commands/sqa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAolBzD"}
@@ -168,6 +168,7 @@ function registerSqaCommand(program) {
168
168
  .description('SQA 시트에 테스트 항목 추가')
169
169
  .requiredOption('--test <testItem>', '테스트 항목명')
170
170
  .option('--spec <specId>', '관련 기능명세 ID')
171
+ .option('--db-tables <ids>', '검증 대상 DB 테이블 ID (쉼표 구분, SSOT 링크)')
171
172
  .action(async (sheetId, options) => {
172
173
  const globalOpts = program.opts();
173
174
  try {
@@ -179,6 +180,12 @@ function registerSqaCommand(program) {
179
180
  const body = { testItem: options.test };
180
181
  if (options.spec)
181
182
  body.relatedSpec = options.spec;
183
+ if (options.dbTables) {
184
+ body.dbTableRefs = String(options.dbTables)
185
+ .split(',')
186
+ .map((s) => s.trim())
187
+ .filter((s) => s.length > 0);
188
+ }
182
189
  const { data } = await client.post(`/sqa/${sheetId}/items`, body);
183
190
  (0, output_1.formatOutput)(data, globalOpts);
184
191
  (0, output_1.printSuccess)('테스트 항목이 추가되었습니다.');
@@ -236,6 +243,7 @@ function registerSqaCommand(program) {
236
243
  .description('SQA 시트 항목 수정')
237
244
  .option('--test <testItem>', '테스트 항목명')
238
245
  .option('--spec <specId>', '관련 기능명세 ID (빈 값으로 연결 해제)')
246
+ .option('--db-tables <ids>', '검증 대상 DB 테이블 ID (쉼표 구분, 통째 교체)')
239
247
  .action(async (sheetId, itemId, options) => {
240
248
  const globalOpts = program.opts();
241
249
  try {
@@ -244,8 +252,14 @@ function registerSqaCommand(program) {
244
252
  body.testItem = options.test;
245
253
  if (options.spec !== undefined)
246
254
  body.relatedSpec = options.spec;
255
+ if (options.dbTables !== undefined) {
256
+ body.dbTableRefs = String(options.dbTables)
257
+ .split(',')
258
+ .map((s) => s.trim())
259
+ .filter((s) => s.length > 0);
260
+ }
247
261
  if (Object.keys(body).length === 0) {
248
- (0, output_1.printError)('수정할 필드를 지정하세요 (--test, --spec).');
262
+ (0, output_1.printError)('수정할 필드를 지정하세요 (--test, --spec, --db-tables).');
249
263
  return;
250
264
  }
251
265
  if (globalOpts.dryRun) {
@@ -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/dist/index.js CHANGED
@@ -53,6 +53,7 @@ const db_tables_1 = require("./commands/db-tables");
53
53
  const backup_1 = require("./commands/backup");
54
54
  const notifications_1 = require("./commands/notifications");
55
55
  const dashboard_1 = require("./commands/dashboard");
56
+ const github_1 = require("./commands/github");
56
57
  const setup_skill_1 = require("./commands/setup-skill");
57
58
  const check_1 = require("./commands/check");
58
59
  // Read version from package.json
@@ -95,6 +96,7 @@ program
95
96
  (0, backup_1.registerBackupCommand)(program);
96
97
  (0, notifications_1.registerNotificationsCommand)(program);
97
98
  (0, dashboard_1.registerDashboardCommand)(program);
99
+ (0, github_1.registerGithubCommand)(program);
98
100
  (0, setup_skill_1.registerSetupSkillCommand)(program);
99
101
  (0, check_1.registerCheckCommand)(program);
100
102
  // Parse and execute
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,uCAAyB;AAEzB,0CAAsD;AACtD,0CAAsD;AACtD,kDAA8D;AAC9D,4CAAwD;AACxD,gDAA4D;AAC5D,wCAAoD;AACpD,wCAAoD;AACpD,kDAA8D;AAC9D,gDAA4D;AAC5D,sDAAiE;AACjE,wCAAoD;AACpD,oDAA+D;AAC/D,oDAA+D;AAC/D,8CAA0D;AAE1D,4DAAwE;AACxE,oDAAgE;AAChE,wDAAmE;AACnE,4CAAwD;AAExD,iCAAiC;AACjC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC;KAC/C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;KAChC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;KAC/B,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAEtC,+BAA+B;AAC/B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,IAAA,4CAA4B,EAAC,OAAO,CAAC,CAAC;AACtC,IAAA,oCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,uCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAE9B,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,uCAAyB;AAEzB,0CAAsD;AACtD,0CAAsD;AACtD,kDAA8D;AAC9D,4CAAwD;AACxD,gDAA4D;AAC5D,wCAAoD;AACpD,wCAAoD;AACpD,kDAA8D;AAC9D,gDAA4D;AAC5D,sDAAiE;AACjE,wCAAoD;AACpD,oDAA+D;AAC/D,oDAA+D;AAC/D,8CAA0D;AAE1D,4DAAwE;AACxE,oDAAgE;AAChE,8CAA0D;AAC1D,wDAAmE;AACnE,4CAAwD;AAExD,iCAAiC;AACjC,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC;KAC/C,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;KAChC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC;KAC9B,MAAM,CAAC,uBAAuB,EAAE,eAAe,CAAC;KAChD,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;KAC/B,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAEtC,+BAA+B;AAC/B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,0BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,kCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;AAChC,IAAA,qCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;AAC5B,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,mCAAuB,EAAC,OAAO,CAAC,CAAC;AACjC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,IAAA,4CAA4B,EAAC,OAAO,CAAC,CAAC;AACtC,IAAA,oCAAwB,EAAC,OAAO,CAAC,CAAC;AAClC,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,uCAAyB,EAAC,OAAO,CAAC,CAAC;AACnC,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAAC;AAE9B,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,40 +1,40 @@
1
- {
2
- "name": "@decencia/ch-cli",
3
- "version": "1.5.1",
4
- "description": "Decencia Communication Channel CLI",
5
- "main": "dist/index.js",
6
- "bin": {
7
- "ch": "dist/index.js"
8
- },
9
- "files": [
10
- "dist/",
11
- "skill/",
12
- "agent/"
13
- ],
14
- "scripts": {
15
- "build": "node scripts/sync-skill-version.js && tsc",
16
- "dev": "tsc --watch",
17
- "start": "node dist/index.js",
18
- "test": "npm run build && node test/output.printKeyValue.test.js",
19
- "sync-skill-version": "node scripts/sync-skill-version.js",
20
- "prepublishOnly": "npm run build"
21
- },
22
- "keywords": [
23
- "decencia",
24
- "cli",
25
- "communication-channel"
26
- ],
27
- "author": "Decencia Soft",
28
- "license": "ISC",
29
- "dependencies": {
30
- "axios": "^1.15.2",
31
- "chalk": "^4.1.2",
32
- "cli-table3": "^0.6.5",
33
- "commander": "^14.0.3",
34
- "form-data": "^4.0.5"
35
- },
36
- "devDependencies": {
37
- "@types/node": "^25.6.0",
38
- "typescript": "^6.0.3"
39
- }
40
- }
1
+ {
2
+ "name": "@decencia/ch-cli",
3
+ "version": "1.6.1",
4
+ "description": "Decencia Communication Channel CLI",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "ch": "dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist/",
11
+ "skill/",
12
+ "agent/"
13
+ ],
14
+ "scripts": {
15
+ "build": "node scripts/sync-skill-version.js && tsc",
16
+ "dev": "tsc --watch",
17
+ "start": "node dist/index.js",
18
+ "test": "npm run build && node test/output.printKeyValue.test.js",
19
+ "sync-skill-version": "node scripts/sync-skill-version.js",
20
+ "prepublishOnly": "npm run build"
21
+ },
22
+ "keywords": [
23
+ "decencia",
24
+ "cli",
25
+ "communication-channel"
26
+ ],
27
+ "author": "Decencia Soft",
28
+ "license": "ISC",
29
+ "dependencies": {
30
+ "axios": "^1.15.2",
31
+ "chalk": "^4.1.2",
32
+ "cli-table3": "^0.6.5",
33
+ "commander": "^14.0.3",
34
+ "form-data": "^4.0.5"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^25.6.0",
38
+ "typescript": "^6.0.3"
39
+ }
40
+ }
@@ -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.5.1
5
+ version: 1.6.1
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.5.1
13
+ version: 1.6.1
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -40,6 +40,7 @@ ch check
40
40
  2. **진앙 우선 적용 금지** — 진앙(예: DB 컬럼 추가)을 먼저 적용한 뒤 의존 리소스를 고치는 게 자연스러워 보이지만, **계획부터 먼저 합의**한다. 진앙 + 영향 리소스 전체를 한 PR/한 세션 안에 마무리해야 어긋난 상태로 멈추지 않는다.
41
41
  3. **사용자 컨펌 게이트** — §3에서 작성한 영향 매트릭스를 사용자에게 보여주고 동의받은 뒤에야 적용 시작.
42
42
  4. **하나라도 실패하면 롤백 가능 상태 유지** — Run에 SQA 결과가 박힌 후라면 시트 항목 변경은 진행 중 Run에 반영되지 않음(2t-decencia-channel-sqa-v2 §3.5 참조). 변경 도중 멈출 거면 어디서 멈췄는지 workStatus에 [BLOCK] 엔트리로 기록.
43
+ 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 원칙. 전파를 거칠수록 정합성이 좋아지는 방향으로 수렴해야 한다.
43
44
 
44
45
  ---
45
46
 
@@ -79,7 +80,7 @@ ch check
79
80
 
80
81
  | 리소스 | 외부로 노출하는 참조 | 외부에서 참조받는 키 |
81
82
  |---|---|---|
82
- | PRD | Epic 명, spec 제목, 테이블명 텍스트 | (텍스트만 — 자동 링크 없음) |
83
+ | PRD | Epic 명, spec 제목 (기능 관점만 — 스키마/테이블 미포함) | (텍스트만 — 자동 링크 없음) |
83
84
  | spec | `epic`, `dbTableRefs[]` | `relatedSpec` (SQA), spec.dbTableRefs ↔ table.relatedSpecIds |
84
85
  | db-schema (전체) | 테이블 인벤토리 (텍스트) | (텍스트만) |
85
86
  | db-tables (per) | `relatedSpecIds[]` | 다른 테이블의 FK 주석 |
@@ -94,8 +95,8 @@ ch check
94
95
 
95
96
  | # | 진앙 (변경 시작점) | 1차 영향 | 2차 영향 |
96
97
  |---|---|---|---|
97
- | A | **DB 컬럼/인덱스/securityRules** 변경 | `db-tables/<id>` | db-schema 전체(인벤토리/ERD), 해당 테이블 참조 spec(logic), SQA(데이터 검증 TC), PRD 데이터 모델 |
98
- | B | **새 테이블 추가/삭제** | `db-tables` 신규/삭제 | db-schema 인벤토리·ERD, 영향 spec.dbTableRefs, SQA(신규 검증 TC), PRD 데이터 모델 |
98
+ | A | **DB 컬럼/인덱스/securityRules** 변경 | `db-tables/<id>` | db-schema 마이그레이션 노트, 해당 테이블 참조 spec(logic, *이름 참조만*), SQA(데이터 검증 TC). **PRD 무영향**(스키마는 PRD에 없음) |
99
+ | B | **새 테이블 추가/삭제** | `db-tables` 신규/삭제 | db-schema 인벤토리·ERD(테이블 단위), 영향 spec.dbTableRefs, SQA(신규 검증 TC). **PRD 무영향**(새 *기능*이면 그건 C/H 진앙) |
99
100
  | C | **spec 의 UI 요구사항** 변경 | `spec.ui` | 같은 화면 참조하는 다른 spec, SQA(UI 검증 TC), PRD 화면 절 |
100
101
  | D | **spec 의 비즈니스 규칙(logic)** 변경 | `spec.logic` | 의존 spec, SQA(정상/비정상 TC), db-tables(검증 규칙·trigger), PRD 도메인 규칙 절 |
101
102
  | E | **권한/역할 정책** 변경 | 영향 spec.logic, db-tables.securityRules | 모든 영향 spec의 SQA(접근권한 TC), db-schema 보안 일관성 절, PRD 권한 절 |
@@ -141,7 +142,19 @@ TABLE_ID="<targetTableId>"
141
142
  # 이 테이블을 dbTableRefs에 가진 spec
142
143
  jq -r --arg t "$TABLE_ID" '.data[] | select(.dbTableRefs[]? == $t) | .id + "\t" + .title' /tmp/specs.json
143
144
 
144
- # spec들에 연결된 SQA 항목 (시트별로)
145
+ # (구조적 참조) logic.dataFlowRefs / businessRuleRefs 로 이 테이블·컬럼을 가리키는 spec 컬럼 단위 영향까지 정밀 추적
146
+ jq -r --arg t "$TABLE_ID" '
147
+ .data[]
148
+ | select(((.logic.dataFlowRefs // []) + (.logic.businessRuleRefs // []))[]?.tableId == $t)
149
+ | .id + "\t" + .title' /tmp/specs.json
150
+
151
+ # (직접 링크) 이 테이블을 dbTableRefs에 가진 SQA 시트 항목 — relatedSpec 우회 없이 1-hop
152
+ for SHEET in $(jq -r '.data[].id' /tmp/sheets.json); do
153
+ ch sqa get "$SHEET" --json | jq -r --arg t "$TABLE_ID" \
154
+ '.items[] | select((.dbTableRefs // [])[]? == $t) | "[" + "'$SHEET'" + "] " + .id + "\t" + .testItem'
155
+ done
156
+
157
+ # 위 spec들에 연결된 SQA 항목 (relatedSpec 경유 — 직접 링크가 없는 레거시 항목 커버)
145
158
  SPEC_IDS=$(jq -r --arg t "$TABLE_ID" '.data[] | select(.dbTableRefs[]? == $t) | .id' /tmp/specs.json)
146
159
  for SHEET in $(jq -r '.data[].id' /tmp/sheets.json); do
147
160
  ch sqa get "$SHEET" --json | jq -r --argjson s "$(echo $SPEC_IDS | jq -R 'split(" ")')" \
@@ -149,6 +162,8 @@ for SHEET in $(jq -r '.data[].id' /tmp/sheets.json); do
149
162
  done
150
163
  ```
151
164
 
165
+ > 컬럼 단위 정밀 추적: `dataFlowRefs[].field` 로 어느 spec이 바뀐 *컬럼*을 직접 쓰는지까지 좁힐 수 있다(끊긴 참조는 서버가 작성 시점에 이미 거부).
166
+
152
167
  #### C·D (spec 변경) — 이 spec과 같은 화면·테이블·Epic 묶음 spec 찾기
153
168
 
154
169
  ```bash
@@ -199,21 +214,39 @@ PRD에서 변경된 절(예: "권한 모델")을 식별 → 모든 spec/db-table
199
214
  변경 진앙: A (db-tables/users 컬럼 last_login_at 추가)
200
215
 
201
216
  영향 받는 리소스:
202
- | 리소스 | id | 변경 내용 | 우선순위 |
203
- |--------------|-------------------|------------------------------------------------|---------|
204
- | db-tables | users | last_login_at(timestamp, nullable) 추가 | (진앙) |
205
- | db-schema | (전체) | 테이블 인벤토리 users 컬럼 목록 갱신 | High |
206
- | spec | spec-login | logic: "로그인 성공 last_login_at 업데이트" | High |
207
- | spec | spec-user-list | ui: 마지막 로그인 컬럼 추가 | Medium |
208
- | SQA 항목 | sheet-S1.item-12 | "로그인 후 last_login_at 갱신 확인" 신규 추가 | High |
209
- | SQA 항목 | sheet-S1.item-13 | "사용자 목록에 마지막 로그인 컬럼 표시" 신규 추가 | Medium |
210
- | PRD | (전체) | "5. 데이터 모델 > users" 컬럼 목록 갱신 | Medium |
211
-
212
- 총 7개 리소스 변경 예정. 진행할까요?
217
+ | 리소스 | id | 변경 내용 | 우선순위 |
218
+ |--------------|-------------------|---------------------------------------------------|---------|
219
+ | db-tables | users | last_login_at(timestamp, nullable) 추가 — **정의는 여기에만** | (진앙) |
220
+ | db-schema | (전체) | 마이그레이션 노트 1줄 (인벤토리/ERD는 테이블 단위라 무변경) | Low |
221
+ | spec | spec-login | logic.dataFlow에 `users.lastLoginAt` *이름 참조*만 추가 (정의 X) | High |
222
+ | spec | spec-user-list | ui: 마지막 로그인 컬럼 표시 (화면 요구) | Medium |
223
+ | SQA 항목 | sheet-S1.item-12 | "로그인 후 마지막 로그인 시각 갱신 확인" 신규 추가 | High |
224
+ | SQA 항목 | sheet-S1.item-13 | "사용자 목록에 마지막 로그인 표시" 신규 추가 | Medium |
225
+
226
+ 총 6개 리소스 변경 예정. **PRD는 손대지 않음**(스키마는 PRD에 없으므로). 진행할까요?
213
227
  ```
214
228
 
229
+ > ⚠️ 위 spec/SQA 행이 컬럼 *정의*(type/nullable 등)를 담지 않도록 주의 — 이름 참조 + `dbTableRefs` 링크까지만. 매트릭스 작성 단계에서 이미 SSOT를 지킨다.
230
+
215
231
  **사용자 OK 받기 전까지는 어떤 리소스도 수정하지 않는다.**
216
232
 
233
+ ### 3.4 SSOT 위반 동시 수거 (수렴 단계)
234
+
235
+ 영향 범위를 조회하는 김에, 진앙과 무관하더라도 **이미 새어 들어가 있는 스키마 중복을 함께 색출**한다(§0-5 수렴 원칙). 발견하면 매트릭스에 "정리(cleanup)" 행으로 추가해 같은 세션에서 교정한다.
236
+
237
+ ```bash
238
+ # spec.logic 본문에 컬럼 정의가 박혀 있는지 휴리스틱 스캔 (오탐 있으니 사람이 확인)
239
+ # 예: nullable / timestamp / varchar / int8 / enum / index 등 정의성 키워드가 logic에 등장
240
+ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp|varchar|int8|enum|index"; "i")) | .id + "\t" + .title' /tmp/specs.json
241
+
242
+ # PRD에 테이블/컬럼 정의·데이터 모델 절이 남아 있는지
243
+ ch prd get --json | jq -r '.content' | grep -niE "데이터 모델|컬럼|nullable|테이블 구조" || true
244
+ ```
245
+
246
+ - 적발된 정의는 → db-tables로 이관(이미 있으면 삭제만) → spec/PRD에는 이름 참조 + 링크로 치환.
247
+ - PRD에 "데이터 모델/테이블" 절이 남아 있으면 통째 제거([[2t-decencia-channel-prd-v2]] 범위 규칙).
248
+ - 한 번에 다 못 치우면 별도 정리 진앙으로 분리하되, **최소한 진앙이 건드린 테이블 주변의 위반은 이번에 정리**한다.
249
+
217
250
  ---
218
251
 
219
252
  ## 4. 적용 순서 (Dependency-Aware Apply)
@@ -221,23 +254,25 @@ PRD에서 변경된 절(예: "권한 모델")을 식별 → 모든 spec/db-table
221
254
  영향 매트릭스 컨펌 후 다음 순서로 적용 (의존성 위→아래).
222
255
 
223
256
  ```
224
- 1) db-tables(진앙이면) ← 데이터 모델 변경의 최저층
225
- 2) db-schema 전체 문서 (인벤토리/ERD) ← 1) 반영
226
- 3) spec (logic/ui/dbTableRefs/tasks) ← 1·2) 반영
257
+ 1) db-tables(진앙이면) ← 데이터 모델 변경의 최저층 (스키마 정의의 유일한 거처)
258
+ 2) db-schema 전체 문서 (인벤토리/ERD/마이그레이션 노트) ← 1) 반영, 테이블 단위까지만
259
+ 3) spec (logic/ui/dbTableRefs/tasks) ← 1·2) 반영, 컬럼은 이름 참조만
227
260
  4) SQA 시트 항목 ← 3) 의 변경된 동작을 검증
228
- 5) PRD ← 마지막. 전체 narrative 정리
261
+ 5) PRD ← **기능/정책 변화가 있을 때만**. 순수 스키마 변경(A/B)은 PRD 무관
229
262
  6) workStatus ← 각 spec에 "전파 작업 완료" 1줄 추가
230
263
  ```
231
264
 
232
265
  이유:
233
266
  - DB는 모든 위의 진실이라 먼저 확정
234
- - spec은 DB를 참조하므로 DB 다음
267
+ - spec은 DB를 참조하므로 DB 다음 (단, 정의가 아니라 *이름 참조*만)
235
268
  - SQA는 spec의 행동을 검증하므로 spec 다음
236
- - PRD는 narrative 마지막에 정리하는 효율적 (중간에 자주 바꾸면 일관성 깨짐)
269
+ - PRD는 *기능 narrative*만 담는다 스키마/데이터 모델은 PRD에 없으므로 DB만 바뀐 전파에선 PRD를 건드리지 않는다([[2t-decencia-channel-prd-v2]])
237
270
 
238
271
  ### 진앙별 변형
272
+ - **A (DB 컬럼/인덱스/보안규칙)**: 1 → 2(마이그레이션 노트) → 3(이름 참조) → 4 → 6. **5(PRD) 스킵**
273
+ - **B (새 테이블)**: 1 → 2(인벤토리/ERD, 테이블 단위) → 3(dbTableRefs) → 4 → 6. **5(PRD) 스킵** (새 *기능*이면 그건 C/H로 별도)
239
274
  - **C (UI만 변경)**: 1·2 스킵하고 3 → 4 → 5 → 6
240
- - **E (권한)**: 1(securityRules) + 3(logic) 거의 동시 → 2 → 4 → 5 → 6
275
+ - **E (권한)**: 1(securityRules) + 3(logic) 거의 동시 → 2 → 4 → 5(권한 *정책* 절 — 기능이므로 PRD 가능) → 6
241
276
  - **G (Epic 변경)**: 3(spec.epic 재태깅) → 5(PRD Epic 절) → 6
242
277
  - **H (PRD 변경)**: 5(PRD) → 영향 재조사 → 1~4 순차 → 6
243
278
 
@@ -306,13 +341,20 @@ ch db-tables list --json | jq -r '.data[] | "table\t" + .id + "\t" + ((.relatedS
306
341
  # 누락된 spec 있으면 SQA 항목 추가 누락이므로 §4로 복귀
307
342
  ```
308
343
 
309
- ### 6.3 PRD 텍스트 정합 (수동 grep)
344
+ ### 6.3 SSOT 위반 역검사 (스키마가 새어나갔는지)
345
+
346
+ PRD/spec에 **스키마 정의가 들어있으면 위반**이다. 등장하면 안 되는 것을 거꾸로 찾는다.
310
347
 
311
348
  ```bash
312
- # 변경 키워드 (예: "last_login_at") PRD에도 등장하는지
313
- ch prd get --json | jq -r '.content' | grep -n "last_login_at"
349
+ # PRD: 컬럼명/정의·데이터 모델 절이 등장하면 위반 → 제거하고 db-schema로
350
+ ch prd get --json | jq -r '.content' | grep -niE "데이터 모델|컬럼|nullable|테이블 구조|enum" && echo "⚠️ PRD SSOT 위반 — 위 라인 정리 필요" || echo "OK: PRD 클린"
351
+
352
+ # spec.logic: 컬럼 정의성 키워드가 있으면 위반 후보 (이름 참조는 허용, 정의는 금지)
353
+ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|varchar|int8|enum\\b"; "i")) | "⚠️ " + .id + "\t" + .title' /tmp/specs.json
314
354
  ```
315
355
 
356
+ > 적발 시 §3.4 절차로 db-tables 이관 + 링크/이름 참조 치환. 변경 키워드가 db-tables에 제대로 들어갔는지는 `ch db-tables get <id> --json`으로 확인.
357
+
316
358
  ### 6.4 자가 점검 체크리스트
317
359
 
318
360
  - [ ] §3 영향 매트릭스를 작성하고 사용자 컨펌을 받았는가?
@@ -320,7 +362,9 @@ ch prd get --json | jq -r '.content' | grep -n "last_login_at"
320
362
  - [ ] spec.dbTableRefs ↔ db-table.relatedSpecIds 양방향 일치?
321
363
  - [ ] 변경된 모든 spec에 SQA 항목이 갱신·신규 추가됐는가?
322
364
  - [ ] 불필요해진 SQA 항목이 남아 있지 않은가? (delete-item)
323
- - [ ] PRD 데이터 모델/권한 절이 새 상태를 반영하는가?
365
+ - [ ] PRD 권한/기능 절이 새 상태를 반영하는가? (스키마/데이터 모델 절은 애초에 없어야 함)
366
+ - [ ] **SSOT 역검사(§6.3) 통과 — PRD/spec에 컬럼 정의가 새어 들어가 있지 않은가?**
367
+ - [ ] 진앙 주변에서 발견한 기존 SSOT 위반을 §3.4대로 함께 정리했는가?
324
368
  - [ ] 영향 spec들의 workStatus에 [PROPAGATE] 엔트리 1줄씩 남겼는가?
325
369
  - [ ] 진행 중 Run이 있다면 — Run은 시트 항목 변경에 소급 적용되지 않으니 별도로 사용자에게 보고했는가?
326
370
 
@@ -329,6 +373,7 @@ ch prd get --json | jq -r '.content' | grep -n "last_login_at"
329
373
  ## 7. 흔한 함정
330
374
 
331
375
  - **진앙만 바꾸고 끝낸다** — DB만 추가하고 spec/SQA를 갱신 안 함. 이게 모든 어긋남의 출발점.
376
+ - **스키마를 여러 곳에 복제** — 컬럼 정의를 db-tables뿐 아니라 PRD/spec에도 적어두면, 컬럼 하나 바꿀 때 손댈 곳이 3곳이 되고 반드시 한 곳을 빠뜨린다. 정의는 db-tables 한 곳, 나머지는 이름 참조 + 링크(§0-5, §6.3).
332
377
  - **PRD를 먼저 바꾸고 spec/DB를 안 따라간다** — PRD가 최신, 코드/스펙이 옛 상태로 분기.
333
378
  - **SQA를 신규 추가만 하고 기존 항목 삭제를 안 한다** — 사라진 동작을 검증하는 좀비 TC가 영원히 남음.
334
379
  - **진행 중 Run이 있는 상태에서 시트 항목 변경** — Run에 소급 안 됨. Run 끝낸 뒤 변경하거나, Run에는 수동으로 결과를 메모.
@@ -343,12 +388,13 @@ ch prd get --json | jq -r '.content' | grep -n "last_login_at"
343
388
 
344
389
  ### A: DB 컬럼 추가
345
390
  ```
346
- 1) ch db-tables update <id> (컬럼 추가)
347
- 2) ch db-schema set (인벤토리 갱신)
348
- 3) 영향 spec.logic + ui 갱신
391
+ 1) ch db-tables update <id> (컬럼 추가 — 정의는 여기에만)
392
+ 2) ch db-schema set (마이그레이션 노트 1줄; 인벤토리는 테이블 단위라 보통 무변경)
393
+ 3) 영향 spec.logic + ui 갱신 (컬럼은 이름 참조만, 정의 금지)
349
394
  4) SQA 시트 — 신규 검증 항목 add-items
350
- 5) PRD 데이터 모델
395
+ 5) (PRD 스킵 스키마는 PRD에 없음)
351
396
  6) workStatus
397
+ + §6.3 SSOT 역검사로 마무리
352
398
  ```
353
399
 
354
400
  ### C: 화면 요구사항 변경
@@ -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.5.1
11
+ version: 1.6.1
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->
@@ -112,11 +112,19 @@ ch specs update <specId> --work-status ./status.md
112
112
  ```json
113
113
  {
114
114
  "dataFlow": "이메일/비밀번호 → Firebase Auth → ID Token",
115
+ "dataFlowRefs": [
116
+ { "tableId": "tbl_users", "field": "lastLoginAt", "direction": "WRITE", "note": "로그인 시 갱신" }
117
+ ],
115
118
  "stateTransitions": "| 현재 | 입력 | 다음 |\n|---|---|---|\n| idle | submit | loading |",
116
- "businessRules": "- 5회 실패 시 1시간 잠금"
119
+ "businessRules": "- 5회 실패 시 1시간 잠금",
120
+ "businessRuleRefs": [
121
+ { "tableId": "tbl_users", "field": "lockedUntil" }
122
+ ]
117
123
  }
118
124
  ```
119
125
 
126
+ `dataFlowRefs` / `businessRuleRefs`는 **db-tables의 tableId(+선택 field)를 가리키는 구조적 참조**다(SSOT — 스키마 정의는 db-tables에만). 서버가 실존 검증: 없는 tableId/컬럼이면 400. `direction`은 `READ|WRITE|READWRITE`. SQA 항목도 동일 취지로 `--db-tables`(쉼표 구분)를 가진다 — [[2t-decencia-channel-sqa-v2]].
127
+
120
128
  ### dbTableRefs (`--db-tables`)
121
129
 
122
130
  쉼표 구분 ID 목록. 서버에서 각 테이블의 `relatedSpecIds`에도 자동 반영(양방향 동기화).
@@ -8,7 +8,7 @@ description: |
8
8
  (2) DB 테이블 단위로 컬럼·인덱스·보안규칙을 등록·수정할 때,
9
9
  (3) 새 테이블을 추가하면서 전체 인벤토리도 함께 업데이트할 때,
10
10
  (4) spec.dbTableRefs와 양방향 동기화가 필요한 작업 시.
11
- version: 1.5.1
11
+ version: 1.6.1
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->
@@ -39,6 +39,24 @@ ch check
39
39
 
40
40
  ---
41
41
 
42
+ ## 🔒 SSOT 원칙 (이 스킬이 canonical home)
43
+
44
+ **DB 스키마 정보의 Single Source of Truth는 오직 여기다 — `db-schema`(전체 문서) + `db-tables`(per-table).**
45
+ PRD·spec·SQA 등 다른 어떤 산출물에도 스키마를 **정의**하지 않는다. 중복은 곧 불일치이고, 스키마 변경 시 손대야 할 곳이 폭발하기 때문이다.
46
+
47
+ | 구분 | 무엇인가 | 살 수 있는 곳 |
48
+ |---|---|---|
49
+ | **스키마 정의** | 컬럼 `type`·`nullable`·`default`·길이·`enum 허용값`, 인덱스, 보안규칙, 역할 매트릭스 | **`db-tables`(per-table)만** |
50
+ | **스키마 개요** | 테이블 *이름*·한 줄 설명·관계(ERD)·네이밍/정책 | `db-schema`(전체 문서) — 테이블 *단위*까지만, 컬럼 정의는 적지 않음 |
51
+ | **스키마 참조** | "이 테이블/컬럼을 R/W한다"는 *이름 언급* + 링크 | spec·SQA — **이름으로 참조만**, 정의는 절대 금지. [[2t-decencia-channel-spec-v2]] |
52
+ | (없음) | — | **PRD에는 스키마/테이블 목록을 두지 않는다.** 기능 관점만. [[2t-decencia-channel-prd-v2]] |
53
+
54
+ > 경계 한 줄 요약: **전체 문서 = 테이블 단위까지 / per-table = 컬럼 정의 / 그 외 파트 = 이름 참조 + 링크만.**
55
+
56
+ 이 원칙의 전파·정합성 점검은 [[2t-decencia-channel-change-propagation-v2]]가 수렴적으로 강제한다.
57
+
58
+ ---
59
+
42
60
  ## 🚨 BLOCKING: Read-before-Write
43
61
 
44
62
  ```bash
@@ -107,6 +125,7 @@ ch db-tables update <tableId> --columns /tmp/cols.json
107
125
  | products | tbl_products | 상품 카탈로그 | id | [spec:상품 목록] |
108
126
 
109
127
  > 각 tableId의 컬럼·인덱스·보안규칙 상세는 `ch db-tables get <id>` 또는 웹의 DB 스키마 탭 참조.
128
+ > ⚠️ "핵심 키" 컬럼은 ERD 가독성을 위한 **키 컬럼 이름만** 적는다 — `type`·`nullable` 등 **정의는 적지 않는다**(정의는 per-table 문서). 인벤토리는 테이블 단위까지가 경계.
110
129
 
111
130
  ## 5. ERD (관계도)
112
131
 
@@ -297,6 +316,8 @@ description 활용 권장:
297
316
  - 새 테이블을 만들고 전체 스펙 인벤토리 갱신을 잊으면, 문서 읽는 사람이 그 테이블의 존재를 모른다.
298
317
  - 보안 정책을 테이블별 securityRules에만 적고 전체 스펙의 §7에 적지 않으면 일관성 검토가 누락된다.
299
318
  - ERD 관계를 그리지 않고 column description의 "FK"만 적으면, 신규 개발자가 전체 구조를 파악하기 어렵다.
319
+ - **SSOT 위반** — 컬럼 정의(type/nullable/index/보안규칙/enum)를 PRD나 spec에 베껴 넣으면 스키마 변경 때마다 여러 곳을 동시에 고쳐야 하고 반드시 어긋난다. 정의는 per-table 문서에만, 다른 곳은 이름 참조 + 링크. (§SSOT 원칙)
320
+ - 전체 문서 인벤토리에 컬럼/타입을 나열하기 시작하면 per-table 문서와 즉시 중복된다 — 인벤토리는 테이블 *이름·설명·관계*까지만.
300
321
 
301
322
  ---
302
323
 
@@ -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.5.1
5
+ version: 1.6.1
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: 2t-decencia-channel-orchestrator
3
- description: 소통채널 작업의 단일 진입점(디스패처). 사용자 요청을 듣고 6종(bootstrap·terraformer·change-manager·github-issue·issue-coder·pr-merger) 중 적절한 곳으로 라우팅하고, 필요하면 여러 단계를 순차 오케스트레이션한다. 대화형 스킬은 메인 세션에서 Skill로, 자율 에이전트는 Agent로 위임. "소통채널 작업 해줘"·"이거 어떻게 처리하지?"처럼 무엇부터 할지 모를 때, 또는 신규기획/코드편입/기획변경/이슈/구현/머지 어디로든 시작할 때.
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.5.1
5
+ version: 1.6.1
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -22,7 +22,7 @@ ch check
22
22
 
23
23
  # 2t-decencia-channel-orchestrator — 소통채널 작업 디스패처
24
24
 
25
- 소통채널 관련 요청의 **단일 진입점**. 사용자 의도를 분류해 아래 6종 중 알맞은 것으로 보내고, 여러 단계가 필요하면 **순차 오케스트레이션**한다.
25
+ 소통채널 관련 요청의 **단일 진입점**. 사용자 의도를 분류해 아래 7종 중 알맞은 것으로 보내고, 여러 단계가 필요하면 **순차 오케스트레이션**한다.
26
26
  이 스킬은 라우터다 — 실제 작업 디테일은 각 스킬/에이전트가 가지고 있으니 **중복 서술하지 않고 위임만** 한다.
27
27
 
28
28
  ## 핵심 규칙
@@ -40,6 +40,7 @@ ch check
40
40
  | 4 | **이슈만 발행** ("이거 이슈로 등록") | `2t-decencia-channel-github-issue` | 스킬 | `Skill` |
41
41
  | 5 | **이슈를 구현** ("이슈 #N 작업해줘") | `2t-decencia-channel-issue-coder` | 에이전트(자율) | `Agent` |
42
42
  | 6 | **PR을 머지** ("PR #N 머지", "쌓인 PR 정리") | `2t-decencia-channel-pr-merger` | 에이전트(자율) | `Agent` |
43
+ | 7 | **Sprint를 끝까지 실행** ("스프린트 돌려줘", "sprint N 실행" — 이슈 발행→구현→머지→사람확인 반복을 한 번에) | `2t-decencia-channel-sprint-runner` | 스킬(대화형) | `Skill` |
43
44
 
44
45
  ## 판별 신호 (먼저 확인)
45
46
  - cwd(또는 상위)의 **`.ch-project` 존재 여부** → 이미 온보딩된 repo인지.
@@ -56,6 +57,7 @@ ch check
56
57
  ## 순차 오케스트레이션 예시
57
58
  - "이 레포 소통채널에 올리고 스프린트도 짜줘" → 2 terraformer(Agent) → 끝나면 `2t-decencia-channel-sprint-builder-v2`(Skill).
58
59
  - "로그인에 SNS 추가하고 개발까지" → 3 change-manager(Skill, 전파+이슈 발행) → 발행된 이슈로 5 issue-coder(Agent, 병렬) → PR 나오면 6 pr-merger(Agent, 직렬).
60
+ - "스프린트 N 개발 진행해줘"(한 Sprint 통째) → **7 sprint-runner**(Skill). 4(발행)·5(구현)·6(머지)를 **내부에서 묶어** 돌리고 사람확인에서 멈춘다 → 수동으로 4→5→6 나열하지 말고 7로 보낸다.
59
61
  - 한 단계의 산출물(projectId·이슈번호·PR번호)을 다음 단계 입력으로 넘긴다.
60
62
 
61
63
  ## 경계/주의
@@ -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.5.1
10
+ version: 1.6.1
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -27,6 +27,14 @@ ch check
27
27
 
28
28
  # PRD — Epic-Story-Task 매핑 가이드
29
29
 
30
+ ## 🔒 PRD의 범위 — 기능 관점만 (스키마/구현 금지)
31
+
32
+ PRD는 **무엇을 왜 만드는가(기능·가치·범위)**만 다룬다. **데이터 모델·테이블 목록·컬럼·스키마는 PRD에 두지 않는다.**
33
+
34
+ - DB 스키마의 SSOT는 `db-schema`/`db-tables`다 — [[2t-decencia-channel-db-schema-v2]]. PRD에 베껴 넣으면 변경 시 양쪽이 어긋난다.
35
+ - 구현 방식(테이블 구조, 인덱스, 저장 위치 등)을 **암시조차 하지 않는다**. 데이터 요구사항은 "어떤 정보가 필요하다" 수준의 *기능 서술*로만 적고, 정형 모델은 db-schema/spec이 책임진다.
36
+ - 독자가 데이터 모델을 보고 싶으면 DB 스키마 문서(웹 "DB 스키마" 탭)로 간다 — PRD가 그 사본을 들고 있지 않는다.
37
+
30
38
  ## 0. Read-before-Write
31
39
 
32
40
  PRD content는 마크다운 한 덩어리. 일부만 바꿔도 `--content`는 통째 덮어쓰므로:
@@ -54,9 +62,10 @@ ch prd set --content /tmp/prd-edited.md # 2) 통째 교체 (버전
54
62
 
55
63
  ## 4. 비기능 요구사항
56
64
  ## 5. 마일스톤 / 일정
57
- ## 6. 데이터 모델 개요 (테이블 목록 — 자세한 건 db-tables 문서 참조)
58
65
  ```
59
66
 
67
+ > ⚠️ **데이터 모델 절은 두지 않는다.** 테이블/컬럼/스키마는 PRD의 책임이 아니다 — DB 스키마는 [[2t-decencia-channel-db-schema-v2]](db-schema/db-tables)가 SSOT. PRD는 Epic/Story가 다루는 *기능*만 서술한다.
68
+
60
69
  PRD의 각 Epic 절 → spec 작성 시 `--epic` 값으로 그대로 사용.
61
70
  PRD의 각 Story 항목 → 1개 spec(=Story)으로 생성.
62
71
 
@@ -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.5.1
5
+ version: 1.6.1
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.5.1
13
+ version: 1.6.1
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -310,6 +310,7 @@ ch db-tables list --json
310
310
  - WRITE: 기능 결과로 쓰이는 데이터
311
311
  - 조건/비고: 필터·정렬·트랜잭션 여부·인덱스 활용 등
312
312
  - 외부 API 호출도 동일 형식 (소스/대상 = "Firebase Auth", "Toss Payments API" 등)
313
+ - 🔒 컬럼은 **이름으로만** 적는다 — `type`/`nullable` 등 정의는 붙이지 않는다(§6-2 SSOT 규칙). 기계 추적이 필요하면 서술형 대신/병행해 `logic.dataFlowRefs` 구조적 참조 사용(§6-2-1).
313
314
 
314
315
  ### 5-3. stateTransitions — 상태 머신 표
315
316
 
@@ -347,6 +348,7 @@ ch db-tables list --json
347
348
  - 1 규칙 = 1 불릿
348
349
  - 임계값·기간·조건을 구체 수치로
349
350
  - 큰 규칙은 별도 spec 분리 가능
351
+ - 🔒 enum/상태값의 **허용값 집합 정의는 적지 않는다**(db-tables가 SSOT) — 그 값을 *이용한 규칙*만 적는다(§6-2). 규칙이 거는 테이블·필드는 `logic.businessRuleRefs`로 구조화(§6-2-1).
350
352
 
351
353
  ---
352
354
 
@@ -358,15 +360,45 @@ ch db-tables list --json
358
360
  2. spec 생성/수정 시 `--db-tables tbl_users,tbl_sessions` 로 ID를 연결한다.
359
361
  3. 서버가 `spec.dbTableRefs` ↔ `table.relatedSpecIds` **양방향 동기화**.
360
362
 
361
- ### 6-2. spec vs db-tables 분담
363
+ ### 6-2. spec vs db-tables 분담 — 🔒 스키마 정의 금지, 이름 참조만
362
364
 
363
365
  | 위치 | 내용 |
364
366
  |---|---|
365
- | **spec** | "이 화면/기능이 어느 테이블의 어떤 컬럼을 R/W하는가" — `logic.dataFlow` 표에 기술 |
366
- | **db-tables** | 컬럼 정의, 인덱스, 보안 규칙, 역할 매트릭스 |
367
+ | **spec** | "이 화면/기능이 어느 테이블의 어떤 컬럼을 R/W하는가" — `logic.dataFlow` 표에 **이름으로 참조만** |
368
+ | **db-tables** | 컬럼 정의, 인덱스, 보안 규칙, 역할 매트릭스 (스키마의 SSOT) |
367
369
 
368
370
  spec.dbTableRefs는 **포인터만**. 스키마 본문은 [[2t-decencia-channel-db-schema-v2]] 참조.
369
371
 
372
+ **SSOT 규칙 — spec에 다음을 적지 않는다(=db-tables에만 산다):**
373
+ 컬럼 `type`·`nullable`·`default`·길이·`enum 허용값`, 인덱스, 보안규칙/RLS 본문, 역할 매트릭스.
374
+
375
+ - spec은 컬럼·테이블을 **이름으로 가리키기만** 한다. 예: dataFlow에 `users.lastLoginAt`이라고 *언급*은 하되, "timestamp, nullable" 같은 *정의*는 붙이지 않는다 — 정의가 궁금하면 db-tables로 간다.
376
+ - enum/상태값의 **정의**(허용값 집합)는 db-tables. businessRules는 그 값을 이용한 **규칙**만 적는다. (예: ❌ "status는 draft|published|archived" / ⭕ "published 상태에서만 외부 노출")
377
+ - 같은 정보를 db-tables와 spec 양쪽에 쓰면 스키마 변경 시 반드시 어긋난다. 의심되면 정의는 지우고 `dbTableRefs` 링크로 대체.
378
+
379
+ ### 6-2-1. 필드 단위 구조적 참조 (`logic.dataFlowRefs` / `logic.businessRuleRefs`)
380
+
381
+ 이름 참조를 **기계가 추적 가능하게** 구조화한 필드. `logic` 안에 둔다.
382
+
383
+ ```json
384
+ {
385
+ "dataFlow": "...(서술형 마크다운, 선택)...",
386
+ "dataFlowRefs": [
387
+ { "tableId": "tbl_users", "field": "lastLoginAt", "direction": "WRITE", "note": "로그인 성공 시 갱신" },
388
+ { "tableId": "tbl_sessions", "direction": "READ" }
389
+ ],
390
+ "businessRules": "...(서술형, 선택)...",
391
+ "businessRuleRefs": [
392
+ { "tableId": "tbl_users", "field": "lockedUntil" }
393
+ ]
394
+ }
395
+ ```
396
+
397
+ - `tableId` **필수** — db-tables의 실제 id. `field` 선택(컬럼명). `direction` `READ|WRITE|READWRITE`(dataFlow용). `note` 선택.
398
+ - 서버가 **실존 검증**: 없는 tableId → 400, 컬럼 정의가 있는 테이블에 없는 field → 400(끊긴 참조 차단).
399
+ - CLI는 `--logic logic.json`으로 통째 전달(별도 플래그 없음). 웹은 spec 상세의 DB 섹션에서 칩+피커로 편집.
400
+ - **여전히 정의는 금지** — refs는 가리키기만 한다. type/nullable/enum 허용값 등은 db-tables.
401
+
370
402
  ### 6-3. 신규 spec에서 신규 테이블이 필요한 경우 순서
371
403
 
372
404
  ```bash
@@ -444,6 +476,7 @@ spec 작성 시점이 아니라 **개발 진행 중에 누적**되는 일지(`sp
444
476
  - `dbTableRefs`를 손으로 JSON에 넣어도 서버가 무시 (CLI `--db-tables` 또는 웹 picker만 사용).
445
477
  - 항구적 작업 정의는 `tasks[].description`. 시간축 진행 메모는 workStatus(별도 스킬).
446
478
  - estimate(시간)는 사용하지 않음. points만 사용.
479
+ - **스키마 정의를 logic에 베껴 넣기** — 컬럼 type/nullable/index/보안규칙/enum 허용값은 db-tables에만. spec은 이름 참조 + `dbTableRefs` 링크만(§6-2).
447
480
 
448
481
  ---
449
482
 
@@ -7,7 +7,7 @@ description: |
7
7
  (1) sprint를 구성할 때,
8
8
  (2) Story Point 합산 기반 sprint 용량 산정이 필요할 때,
9
9
  (3) Epic·도메인·의존성을 함께 고려해 spec을 sprint에 배분할 때.
10
- version: 1.5.1
10
+ version: 1.6.1
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: 2t-decencia-channel-sprint-runner
3
+ description: 특정 Sprint를 끝까지 실행(run)하는 오케스트레이터 스킬. Sprint의 spec을 시드로 이슈 목록을 분해·발행(github-issue)하고, GitHub milestone에 묶인 이슈를 상태별로 분류해 issue-coder(병렬)·pr-merger(직렬)로 전진시킨 뒤, 사람확인이 필요한 곳에서 멈춘다. 사람이 확인·체크 후 재호출하면 멱등하게 이어간다(반복 루프). "스프린트 돌려줘"·"sprint N 실행"·"이 스프린트 개발 진행해줘" 류 요청 시.
4
+ allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
5
+ version: 1.6.1
6
+ ---
7
+
8
+ <!-- ch-version-gate -->
9
+ ## ⚠️ 시작 전 필수 — 버전 게이트 (생략 금지)
10
+
11
+ 이 스킬로 **어떤 작업이든 수행하기 전에 가장 먼저** 아래를 실행한다:
12
+
13
+ ```bash
14
+ ch check
15
+ ```
16
+
17
+ - exit code 0(통과)이 **아니면 즉시 중단**한다. 출력에 안내된 업데이트 명령(`npm install -g @decencia/ch-cli@latest` 또는 `ch setup-skill`)을 사용자에게 전달하고, 갱신이 끝나기 전까지 **이 스킬의 어떤 단계도 진행하지 않는다.**
18
+ - `ch`가 미설치/미인증이어도 먼저 `ch check`를 시도한다. (네트워크 불가 시 ch check는 통과시키되 경고를 남긴다.)
19
+
20
+ 구버전 스킬·CLI 사용을 막기 위한 게이트다. 건너뛰지 말 것.
21
+
22
+
23
+ # 2t-decencia-channel-sprint-runner — Sprint 실행 오케스트레이터
24
+
25
+ 하나의 Sprint를 **이슈 발행 → 구현 → 머지 → 사람확인 → 반복**까지 끝까지 굴리는 스킬.
26
+ 이 스킬은 **라우터/오케스트레이터**다 — 실제 발행은 `github-issue` 스킬, 구현은 `issue-coder` 에이전트, 머지는 `pr-merger` 에이전트가 한다. **중복 서술하지 않고 위임만** 한다.
27
+
28
+ 핵심 성질:
29
+ - **자체 상태를 두지 않는다.** GitHub(이슈 open/close·PR·milestone)가 SSOT. 매 호출마다 현재 상태를 읽어 **한 칸씩 전진**시키는 멱등 스킬.
30
+ - **사람확인이 끼는 대화형**이라 메인 세션에서 돈다(자율 에이전트로 던지지 않음). 단, 구현·머지 같은 **자율 작업은 `Agent`로 위임**.
31
+
32
+ ## 입력
33
+ - **Sprint 식별자**: 소통채널 `sprintId`(권장) 또는 GitHub `milestone` 이름.
34
+ - 실행 cwd = 대상 코드 repo (`.ch-project`로 projectId 확보).
35
+
36
+ ## 전제 (시작 시 확인)
37
+ - 인증: `gh auth status`, `ch auth status` — 미인증이면 중단하고 안내(`gh auth login` / `ch auth login`).
38
+ - `.ch-project`에서 `projectId` 확보.
39
+ - **이 스킬은 로컬 `gh`(사람 인증)로 동작한다 — PAT 불필요.** (PAT는 대시보드[ch-api] 전용)
40
+
41
+ ## 공통 규약 (다른 컴포넌트와 공유 — 깨지면 안 됨)
42
+ | 규약 | 값 |
43
+ |---|---|
44
+ | Sprint ↔ 이슈 묶음 | **GitHub `milestone`** (sprint 1개 = milestone 1개) |
45
+ | 이슈 ↔ spec | 이슈 본문 `## 관련 명세` specid 백링크 (**없어도 됨** = 인프라 등 비-spec 작업) |
46
+ | 사람확인 항목 | **소통채널 DB가 SSOT** — issue-coder가 `ch github checklist set` 으로 등록, 사람이 웹 실행 탭에서 체크·메모, pr-merger가 `ch github checklist get` 으로 close 판단 (GitHub 코멘트 아님) |
47
+
48
+ ---
49
+
50
+ ## 절차
51
+
52
+ ### 1. 이슈 목록 구성 (분해) — ⚠️ spec 1:1 매핑이 아니다
53
+ - `ch sprints get <id>` → 이 Sprint에 묶인 **spec 목록(시드)**.
54
+ - 시드만으로는 불완전하다(spec은 기획이라 인프라 구축 등 실행작업이 빠진다). → **spec에 없는 실행작업을 사용자와 짧게 확정해 보강**한다.
55
+ - 모호하면 추측하지 말고 **사용자에게 한 번 물어** 목록을 확정.
56
+ - 결과 = "이 Sprint를 끝내기 위한 완전한 할일 목록".
57
+
58
+ ### 2. milestone 준비 + 멱등 발행
59
+ - 이 Sprint의 **milestone 확보**: `gh api repos/{owner}/{repo}/milestones`로 조회, 없으면 생성(이름 = Sprint명/`sprint-<id>`).
60
+ - **멱등 체크(중복 발행 방지)**: `gh issue list --milestone "<m>" --state all` 로 기존 이슈 수집 → 각 할일이 **이미 이슈로 있는지**(제목 또는 `## 관련 명세` specid로 매칭) 확인.
61
+ - **없는 것만** 발행: `2t-decencia-channel-github-issue` 스킬을 **`Skill`로 호출**(표준 양식: 작업내용·관련명세 백링크·완료조건). 발행 후 **각 이슈에 milestone 지정**(`gh issue edit <n> --milestone "<m>"`).
62
+ - ⚠️ github-issue 스킬은 중복방지를 안 한다 → **무엇을 발행할지(=없는 것만)는 이 스킬이 책임진다.**
63
+
64
+ ### 3. 상태 분류
65
+ `gh issue list --milestone "<m>" --state all` + 각 이슈의 연결 PR/CI를 보고 **이슈별 상태**를 판정한다.
66
+
67
+ | 상태 | 판별 | 다음 동작 |
68
+ |---|---|---|
69
+ | `TODO` | open + 연결 PR 없음 | issue-coder (병렬) |
70
+ | `IN_PR` green | open PR + `gh pr checks` green + 충돌 없음 | pr-merger (직렬) |
71
+ | `IN_PR` red/conflict | CI red 또는 모호한 충돌 | 블로커 — 사람 보고(머지 금지) |
72
+ | `AWAIT_HUMAN` | PR 머지됨 + 이슈 open + **체크리스트 미체크 남음**(`ch github checklist get`) | **사람 게이트 — 멈춤** |
73
+ | `FEEDBACK` | 미체크 항목에 **note(수정 방향)가 달림** 또는 이슈 재오픈 | issue-coder 재투입 (병렬, note 반영) |
74
+ | `DONE` | 이슈 close | 완료 카운트 |
75
+
76
+ ### 4. 자동 전진 (디스패치)
77
+ - **병렬 — `Agent`**: `TODO` + `FEEDBACK` 이슈 각각을 `2t-decencia-channel-issue-coder`로 위임(각자 worktree 격리, 독립 이슈). 여러 개면 **한 메시지에 Agent 여러 개**로 동시 실행.
78
+ - **직렬 — `Agent`**: `IN_PR(green)` 이슈를 `2t-decencia-channel-pr-merger`로 **한 번에 하나씩** 위임(머지하면 main 바뀜 → 다음 PR mergeability 재평가, 레이스 방지).
79
+ - 코더가 PR을 만들면 다음 호출 때 `IN_PR`로 잡혀 머저로 넘어간다(단계 사이 배리어는 GitHub 상태가 대신함).
80
+
81
+ ### 5. 사람 게이트 + 리포트
82
+ 더 자동 전진할 게 없으면 멈추고 **현황을 요약 보고**한다:
83
+ - ✅ **DONE** n개
84
+ - ⏳ **AWAIT_HUMAN** m개 — 이슈 링크 + 미체크 항목(사람확인 체크리스트) 바로 확인할 수 있게
85
+ - ⛔ **블로커** k개 — CI red/모호한 충돌(어느 이슈·PR인지)
86
+ - 안내: **"확인·체크(또는 피드백) 후 다시 이 스킬을 같은 Sprint로 호출하면 이어서 진행합니다."**
87
+
88
+ ### 6. 반복 (멱등 재호출)
89
+ - 사람이 확인·체크하거나 피드백을 남긴 뒤 **재호출** → 1~5 반복.
90
+ - 이미 끝난 건(DONE, 머지된 PR, 발행된 이슈)은 자연히 **skip**된다(상태 SSOT = GitHub). 새로 생긴 `FEEDBACK`만 다시 흐른다.
91
+ - **종료 조건**: milestone의 모든 이슈가 `DONE`.
92
+
93
+ ---
94
+
95
+ ## 병렬/직렬 규칙 (재확인)
96
+ - **issue-coder = 병렬**(독립 이슈, worktree 격리).
97
+ - **pr-merger = 직렬**(main 변동 → 다음 PR 재평가, 동시 머지 금지).
98
+ - 한 호출에서 **코딩(병렬)을 먼저 띄우고, 이미 green인 PR을 머지(직렬)** 하는 식으로 섞어도 되지만, **같은 이슈에 코더와 머저를 동시에 걸지 않는다.**
99
+
100
+ ## 경계 / 주의
101
+ - 이 스킬은 **분해·분류·위임·보고만** 한다. 구현/머지/리뷰 디테일은 각 에이전트가 책임(재SQA·전면 재리뷰 안 함).
102
+ - **이슈 close·main push는 하지 않는다** — issue-coder는 PR까지, pr-merger가 조건부 close(사람확인 미체크면 open 유지). 이 스킬도 그 경계를 침범하지 않는다.
103
+ - **무한루프 금지**: 블로커(CI red·모호한 충돌·요구 모호)는 **자동 해결 시도하지 말고 사람에게 핸드오프**.
104
+ - 배포는 master 머지 시 GitHub Actions 자동 — 이 스킬은 **수동 배포/머지 트리거를 하지 않는다**.
105
+ - 공통 함정(전 컴포넌트 공유): ch CLI content는 마크다운+CRLF 정제, spec 필드 단수+복수 동시, `--json`/`specs get` 윈도우 빈출력 시 PowerShell `Out-File` 우회 — 위임 대상이 이미 준수.
106
+
107
+ ## 다른 컴포넌트와의 관계
108
+ - **대시보드(web "실행" 탭 + ch-api `github` 모듈)** 는 같은 규약(milestone=sprint, 체크리스트 포맷)을 공유하는 **관측·사람게이트 UI**다. 이 스킬은 손발, 대시보드는 눈 — 서로 GitHub 상태를 통해 맞물린다(코드 공유 없음).
@@ -12,7 +12,7 @@ description: |
12
12
  (4) 명세 영역별 완성형 TC 번들(퍼블리싱/프론트/백엔드 디센시아 운영 관점 포함)을 가져다 쓸 때,
13
13
  (5) 새 명세 작업 중 반복 패턴을 발견해 영역별 번들을 보강할 때,
14
14
  (6) Sprint 종료 전 spec별 SQA 통과 여부를 점검할 때.
15
- version: 1.5.1
15
+ version: 1.6.1
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -70,15 +70,15 @@ spec.tasks 작성 시 다음 패턴 권장:
70
70
  시트 항목은 시트 문서의 `items[]` 배열에 임베드된다. 항목 단위 CRUD가 모두 CLI로 지원된다(ch-cli 1.3.3+).
71
71
 
72
72
  ```bash
73
- # 단건 추가 ( --spec 생략 가능 → 미연결 항목 )
74
- ch sqa add-item <sheetId> --test "잘못된 비밀번호 5회 시 잠금" --spec <specId>
73
+ # 단건 추가 ( --spec 생략 가능 → 미연결 항목, --db-tables 로 검증 대상 테이블 링크 )
74
+ ch sqa add-item <sheetId> --test "잘못된 비밀번호 5회 시 잠금" --spec <specId> --db-tables tbl_users
75
75
 
76
76
  # 일괄 추가 — JSON 배열 또는 { "items": [...] }
77
- # items.json: [ { "testItem": "...", "relatedSpec": "<specId>" }, { "testItem": "..." } ]
77
+ # items.json: [ { "testItem": "...", "relatedSpec": "<specId>", "dbTableRefs": ["tbl_users"] }, { "testItem": "..." } ]
78
78
  ch sqa add-items <sheetId> --file items.json
79
79
 
80
- # 항목 수정 ( --test / --spec 중 지정한 것만 변경, --spec "" 로 연결 해제 )
81
- ch sqa update-item <sheetId> <itemId> --test "수정된 항목명" --spec <specId>
80
+ # 항목 수정 ( --test / --spec / --db-tables 중 지정한 것만 변경, --spec "" 로 연결 해제 )
81
+ ch sqa update-item <sheetId> <itemId> --test "수정된 항목명" --spec <specId> --db-tables tbl_users,tbl_sessions
82
82
 
83
83
  # 항목 삭제 ( 삭제 후 order 1..N 자동 재정렬 )
84
84
  ch sqa delete-item <sheetId> <itemId>
@@ -89,6 +89,7 @@ ch sqa reorder-items <sheetId> --file order.json # ["id1","id2",...] 또는 {
89
89
  ```
90
90
 
91
91
  - `<itemId>`는 `ch sqa get <sheetId> --json`의 `items[].id`. 항상 최신값을 먼저 확보(§0).
92
+ - **`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 우회 불필요).
92
93
  - 시트 항목 CRUD는 **시트 템플릿**을 바꾼다. 이미 `start-run`으로 스냅샷된 진행 중 Run에는 소급 적용되지 않는다.
93
94
  - 항목 결과(Pass/Fail) 입력은 Run 쪽: `ch sqa check <runId> <itemId> --result yes|no --note ...` / `check-bulk`.
94
95
 
@@ -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.5.1
11
+ version: 1.6.1
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->