solmate-skills 2.0.4 → 2.0.6
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.
- package/AGENTS.md +19 -6
- package/README.md +71 -8
- package/bin/cli.js +42 -2
- package/docs-business/agents/openai.yaml +4 -0
- package/docs-dev/SKILL.md +17 -0
- package/docs-dev/agents/openai.yaml +4 -0
- package/docs-pitch/agents/openai.yaml +4 -0
- package/docs-plan/SKILL.md +34 -5
- package/docs-plan/agents/openai.yaml +4 -0
- package/ext-k-skill/scripts/check-setup.sh +29 -0
- package/ext-k-skill/scripts/run-k-skill-proxy.sh +15 -0
- package/ext-k-skill/scripts/validate-skills.sh +56 -0
- package/hooks/install.sh +157 -0
- package/hooks/suggest-skills.sh +109 -0
- package/hooks/verify-suggest.sh +42 -0
- package/hooks/watch-files.sh +96 -0
- package/manage-collaboration/agents/openai.yaml +4 -0
- package/manage-decisions/agents/openai.yaml +4 -0
- package/manage-skills/SKILL.md +8 -1
- package/manage-skills/agents/openai.yaml +4 -0
- package/package.json +1 -1
- package/role-team-lead/agents/openai.yaml +4 -0
- package/role-team-member/agents/openai.yaml +4 -0
- package/rules-dev/agents/openai.yaml +4 -0
- package/rules-docs/agents/openai.yaml +4 -0
- package/rules-product/SKILL.md +105 -6
- package/rules-product/agents/openai.yaml +4 -0
- package/rules-react/SKILL.md +10 -7
- package/rules-react/agents/openai.yaml +4 -0
- package/rules-react/scripts/fetch-stitch.sh +30 -0
- package/rules-workflow/SKILL.md +17 -2
- package/rules-workflow/agents/openai.yaml +4 -0
- package/tools-obsidian/agents/openai.yaml +4 -0
- package/tools-shadcn/agents/openai.yaml +4 -0
- package/tools-shadcn/scripts/verify-setup.sh +134 -0
- package/verify-code/SKILL.md +17 -1
- package/verify-code/agents/openai.yaml +4 -0
- package/verify-docs/SKILL.md +38 -5
- package/verify-docs/agents/openai.yaml +4 -0
- package/verify-drizzle-schema/agents/openai.yaml +4 -0
- package/verify-implementation/SKILL.md +66 -12
- package/verify-implementation/agents/openai.yaml +4 -0
- package/verify-performance/SKILL.md +16 -0
- package/verify-performance/agents/openai.yaml +4 -0
- package/verify-security/agents/openai.yaml +4 -0
- package/verify-skills/SKILL.md +179 -0
- package/verify-skills/agents/openai.yaml +4 -0
- package/verify-ui/SKILL.md +128 -0
- package/verify-ui/agents/openai.yaml +4 -0
package/rules-product/SKILL.md
CHANGED
|
@@ -12,6 +12,8 @@ You are a **workflow lead** who guides the user through the full product develop
|
|
|
12
12
|
```
|
|
13
13
|
Phase 1: 기획문서 → docs-plan (Concept_Design)
|
|
14
14
|
Phase 2: UI 설계 문서 → docs-plan (UI_Screens)
|
|
15
|
+
UI-First Gate: 화면·동선·데이터 흐름 확인
|
|
16
|
+
Pre-Code Technical Brief: 데이터·API·상태 최소 합의
|
|
15
17
|
Phase 3: React 변환 → rules-react
|
|
16
18
|
Phase 4: 개발문서 → docs-dev
|
|
17
19
|
Phase 5: 품질 검증 → verify-implementation (verify-docs / verify-code / verify-security / verify-performance)
|
|
@@ -30,16 +32,28 @@ Run these checks in order:
|
|
|
30
32
|
|-------|--------|---------|
|
|
31
33
|
| `docs/01_Concept_Design/` 존재 여부 | 없으면 Phase 1 미완 | 기획문서 필요 |
|
|
32
34
|
| `docs/02_UI_Screens/` 존재 여부 | 없으면 Phase 2 미완 | UI 설계 필요 |
|
|
35
|
+
| UI-First Gate 확인 여부 | 없으면 Phase 3 진입 보류 | 화면·동선·데이터 흐름 확인 필요 |
|
|
36
|
+
| Pre-Code Technical Brief 여부 | 없으면 Phase 3 진입 보류 | 최소 기술 합의 필요 |
|
|
33
37
|
| `src/components/` 또는 React 코드 존재 여부 | 없으면 Phase 3 미완 | React 개발 필요 |
|
|
34
38
|
| `docs/03_Technical_Specs/` 존재 여부 | 없으면 Phase 4 미완 | 개발문서 필요 |
|
|
35
39
|
| verify-* 스킬 실행 이력 또는 사용자 확인 여부 | 없으면 Phase 5 미완 | 품질 검증 필요 |
|
|
36
40
|
|
|
37
|
-
진단
|
|
41
|
+
진단 결과는 항상 아래 `Flow Status Block` 형식으로 보고한다. 새 작업 시작, Phase 전환, 구현 시작 전, 검증 시작 전, 최종 보고 시에도 같은 형식을 짧게 반복한다.
|
|
38
42
|
|
|
39
43
|
```
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
[Flow]
|
|
45
|
+
현재: Phase N — [단계명]
|
|
46
|
+
Gate: [진행 중 / 통과 / 미통과 / N/A]
|
|
47
|
+
완료: [완료된 Phase 또는 없음]
|
|
48
|
+
다음: [다음 Phase 또는 Gate]
|
|
49
|
+
필요 확인: [막힌 조건 또는 확인할 항목]
|
|
50
|
+
권장 스킬: /skill-name
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
일상적인 중간 답변에서는 한 줄 축약형을 쓸 수 있다:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
현재 위치: Phase N — [단계명] / Gate: [상태] / 다음: [다음 액션]
|
|
43
57
|
```
|
|
44
58
|
|
|
45
59
|
사용자가 특정 단계를 명시한 경우 그 단계로 바로 이동한다.
|
|
@@ -68,6 +82,8 @@ Run these checks in order:
|
|
|
68
82
|
Phase 1 완료 확인 후 다음을 묻는다:
|
|
69
83
|
> "Phase 1 문서가 완성되었습니다. Phase 2(UI 설계 문서)로 넘어갈까요? 또는 기획문서를 바탕으로 파생 문서(피치덱, 사업계획서)를 먼저 작성할 수도 있습니다."
|
|
70
84
|
|
|
85
|
+
Phase 1 완료 보고에는 `Flow Status Block`을 포함한다.
|
|
86
|
+
|
|
71
87
|
---
|
|
72
88
|
|
|
73
89
|
### Phase 1 파생 문서 (선택, 순서 무관)
|
|
@@ -112,6 +128,11 @@ Phase 1이 완료된 후 언제든 작성 가능하다. Phase 2 진입과 독립
|
|
|
112
128
|
**Gate Out** (다음 단계 진입 조건):
|
|
113
129
|
- [ ] `docs/02_UI_Screens/00_SCREEN_FLOW.md` 존재
|
|
114
130
|
- [ ] `docs/02_UI_Screens/01_UI_DESIGN.md` 존재
|
|
131
|
+
- [ ] 주요 화면 목록과 화면별 목적이 정의됨
|
|
132
|
+
- [ ] 사용자 진입·이탈·전환 동선이 정의됨
|
|
133
|
+
- [ ] 화면별 입력 데이터, 출력 데이터, 상태 변화가 정의됨
|
|
134
|
+
- [ ] 로딩·빈 상태·오류 상태가 정의됨
|
|
135
|
+
- [ ] 사용자가 화면/UI를 먼저 확인했거나, 확인할 수 있는 프로토타입/스크린샷/리뷰 문서가 있음
|
|
115
136
|
|
|
116
137
|
**위임 지시**:
|
|
117
138
|
|
|
@@ -121,8 +142,53 @@ Phase 1이 완료된 후 언제든 작성 가능하다. Phase 2 진입과 독립
|
|
|
121
142
|
참조 문서: docs/01_Concept_Design/ 전체 읽기 후 시작
|
|
122
143
|
```
|
|
123
144
|
|
|
124
|
-
Phase 2 완료
|
|
125
|
-
> "
|
|
145
|
+
Phase 2 완료 후 곧바로 코딩하지 않는다. 먼저 UI-First Gate를 확인하고 다음을 묻는다:
|
|
146
|
+
> "화면 구조, 사용자 동선, 데이터 흐름, 로딩/빈/오류 상태를 먼저 확인했습니다. 현재 단계에서 더 구체화하거나 보완할 점이 있을까요?"
|
|
147
|
+
|
|
148
|
+
Phase 2 완료 보고에는 `Flow Status Block`을 포함하고, 다음 위치가 `UI-First Gate`임을 명시한다.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## UI-First Gate: 화면·동선·데이터 흐름 확인
|
|
153
|
+
|
|
154
|
+
**목표**: 구동 코드 작성 전에 실제 화면 기준으로 사용 흐름과 데이터 흐름을 합의한다. 이 게이트를 통과하기 전에는 Phase 3 구현을 시작하지 않는다.
|
|
155
|
+
|
|
156
|
+
**필수 확인 항목**:
|
|
157
|
+
- [ ] 주요 화면과 화면별 목적
|
|
158
|
+
- [ ] 사용자 진입 경로, 다음 행동, 이탈 경로
|
|
159
|
+
- [ ] 화면별 CTA와 인터랙션
|
|
160
|
+
- [ ] 화면별 입력 데이터, 출력 데이터, 상태 변화
|
|
161
|
+
- [ ] 로딩, 빈 상태, 오류 상태, 권한 없음 상태
|
|
162
|
+
- [ ] 모바일·데스크톱에서 구조 차이가 큰 구간
|
|
163
|
+
- [ ] 사용자 또는 의사결정권자가 화면/UI를 먼저 확인한 기록
|
|
164
|
+
|
|
165
|
+
**Gate Out**:
|
|
166
|
+
- [ ] `00_SCREEN_FLOW.md`에 사용자 여정과 전환 흐름이 기록됨
|
|
167
|
+
- [ ] `01_UI_DESIGN.md` 또는 `XX_PROTOTYPE_REVIEW.md`에 화면 상태와 피드백이 기록됨
|
|
168
|
+
- [ ] 필요한 경우 `docs/04_Logic_Progress/00_BACKLOG.md`의 작업 항목에 UI 확인 결과가 반영됨
|
|
169
|
+
|
|
170
|
+
UI-First Gate 보고에는 `Flow Status Block`을 포함하고, 다음 위치가 `Pre-Code Technical Brief`임을 명시한다.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Pre-Code Technical Brief: 데이터·API·상태 최소 합의
|
|
175
|
+
|
|
176
|
+
**목표**: UI 확인 후 바로 코딩하지 않고, 구현에 필요한 최소 기술 계약을 먼저 정한다. 완전한 기술 명세가 아니어도 되지만, React 구현이 임의의 데이터 구조와 상태 흐름을 만들지 않도록 한다.
|
|
177
|
+
|
|
178
|
+
**필수 확인 항목**:
|
|
179
|
+
- [ ] 화면별 데이터 소스: mock data, API, DB, 외부 서비스 중 무엇인가?
|
|
180
|
+
- [ ] 화면별 입력·출력 데이터의 최소 필드
|
|
181
|
+
- [ ] 주요 mutation: 생성, 수정, 삭제, 제출, 업로드 등
|
|
182
|
+
- [ ] 상태 관리 방식: local state, URL state, server state, global store 중 무엇인가?
|
|
183
|
+
- [ ] API/DB가 필요한 경우 임시 계약 또는 문서 위치
|
|
184
|
+
- [ ] Acceptance Criteria: 구현 완료를 판단할 사용자 시나리오
|
|
185
|
+
|
|
186
|
+
**Gate Out**:
|
|
187
|
+
- [ ] `docs/03_Technical_Specs/` 문서가 있으면 관련 계약이 반영됨
|
|
188
|
+
- [ ] 기술 문서가 아직 없으면 백로그의 `Implementation Preconditions` 또는 `Acceptance Criteria`에 최소 계약이 기록됨
|
|
189
|
+
- [ ] 구현자가 mock data 구조와 실제 데이터 전환 방식을 설명할 수 있음
|
|
190
|
+
|
|
191
|
+
Pre-Code Technical Brief 보고에는 `Flow Status Block`을 포함하고, 다음 위치가 `Phase 3 — React 변환`임을 명시한다.
|
|
126
192
|
|
|
127
193
|
---
|
|
128
194
|
|
|
@@ -132,6 +198,9 @@ Phase 2 완료 확인 후 다음을 묻는다:
|
|
|
132
198
|
|
|
133
199
|
**Gate In**:
|
|
134
200
|
- Phase 2 문서 (`02_UI_Screens/`) 존재
|
|
201
|
+
- UI-First Gate 통과
|
|
202
|
+
- 화면·동선·데이터 흐름 확인 결과가 백로그 또는 UI 문서에 반영됨
|
|
203
|
+
- Pre-Code Technical Brief 통과
|
|
135
204
|
|
|
136
205
|
**Gate Out** (다음 단계 진입 조건):
|
|
137
206
|
- [ ] `src/components/` 에 주요 컴포넌트 존재
|
|
@@ -149,6 +218,8 @@ Phase 2 완료 확인 후 다음을 묻는다:
|
|
|
149
218
|
Phase 3 완료 확인 후 다음을 묻는다:
|
|
150
219
|
> "Phase 3이 완료되었습니다. Phase 4(개발문서)로 넘어갈까요?"
|
|
151
220
|
|
|
221
|
+
Phase 3 완료 보고에는 `Flow Status Block`을 포함한다.
|
|
222
|
+
|
|
152
223
|
---
|
|
153
224
|
|
|
154
225
|
## Phase 4: 개발문서 (Technical_Specs / Logic_Progress / QA_Validation)
|
|
@@ -176,6 +247,8 @@ Phase 3 완료 확인 후 다음을 묻는다:
|
|
|
176
247
|
Phase 4 완료 확인 후 다음을 묻는다:
|
|
177
248
|
> "Phase 4 문서가 완성되었습니다. Phase 5(품질 검증)로 넘어갈까요?"
|
|
178
249
|
|
|
250
|
+
Phase 4 완료 보고에는 `Flow Status Block`을 포함한다.
|
|
251
|
+
|
|
179
252
|
---
|
|
180
253
|
|
|
181
254
|
## Phase 5: Quality Gate (품질 검증)
|
|
@@ -188,10 +261,12 @@ Phase 4 완료 확인 후 다음을 묻는다:
|
|
|
188
261
|
|
|
189
262
|
**Gate Out** (다음 단계 진입 조건):
|
|
190
263
|
- [ ] `verify-docs` PASS — 문서 구조·메타데이터 정합성
|
|
264
|
+
- [ ] `verify-ui` PASS — 구현 UI와 화면 문서·사용자 동선·상태별 UI 정합성
|
|
191
265
|
- [ ] `verify-code` PASS — 코드 품질 (로직, 타입, 중복, 사이드 이펙트)
|
|
192
266
|
- [ ] `verify-security` PASS — OWASP Top 10 기준 보안 이슈 없음
|
|
193
267
|
- [ ] `verify-performance` PASS — Lighthouse Performance 90+, Core Web Vitals 기준 충족
|
|
194
268
|
- [ ] `verify-drizzle-schema` PASS — DB 스키마 정합성 (DB 사용 시)
|
|
269
|
+
- [ ] `verify-skills` PASS — 스킬 패키지 변경 시 메타데이터·CLI·패키징 정합성
|
|
195
270
|
|
|
196
271
|
**위임 지시**:
|
|
197
272
|
|
|
@@ -204,6 +279,8 @@ FAIL 항목 발견 시: 해당 스킬로 돌아가 수정 후 재검증
|
|
|
204
279
|
FAIL 항목이 있으면 해당 Phase로 되돌아가 수정 후 재실행한다. 모든 항목 PASS 확인 후 다음을 묻는다:
|
|
205
280
|
> "모든 검증을 통과했습니다. Phase 6(최종 전달물)으로 넘어갈까요?"
|
|
206
281
|
|
|
282
|
+
Phase 5 검증 보고에는 `Flow Status Block`을 포함하고, Fail이 있으면 `필요 확인`에 차단 항목을 적는다.
|
|
283
|
+
|
|
207
284
|
---
|
|
208
285
|
|
|
209
286
|
## Phase 6: 최종 전달물 (선택)
|
|
@@ -230,6 +307,14 @@ FAIL 항목이 있으면 해당 Phase로 되돌아가 수정 후 재실행한다
|
|
|
230
307
|
전체 파이프라인 완료 후 최종 보고:
|
|
231
308
|
|
|
232
309
|
```
|
|
310
|
+
[Flow]
|
|
311
|
+
현재: Phase 6 — 최종 전달물 또는 Handoff
|
|
312
|
+
Gate: 완료
|
|
313
|
+
완료: Phase 1, Phase 2, UI-First Gate, Pre-Code Technical Brief, Phase 3, Phase 4, Phase 5
|
|
314
|
+
다음: 사용자 선택 후속 작업
|
|
315
|
+
필요 확인: 남은 TODO 또는 없음
|
|
316
|
+
권장 스킬: /docs-pitch 또는 /docs-business (선택)
|
|
317
|
+
|
|
233
318
|
전체 워크플로우 완료
|
|
234
319
|
- Phase 1: docs/01_Concept_Design/ 기획문서
|
|
235
320
|
- Phase 2: docs/02_UI_Screens/ UI 설계 문서
|
|
@@ -239,6 +324,18 @@ FAIL 항목이 있으면 해당 Phase로 되돌아가 수정 후 재실행한다
|
|
|
239
324
|
- Phase 6: docs-pitch / docs-business 최종 전달물 (선택)
|
|
240
325
|
```
|
|
241
326
|
|
|
327
|
+
## Final Handoff Checklist
|
|
328
|
+
|
|
329
|
+
Phase 6이 선택 사항이어도, 작업을 마무리할 때는 아래 항목을 최종 보고에 포함한다.
|
|
330
|
+
|
|
331
|
+
- [ ] 현재 Phase와 완료된 Phase 목록
|
|
332
|
+
- [ ] 구현 또는 문서 산출물 경로
|
|
333
|
+
- [ ] UI-First Gate와 Pre-Code Technical Brief 충족 여부
|
|
334
|
+
- [ ] 실행한 verify 스킬과 결과
|
|
335
|
+
- [ ] 배포 URL 또는 로컬 실행 방법 (해당 시)
|
|
336
|
+
- [ ] 남은 TODO, Known Issue, 문서-구현 불일치 여부
|
|
337
|
+
- [ ] 다음 작업자가 바로 이어갈 수 있는 다음 액션
|
|
338
|
+
|
|
242
339
|
---
|
|
243
340
|
|
|
244
341
|
## Anti-Rush Rules (AGENTS.md 준수)
|
|
@@ -261,8 +358,10 @@ FAIL 항목이 있으면 해당 Phase로 되돌아가 수정 후 재실행한다
|
|
|
261
358
|
- **rules-react**: Phase 3 React 개발
|
|
262
359
|
- **docs-dev**: Phase 4 기술 문서 작성
|
|
263
360
|
- **verify-implementation**: Phase 5 품질 검증 통합 실행
|
|
361
|
+
- **verify-ui**: Phase 5 UI 정합성 검증
|
|
264
362
|
- **verify-code**: Phase 5 코드 품질 리뷰
|
|
265
363
|
- **verify-security**: Phase 5 보안 점검
|
|
266
364
|
- **verify-performance**: Phase 5 성능 점검
|
|
365
|
+
- **verify-skills**: 스킬 패키지 변경 검증
|
|
267
366
|
- **docs-pitch**: Phase 6 피치덱 작성
|
|
268
367
|
- **docs-business**: Phase 6 사업계획서 작성
|
package/rules-react/SKILL.md
CHANGED
|
@@ -8,7 +8,8 @@ description: Create modular, premium React components and pages based on UI desi
|
|
|
8
8
|
You are a senior frontend engineer focused on transforming UI designs into clean, premium, and performant React code. You follow a modular approach and use modern best practices.
|
|
9
9
|
|
|
10
10
|
## 1. Input Sources
|
|
11
|
-
- **docs-plan Layer 2**: Read `docs/02_UI_Screens/01_UI_DESIGN.md
|
|
11
|
+
- **docs-plan Layer 2**: Read `docs/02_UI_Screens/00_SCREEN_FLOW.md`, `01_UI_DESIGN.md`, and relevant `XX_PROTOTYPE_REVIEW.md` files before coding.
|
|
12
|
+
- **UI-First Gate**: Confirm screen structure, user path, data flow, and loading/empty/error states before writing React code.
|
|
12
13
|
- **rules-dev**: Follow coding standards, file naming, and state management rules.
|
|
13
14
|
- **Vercel Best Practices**: Follow the provided skills for performance and composition patterns.
|
|
14
15
|
|
|
@@ -21,11 +22,13 @@ You are a senior frontend engineer focused on transforming UI designs into clean
|
|
|
21
22
|
* **Aesthetics**: Implement rich aesthetics, smooth transitions, and premium typography as per the "Web Application Development" guidelines.
|
|
22
23
|
|
|
23
24
|
## 3. Execution steps
|
|
24
|
-
1. **Analyze
|
|
25
|
-
2. **
|
|
26
|
-
3. **
|
|
27
|
-
4. **
|
|
28
|
-
5. **
|
|
25
|
+
1. **Analyze Screens First**: Read the UI Screens documentation and confirm the target screens, user paths, CTA behavior, and responsive differences.
|
|
26
|
+
2. **Map Data Flow**: Identify each screen's inputs, displayed data, mutations, and loading/empty/error states.
|
|
27
|
+
3. **Confirm Before Code**: If screen flow or state coverage is missing, pause implementation and request `docs-plan` or `docs-dev` updates.
|
|
28
|
+
4. **Draft Logic**: Decide on state management and hook structure.
|
|
29
|
+
5. **Data layer**: Prepare mock data or data fetching logic.
|
|
30
|
+
6. **Implement UI**: Build components starting from the most granular (atoms) to full pages.
|
|
31
|
+
7. **Quality check**:
|
|
29
32
|
- Verify against accessibility standards.
|
|
30
33
|
- Check performance (avoid unnecessary re-renders).
|
|
31
34
|
- Ensure responsive design works across all target devices.
|
|
@@ -36,4 +39,4 @@ You are a senior frontend engineer focused on transforming UI designs into clean
|
|
|
36
39
|
- **rules-dev**: Development standards and conventions.
|
|
37
40
|
- **docs-dev**: Technical specs and backend integration details.
|
|
38
41
|
- **vercel-react-best-practices**: Performance optimization.
|
|
39
|
-
- **vercel-composition-patterns**: Reusable component architecture.
|
|
42
|
+
- **vercel-composition-patterns**: Reusable component architecture.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Copyright 2026 Google LLC
|
|
3
|
+
#
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
#
|
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
#
|
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
# See the License for the specific language governing permissions and
|
|
14
|
+
# limitations under the License.
|
|
15
|
+
|
|
16
|
+
URL=$1
|
|
17
|
+
OUTPUT=$2
|
|
18
|
+
if [ -z "$URL" ] || [ -z "$OUTPUT" ]; then
|
|
19
|
+
echo "Usage: $0 <url> <output_path>"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
echo "Initiating high-reliability fetch for Stitch HTML..."
|
|
23
|
+
curl -L -f -sS --connect-timeout 10 --compressed "$URL" -o "$OUTPUT"
|
|
24
|
+
if [ $? -eq 0 ]; then
|
|
25
|
+
echo "✅ Successfully retrieved HTML at: $OUTPUT"
|
|
26
|
+
exit 0
|
|
27
|
+
else
|
|
28
|
+
echo "❌ Error: Failed to retrieve content. Check TLS/SNI or URL expiration."
|
|
29
|
+
exit 1
|
|
30
|
+
fi
|
package/rules-workflow/SKILL.md
CHANGED
|
@@ -9,13 +9,25 @@ Follow this workflow for feature implementation and significant code changes. Co
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## Step 0: Product Phase Preflight
|
|
13
|
+
|
|
14
|
+
기능 구현을 시작하기 전, 먼저 `rules-product` 기준으로 현재 프로젝트 Phase를 진단한다. Concept, UI, UI-First Gate, Pre-Code Technical Brief 중 하나라도 누락되어 구현 판단이 불안정하면 코딩을 시작하지 않고 해당 문서 또는 백로그 보완을 제안한다.
|
|
15
|
+
|
|
16
|
+
- 체크: [ ] 현재 Phase를 진단했는가? [ ] UI-First Gate가 충족되었는가? [ ] 최소 기술 계약이 확인되었는가?
|
|
17
|
+
|
|
18
|
+
진단 결과는 `rules-product`의 `Flow Status Block` 형식으로 먼저 보고한다. 구현 단계 중 사용자가 "지금 어디야?", "다음 뭐야?", "현재 단계가 뭐야?"라고 묻거나 Phase 1-6 경계에 도달하면 같은 형식을 다시 출력한다.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
12
22
|
## Phase 1: Plan (Steps 1–4)
|
|
13
23
|
|
|
14
24
|
### Step 1. 계획 수립
|
|
15
25
|
- 요구사항·목적을 문서 또는 이슈 기준으로 정리한다.
|
|
16
26
|
- 백로그 항목이 있으면 `Related Concept Docs`, `Related UI Docs`, `Related Technical Docs`, `Related QA Docs`를 먼저 읽고 구현 입력값으로 요약한다.
|
|
27
|
+
- 코드 작성보다 먼저 UI-First Gate를 확인한다. 화면 구조, 사용자 동선, 데이터 흐름, 로딩·빈 상태·오류 상태가 문서화되지 않았으면 구현 계획을 보류하고 `docs-plan` 또는 `docs-dev` 문서 보완을 제안한다.
|
|
28
|
+
- Pre-Code Technical Brief를 확인한다. 데이터 소스, 최소 필드, mutation, 상태 관리 방식, acceptance criteria가 불명확하면 구현 전에 사용자와 합의한다.
|
|
17
29
|
- 변경할 파일·추가할 컴포넌트·API·DB 영향 범위를 나열한다.
|
|
18
|
-
- 체크: [ ] 목적이 명확한가? [ ] 관련 문서를 읽었는가? [ ] 영향 범위가 정리되었는가?
|
|
30
|
+
- 체크: [ ] 목적이 명확한가? [ ] 관련 문서를 읽었는가? [ ] UI-First Gate가 확인되었는가? [ ] 최소 기술 계약이 확인되었는가? [ ] 영향 범위가 정리되었는가?
|
|
19
31
|
|
|
20
32
|
### Step 2. 계획 검토
|
|
21
33
|
- 계획이 요구사항과 일치하는지, 누락된 시나리오는 없는지 검토한다.
|
|
@@ -36,7 +48,9 @@ Follow this workflow for feature implementation and significant code changes. Co
|
|
|
36
48
|
### Step 5. 구현
|
|
37
49
|
- 승인된 계획대로 구현한다. AGENTS.md·프로젝트 컨벤션(커밋, Zod, Luxon 등)을 따른다.
|
|
38
50
|
- 코드 작성 전 백로그 항목의 `Implementation Preconditions`와 `Acceptance Criteria`를 확인한다. 관련 문서 링크가 비어 있거나 `N/A - 사유`가 부실하면 구현을 보류하고 문서 보완 필요 여부를 사용자에게 확인한다.
|
|
39
|
-
-
|
|
51
|
+
- UI-First Gate가 통과되지 않았거나 사용자가 화면/UI를 먼저 확인하지 않았다면 구현을 시작하지 않는다.
|
|
52
|
+
- 구현을 시작하기 직전에 `Flow Status Block`을 출력하고, 현재 위치가 `Phase 3 — React 변환` 또는 해당 기능 구현 단계인지 명시한다.
|
|
53
|
+
- 체크: [ ] 계획 대비 변경 사항이 일치하는가? [ ] 백로그의 관련 문서 기준을 반영했는가? [ ] 화면·동선·데이터 흐름 확인 후 구현했는가?
|
|
40
54
|
|
|
41
55
|
---
|
|
42
56
|
|
|
@@ -97,6 +111,7 @@ Follow this workflow for feature implementation and significant code changes. Co
|
|
|
97
111
|
|
|
98
112
|
### Step 17. 배포 가능 퀄리티 최종 검토
|
|
99
113
|
- "이대로 배포해도 될 수준인가?"를 한 번 더 검토한다. 1–16단계에서 누락된 항목이 없는지 확인한다.
|
|
114
|
+
- 최종 검토 시 `Flow Status Block`을 출력하고, 다음 위치가 `Phase 6 — Ship/Handoff`인지 명시한다.
|
|
100
115
|
- 체크: [ ] 배포 전 필수 조건 충족 [ ] 롤백·모니터링 고려 여부
|
|
101
116
|
|
|
102
117
|
---
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# shadcn/ui Setup Verification Script
|
|
3
|
+
# Validates that a project is correctly configured for shadcn/ui
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
GREEN='\033[0;32m'
|
|
8
|
+
RED='\033[0;31m'
|
|
9
|
+
YELLOW='\033[1;33m'
|
|
10
|
+
NC='\033[0m' # No Color
|
|
11
|
+
|
|
12
|
+
echo "🔍 Verifying shadcn/ui setup..."
|
|
13
|
+
echo ""
|
|
14
|
+
|
|
15
|
+
# Check if components.json exists
|
|
16
|
+
if [ -f "components.json" ]; then
|
|
17
|
+
echo -e "${GREEN}✓${NC} components.json found"
|
|
18
|
+
else
|
|
19
|
+
echo -e "${RED}✗${NC} components.json not found"
|
|
20
|
+
echo -e " ${YELLOW}Run:${NC} npx shadcn@latest init"
|
|
21
|
+
exit 1
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Check if tailwind.config exists
|
|
25
|
+
if [ -f "tailwind.config.js" ] || [ -f "tailwind.config.ts" ]; then
|
|
26
|
+
echo -e "${GREEN}✓${NC} Tailwind config found"
|
|
27
|
+
else
|
|
28
|
+
echo -e "${RED}✗${NC} tailwind.config.js not found"
|
|
29
|
+
echo -e " ${YELLOW}Install Tailwind:${NC} npm install -D tailwindcss postcss autoprefixer"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Check if tsconfig.json has path aliases
|
|
34
|
+
if [ -f "tsconfig.json" ]; then
|
|
35
|
+
if grep -q '"@/\*"' tsconfig.json; then
|
|
36
|
+
echo -e "${GREEN}✓${NC} Path aliases configured in tsconfig.json"
|
|
37
|
+
else
|
|
38
|
+
echo -e "${YELLOW}⚠${NC} Path aliases not found in tsconfig.json"
|
|
39
|
+
echo " Add to compilerOptions.paths:"
|
|
40
|
+
echo ' "@/*": ["./src/*"]'
|
|
41
|
+
fi
|
|
42
|
+
else
|
|
43
|
+
echo -e "${YELLOW}⚠${NC} tsconfig.json not found (TypeScript not configured)"
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Check if globals.css or equivalent exists
|
|
47
|
+
if [ -f "src/index.css" ] || [ -f "src/globals.css" ] || [ -f "app/globals.css" ]; then
|
|
48
|
+
echo -e "${GREEN}✓${NC} Global CSS file found"
|
|
49
|
+
|
|
50
|
+
# Check for Tailwind directives
|
|
51
|
+
CSS_FILE=$(find . -name "globals.css" -o -name "index.css" | head -n 1)
|
|
52
|
+
if grep -q "@tailwind base" "$CSS_FILE"; then
|
|
53
|
+
echo -e "${GREEN}✓${NC} Tailwind directives present"
|
|
54
|
+
else
|
|
55
|
+
echo -e "${RED}✗${NC} Tailwind directives missing"
|
|
56
|
+
echo " Add to your CSS file:"
|
|
57
|
+
echo " @tailwind base;"
|
|
58
|
+
echo " @tailwind components;"
|
|
59
|
+
echo " @tailwind utilities;"
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
# Check for CSS variables
|
|
63
|
+
if grep -q "^:root" "$CSS_FILE" || grep -q "@layer base" "$CSS_FILE"; then
|
|
64
|
+
echo -e "${GREEN}✓${NC} CSS variables defined"
|
|
65
|
+
else
|
|
66
|
+
echo -e "${YELLOW}⚠${NC} CSS variables not found"
|
|
67
|
+
echo " shadcn/ui requires CSS variables for theming"
|
|
68
|
+
fi
|
|
69
|
+
else
|
|
70
|
+
echo -e "${RED}✗${NC} Global CSS file not found"
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Check if components/ui directory exists
|
|
74
|
+
if [ -d "src/components/ui" ] || [ -d "components/ui" ]; then
|
|
75
|
+
echo -e "${GREEN}✓${NC} components/ui directory exists"
|
|
76
|
+
|
|
77
|
+
# Count components
|
|
78
|
+
COMPONENT_COUNT=$(find . -path "*/components/ui/*.tsx" -o -path "*/components/ui/*.jsx" | wc -l)
|
|
79
|
+
echo -e " ${COMPONENT_COUNT} components installed"
|
|
80
|
+
else
|
|
81
|
+
echo -e "${YELLOW}⚠${NC} components/ui directory not found"
|
|
82
|
+
echo " Add your first component: npx shadcn@latest add button"
|
|
83
|
+
fi
|
|
84
|
+
|
|
85
|
+
# Check if lib/utils exists
|
|
86
|
+
if [ -f "src/lib/utils.ts" ] || [ -f "lib/utils.ts" ]; then
|
|
87
|
+
echo -e "${GREEN}✓${NC} lib/utils.ts exists"
|
|
88
|
+
|
|
89
|
+
# Check for cn function
|
|
90
|
+
UTILS_FILE=$(find . -name "utils.ts" | grep "lib" | head -n 1)
|
|
91
|
+
if grep -q "export function cn" "$UTILS_FILE"; then
|
|
92
|
+
echo -e "${GREEN}✓${NC} cn() utility function present"
|
|
93
|
+
else
|
|
94
|
+
echo -e "${RED}✗${NC} cn() utility function missing"
|
|
95
|
+
fi
|
|
96
|
+
else
|
|
97
|
+
echo -e "${RED}✗${NC} lib/utils.ts not found"
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
# Check package.json dependencies
|
|
101
|
+
if [ -f "package.json" ]; then
|
|
102
|
+
echo ""
|
|
103
|
+
echo "📦 Checking dependencies..."
|
|
104
|
+
|
|
105
|
+
# Required dependencies
|
|
106
|
+
REQUIRED_DEPS=("react" "tailwindcss")
|
|
107
|
+
RECOMMENDED_DEPS=("class-variance-authority" "clsx" "tailwind-merge" "tailwindcss-animate")
|
|
108
|
+
|
|
109
|
+
for dep in "${REQUIRED_DEPS[@]}"; do
|
|
110
|
+
if grep -q "\"$dep\"" package.json; then
|
|
111
|
+
echo -e "${GREEN}✓${NC} $dep installed"
|
|
112
|
+
else
|
|
113
|
+
echo -e "${RED}✗${NC} $dep not installed"
|
|
114
|
+
fi
|
|
115
|
+
done
|
|
116
|
+
|
|
117
|
+
echo ""
|
|
118
|
+
echo "Recommended dependencies:"
|
|
119
|
+
for dep in "${RECOMMENDED_DEPS[@]}"; do
|
|
120
|
+
if grep -q "\"$dep\"" package.json; then
|
|
121
|
+
echo -e "${GREEN}✓${NC} $dep installed"
|
|
122
|
+
else
|
|
123
|
+
echo -e "${YELLOW}⚠${NC} $dep not installed (recommended)"
|
|
124
|
+
fi
|
|
125
|
+
done
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
echo ""
|
|
129
|
+
echo -e "${GREEN}✓${NC} Setup verification complete!"
|
|
130
|
+
echo ""
|
|
131
|
+
echo "Next steps:"
|
|
132
|
+
echo " 1. Add components: npx shadcn@latest add [component]"
|
|
133
|
+
echo " 2. View catalog: npx shadcn@latest add --help"
|
|
134
|
+
echo " 3. Browse docs: https://ui.shadcn.com"
|
package/verify-code/SKILL.md
CHANGED
|
@@ -6,7 +6,7 @@ argument-hint: "[선택사항: 리뷰할 파일 경로 또는 기능명]"
|
|
|
6
6
|
|
|
7
7
|
# 코드 리뷰 스킬 (verify-code)
|
|
8
8
|
|
|
9
|
-
PR 또는 커밋 전 코드 품질을 종합적으로 점검합니다. 구현이 완료된 코드를 대상으로 아래
|
|
9
|
+
PR 또는 커밋 전 코드 품질을 종합적으로 점검합니다. 구현이 완료된 코드를 대상으로 아래 7개 영역을 순서대로 검토하고 발견된 이슈를 보고합니다.
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -101,6 +101,20 @@ git diff --name-only HEAD
|
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
104
|
+
## Area 7: UI-First 구현 정합성
|
|
105
|
+
|
|
106
|
+
TSX/JSX 화면 또는 컴포넌트 변경이 있으면 `docs/02_UI_Screens/`와 관련 백로그를 확인한다. 상세 UI 검증이 필요하면 `verify-ui`로 위임한다.
|
|
107
|
+
|
|
108
|
+
- 구현된 화면이 UI 문서의 화면 구조, 사용자 동선, CTA와 일치하는지 확인한다.
|
|
109
|
+
- 로딩, 빈 상태, 오류 상태, 권한 없음 상태가 빠지지 않았는지 확인한다.
|
|
110
|
+
- 화면에서 사용하는 데이터가 문서의 입력·출력·저장 흐름과 충돌하지 않는지 확인한다.
|
|
111
|
+
- 체크:
|
|
112
|
+
- [ ] UI-First Gate 문서 또는 백로그를 기준으로 구현했는가?
|
|
113
|
+
- [ ] 상태별 UI가 구현되어 있는가?
|
|
114
|
+
- [ ] 구현이 문서와 달라졌다면 관련 문서를 업데이트했는가?
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
104
118
|
## 보고 형식
|
|
105
119
|
|
|
106
120
|
리뷰 결과는 다음 형식으로 보고한다:
|
|
@@ -116,6 +130,7 @@ git diff --name-only HEAD
|
|
|
116
130
|
|------|------|------|:------:|
|
|
117
131
|
| src/foo.ts:42 | 타입 안전성 | API 응답에 any 사용 | 중 |
|
|
118
132
|
| src/bar.tsx:15 | 불필요 코드 | console.log 미제거 | 낮음 |
|
|
133
|
+
| src/page.tsx:30 | UI-First 정합성 | Error state 미구현 | 중 |
|
|
119
134
|
|
|
120
135
|
### 수정 권장 우선순위
|
|
121
136
|
1. [높음] ...
|
|
@@ -131,4 +146,5 @@ git diff --name-only HEAD
|
|
|
131
146
|
|
|
132
147
|
- `rules-dev`: 프로젝트 코딩 컨벤션 기준
|
|
133
148
|
- `rules-workflow`: Step 14 코드 품질 검토와 연동
|
|
149
|
+
- `verify-ui`: 화면 문서와 구현 UI 일치 여부 검증
|
|
134
150
|
- `verify-security`: 보안 관련 이슈는 이 스킬로 위임
|
package/verify-docs/SKILL.md
CHANGED
|
@@ -12,8 +12,10 @@ description: 프로젝트 문서가 5단계 구조(01~05)와 메타데이터 표
|
|
|
12
12
|
2. 메타데이터 표준 (Created / Last Updated)
|
|
13
13
|
3. Related Documents 섹션
|
|
14
14
|
4. Backlog Context Lock
|
|
15
|
-
5.
|
|
16
|
-
6.
|
|
15
|
+
5. UI-First Gate
|
|
16
|
+
6. Pre-Code Technical Brief
|
|
17
|
+
7. Rubric-First Writing
|
|
18
|
+
8. rules-product Gate Out 조건
|
|
17
19
|
|
|
18
20
|
## 실행 시점
|
|
19
21
|
|
|
@@ -69,10 +71,37 @@ AGENTS.md 또는 `docs/01_Concept_Design/00_COLLABORATION_GUIDE.md`를 읽어
|
|
|
69
71
|
- [ ] 각 작업 항목에 `Document Sync Check`가 있는가?
|
|
70
72
|
- [ ] Related 필드의 링크가 상대 경로이거나 `N/A - 사유` 형식인가?
|
|
71
73
|
- [ ] `N/A`만 있고 사유가 없는 항목은 없는가?
|
|
74
|
+
- [ ] `Implementation Preconditions`에 화면/UI 선확인, 사용자 동선 확인, 데이터 흐름 확인, 로딩·빈 상태·오류 상태 확인이 포함되어 있는가?
|
|
75
|
+
- [ ] `Implementation Preconditions` 또는 `Acceptance Criteria`에 데이터 소스, 최소 필드, mutation, 상태 관리 방식, 검증 가능한 acceptance criteria가 포함되어 있는가?
|
|
72
76
|
|
|
73
77
|
위 항목 중 하나라도 누락되면 Backlog Context Lock은 Fail로 처리한다.
|
|
74
78
|
|
|
75
|
-
### Step 5:
|
|
79
|
+
### Step 5: UI-First Gate 검사
|
|
80
|
+
|
|
81
|
+
`docs/02_UI_Screens/`와 `docs/04_Logic_Progress/00_BACKLOG.md`를 함께 확인한다.
|
|
82
|
+
|
|
83
|
+
체크 항목:
|
|
84
|
+
- [ ] `00_SCREEN_FLOW.md`에 주요 화면, 진입·전환·이탈 동선이 있는가?
|
|
85
|
+
- [ ] `00_SCREEN_FLOW.md` 또는 관련 UI 문서에 화면별 입력·출력 데이터가 있는가?
|
|
86
|
+
- [ ] `01_UI_DESIGN.md` 또는 `XX_PROTOTYPE_REVIEW.md`에 로딩·빈 상태·오류 상태가 있는가?
|
|
87
|
+
- [ ] `XX_PROTOTYPE_REVIEW.md` 또는 백로그에 사용자의 화면/UI 선확인 기록이 있는가?
|
|
88
|
+
- [ ] 코드 구현 백로그가 UI 확인 없이 `In Progress` 또는 `Done`으로 이동하지 않았는가?
|
|
89
|
+
|
|
90
|
+
구현 판단에 필요한 화면·동선·데이터 흐름이 누락되면 UI-First Gate는 Fail로 처리한다.
|
|
91
|
+
|
|
92
|
+
### Step 6: Pre-Code Technical Brief 검사
|
|
93
|
+
|
|
94
|
+
`docs/03_Technical_Specs/`와 `docs/04_Logic_Progress/00_BACKLOG.md`를 함께 확인한다.
|
|
95
|
+
|
|
96
|
+
체크 항목:
|
|
97
|
+
- [ ] 구현 대상 화면의 데이터 소스가 정리되어 있는가?
|
|
98
|
+
- [ ] 화면별 최소 필드와 mock data 또는 API 계약이 있는가?
|
|
99
|
+
- [ ] mutation과 상태 관리 방식이 기록되어 있는가?
|
|
100
|
+
- [ ] acceptance criteria가 사용자 시나리오 기준으로 검증 가능한가?
|
|
101
|
+
|
|
102
|
+
데이터·API·상태 계약이 없어 구현자가 임의 구조를 만들 수밖에 없으면 Pre-Code Technical Brief는 Fail로 처리한다.
|
|
103
|
+
|
|
104
|
+
### Step 7: Rubric-First Writing 검사
|
|
76
105
|
|
|
77
106
|
| 레이어 | 기준 |
|
|
78
107
|
|:---|:---|
|
|
@@ -82,7 +111,7 @@ AGENTS.md 또는 `docs/01_Concept_Design/00_COLLABORATION_GUIDE.md`를 읽어
|
|
|
82
111
|
| Technical_Specs (Layer 3) | Functionality, UX (latency), Open-source 언급 (권장) |
|
|
83
112
|
| Logic_Progress (Layer 4) | Functionality, UX 언급 (권장) |
|
|
84
113
|
|
|
85
|
-
### Step
|
|
114
|
+
### Step 8: Gate Out 조건 검사
|
|
86
115
|
|
|
87
116
|
rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한다.
|
|
88
117
|
|
|
@@ -94,13 +123,15 @@ rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한
|
|
|
94
123
|
**Phase 2 (UI 설계)**:
|
|
95
124
|
- [ ] `docs/02_UI_Screens/00_SCREEN_FLOW.md`
|
|
96
125
|
- [ ] `docs/02_UI_Screens/01_UI_DESIGN.md`
|
|
126
|
+
- [ ] 화면·동선·데이터 흐름·상태별 UI 확인 기록
|
|
127
|
+
- [ ] Pre-Code Technical Brief 기록
|
|
97
128
|
|
|
98
129
|
**Phase 5 (개발문서)**:
|
|
99
130
|
- [ ] `docs/03_Technical_Specs/00_DEVELOPMENT_PRINCIPLES.md`
|
|
100
131
|
- [ ] `docs/04_Logic_Progress/00_ROADMAP.md`
|
|
101
132
|
- [ ] `docs/05_QA_Validation/02_QA_CHECKLIST.md`
|
|
102
133
|
|
|
103
|
-
### Step
|
|
134
|
+
### Step 9: 검증 보고서 출력
|
|
104
135
|
|
|
105
136
|
검사 완료 후 아래 형식으로 결과를 출력한다:
|
|
106
137
|
|
|
@@ -114,6 +145,8 @@ rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한
|
|
|
114
145
|
| 메타데이터 | Pass / Fail | 누락 파일 목록 |
|
|
115
146
|
| Related Documents | Pass / Fail | 미연결 파일 목록 |
|
|
116
147
|
| Backlog Context Lock | Pass / Fail | 필수 필드 누락 작업 목록 |
|
|
148
|
+
| UI-First Gate | Pass / Fail | 화면·동선·데이터 흐름 누락 목록 |
|
|
149
|
+
| Pre-Code Technical Brief | Pass / Fail | 데이터·API·상태 계약 누락 목록 |
|
|
117
150
|
| Rubric-First | Pass / Fail | |
|
|
118
151
|
| Gate Out 조건 | Pass / Fail | 미충족 파일 목록 |
|
|
119
152
|
|