@decencia/ch-cli 1.18.0 → 1.20.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.18.0
6
+ version: 1.20.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -3,7 +3,7 @@ name: 2t-decencia-channel-pr-merger
3
3
  description: issue-coder가 낸 PR을 기본 완전 자율로 base 브랜치(기본 브랜치 또는 sprint 통합 브랜치)에 머지하는 에이전트. 핵심 역량은 다수 병렬 worktree가 만든 충돌을 작업 의도 기반(semantic)으로 해결하는 것. CI green+충돌없음이면 바로 squash 머지, 충돌이면 의도대로 해결 후 테스트로 검증하여 머지. 재SQA·전면 재리뷰는 하지 않음. 다수 PR은 직렬 머지.
4
4
  tools: Read, Write, Edit, Grep, Glob, Bash
5
5
  model: opus
6
- version: 1.18.0
6
+ version: 1.20.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.18.0
6
+ version: 1.20.0
7
7
  ---
8
8
 
9
9
  ## 역할
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/commands/screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,MAAM,CAOzE;AA6SD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa7D"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/commands/screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAY,GAAG,MAAM,CAOzE;AAqTD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa7D"}
@@ -43,6 +43,15 @@ const STATES_HELP = `
43
43
  --file <경로> 파일에서 (BOM·CRLF 자동 정제)
44
44
  --file - stdin에서 (예: cat purpose.md | ch screens create --name X --file -)
45
45
 
46
+ ⚠️ --file은 "목적 본문을 읽어올 파일"이다 (ch-cli 관례: --file=본문 파일).
47
+ 화면의 페이지 파일 경로는 --page-file 로 넣는다:
48
+
49
+ ch screens create --name 상점홈 --page-file "src/app/store/[code]/page.tsx" \
50
+ --figma-node-id 123:456
51
+
52
+ --figma-node-id 는 실제 Figma node id(123:456)다. 화면 ID 슬러그(STORE-HOME)가 아니다 —
53
+ 슬러그는 프레임 '이름'이고 node id는 Figma URL의 ?node-id= 값에서 '-'를 ':'로 바꾼 값이다.
54
+
46
55
  stdin은 "--file -"로 명시할 때만 읽는다. 플래그 없이 stdin을 넘겨다보지 않는다 —
47
56
  에이전트·CI 셸에서 fd0가 '열린 채 EOF가 오지 않는 파이프'인 경우가 흔해서,
48
57
  암묵적 stdin 읽기는 "ch screens update <id> --order 3" 같은 평범한 호출을
@@ -96,6 +105,11 @@ function addScreenFieldOptions(cmd) {
96
105
  .option('--purpose <text>', '화면 목적 (자유 텍스트)')
97
106
  .option('--file <path>', '화면 목적을 파일에서 읽기 ("-"이면 stdin, --purpose보다 우선)')
98
107
  .option('--access <access>', '접근 권한 (예: admin, developer)')
108
+ // ⚠️ 페이지 파일 경로에 --file을 재사용하면 안 된다 — 이미 "목적 본문을 파일에서 읽기"로
109
+ // 점유돼 있어서(ch-cli 관례: --file=본문 파일), 경로를 넘기면 resolvePurpose가 그 파일을
110
+ // 열려다 ENOENT를 뱉는다. 그래서 --page-file이다 (아카이브 첨부가 --attach가 된 것과 같은 이유).
111
+ .option('--page-file <path>', '화면의 페이지 파일 경로 (예: src/app/store/[code]/page.tsx)')
112
+ .option('--figma-node-id <id>', 'Figma 노드 ID (예: 123:456 — 화면 ID 슬러그가 아니다)')
99
113
  .option('--states <jsonFile>', '화면 상태 목록 JSON 파일 (ScreenState[]) — 통째 교체')
100
114
  .option('--entry-points <list>', '진입 경로 (쉼표 구분, ""이면 모두 해제)')
101
115
  .option('--exit-points <list>', '이탈 경로 (쉼표 구분, ""이면 모두 해제)')
@@ -122,6 +136,11 @@ function buildScreenBody(options) {
122
136
  body.epic = options.epic;
123
137
  if (options.note !== undefined)
124
138
  body.note = options.note;
139
+ // 화면 소유 필드 (SCREEN-019). --file은 목적 본문 파일이라 페이지 경로는 --page-file이다.
140
+ if (options.figmaNodeId !== undefined)
141
+ body.figmaNodeId = options.figmaNodeId;
142
+ if (options.pageFile !== undefined)
143
+ body.file = options.pageFile;
125
144
  // 목적 본문: --file(경로 또는 "-"=stdin) > --purpose. BOM 제거 + CRLF→LF 정규화.
126
145
  const purpose = resolvePurpose(options);
127
146
  if (purpose !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/commands/screens.ts"],"names":[],"mappings":";;AA8DA,4CAOC;AA6SD,wDAaC;AA9XD,sCAAyC;AACzC,sCAAyF;AACzF,oCAMkB;AAClB,uDAA2D;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AAEH,6DAA6D;AAC7D,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBnB,CAAC;AAEF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAa,EAAE,KAAK,GAAG,SAAS;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,OAAO,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8BAA8B,KAAK,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,cAAc,CAAC,OAAY;IAClC,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAA,wBAAgB,GAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,IAAA,wBAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,yDAAyD;AACzD,SAAS,qBAAqB,CAAC,GAAY;IACzC,OAAO,GAAG;SACP,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;SAC1D,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;SACzE,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;SAC5D,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SAC3D,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC;SAC5C,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAY;IACnC,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD,oEAAoE;IACpE,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAElD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kEAAkE;IAClE,iBAAiB;IACjB,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0CAA0C;AAC1C,SAAS,eAAe,CAAC,UAAe;IACtC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,wEAAwE;AACxE,kDAAkD;AAClD,wDAAwD;AACxD,6CAA6C;AAE7C,SAAS,mBAAmB,CAAC,OAAgB,EAAE,OAAgB;IAC7D,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YAEnE,oDAAoD;YACpD,mDAAmD;YACnD,yCAAyC;YACzC,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,IAAA,qBAAY,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAA,kBAAS,EAAC,eAAe,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAA,mBAAU,EACR,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC3D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC;gBACpB,CAAC,EAAE,KAAK,KAAK,SAAS,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClE,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;gBACnB,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;aACvE,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAE,OAAgB;IAC5D,0DAA0D;IAC1D,qDAAqD;IACrD,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,UAAU,CAAC;SACvB,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;YAC1D,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,OAAgB;IAC/D,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CACL,iBAAiB,EACjB,wEAAwE,CACzE;SACA,MAAM,CACL,WAAW,EACX,0DAA0D,CAC3D;SACA,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC/C,qBAAqB,CAAC,MAAM,CAAC;SAC1B,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC;SACjC,WAAW,CACV,OAAO,EACP;;;;;;;;;;;CAWL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,iBAAiB,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,IAAI,IAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,IAAI,OAAO,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACrC,kEAAkE;YAClE,2BAA2B;YAC3B,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YAEvC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrD,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAE/B,mDAAmD;YACnD,sDAAsD;YACtD,0DAA0D;YAC1D,MAAM,SAAS,GAAI,IAAoC,EAAE,EAAE,CAAC;YAC5D,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC7B,IAAA,kBAAS,EACP,UAAU,SAAS,4CAA4C,CAChE,CAAC;YACJ,CAAC;YACD,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,OAAgB;IAC/D,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,CAAC;SAC1B,WAAW,CACV,OAAO,EACP,GAAG,WAAW;;;;CAInB,CACI;SACA,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,iBAAiB,QAAQ,SAAS,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,IAAI,IAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAA,kBAAS,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAA,kBAAS,EAAC,gBAAgB,CAAC,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;YAClE,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,OAAgB;IAC/D,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,iBAAiB,QAAQ,SAAS,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;YAC7D,0DAA0D;YAC1D,8BAA8B;YAC9B,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,sBAAsB,CAAC,OAAgB;IACrD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAExD,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxC,mDAAmD;IACnD,4DAA4D;IAC5D,IAAA,wCAAsB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/commands/screens.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import { Command } from 'commander';
2
- /** --ui 페이로드에 의미 있는 route 값이 들어 있는가? (빈 문자열=값 지우기는 경고 대상 아님) */
2
+ /** 화면(screens)이 소유하는 ui screensEnabled 프로젝트에서 deprecated다. */
3
+ export declare const SCREEN_OWNED_UI_KEYS: readonly ["route", "access", "figmaNodeId", "file"];
4
+ /**
5
+ * --ui 페이로드에 화면 소유 키가 **의미 있는 값**으로 들어 있는가?
6
+ * (빈 문자열 = 값 지우기이므로 경고 대상이 아니다 — 지우는 건 오히려 권장 방향이다)
7
+ */
8
+ export declare function uiPayloadScreenOwnedKeys(ui: unknown): string[];
9
+ /** @deprecated SCREEN-019에서 4키로 넓혔다 — uiPayloadScreenOwnedKeys를 쓴다. route 전용 판정만 남긴다. */
3
10
  export declare function uiPayloadHasRoute(ui: unknown): boolean;
4
11
  /**
5
12
  * `--screens` 값을 화면 ID 목록으로 파싱한다.
@@ -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;AAgCpC,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAItD;AA8DD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAuJD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAib3D"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/commands/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,qDAKvB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,EAAE,CAO9D;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAEtD;AAkED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEvD;AAuJD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAib3D"}
@@ -33,6 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SCREEN_OWNED_UI_KEYS = void 0;
37
+ exports.uiPayloadScreenOwnedKeys = uiPayloadScreenOwnedKeys;
36
38
  exports.uiPayloadHasRoute = uiPayloadHasRoute;
37
39
  exports.parseScreenRefs = parseScreenRefs;
38
40
  exports.registerSpecsCommand = registerSpecsCommand;
@@ -50,27 +52,45 @@ function warnTasksDeprecated() {
50
52
  (0, output_1.printWarning)('경고: --tasks는 deprecated입니다 — Story는 Task로 쪼개지 않습니다. ' +
51
53
  'spec 규모는 --points(Story Point)로 매기세요. (--tasks는 하위호환으로 계속 전송됩니다)');
52
54
  }
53
- // ── ui.route deprecation (SCREEN-010) ────────────────────────────────────────
54
- // CLI에는 --route 플래그가 없다. route는 --ui <jsonFile> 안의 키로 들어온다.
55
- // 화면(screens) 기능을 켠 프로젝트에서 route의 SSOT는 screens.route이고 spec은
56
- // ui.screenRefs로 화면을 참조만 한다. 그래서 그런 프로젝트에 ui.route가 담긴 --ui가
55
+ // ── 화면 소유 ui deprecation (SCREEN-010 → SCREEN-019로 확장) ─────────────
56
+ // CLI에는 --route 같은 플래그가 없다. 값들은 --ui <jsonFile> 안의 키로 들어온다.
57
+ // 화면(screens) 기능을 켠 프로젝트에서 route·access·figmaNodeId·file의 SSOT는 screens이고
58
+ // spec은 ui.screenRefs로 화면을 참조만 한다. 그래서 그런 프로젝트에 키가 담긴 --ui가
57
59
  // 오면 경고만 띄우고 요청은 손대지 않는다 — 막으면 기존 스크립트가 깨진다.
58
- /** --ui 페이로드에 의미 있는 route 값이 들어 있는가? (빈 문자열=값 지우기는 경고 대상 아님) */
59
- function uiPayloadHasRoute(ui) {
60
+ /** 화면(screens)이 소유하는 ui screensEnabled 프로젝트에서 deprecated다. */
61
+ exports.SCREEN_OWNED_UI_KEYS = [
62
+ 'route',
63
+ 'access',
64
+ 'figmaNodeId',
65
+ 'file',
66
+ ];
67
+ /**
68
+ * --ui 페이로드에 화면 소유 키가 **의미 있는 값**으로 들어 있는가?
69
+ * (빈 문자열 = 값 지우기이므로 경고 대상이 아니다 — 지우는 건 오히려 권장 방향이다)
70
+ */
71
+ function uiPayloadScreenOwnedKeys(ui) {
60
72
  if (!ui || typeof ui !== 'object' || Array.isArray(ui))
61
- return false;
62
- const route = ui.route;
63
- return typeof route === 'string' && route.trim() !== '';
73
+ return [];
74
+ const map = ui;
75
+ return exports.SCREEN_OWNED_UI_KEYS.filter((key) => {
76
+ const value = map[key];
77
+ return typeof value === 'string' && value.trim() !== '';
78
+ });
79
+ }
80
+ /** @deprecated SCREEN-019에서 4키로 넓혔다 — uiPayloadScreenOwnedKeys를 쓴다. route 전용 판정만 남긴다. */
81
+ function uiPayloadHasRoute(ui) {
82
+ return uiPayloadScreenOwnedKeys(ui).includes('route');
64
83
  }
65
84
  let uiRouteDeprecationWarned = false;
66
- function warnUiRouteDeprecated() {
85
+ function warnUiScreenOwnedKeysDeprecated(keys) {
67
86
  if (uiRouteDeprecationWarned)
68
87
  return;
69
88
  uiRouteDeprecationWarned = true;
70
- (0, output_1.printWarning)('경고: --ui 페이로드의 ui.route는 deprecated입니다 — 이 프로젝트는 화면(screens) 기능이 켜져 있습니다. ' +
71
- 'route의 SSOT는 screens.route이고, 기능명세는 ui.screenRefs로 화면을 참조만 합니다. ' +
72
- '화면은 `ch screens create`로 만들고, 화면 연결은 `ch specs screen-refs <specId> --screens <ids>`로 바꾸세요. ' +
73
- '(ui.route는 하위호환으로 계속 전송·저장됩니다)');
89
+ (0, output_1.printWarning)(`경고: --ui 페이로드의 ui.${keys.join('·ui.')}는 deprecated입니다 — 이 프로젝트는 화면(screens) 기능이 켜져 있습니다. ` +
90
+ 'route·access·figmaNodeId·file의 SSOT는 화면(screens)이고, 기능명세는 ui.screenRefs로 화면을 참조만 합니다. ' +
91
+ '화면은 `ch screens create`로 만들고(페이지 파일은 --page-file, Figma 노드는 --figma-node-id), ' +
92
+ '화면 연결은 `ch specs screen-refs <specId> --screens <ids>`로 바꾸세요. ' +
93
+ '(이 키들은 하위호환으로 계속 전송·저장됩니다)');
74
94
  }
75
95
  /**
76
96
  * 경고를 띄울지 판단하기 위한 부가 조회. 실패는 조용히 삼킨다.
@@ -91,12 +111,14 @@ async function isScreensEnabled(projectIdOption) {
91
111
  return false;
92
112
  }
93
113
  }
94
- /** --ui에 route가 있고 프로젝트가 screensEnabled면 1회 경고. 요청은 그대로 진행한다. */
114
+ /** --ui에 화면 소유 키가 있고 프로젝트가 screensEnabled면 1회 경고. 요청은 그대로 진행한다. */
95
115
  async function warnIfUiRouteDeprecated(ui, projectIdOption) {
96
- if (!uiPayloadHasRoute(ui))
97
- return; // route가 없으면 부가 조회조차 하지 않는다
98
- if (await isScreensEnabled(projectIdOption))
99
- warnUiRouteDeprecated();
116
+ const keys = uiPayloadScreenOwnedKeys(ui);
117
+ if (keys.length === 0)
118
+ return; // 화면 소유 키가 없으면 부가 조회조차 하지 않는다
119
+ if (await isScreensEnabled(projectIdOption)) {
120
+ warnUiScreenOwnedKeysDeprecated(keys);
121
+ }
100
122
  }
101
123
  // ── 화면 연결 (SCREEN-010) ───────────────────────────────────────────────────
102
124
  // ui.screenRefs는 서버 관리 필드다. 일반 PATCH /specs/:id(= `ch specs update --ui`)로
@@ -389,11 +411,11 @@ function registerSpecsCommand(program) {
389
411
  .option('--epic <name>', '에픽(분류 라벨)')
390
412
  .option('--points <n>', 'Story Point (spec 단위 규모 점수, 0 이상). Story는 Task로 쪼개지 않고 이 값으로 규모를 매긴다')
391
413
  .option('--tasks <jsonFile>', '[deprecated] 체크리스트 JSON 파일 (SpecTask[]). 신규 spec은 --points 권장 (하위호환 유지)')
392
- .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI). 화면 기능을 켠 프로젝트에서 ui.route deprecated (경고만, 저장은 그대로)')
414
+ .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI). 일부 키만 담아도 나머지 키는 보존된다 (빈 문자열=삭제). 화면 기능을 켠 프로젝트에서 ui.route·access·figmaNodeId·file은 deprecated (경고만, 저장은 그대로)')
393
415
  .option('--logic <jsonFile>', '비즈니스 로직 JSON 파일 (SpecLogic)')
394
416
  .option('--db-tables <ids>', '연관 DB 테이블 ID (쉼표 구분)')
395
417
  .option('--work-status <mdFile>', '작업 현황 마크다운 파일')
396
- .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 "screenRefs": ["SCR-LOGIN"],\n "primaryActions": "- 이메일·비밀번호로 로그인한다",\n "keyInformation": "- 로그인 실패 사유"\n }\n (screenRefs·primaryActions·keyInformation은 화면(screens) 기능을 켠 프로젝트에서만 쓴다.)\n (screenRefs는 서버 관리 필드 — 생성 때만 입력을 받는다. 수정 시 --ui 로 보낸 screenRefs는 서버가 무시하고 기존 값을 지킨다.\n 화면 연결 변경은 전용 커맨드 'ch specs screen-refs <specId> --screens <ids>'로 한다(웹 화면 피커와 같은 경로).\n 생성 시 존재하지 않는 화면 ID는 동기화에서 빠지고 서버 로그에 경고가 남는다.)\n (route: 화면 기능을 켠 프로젝트에서 ui.route deprecated다 — route의 SSOT는 screens.route이고 명세는 screenRefs로 화면을 참조만 한다.\n 그런 프로젝트에 ui.route를 보내면 경고(stderr)만 띄우고 요청은 그대로 보낸다. 레거시 프로젝트에서는 지금처럼 ui.route가 화면 정보다.)\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`)
418
+ .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 "screenRefs": ["SCR-LOGIN"],\n "primaryActions": "- 이메일·비밀번호로 로그인한다",\n "keyInformation": "- 로그인 실패 사유"\n }\n (screenRefs·primaryActions·keyInformation은 화면(screens) 기능을 켠 프로젝트에서만 쓴다.)\n (screenRefs는 서버 관리 필드 — 생성 때만 입력을 받는다. 수정 시 --ui 로 보낸 screenRefs는 서버가 무시하고 기존 값을 지킨다.\n 화면 연결 변경은 전용 커맨드 'ch specs screen-refs <specId> --screens <ids>'로 한다(웹 화면 피커와 같은 경로).\n 생성 시 존재하지 않는 화면 ID는 동기화에서 빠지고 서버 로그에 경고가 남는다.)\n (화면 소유 필드: 화면 기능을 켠 프로젝트에서 ui.route·ui.access·ui.figmaNodeId·ui.file은 deprecated다 — 넷의 SSOT는 화면(screens)이고 명세는 screenRefs로 화면을 참조만 한다.\n 그런 프로젝트에 키를 보내면 경고(stderr)만 띄우고 요청은 그대로 보낸다. 레거시 프로젝트에서는 지금처럼 ui가 화면 정보다.)\n (병합 규칙: --ui는 부분 JSON이어도 된다 — 담지 않은 키는 서버가 보존한다. 값을 지우려면 그 키에 빈 문자열("")을 명시한다.\n 예: ui.interactionMap만 담아 보내도 route·file·access·figmaNodeId는 그대로 남는다.)\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`)
397
419
  .action(async (options) => {
398
420
  const globalOpts = program.opts();
399
421
  try {
@@ -500,7 +522,7 @@ function registerSpecsCommand(program) {
500
522
  .option('--epic <name>', '에픽(분류 라벨)')
501
523
  .option('--points <n>', 'Story Point (spec 단위 규모 점수, 0 이상). Story는 Task로 쪼개지 않고 이 값으로 규모를 매긴다')
502
524
  .option('--tasks <jsonFile>', '[deprecated] 체크리스트 JSON 파일 (SpecTask[]). 신규 spec은 --points 권장 (하위호환 유지)')
503
- .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI). 화면 기능을 켠 프로젝트에서 ui.route deprecated (경고만, 저장은 그대로)')
525
+ .option('--ui <jsonFile>', 'UI 메타데이터 JSON 파일 (SpecUI). 일부 키만 담아도 나머지 키는 보존된다 (빈 문자열=삭제). 화면 기능을 켠 프로젝트에서 ui.route·access·figmaNodeId·file은 deprecated (경고만, 저장은 그대로)')
504
526
  .option('--logic <jsonFile>', '비즈니스 로직 JSON 파일 (SpecLogic)')
505
527
  .option('--db-tables <ids>', '연관 DB 테이블 ID (쉼표 구분)')
506
528
  .option('--work-status <mdFile>', '작업 현황 마크다운 파일')
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,4DAOC;AAGD,8CAEC;AAyED,0CAEC;AAuJD,oDAibC;AAzsBD,sCAA4D;AAC5D,sCAOmB;AACnB,oCAA0E;AAE1E,kEAAkE;AAClE,6DAA6D;AAC7D,+CAA+C;AAC/C,IAAI,sBAAsB,GAAG,KAAK,CAAC;AACnC,SAAS,mBAAmB;IAC1B,IAAI,sBAAsB;QAAE,OAAO;IACnC,sBAAsB,GAAG,IAAI,CAAC;IAC9B,IAAA,qBAAY,EACV,sDAAsD;QACpD,kEAAkE,CACrE,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,8DAA8D;AAC9D,0EAA0E;AAC1E,8DAA8D;AAC9D,6CAA6C;AAE7C,kEAAkE;AACrD,QAAA,oBAAoB,GAAG;IAClC,OAAO;IACP,QAAQ;IACR,aAAa;IACb,MAAM;CACE,CAAC;AAEX;;;GAGG;AACH,SAAgB,wBAAwB,CAAC,EAAW;IAClD,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAG,EAA6B,CAAC;IAC1C,OAAO,4BAAoB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,yFAAyF;AACzF,SAAgB,iBAAiB,CAAC,EAAW;IAC3C,OAAO,wBAAwB,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,wBAAwB,GAAG,KAAK,CAAC;AACrC,SAAS,+BAA+B,CAAC,IAAc;IACrD,IAAI,wBAAwB;QAAE,OAAO;IACrC,wBAAwB,GAAG,IAAI,CAAC;IAChC,IAAA,qBAAY,EACV,qBAAqB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qDAAqD;QACzF,wFAAwF;QACxF,gFAAgF;QAChF,gEAAgE;QAChE,4BAA4B,CAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,eAAwB;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAA,0BAAiB,EAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACtD,OAAO,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,KAAK,UAAU,uBAAuB,CACpC,EAAW,EACX,eAAwB;IAExB,MAAM,IAAI,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,8BAA8B;IAC7D,IAAI,MAAM,gBAAgB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5C,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,2EAA2E;AAC3E,0DAA0D;AAC1D,sEAAsE;AACtE,6DAA6D;AAC7D,mCAAmC;AAEnC,yCAAyC;AACzC,MAAM,gBAAgB,GAAG;;;;;;;;;;;CAWxB,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,IAAA,2BAAmB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,uEAAuE;AACvE,2DAA2D;AAC3D,oEAAoE;AACpE,iDAAiD;AACjD,8DAA8D;AAC9D,+DAA+D;AAE/D,iCAAiC;AACjC,SAAS,eAAe,CAAC,MAAa;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAU,EAAE,KAAc;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;IAC9E,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzB,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC/C,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KAC/D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,GAAQ,EAAE,KAAU;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,EAAE,SAAS,CAAC;IAC3B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IACxD,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,OAAO,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,OAAO,IAAI,IAAI,qBAAqB,IAAI,+CAA+C,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,IAAI,IAAI,GAAG,CAAC,KAAK,oDAAoD,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sEAAsE;AACtE,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAsB,EAAE,KAAmB;IACtE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IAC5C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,GAAG,CAAC,iBAAiB,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpE,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,EAAE;YAAE,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;IAChC,CAAC;IACD,sDAAsD;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;YAAE,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;QACtD,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,SAAS,UAAU,CAAC,IAAa,EAAE,IAAsB,EAAE,KAAmB;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAS,EAAE,MAAa;IACjD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IAC9C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC/C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;oBAAE,SAAS;gBACxD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBAClC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,qBAAqB;QACrB,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,wCAAwC;IACxC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;QAC9E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAW,EAAE,EAAE;YAC9D,MAAM,CAAC,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,uBAAuB,CAAC,MAAqB,EAAE,IAAS;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,MAAM,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACpE,IAAI,MAAM,CAAC,MAAM;YAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;QACrC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,SAAS,CAAC,CAAC;IAE1B,gBAAgB;IAChB,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjD,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SACxD,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC;SACrC,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,SAAS,CAAC;SACtC,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,CAAC;SACxE,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACrC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC;SACjC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,GAAG,CAAC;SACxC,MAAM,CAAC,qBAAqB,EAAE,SAAS,EAAE,IAAI,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,CAAC,OAAO;gBAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACtD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACnD,IAAI,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI;gBAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,YAAY,CAAC;SACzB,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;YACtD,gDAAgD;YAChD,+CAA+C;YAC/C,qBAAqB;YACrB,MAAM,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC5C,wDAAwD;YACxD,MAAM,SAAS,GAAI,IAAY,EAAE,UAAU,CAAC;YAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,IAAI,SAAS;oBAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC;SACtC,cAAc,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;SAChE,cAAc,CAAC,mBAAmB,EAAE,KAAK,CAAC;SAC1C,cAAc,CAAC,uBAAuB,EAAE,2BAA2B,CAAC;SACpE,MAAM,CAAC,4BAA4B,EAAE,uBAAuB,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC;SACnC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC;SAC5B,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC;SAC7B,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,cAAc,EAAE,sEAAsE,CAAC;SAC9F,MAAM,CAAC,oBAAoB,EAAE,yEAAyE,CAAC;SACvG,MAAM,CAAC,iBAAiB,EAAE,0IAA0I,CAAC;SACrK,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,wBAAwB,EAAE,eAAe,CAAC;SACjD,WAAW,CACV,OAAO,EACP,s1EAAs1E,CACv1E;SACA,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,mBAAmB,OAAO,CAAC,IAAI,SAAS,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAQ;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAA,2BAAmB,EAAC,OAAO,CAAC,MAAM,CAAC;gBAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,CAAC;aAChD,CAAC;YACF,IAAI,OAAO,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,UAAU;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnF,IAAI,OAAO,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACpD,IAAI,OAAO,CAAC,GAAG;gBAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACjD,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC3C,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,mBAAmB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,qDAAqD;gBACrD,MAAM,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;oBACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;yBAC1D,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;yBACjB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,kBAAkB,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACnD,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,KAAK;SACF,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC;SAC9B,MAAM,CAAC,oBAAoB,EAAE,cAAc,CAAC;SAC5C,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC;SAClC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC;SAC/C,MAAM,CAAC,4BAA4B,EAAE,YAAY,CAAC;SAClD,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC;SACnC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC;SAC5B,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC;SAC7B,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,cAAc,EAAE,sEAAsE,CAAC;SAC9F,MAAM,CAAC,oBAAoB,EAAE,yEAAyE,CAAC;SACvG,MAAM,CAAC,iBAAiB,EAAE,0IAA0I,CAAC;SACrK,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,wBAAwB,EAAE,eAAe,CAAC;SACjD,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,WAAW,CACV,OAAO,EACP,8MAA8M,CAC/M;SACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,mBAAmB,MAAM,SAAS,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACvE,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACjD,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,UAAU;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnF,IAAI,OAAO,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACpD,IAAI,OAAO,CAAC,GAAG;gBAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,OAAO,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACjD,IAAI,OAAO,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC3C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACxD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,mBAAmB,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,qDAAqD;gBACrD,MAAM,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,CAAC,KAAK,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,CAAC,WAAW,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC;oBACH,MAAM,EAAE,GAAG,wDAAa,SAAS,GAAC,CAAC;oBACnC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;yBAC1D,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;yBACjB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,kBAAkB,CAAC,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxD,OAAO;gBACT,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAA,mBAAU,EAAC,gBAAgB,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;gBAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;YAE3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kDAAkD;IAClD,KAAK;SACF,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;SAChE,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAElC,kDAAkD;QAClD,4CAA4C;QAC5C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,IAAA,kBAAS,EACP,6EAA6E;gBAC3E,kCAAkC,CACrC,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,IAAA,kBAAS,EAAC,mBAAmB,MAAM,cAAc,KAAK,UAAU,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YACpF,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,MAAM,KAAK,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YACvF,IAAA,qBAAY,EACV,KAAK,CAAC,MAAM;gBACV,CAAC,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACvC,CAAC,CAAC,mBAAmB,CACxB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,iDAAiD;YACjD,gDAAgD;YAChD,2CAA2C;YAC3C,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CACX,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sBAAsB;IACtB,KAAK;SACF,OAAO,CAAC,8BAA8B,CAAC;SACvC,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,EAAE;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,mBAAmB,MAAM,UAAU,MAAM,UAAU,CAAC,CAAC;gBAC/D,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3E,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC/B,IAAA,qBAAY,EAAC,aAAa,MAAM,aAAa,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,KAAK;SACF,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAA,kBAAS,EAAC,mBAAmB,MAAM,SAAS,CAAC,CAAC;gBAC9C,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;YACxC,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oBAAoB;IACpB,KAAK;SACF,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,WAAW,CAAC,CAAC;YAC/D,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mBAAmB;IACnB,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,gBAAgB,CAAC;SAC7B,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,UAAU,EAAE;gBAC5D,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;aAC/B,CAAC,CAAC;YACH,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,kBAAkB;IAClB,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;gBACjD,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;aACnC,CAAC,CAAC;YACH,IAAA,qBAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wBAAwB;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decencia/ch-cli",
3
- "version": "1.18.0",
3
+ "version": "1.20.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.18.0
5
+ version: 1.20.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -10,7 +10,7 @@ description: |
10
10
  (3) 명세·DB·SQA가 서로 어긋나 있는 의심이 들 때 (정합성 점검),
11
11
  (4) PRD 갱신 후 하위 spec/db/SQA로 변경분을 흘려보내야 할 때,
12
12
  (5) Sprint 진행 중 도메인 규칙·스키마가 흔들렸을 때 연쇄 갱신이 필요할 때.
13
- version: 1.18.0
13
+ version: 1.20.0
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -112,7 +112,7 @@ ch check
112
112
  |---|---|---|
113
113
  | PRD | Epic 명, spec 제목 (기능 관점만 — 스키마/테이블 미포함) | (텍스트만 — 자동 링크 없음) |
114
114
  | spec | `epic`, `dbTableRefs[]`, `ui.screenRefs[]` | `relatedSpec` (SQA), spec.dbTableRefs ↔ table.relatedSpecIds |
115
- | screens | route·목적·접근권한·states, `relatedSpecIds[]` | spec.ui.screenRefs ↔ screen.relatedSpecIds 양방향 |
115
+ | screens | route·access·figmaNodeId·file(페이지 파일)·목적·states, `relatedSpecIds[]` | spec.ui.screenRefs ↔ screen.relatedSpecIds 양방향 |
116
116
  | db-schema (전체) | 테이블 인벤토리 (텍스트) | (텍스트만) |
117
117
  | db-tables (per) | `relatedSpecIds[]`, `stateMachines[].transitions[].specRef` | 다른 테이블의 FK 주석 |
118
118
  | SQA 항목 | `relatedSpec` | — |
@@ -130,7 +130,7 @@ ch check
130
130
  |---|---|---|---|
131
131
  | 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
132
  | B | **새 테이블 추가/삭제** | `db-tables` 신규/삭제 | db-schema 인벤토리·ERD(테이블 단위), 영향 spec.dbTableRefs, SQA(신규 검증 TC). **PRD 무영향**(새 *기능*이면 그건 C/H 진앙) |
133
- | C | **spec 의 UI 요구사항** 변경 | `spec.ui` | 같은 화면 참조하는 다른 spec, **screens(화면 목적·핵심 액션·접근권한)**, SQA(UI 검증 TC), PRD 화면 절. **새 화면이 필요한 기능 추가도 진앙 C**다 |
133
+ | C | **spec 의 UI 요구사항** 변경 | `spec.ui` | 같은 화면 참조하는 다른 spec, **screens(화면 목적·핵심 액션·접근권한·figmaNodeId·file)**, SQA(UI 검증 TC), PRD 화면 절. **새 화면이 필요한 기능 추가도 진앙 C**다. `interactionMap`을 고치면 화면 상세의 집계 뷰가 같이 바뀐다 — 화면 쪽을 따로 고칠 필요는 없다 |
134
134
  | D | **spec 의 비즈니스 규칙(logic)** 변경 | `spec.logic` | 의존 spec, SQA(정상/비정상 TC), db-tables(검증 규칙·trigger), PRD 도메인 규칙 절 |
135
135
  | E | **권한/역할 정책** 변경 | 영향 spec.logic, db-tables.securityRules | 모든 영향 spec의 SQA(접근권한 TC), db-schema 보안 일관성 절, PRD 권한 절 |
136
136
  | F | **Story Point(points) 변경** | `spec.points` | Sprint 용량 산정, workStatus |
@@ -340,8 +340,10 @@ ch specs update <specId> --file /tmp/s.json --no-version
340
340
 
341
341
  # 3.5) screens (화면 모드 프로젝트) — [[2t-decencia-channel-cli-v2]] §3
342
342
  ch screens list --json # 후보 화면 확인
343
- ch screens create --id SCR-XXX --name "..." --route /xxx --purpose "..." --access developer
343
+ ch screens create --id SCR-XXX --name "..." --route /xxx --purpose "..." --access developer \
344
+ --figma-node-id 123:456 --page-file src/app/xxx/page.tsx
344
345
  ch screens update <screenId> --purpose "..." # 지정한 필드만 PATCH
346
+ ch screens update <screenId> --page-file src/app/xxx/page.tsx # 페이지 파일이 바뀌면 여기를 고친다 (--file은 purpose 본문이다)
345
347
 
346
348
  # 4) SQA 시트 항목 — [[2t-decencia-channel-sqa-v2]] §3.5
347
349
  ch sqa get <sheetId> --json | jq '.items' > /tmp/items.json
@@ -461,7 +463,10 @@ jq -r '.data[] | select((.logic // "" | tostring) | test("nullable|timestamp\\b|
461
463
  ```
