@decencia/ch-cli 1.8.2 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-issue-coder
3
3
  description: GitHub issue 1개를 입력으로 받아 끝까지 처리하는 코딩 에이전트. 이슈 읽기 → 소통채널 spec/SQA 확인 → git worktree+브랜치에서 구현 → 자체 소프트리뷰 루프 → unittest + SQA → PR 생성 → 소통채널 workStatus·이슈 기록. 다수 병렬 실행 전제, PR까지만(머지·base 브랜치 직접 push·이슈 close는 사람).
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
5
  model: opus
6
- version: 1.8.2
6
+ version: 1.11.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -28,6 +28,7 @@ GitHub issue 1개를 입력으로 받아 **구현 → 자체검토 → 검증
28
28
  ### 2. 명세·SQA 읽기
29
29
  - 이슈에서 얻은 specid로 `ch specs get <id>` (Windows에서 빈 출력이면 PowerShell `Out-File`로 우회).
30
30
  - 해당 spec의 **SQA 목록** 확인(= 검증 기준). specid가 없으면 이슈 내용만으로 진행.
31
+ - **상태머신 컬럼**: spec의 dataFlow ref가 상태 컬럼(`field == db-table stateMachine.columnRef`)을 건드리면, `ch specs get`에 인라인된(또는 `ch db-tables get <tableId>`로 읽은) 그 머신의 **유효 상태·전이·`toState`**대로 구현한다 — 임의 상태값이나 미정의 전이를 만들지 않는다.
31
32
 
32
33
  ### 3. worktree + 브랜치 생성 후 구현
33
34
  - 입력으로 받은 base 브랜치(없으면 위에서 감지한 기본 브랜치)를 최신화한 다음 그 브랜치에서 분기한다: `git fetch origin <base> && git worktree add ../<repo>-wt/issue-<num> -b issue-<num> origin/<base>`. 이후 모든 작업은 이 worktree 안에서 한다. worktree는 작업이 끝나면 버리는 임시 공간이고, 영속되는 산출물은 원격의 이슈 브랜치와 PR이다.
@@ -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.8.2
6
+ version: 1.11.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-terraformer
3
3
  description: 소통채널을 쓰지 않던 기존 코드베이스를 역분석하여 소통채널 프로젝트로 편입(terraforming)하는 자율 에이전트. 코드가 single source of truth — 코드를 읽어 DB 스키마 → 기능명세(spec) → PRD를 bottom-up으로 역생성한다(SQA 제외). 대량 분석은 서브에이전트 병렬, 코드로 못 메우는 의도는 [추정]으로 채우고 "사람확인 질문 리스트"를 산출물로 남긴다. PR/머지·이슈 발행은 하지 않음.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash, Agent
5
5
  model: opus
6
- version: 1.8.2
6
+ version: 1.11.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -24,7 +24,7 @@ version: 1.8.2
24
24
  - cwd(또는 상위)에 `.ch-project`가 **있으면 이미 온보딩된 repo** → 중단하고 "갱신(누락분만) 모드로 진행할지" 사용자에게 확인.
25
25
 
26
26
  ### 1. 프로젝트 생성
27
- - `ch projects create` → **schema 설정**(⚠️ 빠지면 웹 UI가 빈 칼럼) + **specVersion=2**(Epic-Story-Task).
27
+ - `ch projects create` → **schema 설정**(⚠️ 빠지면 웹 UI가 빈 칼럼) + **specVersion=2**(Epic-Story, 규모는 spec 단위 Story Point).
28
28
  - cwd에 `.ch-project`(`{"projectId":"..."}`) 기록. (= bootstrap step0과 동일)
29
29
 
30
30
  ### 2. 코드 역분석 (자율 · 서브에이전트 병렬)
@@ -38,7 +38,10 @@ version: 1.8.2
38
38
  1. **DB 스키마** — `2t-decencia-channel-db-schema-v2`
39
39
  - 코드의 모델/마이그레이션/컬렉션 → db-schema(ERD·정책·인벤토리) + db-tables(컬럼·인덱스·보안규칙). 실제 코드 기준으로 채운다.
40
40
  2. **기능명세(spec=Story)** — `2t-decencia-channel-spec-v2`