462
464
  1) (DB 변경 없음 → 스킵)
463
465
  2) (스킵)
464
- 3) ch specs update <id> — ui 갱신
466
+ 3) ch specs update <id> — ui 갱신 (interactionMap·primaryActions·keyInformation)
467
+ 3-b) 화면 모드에서 figmaNodeId·file(페이지 파일)이 바뀌면 spec이 아니라 화면을 고친다:
468
+ ch screens update <screenId> --figma-node-id 123:456 --page-file src/app/xxx/page.tsx
469
+ (레거시 프로젝트는 종전대로 spec.ui에 있다 → 3)에서 함께 갱신)
465
470
  4) SQA — UI 검증 TC update-item/add-items
466
471
  5) PRD 화면 절
467
472
  6) workStatus
@@ -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.18.0
13
+ version: 1.20.0
14
14
  ---
15
15
 
16
16
  <!-- ch-version-gate -->
@@ -107,6 +107,23 @@ ch specs update <specId> --points 8 --no-version
107
107
 
108
108
  ### UI JSON (`--ui`)
109
109
 
110
+ **화면 모드** (`screensEnabled=true`) — spec.ui 소유 4필드만 쓴다.
111
+
112
+ ```json
113
+ {
114
+ "interactionMap": "## 인터랙션\n1. 이메일 입력 → 검증\n2. ...",
115
+ "screenRefs": ["SCR-LOGIN"],
116
+ "primaryActions": "- 이메일·비밀번호로 로그인한다",
117
+ "keyInformation": "- 로그인 실패 사유"
118
+ }
119
+ ```
120
+
121
+ `route`·`access`·`figmaNodeId`·`file`은 **화면(screens) 소유**다. 여기 넣지 않는다 — `ch screens`로 적는다(§3).
122
+ `interactionMap`은 레거시가 아니다. 기능이 소유하며 화면 모드에서도 계속 쓴다.
123
+ `screenRefs`는 **생성 때만** 넣는다. 수정은 `ch specs screen-refs`로 한다(§1).
124
+
125
+ **레거시 모드** (`screensEnabled` 미설정·false) — 종전 5필드.
126
+
110
127
  ```json
111
128
  {
112
129
  "figmaNodeId": "123:456",
@@ -169,7 +186,7 @@ ch specs screen-refs <specId> --screens SCR-001 --json # stdout = { message,
169
186
  - **교체 시맨틱**이다. 보낸 목록이 그 명세의 화면 연결 전부가 된다.
170
187
  - 하나만 더하거나 빼려면 먼저 `ch specs get <specId> --json`으로 현재 `ui.screenRefs`를 읽고 목록 전체를 만들어 넘긴다 (Read-before-Write).
171
188
  - `--screens` 플래그를 빼면 요청을 보내지 않고 종료코드 ≠ 0으로 끝난다. "미지정"은 "전부 해제"가 아니다.
172
- - `ui`의 다른 필드(`route`·`file`·`access`·`interactionMap`)는 보존된다. 서버가 `ui.screenRefs` 점 경로만 갱신한다.
189
+ - `ui`의 다른 필드(`interactionMap`·`primaryActions`·`keyInformation`, 레거시 spec이면 `route`·`access`·`figmaNodeId`·`file`도)는 보존된다. 서버가 `ui.screenRefs` 점 경로만 갱신한다.
173
190
  - 화면의 `relatedSpecIds`도 서버가 함께 갱신한다(양방향).
174
191
  - 없는 화면 ID면 서버가 **400**으로 거절한다. `ch screens create`로 화면을 먼저 만든다.
175
192
 
@@ -244,6 +261,8 @@ ch screens create \
244
261
  --route "/projects/[projectId]/specs?tab=spec" \
245
262
  --purpose "프로젝트의 기능명세를 한눈에 보고 원하는 명세로 들어가게 한다." \
246
263
  --access "admin, developer" \
264
+ --figma-node-id "123:456" \
265
+ --page-file "src/app/projects/[projectId]/specs/page.tsx" \
247
266
  --states ./states.json \
248
267
  --entry-points "프로젝트 대시보드에서 '기획' 탭 클릭" \
249
268
  --exit-points "목록 행 클릭 시 명세 상세로 이동" \
@@ -263,6 +282,10 @@ ch screens migrate --rollback --force # 되돌아갈 route가 없어
263
282
  ```