41
- - 화면/엔드포인트별 Story. `ui`=실제 route/file 경로 매핑, `logic`=코드에서 추출한 동작, `dbTableRefs`=2에서 만든 테이블과 연결. tasks이미 구현된 것이라 비우거나 회고용으로만.
41
+ - 화면/엔드포인트별 Story. `ui`=실제 route/file 경로 매핑, `dbTableRefs`=1에서 만든 테이블과 연결. StoryTask로 쪼개지 않는다 `--tasks`는 생성하지 말고, 규모가 필요하면 `--points`(Story Point)만 산출한다(역분석이라 생략 가능).
42
+ - `logic.dataFlowScenarios`(신구조)로 역생성한다: 코드의 각 동작 경로(핸들러/유스케이스)를 **시나리오 1개**로, 그 안의 데이터 이동·변형을 **순서 있는 단계(steps)**로, 각 단계가 읽거나 쓰는 테이블·컬럼을 단계 `refs`(`{tableId, field?, direction?, note?}`)로 가리킨다.
43
+ - 각 단계의 `description`은 코드에서 읽어낸 동작을 **완결 문장**으로 적는다(필드명·화살표 나열 금지, "누가/어디에" 소제목도 금지). 예: `요청이 들어오면 사용자 문서를 조회해 권한을 확인한 뒤 주문 상태를 확정으로 갱신한다.`
44
+ - 레거시 `dataFlowRefs`/`businessRuleRefs`(logic 최상위 배열)는 **생성하지 않는다** — 컬럼 참조는 해당 단계의 `refs`로만 둔다.
42
45
  3. **PRD** — `2t-decencia-channel-prd-v2`
43
46
  - Epic/스토리 narrative 정리. 코드에서 역추출 + **제품 의도/"왜"는 코드로 안 보이므로 `[추정]` 마킹**(견적/유지보수 항목 제외).
44
47
 