264
283
 
265
284
  - `--id`는 JIRA 스타일(`SCR-001`). 패턴 `^[A-Za-z][A-Za-z0-9_]*-[A-Za-z0-9]+$`, 중복 시 409.
285
+ - 화면 소유 필드다. spec.ui가 아니라 여기에 적는다.
286
+ - `--figma-node-id <id>` — 이 화면의 Figma 노드 ID(`123:456`). Figma URL의 `?node-id=` 값에서 `-`를 `:`로 바꾼 값이다.
287
+ - `--page-file <path>` — 이 화면의 **페이지 진입 파일** 경로 하나(예: `src/app/store/[code]/page.tsx`). 하위 컴포넌트는 적지 않는다.
288
+ - ⚠️ **`--page-file`과 `--file`은 다른 플래그다.** `--file`은 아래처럼 **purpose 본문을 읽을 파일**이다. 페이지 파일 경로를 `--file`에 주면 그 경로를 purpose 본문으로 읽으려다 실패한다.
266
289
  - 화면 목적(purpose) 입력 — 우선순위 `--file` > `--purpose`. BOM·CRLF는 자동 정제된다.
267
290
  - `--purpose "<문자열>"` 인라인, `--file <경로>` 파일에서, `--file -` stdin에서.
268
291
  - stdin은 **`--file -`로 명시할 때만** 읽는다: `cat purpose.md | ch screens create --name X --file -`
@@ -290,6 +313,7 @@ ch screens migrate --rollback --force # 되돌아갈 route가 없어
290
313
  `spec.ui.route`를 씨앗으로 화면을 만들고 명세에 연결한 뒤 `screensEnabled`를 켠다. **admin 전용.**
291
314
 
292
315
  - **비파괴**: `spec.ui`의 기존 필드(figmaNodeId·route·file·access·interactionMap)를 하나도 지우지 않는다. 그래서 `--rollback`(플래그만 false)이면 즉시 레거시 동작으로 돌아간다.
316
+ - 이관 후 화면 모드에서 `route`·`access`·`figmaNodeId`·`file`은 **레거시 잔여값**이다. SSOT는 `screens`다. 남아 있어도 읽지 않는다. `interactionMap`은 레거시가 아니라 계속 spec이 소유한다.
293
317
  - **route 정규화**: 괄호 주석과 탭 쿼리를 떼어 base route로 묶는다. 같은 base route = 화면 하나 (탭은 라우트가 아니라 `?tab=` 쿼리다).
294
318
  - `/projects/[projectId]/specs (PRD 탭)` → `/projects/[projectId]/specs`
295
319
  - `/projects/[projectId]/specs?tab=screens` → `/projects/[projectId]/specs`
@@ -8,7 +8,7 @@ description: |
8
8
  (2) DB 테이블 단위로 컬럼·인덱스·보안규칙을 등록·수정할 때,