@@ -1 +1 @@
1
- {"version":3,"file":"db-tables.d.ts","sourceRoot":"","sources":["../../src/commands/db-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoN9D"}
1
+ {"version":3,"file":"db-tables.d.ts","sourceRoot":"","sources":["../../src/commands/db-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuO9D"}
@@ -35,8 +35,8 @@ function registerDbTablesCommand(program) {
35
35
  (0, output_1.printInfo)('등록된 DB 테이블이 없습니다.');
36
36
  return;
37
37
  }
38
- // 기본 테이블 출력: name / id / columns수 / indexes수 / 보안규칙 요약 / 연관 spec수
39
- (0, output_1.printTable)(['name', 'id', 'columns', 'indexes', 'security', 'specs'], items.map((t) => {
38
+ // 기본 테이블 출력: name / id / columns수 / indexes수 / 상태머신수 / 보안규칙 요약 / 연관 spec수
39
+ (0, output_1.printTable)(['name', 'id', 'columns', 'indexes', 'stateMachines', 'security', 'specs'], items.map((t) => {
40
40
  const sec = t?.securityRules;
41
41
  const secLabel = sec
42
42
  ? `${sec.type ?? ''}${sec.summary ? ` — ${sec.summary}` : ''}`
@@ -46,6 +46,7 @@ function registerDbTablesCommand(program) {
46
46
  String(t?.id ?? ''),
47
47
  String(Array.isArray(t?.columns) ? t.columns.length : 0),
48
48
  String(Array.isArray(t?.indexes) ? t.indexes.length : 0),
49
+ String(Array.isArray(t?.stateMachines) ? t.stateMachines.length : 0),
49
50
  secLabel,
50
51
  String(Array.isArray(t?.relatedSpecIds) ? t.relatedSpecIds.length : 0),
51
52
  ];
@@ -84,7 +85,8 @@ function registerDbTablesCommand(program) {
84
85
  .requiredOption('--columns <jsonFile>', '컬럼 정의 JSON 파일 (DbColumn[])')
85
86
  .option('--indexes <jsonFile>', '인덱스 정의 JSON 파일 (DbIndex[])')
86
87
  .option('--security <jsonFile>', '보안규칙 JSON 파일 (SecurityRules)')
87
- .addHelpText('after', `\nJSON 파일 형식 예시:\n columns.json:\n [\n {"name": "id", "type": "string", "nullable": false, "description": "PK"},\n {"name": "email", "type": "string", "nullable": false, "default": "''"}\n ]\n\n indexes.json:\n [\n {"name": "idx_email", "fields": ["email"], "unique": true}\n ]\n\n security.json:\n {\n "type": "firestore",\n "summary": "본인 문서만 R/W",\n "content": "match /users/{uid} {\\n allow read, write: if request.auth.uid == uid;\\n}",\n "roles": [\n {"role": "admin", "read": true, "write": true, "delete": true},\n {"role": "user", "read": "own", "write": "own", "delete": false}\n ]\n }\n`)
88
+ .option('--state-machine <jsonFile>', '엔티티 상태머신 JSON 파일 (StateMachine[])')
89
+ .addHelpText('after', `\nJSON 파일 형식 예시:\n columns.json:\n [\n {"name": "id", "type": "string", "nullable": false, "description": "PK"},\n {"name": "email", "type": "string", "nullable": false, "default": "''"}\n ]\n\n indexes.json:\n [\n {"name": "idx_email", "fields": ["email"], "unique": true}\n ]\n\n security.json:\n {\n "type": "firestore",\n "summary": "본인 문서만 R/W",\n "content": "match /users/{uid} {\\n allow read, write: if request.auth.uid == uid;\\n}",\n "roles": [\n {"role": "admin", "read": true, "write": true, "delete": true},\n {"role": "user", "read": "own", "write": "own", "delete": false}\n ]\n }\n\n state-machines.json (엔티티 생애주기 — 컬럼값이 상태인 경우):\n [\n {\n "name": "주문 상태",\n "columnRef": "status",\n "states": [\n {"value": "pending", "label": "대기", "initial": true},\n {"value": "paid", "label": "결제완료"},\n {"value": "delivered", "label": "배송완료", "terminal": true}\n ],\n "transitions": [\n {"from": "pending", "to": "paid", "event": "pay"},\n {"from": "paid", "to": "delivered", "event": "deliver", "specRef": "ORDER-002"}\n ]\n }\n ]\n`)
88
90
  .action(async (options) => {
89
91
  const globalOpts = program.opts();
90
92
  try {
@@ -124,6 +126,15 @@ function registerDbTablesCommand(program) {
124
126
  return;
125
127
  }
126
128
  }
129
+ if (options.stateMachine) {
130
+ try {
131
+ body.stateMachines = (0, utils_1.readJsonFile)(options.stateMachine, '--state-machine');
132
+ }
133
+ catch (e) {
134
+ (0, output_1.printError)(e?.message ?? String(e));
135
+ return;
136
+ }
137
+ }
127
138
  const client = (0, client_1.createClient)({ projectId: globalOpts.project });
128
139
  const { data } = await client.post('/db-tables', body);
129
140
  (0, output_1.formatOutput)(data, globalOpts);
@@ -142,6 +153,7 @@ function registerDbTablesCommand(program) {
142
153
  .option('--columns <jsonFile>', '컬럼 정의 JSON 파일 (DbColumn[])')
143
154
  .option('--indexes <jsonFile>', '인덱스 정의 JSON 파일 (DbIndex[])')
144
155
  .option('--security <jsonFile>', '보안규칙 JSON 파일 (SecurityRules)')
156
+ .option('--state-machine <jsonFile>', '엔티티 상태머신 JSON 파일 (StateMachine[])')
145
157
  .addHelpText('after', `\nJSON 파일 형식은 'ch db-tables create --help' 참고. 지정한 플래그만 PATCH로 전송되어 미지정 필드는 보존됩니다.\nrelatedSpecIds는 직접 수정할 수 없습니다(서버 자동 관리).\n`)
146
158
  .action(async (tableId, options) => {
147
159
  const globalOpts = program.opts();
@@ -182,6 +194,15 @@ function registerDbTablesCommand(program) {
182
194
  return;
183
195
  }
184
196
  }
197
+ if (options.stateMachine) {
198
+ try {
199
+ body.stateMachines = (0, utils_1.readJsonFile)(options.stateMachine, '--state-machine');
200
+ }
201
+ catch (e) {
202
+ (0, output_1.printError)(e?.message ?? String(e));
203
+ return;
204
+ }
205
+ }
185
206
  if (Object.keys(body).length === 0) {
186
207
  (0, output_1.printError)('수정할 필드를 지정하세요.');
187
208
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"db-tables.js","sourceRoot":"","sources":["../../src/commands/db-tables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-tables.js","sourceRoot":"","sources":["../../src/commands/db-tables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+V3D"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuIpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuX3D"}
@@ -37,6 +37,140 @@ exports.registerSpecsCommand = registerSpecsCommand;
37
37
  const client_1 = require("../client");
38
38
  const output_1 = require("../output");
39
39
  const utils_1 = require("../utils");
40
+ // --tasks(및 tasks JSON)는 deprecated다. Story는 Task로 쪼개지 않고 spec 단위
41
+ // Story Point(--points)로 규모를 매긴다(하위호환용으로 --tasks는 계속 통과시킨다).
42
+ // 프로세스당 1회만 stderr로 안내한다(기계 모드에서도 stdout 미오염).
43
+ let tasksDeprecationWarned = false;
44
+ function warnTasksDeprecated() {
45
+ if (tasksDeprecationWarned)
46
+ return;
47
+ tasksDeprecationWarned = true;
48
+ (0, output_1.printWarning)('경고: --tasks는 deprecated입니다 — Story는 Task로 쪼개지 않습니다. ' +
49
+ 'spec 규모는 --points(Story Point)로 매기세요. (--tasks는 하위호환으로 계속 전송됩니다)');
50
+ }
51
+ // ── 작업 A: `ch specs get` 파생 해석 (additive, 원본 불변) ────────────────────
52
+ // spec 응답에 같은 프로젝트 db-tables를 조인해 (1) tableId→테이블명, (2) 상태
53
+ // 컬럼 ref(ref.field == db-table stateMachines[].columnRef)→그 머신 요약을,
54
+ // 원본을 훼손하지 않고 "파생 필드"로 인라인한다. 파생 키는 canonical 키와
55
+ // 겹치지 않게 명확히 네이밍한다: ref에 resolvedTableName·stateMachine, 최상위에
56
+ // resolvedDbTableRefs. 기존 파서는 refs[].tableId 등 원본 필드를 그대로 읽는다.
57
+ /** db-tables 목록을 tableId로 색인. */
58
+ function indexTablesById(tables) {
59
+ const byId = new Map();
60
+ for (const t of tables) {
61
+ if (t && typeof t.id === 'string')
62
+ byId.set(t.id, t);
63
+ }
64
+ return byId;
65
+ }
66
+ /**
67
+ * ref.field가 그 테이블 stateMachines[].columnRef와 일치하면 그 머신 요약을
68
+ * 반환한다(name·columnRef·states·transitions). 아니면 undefined.
69
+ * 상태링크 규약: field == stateMachine.columnRef 이면 그 ref는 엔티티 상태머신
70
+ * 접근이다(WRITE면 ref.toState가 목표 상태). 상태 정의의 SSOT는 db-tables다.
71
+ */
72
+ function stateMachineForRef(table, field) {
73
+ if (!field || typeof field !== 'string')
74
+ return undefined;
75
+ if (!table || !Array.isArray(table.stateMachines))
76
+ return undefined;
77
+ const m = table.stateMachines.find((sm) => sm && sm.columnRef === field);
78
+ if (!m)
79
+ return undefined;
80
+ return {
81
+ name: m.name,
82
+ columnRef: m.columnRef,
83
+ states: Array.isArray(m.states) ? m.states : [],
84
+ transitions: Array.isArray(m.transitions) ? m.transitions : [],
85
+ };
86
+ }
87
+ /** 단일 SpecTableFieldRef에 파생 필드를 추가(원본 tableId/field/toState 등 보존). */
88
+ function enrichRef(ref, byId) {
89
+ if (!ref || typeof ref !== 'object')
90
+ return;
91
+ if (typeof ref.tableId !== 'string')
92
+ return;
93
+ const table = byId.get(ref.tableId);
94
+ if (!table)
95
+ return;
96
+ if (ref.resolvedTableName === undefined && table.name !== undefined) {
97
+ ref.resolvedTableName = table.name;
98
+ }
99
+ if (ref.stateMachine === undefined) {
100
+ const sm = stateMachineForRef(table, ref.field);
101
+ if (sm)
102
+ ref.stateMachine = sm;
103
+ }
104
+ }
105
+ /** refs 배열의 각 원소를 enrich. */
106
+ function enrichRefs(refs, byId) {
107
+ if (!Array.isArray(refs))
108
+ return;
109
+ for (const ref of refs)
110
+ enrichRef(ref, byId);
111
+ }
112
+ /**
113
+ * spec 응답에 db-tables 조인 결과를 파생 필드로 인라인한다(in place).
114
+ * 대상: dataFlowScenarios[].steps[].refs[] · …nodes[].refs[], 레거시
115
+ * logic.dataFlowRefs · logic.businessRuleRefs, 최상위 dbTableRefs.
116
+ */
117
+ function resolveSpecDbRefs(spec, tables) {
118
+ if (!spec || typeof spec !== 'object')
119
+ return;
120
+ const byId = indexTablesById(tables);
121
+ const logic = spec.logic;
122
+ if (logic && typeof logic === 'object') {
123
+ if (Array.isArray(logic.dataFlowScenarios)) {
124
+ for (const scenario of logic.dataFlowScenarios) {
125
+ if (!scenario || typeof scenario !== 'object')
126
+ continue;
127
+ if (Array.isArray(scenario.steps)) {
128
+ for (const step of scenario.steps) {
129
+ if (step && typeof step === 'object')
130
+ enrichRefs(step.refs, byId);
131
+ }
132
+ }
133
+ if (Array.isArray(scenario.nodes)) {
134
+ for (const node of scenario.nodes) {
135
+ if (node && typeof node === 'object')
136
+ enrichRefs(node.refs, byId);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ // 레거시(최상위 배열) — 하위호환
142
+ enrichRefs(logic.dataFlowRefs, byId);
143
+ enrichRefs(logic.businessRuleRefs, byId);
144
+ }
145
+ // 최상위 dbTableRefs(string[]) → resolvedDbTableRefs([{ tableId, name }])
146
+ if (Array.isArray(spec.dbTableRefs) && spec.resolvedDbTableRefs === undefined) {
147
+ spec.resolvedDbTableRefs = spec.dbTableRefs.map((id) => {
148
+ const t = typeof id === 'string' ? byId.get(id) : undefined;
149
+ return { tableId: id, name: t?.name };
150
+ });
151
+ }
152
+ }
153
+ /**
154
+ * 같은 프로젝트 db-tables를 가져와 spec에 파생 해석을 인라인한다.
155
+ * 견고성 최우선: db-tables fetch/파싱/조인이 실패해도 `ch specs get`은 절대
156
+ * 깨지지 않는다 — 해석을 생략하고 원본 spec을 그대로 둔다. 인터셉터가 올렸을
157
+ * 수 있는 process.exitCode도 fetch 이전 값으로 되돌려, spec 조회 성공을 실패로
158
+ * 오인하지 않게 한다. (--json 오염 없음: 파생은 data에만 붙고, 인터셉터의
159
+ * 사람용 메시지는 stderr로 나가 stdout 순수 JSON을 지킨다.)
160
+ */
161
+ async function resolveSpecWithDbTables(client, spec) {
162
+ const prevExitCode = process.exitCode;
163
+ try {
164
+ const { data } = await client.get('/db-tables');
165
+ const tables = Array.isArray(data) ? data : data?.data ?? [];
166
+ if (tables.length)
167
+ resolveSpecDbRefs(spec, tables);
168
+ }
169
+ catch {
170
+ // 조인 실패는 치명적이지 않다 — 원본 spec을 그대로 낸다.
171
+ process.exitCode = prevExitCode;
172
+ }
173
+ }
40
174
  function registerSpecsCommand(program) {
41
175
  const specs = program
42
176
  .command('specs')
@@ -109,6 +243,10 @@ function registerSpecsCommand(program) {
109
243
  try {
110
244
  const client = (0, client_1.createClient)({ projectId: globalOpts.project });
111
245
  const { data } = await client.get(`/specs/${specId}`);
246
+ // 작업 A: 같은 프로젝트 db-tables를 조인해 tableId→이름·상태 컬럼
247
+ // ref→stateMachine을 파생 필드로 인라인(원본 불변). 실패해도 절대
248
+ // 깨지지 않고 원본을 그대로 낸다.
249
+ await resolveSpecWithDbTables(client, data);
112
250
  (0, output_1.formatOutput)(data, globalOpts);
113
251
  }
114
252
  catch (error) {
@@ -130,12 +268,13 @@ function registerSpecsCommand(program) {
130
268
  .option('--status <status>', '진행상황')
131
269
  .option('--note <note>', '비고')
132
270
  .option('--epic <name>', '에픽(분류 라벨)')
133
- .option('--tasks <jsonFile>', '체크리스트 JSON 파일 (SpecTask[])')
271
+ .option('--points <n>', 'Story Point (spec 단위 규모 점수, 0 이상). Story는 Task로 쪼개지 않고 이 값으로 규모를 매긴다')
272
+ .option('--tasks <jsonFile>', '[deprecated] 체크리스트 JSON 파일 (SpecTask[]). 신규 spec은 --points 권장 (하위호환 유지)')
134
273
  .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI)')
135
274
  .option('--logic <jsonFile>', '비즈니스 로직 JSON 파일 (SpecLogic)')
136
275
  .option('--db-tables <ids>', '연관 DB 테이블 ID (쉼표 구분)')
137
276
  .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 "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`)
277
+ .addHelpText('after', `\nStory Point:\n --points <n> spec 단위 규모 점수(0 이상). Story는 Task로 쪼개지 않고 이 값으로 규모를 매긴다.\n 예: --points 5\n\nJSON 파일 형식 예시:\n tasks.json ([deprecated] — 신규 spec은 --points 사용. --tasks는 하위호환용):\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 (신구조 — 시나리오→순서 있는 단계→refs):\n {\n "dataFlowScenarios": [\n {\n "name": "로그인 성공",\n "description": "회원이 이메일과 비밀번호로 로그인에 성공하면 인증 토큰을 발급하고 마지막 로그인 시각을 갱신한다.",\n "steps": [\n { "description": "클라이언트가 입력한 이메일과 비밀번호를 인증 서버로 전송한다." },\n { "description": "인증에 성공하면 사용자 문서의 마지막 로그인 시각을 갱신한다.", "refs": [{ "tableId": "tbl_users", "field": "lastLoginAt", "direction": "WRITE", "note": "로그인 성공 시 갱신" }] }\n ]\n }\n ],\n "stateTransitions": "...",\n "businessRules": "..."\n }\n (신구조: dataFlowScenarios[]=시나리오, 각 시나리오의 steps[]=순서 있는 단계, 각 단계의 refs[]=db-tables의 tableId(+선택 field)를 가리키는 구조적 참조. direction은 READ|WRITE|READWRITE.)\n (SSOT: refs는 db-tables의 tableId/field를 가리키기만 한다컬럼 정의는 db-tables에만.)\n (하위호환: 레거시 dataFlow(문자열)/dataFlowRefs[]/businessRuleRefs[]도 그대로 수용한다 — 점진 마이그레이션용.)\n\n --work-status <mdFile>: 마크다운 파일 (예: work-status.md)\n`)
139
278
  .action(async (options) => {
140
279
  const globalOpts = program.opts();
141
280
  try {
@@ -164,7 +303,17 @@ function registerSpecsCommand(program) {
164
303
  body.note = options.note;
165
304
  if (options.epic)
166
305
  body.epic = options.epic;
306
+ if (options.points !== undefined) {
307
+ try {
308
+ body.points = (0, utils_1.parsePoints)(options.points, '--points');
309
+ }
310
+ catch (e) {
311
+ (0, output_1.printError)(e?.message ?? String(e));
312
+ return;
313
+ }
314
+ }
167
315
  if (options.tasks) {
316
+ warnTasksDeprecated();
168
317
  try {
169
318
  body.tasks = (0, utils_1.readJsonFile)(options.tasks, '--tasks');
170
319
  }
@@ -228,7 +377,8 @@ function registerSpecsCommand(program) {
228
377
  .option('--status <status>', '진행상황')
229
378
  .option('--note <note>', '비고')
230
379
  .option('--epic <name>', '에픽(분류 라벨)')
231
- .option('--tasks <jsonFile>', '체크리스트 JSON 파일 (SpecTask[])')
380
+ .option('--points <n>', 'Story Point (spec 단위 규모 점수, 0 이상). Story는 Task로 쪼개지 않고 이 값으로 규모를 매긴다')
381
+ .option('--tasks <jsonFile>', '[deprecated] 체크리스트 JSON 파일 (SpecTask[]). 신규 spec은 --points 권장 (하위호환 유지)')
232
382
  .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI)')
233
383
  .option('--logic <jsonFile>', '비즈니스 로직 JSON 파일 (SpecLogic)')
234
384
  .option('--db-tables <ids>', '연관 DB 테이블 ID (쉼표 구분)')
@@ -264,7 +414,17 @@ function registerSpecsCommand(program) {
264
414
  body.note = options.note;
265
415
  if (options.epic !== undefined)
266
416
  body.epic = options.epic;
417
+ if (options.points !== undefined) {
418
+ try {
419
+ body.points = (0, utils_1.parsePoints)(options.points, '--points');
420
+ }
421
+ catch (e) {
422
+ (0, output_1.printError)(e?.message ?? String(e));
423
+ return;
424
+ }
425
+ }
267
426
  if (options.tasks) {
427
+ warnTasksDeprecated();
268
428
  try {
269
429
  body.tasks = (0, utils_1.readJsonFile)(options.tasks, '--tasks');
270
430
  }
@@ -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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"}
package/dist/utils.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
  export declare function parseCommaSeparated(value: string): string[];
2
+ /**
3
+ * Story Point(`--points`) 인자를 파싱·검증합니다.
4
+ * - 0 이상의 유한한 숫자만 허용 (정수 또는 소수)
5
+ * - 빈 값/비숫자/음수는 명확한 에러 throw
6
+ *
7
+ * 세부 형식(정수 여부 등)의 최종 검증은 서버(ch-api)가 SSOT다. CLI는
8
+ * 명백한 입력 오류만 걸러 pass-through한다.
9
+ */
10
+ export declare function parsePoints(value: string, label?: string): number;
2
11
  /**
3
12
  * content류(자유 텍스트/마크다운) 문자열을 정규화합니다.
4
13
  * - 선행 BOM() 제거
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAoB7E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAaxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAchD;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,mBAAmB,EACzB,KAAK,SAAW,GACf,MAAM,GAAG,SAAS,CAYpB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,MAAM,CAUrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAoB7E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAaxE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAchD;AAED,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,mBAAmB,EACzB,KAAK,SAAW,GACf,MAAM,GAAG,SAAS,CAYpB"}
package/dist/utils.js CHANGED
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.parseCommaSeparated = parseCommaSeparated;
37
+ exports.parsePoints = parsePoints;
37
38
  exports.normalizeContent = normalizeContent;
38
39
  exports.readJsonFile = readJsonFile;
39
40
  exports.readContentFile = readContentFile;
@@ -44,6 +45,25 @@ const path = __importStar(require("path"));
44
45
  function parseCommaSeparated(value) {
45
46
  return value.split(',').map((v) => v.trim()).filter(Boolean);
46
47
  }
48
+ /**
49
+ * Story Point(`--points`) 인자를 파싱·검증합니다.
50
+ * - 0 이상의 유한한 숫자만 허용 (정수 또는 소수)
51
+ * - 빈 값/비숫자/음수는 명확한 에러 throw
52
+ *
53
+ * 세부 형식(정수 여부 등)의 최종 검증은 서버(ch-api)가 SSOT다. CLI는
54
+ * 명백한 입력 오류만 걸러 pass-through한다.
55
+ */
56
+ function parsePoints(value, label = '--points') {
57
+ const trimmed = String(value).trim();
58
+ const n = Number(trimmed);
59
+ if (trimmed === '' || !Number.isFinite(n)) {
60
+ throw new Error(`${label}: 숫자를 지정하세요 (예: 3). 받은 값: "${value}"`);
61
+ }
62
+ if (n < 0) {
63
+ throw new Error(`${label}: 0 이상이어야 합니다. 받은 값: "${value}"`);
64
+ }
65
+ return n;
66
+ }
47
67
  /**
48
68
  * content류(자유 텍스트/마크다운) 문자열을 정규화합니다.
49
69
  * - 선행 BOM() 제거
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.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.8.2",
3
+ "version": "1.11.0",
4
4
  "description": "Decencia Communication Channel CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-change-manager
3
3
  description: 기존 소통채널 프로젝트의 기능 추가/수정을 사용자와 대화로 명확화 → 전파 스킬로 연관 PRD/spec/DB/SQA 일괄 갱신 → 변경으로 생긴 새 할일을 GitHub 이슈로 발행하는 오케스트레이터 스킬. (1)대화로 변경 내용 확정 → (2)[게이트] 영향 범위 확인 후 전파 적용 → (3)[게이트] 할일 목록 확인 후 이슈 발행. "이 기능 바꿀래"·"기획 수정"·"이거 추가해줘(기존 프로젝트)" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Bash(gh:*) Read Write
5
- version: 1.8.2
5
+ version: 1.11.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -46,15 +46,31 @@ ch check
46
46
  - 사용자와 **대화로 좁힌다**: **추가(feat) vs 수정(fix)** 구분, 구체적으로 무엇을·왜, 대상 기능/화면/spec.
47
47
  - 모호하면 한 번에 단정하지 말고 계속 질문. "현재 X → Y로 바꾼다" 수준까지 또렷하게.
48
48
 
49
+ ## 1.5 분류 게이트 — 버그 vs 기획 변경 (전파 전 필수)
50
+ 변경 내용이 또렷해지면, 전파에 들어가기 전에 **둘 중 무엇인지 먼저 가른다**. 둘은 처리 경로가 다르다.
51
+
52
+ - **버그**: 코드가 spec(의도)과 어긋남. 명세는 맞는데 구현이 틀렸다.
53
+ - **기획 변경**: spec/의도 자체가 바뀜. 명세가 옛것이 됐다.
54
+ - 판별 질문: **"명세대로 동작하면 이 문제가 사라지는가?"** — 예면 버그, 아니면(명세를 바꿔야 함) 기획 변경.
55
+
56
+ ### 버그면 — **전파하지 않는다** (§2 건너뜀)
57
+ 버그는 캐스케이드 없이 좁게 처리한다. spec/PRD/db는 이미 올바른 의도라 건드리면 어긋난다.
58
+ - 처리: **코드 수정** + (필요 시) **회귀 SQA** + 해당 spec **workStatus 1줄**(`[FIX] ...`)만.
59
+ - 이 경우 §2(전파) 게이트는 적용하지 않는다. 구현 작업이 필요하면 §3으로 가서 **bug 유형 이슈**만 발행한다.
60
+ - 상세 처리 원칙은 [[2t-decencia-channel-change-propagation-v2]] §0.5.
61
+
62
+ ### 기획 변경이면 — §2로 진행
63
+ 영향 전파(§2)를 정상 수행한다.
64
+
49
65
  ## 2. 영향 전파 (게이트 ①)
50
- *(변경 내용 확정 )*
51
- - `2t-decencia-channel-change-propagation-v2`로 **영향 분석**: 이 변경이 닿는 PRD·spec(ui·logic·dbTableRefs·tasks)·db-schema/db-tables·SQA·workStatus를 빠짐없이 식별.
66
+ *(기획 변경으로 분류된 경우만 — 버그는 §1.5에서 §3으로 건너뜀)*
67
+ - `2t-decencia-channel-change-propagation-v2`로 **영향 분석**: 이 변경이 닿는 PRD·spec(ui·logic·dbTableRefs·points)·db-schema/db-tables·SQA·workStatus를 빠짐없이 식별.
52
68
  - → **[게이트] 영향 범위를 사용자에게 제시하고 확인받는다** (어떤 문서가 어떻게 바뀌는지 요약). 승인 전에는 문서를 건드리지 않는다.
53
69
  - 승인되면 전파 스킬 절차대로 **연관 문서를 순차 갱신**. `spec.dbTableRefs` ↔ `dbTable.relatedSpecIds` 양방향 동기화 유지.
54
70
 
55
71
  ## 3. 할일 → GitHub 이슈 (게이트 ②)
56
- *(전파 적용 )*
57
- - 변경으로 **새로 생기거나 바뀐 할일**을 처리 단위로 정리한다 — 전파가 식별한 처리 항목 + 추가/변경된 `spec.tasks`. (구현이 필요 없는 순수 문서 정합은 이슈로 만들지 않는다)
72
+ *(기획 변경이면 전파 적용 후, 버그면 §1.5 직후)*
73
+ - 변경으로 **새로 생기거나 바뀐 할일**을 처리 단위로 정리한다 — 전파가 식별한 처리 항목(신규·수정된 spec 단위). (구현이 필요 없는 순수 문서 정합은 이슈로 만들지 않는다)
58
74
  - → **[게이트] 발행할 이슈 목록(제목·유형·관련 specid)을 사용자에게 보여주고 확인받는다.** (github-issue 스킬은 멱등성/중복방지를 안 하므로, 여기서 확인이 안전장치)
59
75
  - 승인되면 `2t-decencia-channel-github-issue`로 발행: **추가=feat / 수정=fix**, 결함이면 bug. 관련 specid 백링크·완료조건 자동.
60
76
  - 발행된 이슈 URL을 모아 보고하고, **issue-coder로 이어진다**고 안내.