9
9
  (3) 새 테이블을 추가하면서 전체 인벤토리도 함께 업데이트할 때,
10
10
  (4) spec.dbTableRefs와 양방향 동기화가 필요한 작업 시.
11
- version: 1.18.0
11
+ version: 1.20.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-github-issue
3
3
  description: gh CLI로 현재 repo에 GitHub 이슈를 작성한다. 이슈 1개=유형 1개(feat/fix/bug), 표준 본문 양식(작업내용·관련 명세 백링크·완료조건)으로 발행. "이슈 만들어줘"/"깃헙 이슈로 등록해줘" 요청 시, 또는 소통채널 기획·명세 작업 후 처리할 일들을 GitHub 이슈로 옮길 때 사용. 멱등성/중복방지·확인단계는 다루지 않음(요청대로 바로 생성).
4
4
  allowed-tools: Bash(gh:*) Bash(git:*) Read Write
5
- version: 1.18.0
5
+ version: 1.20.0
6
6
  ---
7
7
 
8
8
  <!-- 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.18.0
5
+ version: 1.20.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -7,7 +7,7 @@ description: |
7
7
  (1) PRD를 작성하거나 갱신할 때,
8
8
  (2) PRD 구성에서 Epic/스토리 구조를 후속 spec 작성에 매핑할 때,
9
9
  (3) Read-before-Write 규칙으로 PRD content를 안전하게 수정해야 할 때.
10
- version: 1.18.0
10
+ version: 1.20.0
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-project-bootstrap
3
3
  description: 신규 기획을 사용자와 대화하며 step-by-step으로 소통채널 프로젝트로 만드는 오케스트레이터 스킬. (1)대화로 PRD 완성 → (2)기능명세(spec) 내용 확정 → (3)DB 스키마 → (4)spec 업로드 → (5)화면 구성·연결 → (6)SQA 시트. 각 단계 사용자 승인 게이트, 작성 디테일은 기존 2t-decencia-channel-*-v2 스킬을 적극 재사용. "새 기획 만들어줘"·"프로젝트 처음부터 세팅" 류 요청 시.
4
4
  allowed-tools: Bash(ch:*) Bash(git:*) Read Write
5
- version: 1.18.0
5
+ version: 1.20.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -72,8 +72,9 @@ ch check
72
72
  ## 2. 기능명세(spec) — 내용 확정
73
73
  *(PRD 승인 후에만)*
74
74
  - `2t-decencia-channel-spec-v2` 규칙대로 PRD의 Epic/Story → spec 본문을 짠다.
75
- - ui 필드는 화면 모드 기준으로 채운다: `file`·`figmaNodeId`·`interactionMap`·`primaryActions`·`keyInformation`. **`route`는 쓰지 않는다.** route의 SSOT는 `screens.route`다.
76
- - 레거시 프로젝트(§0-1) 예외다. 종전대로 `route`·`access`를 spec에 쓴다.
75
+ - ui 필드는 화면 모드 기준으로 채운다: `interactionMap`·`primaryActions`·`keyInformation`. **`route`·`access`·`figmaNodeId`·`file`은 쓰지 않는다.** 4개는 화면(screens) 소유다.
76
+ - `screenRefs`(화면 연결) spec.ui 소유지만 지금은 비워둔다. 화면이 아직 없다 — §5에서 연결한다.
77
+ - 레거시 프로젝트(§0-1)는 예외다. 종전대로 `route`·`access`·`figmaNodeId`·`file`을 spec에 쓴다.
77
78
  - 이 단계의 산출물은 **기능 목록 + spec 본문 초안**이다. 항목: 이름 · epic · points · 핵심 액션 · 필요 테이블 후보.
78
79
  - ⚠️ **서버 업로드는 여기서 하지 않는다.** 테이블을 먼저 만들고 §4에서 `dbTableRefs`와 함께 생성한다.
79
80
  - → **[게이트] 사용자 확인.** OK면 3단계.
@@ -103,15 +104,14 @@ ch specs create --id PROJ-001 --name "프로젝트 목록" \
103
104
 
104
105
  ```json
105
106
  {
106
- "file": "src/app/projects/page.tsx",
107
- "figmaNodeId": "123:456",
108
107
  "interactionMap": "## 인터랙션\n...",
109
108
  "primaryActions": "- 프로젝트를 만든다",
110
109
  "keyInformation": "- 진행 중 프로젝트 수"
111
110
  }
112
111
  ```
113
112
 
114
- - `route`를 넣지 않는다. `access`는 화면(screens)에 있다.
113
+ - `route`·`access`·`figmaNodeId`·`file`은 화면(screens)에 있다. spec.ui에 넣지 않는다.
114
+ - `interactionMap`은 기능이 소유한다. 화면 모드에서도 계속 쓴다.
115
115
  - `screenRefs`도 여기에 넣지 않는다. 화면이 아직 없다 — 연결은 §5에서 `ch specs screen-refs`로 건다.
116
116
  - → **[게이트] 사용자 확인.** OK면 5단계.
117
117
 
@@ -126,9 +126,11 @@ ch specs create --id PROJ-001 --name "프로젝트 목록" \
126
126
  1. 기능을 **사용자 맥락**으로 묶는다. 같은 사용자가 한 자리에서 연달아 하는 일이면 한 화면이다.
127
127
  2. 화면 배치 초안을 표로 제시한다.
128
128
 
129
- | 화면ID | 화면명 | route | 목적 | 접근권한 | 담기는 기능(spec) | 진입/이탈 |
130
- |---|---|---|---|---|---|---|
131
- | SCR-PROJECTS | 프로젝트 목록 | /projects | 프로젝트를 찾아 들어간다 | developer | 목록 조회·검색·정렬·생성·삭제 | 대시보드에서 진입 / 행 클릭 시 상세로 |
129
+ | 화면ID | 화면명 | route | 목적 | 접근권한 | figmaNodeId | 페이지 파일 | 담기는 기능(spec) | 진입/이탈 |
130
+ |---|---|---|---|---|---|---|---|---|
131
+ | SCR-PROJECTS | 프로젝트 목록 | /projects | 프로젝트를 찾아 들어간다 | developer | 123:456 | src/app/projects/page.tsx | 목록 조회·검색·정렬·생성·삭제 | 대시보드에서 진입 / 행 클릭 시 상세로 |
132
+
133
+ 화면명은 아래 **화면 이름 규칙**을 지킨다. figmaNodeId·페이지 파일은 화면 소유 필드다(모르면 비워둔다).
132
134
 
133
135
  3. → **[게이트] 사람이 승인한다.** 승인 전에는 아무것도 만들지 않는다.
134
136
  4. 승인되면 화면을 만든다.
@@ -138,9 +140,13 @@ ch screens create --id SCR-PROJECTS --name "프로젝트 목록" \
138
140
  --route /projects \
139
141
  --purpose "프로젝트를 찾아 들어간다" \
140
142
  --access developer --order 1 \
143
+ --figma-node-id 123:456 \
144
+ --page-file src/app/projects/page.tsx \
141
145
  --epic "프로젝트" --states ./states.json
142
146
  ```
143
147
 
148
+ ⚠️ 페이지 파일 플래그는 `--page-file`이다. `--file`이 아니다. `ch screens`의 `--file`은 **purpose 본문을 읽을 파일**이라 이미 점유돼 있다.
149
+
144
150
  5. 배치표대로 **spec을 화면에 연결**한다. spec 하나당 한 번 실행한다.
145
151
 
146
152
  ```bash
@@ -149,7 +155,7 @@ ch specs screen-refs PROJ-002 --screens SCR-PROJECTS,SCR-PROJECT-DETAIL # 화
149
155
  ```
150
156
 
151
157
  - **교체 시맨틱**이다. 보낸 목록이 그 spec의 화면 연결 전부가 된다. 화면 하나를 더할 때도 목록 전체를 넘긴다.
152
- - `ui`의 다른 필드(`file`·`interactionMap`)는 보존된다. 화면의 `relatedSpecIds`도 서버가 함께 갱신한다.
158
+ - `ui`의 다른 필드(`interactionMap`·`primaryActions`·`keyInformation`)는 보존된다. 화면의 `relatedSpecIds`도 서버가 함께 갱신한다.
153
159
  - 없는 화면 ID면 400으로 거절당한다. 화면을 먼저 만들어야 하는 이유다.
154
160
  - 연결을 풀려면 `--screens ""`.
155
161
 
@@ -167,6 +173,25 @@ ch specs screen-refs PROJ-002 --screens SCR-PROJECTS,SCR-PROJECT-DETAIL # 화
167
173
  - 예: `대시보드` 화면 1개 = 통계 조회 + 최근 활동 + 알림 (spec 3개).
168
174
  - 1:1이 정당한 경우도 있다(로그인처럼 단독 화면). 예외는 이유를 한 줄 적는다.
169
175
 
176
+ ### 🔴 화면 이름에는 그 화면의 핵심 기능이 드러나야 한다
177
+ 묶기의 짝이 되는 규칙이다. 잘 묶고 이름을 잘못 지으면 기능이 사라져 보인다.
178
+
179
+ - 여러 명세를 한 화면에 묶을 때, **상위 개념으로 추상화하면 핵심이 사라진다.**
180
+ - 이름은 장소가 아니라 **사용자가 그 화면에서 하는 일**을 담는다.
181
+ - 묶인 명세 중 **가장 중요한 기능을 이름에 남긴다.** 부수 기능은 빼도 된다.
182
+ - 검산: 화면 목록만 보고 "그 기능 페이지가 없네?"라는 말이 나오면 이름이 실패한 것이다.
183
+ - `purpose`에 적어두는 것으로 충분하지 않다. **목록·탭에 뜨는 것은 `name`이다.**
184
+
185
+ **⚠️ 실패 사례 (실제)**
186
+
187
+ `CUST-001` **상품 목록**(지점 스토어프론트) + `NOTICE-004` 배너·공지를 한 화면으로 묶었다. 화면 이름을 **"지점 스토어프론트"**로만 지었다.
188
+
189
+ 핵심 기능 **"상품 목록"이 이름에서 증발**했다. 사용자가 화면 목록을 훑고 **"상품 목록 페이지가 없는 거 아니야?"**라고 물었다. **이름이 실패했다는 증거다.**
190
+
191
+ 묶은 판단 자체는 옳았다(같은 route·같은 사용자 맥락). **틀린 건 이름뿐이다.**
192
+
193
+ 고침: **"지점 스토어프론트 (상품 목록)"** 처럼 핵심 기능을 이름에 남긴다.
194
+
170
195
  ### 화면의 단위는 사용자가 이동하는 URL이다
171
196
  탭·모달·바텀시트는 별도 화면이 아니다. 그 화면의 `states`·`entryPoints`로 적는다.
172
197
 
@@ -11,7 +11,7 @@ description: |
11
11
  (2) UI 메타데이터·비즈니스 로직·DB 참조를 함께 다룰 때,
12
12
  (3) Story 규모를 Story Point(`--points`)로 매길 때,
13
13
  (4) 신규 spec ID를 `LOGIN-001` 같은 JIRA 스타일로 부여하고 싶을 때 (`ch specs create --id`).
14
- version: 1.18.0
14
+ version: 1.20.0
15
15
  ---
16
16
 
17
17
  <!-- ch-version-gate -->
@@ -43,7 +43,7 @@ CLI 명령은 [[2t-decencia-channel-cli-v2]], DB 테이블 작성은 [[2t-decenc
43
43
  | **Epic** | `spec.epic` (string) | 분류 라벨. 같은 에픽 spec끼리 자동 그룹핑 |
44
44
  | **Story** | spec 자체 (1 spec = 1 story) | 명세 1건. CLI 명칭은 `specs` 그대로 |
45
45
  | **Story Point** | `spec.points` (number) | Story 규모 점수. Story를 Task로 쪼개지 않고 spec 단위로 매긴다. §3 |
46
- | **UI** | `spec.ui` (object) | Figma·file·interactionMap·screenRefs (route·access 레거시 프로젝트만 §4-5) |
46
+ | **UI** | `spec.ui` (object) | screenRefs·primaryActions·keyInformation·interactionMap. **route·access·figmaNodeId·file은 화면(screens) 소유** — 레거시 프로젝트만 spec.ui에 쓴다 (§4-5) |
47
47
  | **Logic** | `spec.logic` (object) | dataFlowScenarios·stateTransitions·businessRules |
48
48
  | **DB** | `spec.dbTableRefs` (string[]) | db-tables 컬렉션의 테이블 ID 배열. 양방향 동기화 |
49
49
 
@@ -73,7 +73,7 @@ ch specs get <specId> --json | jq '.logic' # 3) 검증
73
73
  | 위치 | 들어가는 것 |
74
74
  |---|---|
75
75
  | `content` | 개요 1~3줄 + 권한 요약. 짧게 유지 |
76
- | `ui.*` | `figmaNodeId`/`file`/`interactionMap` + `screenRefs`(화면 연결) + `primaryActions`/`keyInformation`. **`route`·`access`는 레거시 프로젝트에서만 쓴다** 화면 모드의 SSOT는 `screens`다 (§4-5) |
76
+ | `ui.*` | `screenRefs`(화면 연결) + `primaryActions`/`keyInformation` + `interactionMap`. **`route`·`access`·`figmaNodeId`·`file`은 화면(screens) 소유다**레거시 프로젝트에서만 spec.ui에 쓴다 (§4-5) |
77
77
  | `logic.dataFlowScenarios` | 시나리오별 데이터 흐름. 시나리오 → 순서 있는 단계 → 단계별 테이블 참조(refs) |
78
78
  | `logic.stateTransitions` | 화면 상태 전이 (저장되는 엔티티 상태는 db-table.stateMachines) |
79
79
  | `logic.businessRules` | 도메인 규칙 |
@@ -206,12 +206,23 @@ Story 하나를 끝내는 데 드는 규모를 매긴다.
206
206
 
207
207
  ## 4. UI — 화면 연결 · Figma · Interaction Map
208
208
 
209
+ ### 4-0. 필드 소유 규칙 (화면 모드)
210
+
211
+ | | 화면(screens) 소유 | spec.ui 소유 |
212
+ |---|---|---|
213
+ | 필드 | `route` · `access` · `figmaNodeId` · `file` | `screenRefs` · `primaryActions` · `keyInformation` · `interactionMap` |
214
+
215
+ - spec.ui에 남는 것은 전부 **"이 기능이 화면에서 무엇을 하는가"**다. 화면 자체의 속성은 하나도 안 남는다.
216
+ - **figmaNodeId는 화면 소유다.** Figma 노드는 프레임 하나 = 화면 하나를 가리킨다.
217
+ - **file도 화면 소유다.** 기능은 원래 여러 파일에 걸친다(페이지+컴포넌트+API+훅). 단일 문자열로는 부정확하고 코드가 바뀌면 곧 stale해진다. **화면 = 페이지 = 파일 하나**는 안정적인 1:1이다. 기능이 어느 컴포넌트에 있는지는 코드 검색이 정확하다.
218
+ - **interactionMap은 레거시가 아니다.** 기능이 소유한다. 기능을 다른 화면으로 옮기면 인터랙션도 따라간다. 한 화면에 기능 셋이 붙으면 인터랙션도 셋이 합쳐진다. 화면 상세는 이걸 모아서 보여줄 뿐이다(집계 뷰이지 저장소가 아니다).
219
+ - **primaryActions와 interactionMap은 역할이 다르다.** primaryActions는 핵심 액션 **요약**이다. interactionMap은 **요소 단위 상세 표**다. 요약이 상세를 대체하지 못한다.
220
+ - 레거시 프로젝트(`screensEnabled` 미설정·false)는 종전대로 `route`·`access`·`figmaNodeId`·`file`을 spec.ui에 쓴다.
221
+
209
222
  ### 4-1. ui.json 구조 (화면 모드 — 기본)
210
223
 
211
224
  ```json
212
225
  {
213
- "figmaNodeId": "12345:67890",
214
- "file": "src/app/login/page.tsx",
215
226
  "interactionMap": "## 인터랙션\n\n| 요소 | 타입 | 액션 | 동작 |\n|---|---|---|---|\n| 이메일 input | input | onBlur | 형식 검증 |\n| 비밀번호 input | input + 토글 | 클릭 | 숨김/표시 |\n| 로그인 버튼 | 버튼 | 클릭 | 비동기 인증 |\n| 회원가입 링크 | 링크 | 클릭 | → /register |\n\n### 다이얼로그/바텀시트\n- 잠금 안내: 5회 실패 시 표시\n",
216
227
  "screenRefs": ["SCR-LOGIN"],
217
228
  "primaryActions": "- 이메일·비밀번호로 로그인한다\n- 비밀번호 재설정으로 이동한다",
@@ -219,9 +230,9 @@ Story 하나를 끝내는 데 드는 규모를 매긴다.
219
230
  }
220
231
  ```
221
232
 
222
- **신규 spec에는 `route`를 넣지 않는다.** 화면 경로는 `screens.route`가 SSOT다. 화면은 `screenRefs`로 참조만 한다(§4-5).
233
+ **신규 spec에는 `route`·`access`·`figmaNodeId`·`file`을 넣지 않는다.** 이 4개는 화면 소유다(§4-0). 화면은 `screenRefs`로 참조만 한다(§4-5).
223
234
 
224
- **레거시 예시** — `screensEnabled` 미설정·false 프로젝트만. 이 경우에만 `route`·`access`를 쓴다.
235
+ **레거시 예시** — `screensEnabled` 미설정·false 프로젝트만. 이 경우에만 `route`·`access`·`figmaNodeId`·`file`을 spec.ui에 쓴다.
225
236
 
226
237
  ```json
227
238
  {
@@ -239,11 +250,11 @@ Story 하나를 끝내는 데 드는 규모를 매긴다.
239
250
 
240
251
  | 필드 | 작성 규칙 |
241
252
  |---|---|
242
- | `figmaNodeId` | Figma URL의 `?node-id=` 값. `-` → `:` 치환. 예: `12345:67890` |
253
+ | `figmaNodeId` | **[레거시]** Figma URL의 `?node-id=` 값. `-` → `:` 치환. 예: `12345:67890`. 화면 모드의 SSOT는 `screens.figmaNodeId`다 |
243
254
  | `route` | **[레거시]** 화면 경로. `screensEnabled=true` 프로젝트에서는 **쓰지 않는다**. route의 SSOT는 `screens.route`다 |
244
- | `file` | 진입 컴포넌트 파일 경로(저장소 기준). 예: `src/app/login/page.tsx` |
255
+ | `file` | **[레거시]** 진입 컴포넌트 파일 경로(저장소 기준). 예: `src/app/login/page.tsx`. 화면 모드의 SSOT는 `screens.file`(페이지 파일)이다 |
245
256
  | `access` | **[레거시]** `public`, `auth`, `admin`, `role:센터장` 등 자유 문자열. 화면 모드에서는 `screens.access`가 SSOT다 |
246
- | `interactionMap` | **모든 인터랙티브 요소**를 마크다운 표로. 다이얼로그/바텀시트/키보드 단축키는 별도 |
257
+ | `interactionMap` | **모든 인터랙티브 요소**를 마크다운 표로. 다이얼로그/바텀시트/키보드 단축키는 별도 절. **레거시가 아니다** — 화면 모드에서도 계속 쓴다. `primaryActions`(요약)가 이 상세 표를 대체하지 못한다 |
247
258
  | `screenRefs[]` | 이 명세가 걸리는 **화면 ID 배열**. 서버가 `screen.relatedSpecIds`와 양방향으로 맞춘다. **`ui.json`에는 생성 때만 넣는다** — 수정은 전용 커맨드 `ch specs screen-refs`로 (§4-5) |
248
259
  | `primaryActions` | 이 명세가 화면에서 하게 하는 **핵심 액션**. 마크다운 목록. 예: `- 프로젝트를 만든다` |
249
260
  | `keyInformation` | 화면에 **반드시 보여야 하는 정보**. 마크다운 목록. 예: `- 남은 예산` |
@@ -283,8 +294,8 @@ Story 하나를 끝내는 데 드는 규모를 매긴다.
283
294
 
284
295
  | 모드 | 화면 정보 | ui에 쓰는 것 |
285
296
  |---|---|---|
286
- | `screensEnabled` 미설정·false (레거시 기본) | `ui.route`·`figmaNodeId`·`access`·`interactionMap` | 기존 5필드만 |
287
- | `screensEnabled=true` | screens 리소스 | `figmaNodeId`·`file`·`interactionMap` + `screenRefs`·`primaryActions`·`keyInformation` (**route·access 없음**) |
297
+ | `screensEnabled` 미설정·false (레거시 기본) | `ui.route`·`access`·`figmaNodeId`·`file`·`interactionMap` | 기존 5필드만 |
298
+ | `screensEnabled=true` | screens 리소스 (route·access·figmaNodeId·file) | `interactionMap` + `screenRefs`·`primaryActions`·`keyInformation` (**route·access·figmaNodeId·file 없음**) |
288
299
 
289
300
  **신규 spec 규칙**: `ui.route`를 쓰지 마라. 붙일 화면이 없으면 `ch screens create`(또는 웹 화면 탭)로 **먼저 화면을 만들고** 그 ID를 `screenRefs`에 넣는다.
290
301
 
@@ -571,7 +582,7 @@ spec 작성 시점이 아니라 **개발 진행 중에 누적**되는 일지(`sp
571
582
  ### 8-A. 화면 명세 (가장 흔함)
572
583
 
573
584
  - `ui` 채움 — 모드에 따라 다르다:
574
- - **화면 모드**(`screensEnabled=true`): `figmaNodeId`/`file`/`interactionMap`/`screenRefs`/`primaryActions`/`keyInformation` (route·access screens에 있다)
585
+ - **화면 모드**(`screensEnabled=true`): `interactionMap`/`screenRefs`/`primaryActions`/`keyInformation` (route·access·figmaNodeId·file은 screens에 있다 — §4-0)
575
586
  - **레거시**(`screensEnabled` 미설정·false): `figmaNodeId`/`route`/`file`/`access`/`interactionMap` 5필드
576
587
  - `logic.dataFlowScenarios` 필수 (화면이 다루는 주요 동작 경로별 시나리오)
577
588
  - `points` 화면 하나의 규모 (보통 3~8)
@@ -615,6 +626,8 @@ spec 작성 시점이 아니라 **개발 진행 중에 누적**되는 일지(`sp
615
626
  - `dbTableRefs`를 손으로 JSON에 넣어도 서버가 무시 (CLI `--db-tables` 또는 웹 picker만 사용).
616
627
  - **`ui.screenRefs`를 `--ui`로 바꾸려 하기** — 수정 경로에서는 서버가 무시한다. **에러가 안 나서 성공한 줄 안다.** 화면 연결은 `ch specs screen-refs <specId> --screens <ids>`(또는 웹 화면 피커)로 바꾼다(§4-5). 생성 때는 `ui.json`에 넣어도 된다.
617
628
  - **신규 프로젝트 spec에 `ui.route`를 적기** — 기능과 화면이 1:1로 못박히고 screens가 껍데기가 된다. route의 SSOT는 `screens.route`다(§4-5).
629
+ - **화면 모드 spec에 `figmaNodeId`·`file`을 적기** — 둘 다 화면 소유 필드다(§4-0). 웹 spec 폼에도 입력란이 없다. 값은 `screens`에 적는다.
630
+ - **`interactionMap`을 레거시로 오해하기** — 레거시가 아니다. 화면 모드에서도 기능이 소유한다(§4-0). `primaryActions`는 요약이라 상세 표를 대체하지 못한다.
618
631
  - **화면을 spec 수만큼 만들기** — route와 다를 게 없다. 같은 사용자 맥락의 기능들을 한 화면으로 묶어라(§4-5).
619
632
  - **Story를 Task로 쪼개려 하지 말 것.** 규모는 spec 단위 `--points`로 매기고, 너무 크면 spec 자체를 나눈다(§9).
620
633
  - 시간축 진행 메모는 workStatus(별도 스킬)에 적는다.
@@ -633,7 +646,7 @@ spec 작성 시점이 아니라 **개발 진행 중에 누적**되는 일지(`sp
633
646
  2.5. **이 명세가 붙을 화면 확인** — `ch screens list --json`. 없으면 `ch screens create`를 **먼저** 한다 (§4-5). 화면을 나중에 만들면 생성 후 `ch specs screen-refs`로 연결한다
634
647
  3. **Spec ID 결정** (§1.5) — JIRA 스타일(`EPIC-NNN`) 사용 시 다음 번호 결정. 자동 ID로 가도 됨
635
648
  4. `points`(Story Point) 산정 — Story 하나의 규모 (§3, 보통 3~8)
636
- 5. `ui.json` 작성 (figmaNodeId/file/interactionMap/screenRefs/primaryActions/keyInformation — **화면 모드는 route 없음**. 레거시는 route/access 포함 — §4-1)
649
+ 5. `ui.json` 작성 (화면 모드: interactionMap/screenRefs/primaryActions/keyInformation — **route·access·figmaNodeId·file 없음**. 레거시는 figmaNodeId/route/file/access/interactionMap — §4-0, §4-1)
637
650
  6. `logic.json` 작성 (dataFlowScenarios 필수 — 시나리오→단계→refs, 나머지 해당 시)
638
651
  7. `ch specs create [--id LOGIN-001] --name ... --epic ... --points 5 --ui ... --logic ... --db-tables tbl_a,tbl_b`
639
652
  - `ui.json`의 `screenRefs`가 이때 함께 실린다. **생성 이후에는 `--ui`로 못 바꾼다** — `ch specs screen-refs <specId> --screens <ids>`로 바꾼다(§4-5)
@@ -7,7 +7,7 @@ description: |
7
7
  (1) sprint를 구성할 때,
8
8
  (2) Σ spec.points 기반 sprint 용량 산정이 필요할 때,
9
9
  (3) Epic·도메인·의존성을 함께 고려해 spec을 sprint에 배분할 때.
10
- version: 1.18.0
10
+ version: 1.20.0
11
11
  ---
12
12
 
13
13
  <!-- ch-version-gate -->
@@ -2,7 +2,7 @@
2
2
  name: 2t-decencia-channel-sprint-runner
3
3
  description: 특정 Sprint를 끝까지 실행(run)하는 오케스트레이터 스킬. Sprint의 spec을 시드로 이슈 목록을 분해·발행(github-issue)하고, GitHub milestone에 묶인 이슈를 상태별로 분류해 issue-coder(병렬)·pr-merger(직렬)로 전진시킨 뒤, 사람확인이 필요한 곳에서 멈춘다. 사람이 확인·체크 후 재호출하면 멱등하게 이어간다(반복 루프). "스프린트 돌려줘"·"sprint N 실행"·"이 스프린트 개발 진행해줘" 류 요청 시.
4
4
  allowed-tools: Skill Agent Read Bash(ch:*) Bash(gh:*) Bash(git:*)
5
- version: 1.18.0
5
+ version: 1.20.0
6
6
  ---
7
7
 
8
8
  <!-- ch-version-gate -->
@@ -12,7 +12,7 @@ description: |
12
12
  (4) 명세 영역별 완성형 TC 번들(퍼블리싱/프론트/백엔드 디센시아 운영 관점 포함)을 가져다 쓸 때,
13
13
  (5) 새 명세 작업 중 반복 패턴을 발견해 영역별 번들을 보강할 때,
14
14
  (6) Sprint 종료 전 spec별 SQA 통과 여부를 점검할 때.
15
- version: 1.18.0
15
+ version: 1.20.0
16
16
  ---
17
17
 
18
18
  <!-- ch-version-gate -->
@@ -8,7 +8,7 @@ description: |
8
8
  (2) "작업 현황 적어줘", "workStatus 갱신해줘" 요청 시,
9
9
  (3) Sprint 종료 회고나 인수인계용으로 spec별 진행 상태를 정리할 때,
10
10
  (4) `ch specs update --work-status` 또는 웹 "작업 현황" 탭에서 갱신할 때.
11
- version: 1.18.0
11
+ version: 1.20.0
12
12
  ---
13
13
 
14
14
  <!-- ch-version-gate -->