solmate-skills 2.0.5 → 2.0.7

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 CHANGED
@@ -56,6 +56,23 @@
56
56
  - **파일 네이밍**: 모든 파일명 앞에는 `01_`과 같은 **순번(Numbering)**을 반드시 붙여 생성 순서와 계층을 명확히 한다. (예: `01_VISION.md`, `02_UI_DESIGN.md`)
57
57
  - **Interactive Process**: 문서를 작성할 때 AI가 독단적으로 내용을 채우지 않는다. 초안 작성 전, **반드시 사용자에게 핵심 질문을 던지고 답변을 바탕으로 문서를 작성(Ask before Write)**한다.
58
58
 
59
+ ### 2.7. SVG 다이어그램 산출물 표준 (User Journey & Data Flow)
60
+ - **사용자 동선 SVG 필수화**: 주요 기능·화면 흐름 문서에는 사용자 동선(User Journey / Screen Flow)을 설명하는 SVG 다이어그램을 포함한다.
61
+ - **저장 위치**: 사용자 동선 SVG는 `docs/02_UI_Screens/assets/`에 저장하고, 관련 UI 스크린 문서에서 상대 경로로 참조한다.
62
+ - **데이터 흐름 SVG 필수화**: 주요 기능의 기술 명세에는 데이터 흐름(Data Flow / API-DB-External Service Flow)을 설명하는 SVG 다이어그램을 포함한다.
63
+ - **저장 위치**: 데이터 흐름 SVG는 `docs/03_Technical_Specs/assets/`에 저장하고, 관련 기술 명세 문서에서 상대 경로로 참조한다.
64
+ - **작업 관리 위치**: SVG 작성·수정 작업은 `docs/04_Logic_Progress/00_BACKLOG.md` 또는 `docs/04_Logic_Progress/02_EXECUTION_PLAN.md`에 태스크로 관리한다.
65
+ - **검증 위치**: SVG가 최신 UI·API·DB 구조와 일치하는지 여부는 `docs/05_QA_Validation/`의 QA 체크리스트 또는 검증 문서에서 확인한다.
66
+ - **파일 네이밍**: SVG 파일명에도 순번과 목적을 포함한다. (예: `01_user_journey.svg`, `02_auth_data_flow.svg`)
67
+
68
+ ### 2.8. HTML UI Preview Gate (필수)
69
+ - **HTML Preview 필수화**: `docs/02_UI_Screens/`의 UI 문서는 Markdown 설명만으로 완료할 수 없다. 주요 화면과 사용자 흐름은 반드시 브라우저에서 열어볼 수 있는 HTML Preview로 제작한다.
70
+ - **저장 위치**: HTML Preview는 `docs/02_UI_Screens/previews/`에 저장한다.
71
+ - **파일 네이밍**: HTML 파일명에도 순번과 목적을 포함한다. (예: `01_main_flow_preview.html`, `02_dashboard_preview.html`)
72
+ - **문서 링크 필수**: `00_SCREEN_FLOW.md`, `01_UI_DESIGN.md`, 관련 `XX_PROTOTYPE_REVIEW.md`는 해당 HTML Preview를 상대 경로로 링크해야 한다.
73
+ - **사용자 커뮤니케이션 필수**: 구현 전 HTML Preview를 사용자에게 보여주고 피드백을 받아야 하며, 확인 결과와 보완 사항을 UI 문서 또는 `docs/04_Logic_Progress/00_BACKLOG.md`에 기록한다.
74
+ - **구현 차단 조건**: HTML Preview가 없거나 문서에 링크되지 않았거나 사용자의 화면 확인 기록이 없으면 UI-First Gate를 통과할 수 없고, 구현을 시작할 수 없다.
75
+
59
76
  ## 3. 개발 표준 및 품질
60
77
  - **UI 중심 개발 전략 (UI-First)**: Concept_Design -> UI_Screens -> Technical_Specs -> Logic_Progress 순서를 따른다.
61
78
  - **git commit 필수**: 중요 작업 전 반드시 git commit을 수행한다.
@@ -87,7 +104,7 @@ AI 에이전트는 본 프로젝트에 설치된 다음 **26개 스킬**을 활
87
104
  | | `docs-business` | 사업계획서 작성 (정부 지원, 투자 심사, 파트너십 목적별 구성) |
88
105
  | **품질 검증 (QA)** | `verify-implementation` | 모든 `verify-*` 스킬의 통합 순차 실행 및 보고 |
89
106
  | | `verify-docs` | 문서 레이어 정합성 및 네이밍/메타데이터, UI-First Gate 검증 |
90
- | | `verify-ui` | 구현 UI와 화면 문서·사용자 동선·상태별 UI 정합성 검증 |
107
+ | | `verify-ui` | 구현 UI와 화면 문서·HTML Preview·사용자 동선·상태별 UI 정합성 검증 |
91
108
  | | `verify-code` | PR 전 코드 품질 종합 리뷰 (로직, 타입, 중복, 사이드 이펙트) |
92
109
  | | `verify-security` | OWASP Top 10 기준 보안 취약점 점검 (인증, 인젝션, 시크릿 노출 등) |
93
110
  | | `verify-performance` | Lighthouse·Core Web Vitals 기준 성능 점검 (LCP, CLS, 번들, 이미지) |
@@ -112,7 +129,7 @@ AI 에이전트는 사용자가 스킬을 호출하지 않아도, 아래 상황
112
129
  | 기술 선택, DB/API/아키텍처 설계 논의 시작 | `manage-decisions` | "결정이 필요한 상황입니다. `/manage-decisions`로 유형별 질문을 진행할까요?" |
113
130
  | 보안·인증·인가·환경변수 관련 코드 작성 전후 | `verify-security` | "보안 관련 변경입니다. `/verify-security`로 OWASP 점검을 실행할까요?" |
114
131
  | 성능·렌더링·이미지·번들 관련 작업 완료 후 | `verify-performance` | "성능 영향이 있을 수 있습니다. `/verify-performance`로 Lighthouse 점검을 실행할까요?" |
115
- | UI·화면·컴포넌트 구현 완료 후 | `verify-ui` | "UI 구현 변경입니다. `/verify-ui`로 화면 문서와 사용자 동선 정합성을 검증할까요?" |
132
+ | UI·화면·컴포넌트 구현 완료 후 | `verify-ui` | "UI 구현 변경입니다. `/verify-ui`로 HTML Preview·화면 문서·사용자 동선 정합성을 검증할까요?" |
116
133
  | PR 생성 전, 코드 변경 완료 후 | `verify-code`, `verify-implementation` | "PR 전 최종 점검입니다. `/verify-implementation`으로 전체 검증을 실행할까요?" |
117
134
  | 기획·UI 문서 작성 요청 | `docs-plan` | "Layer 1-2 문서 작성은 `/docs-plan`을 사용하세요." |
118
135
  | DB 스키마·API 명세·백로그 작성 요청 | `docs-dev` | "Layer 3-5 문서 작성은 `/docs-dev`를 사용하세요." |
package/README.md CHANGED
@@ -2,17 +2,20 @@
2
2
 
3
3
  Curated skills for Solmate projects. Easily share and install AI tool skills across your team.
4
4
 
5
- ## What's New in 2.0.4
5
+ ## What's New in 2.0.6
6
6
 
7
- `solmate-skills@2.0.4` keeps **Backlog Context Lock** as the current documentation guardrail, adds **UI-First Gate** expectations, and tightens package hygiene for Codex-local settings.
7
+ `solmate-skills@2.0.6` keeps **Backlog Context Lock** as the current documentation guardrail, adds **UI-First Gate** expectations, requires browser-viewable **HTML UI Previews**, formalizes SVG diagram outputs, and fixes package hygiene so installable skill scripts are included in the npm tarball.
8
8
 
9
9
  Key changes:
10
10
 
11
11
  - Every backlog task must link to related Concept, UI, Technical Spec, and QA documents.
12
12
  - UI, user paths, data flow, loading states, empty states, and error states must be confirmed before coding.
13
+ - UI planning must include HTML preview files under `docs/02_UI_Screens/previews/` and link them from the related UI documents.
14
+ - User journey SVG files belong in `docs/02_UI_Screens/assets/`.
15
+ - Data flow SVG files belong in `docs/03_Technical_Specs/assets/`.
13
16
  - `/rules-workflow` now treats linked backlog documents as implementation inputs before coding starts.
14
17
  - `/verify-docs` fails backlog items that omit required related-document fields.
15
- - Local Codex settings under `.codex/` are excluded from the npm package.
18
+ - Local Codex settings under `.codex/` are excluded from the npm package, while skill-owned shell scripts remain publishable.
16
19
 
17
20
  ## Installation
18
21
 
@@ -159,7 +162,7 @@ Skills are organized into five categories.
159
162
  | `verify-security` | Check for security vulnerabilities based on OWASP Top 10. |
160
163
  | `verify-performance` | Lighthouse & Core Web Vitals check. |
161
164
  | `verify-code` | Comprehensive pre-PR code quality review. |
162
- | `verify-ui` | Verify implemented UI against screen docs and user flows. |
165
+ | `verify-ui` | Verify implemented UI against screen docs, HTML previews, and user flows. |
163
166
  | `verify-skills` | Verify skill package metadata, CLI output, and release readiness. |
164
167
 
165
168
  ---
@@ -193,13 +196,14 @@ docs/
193
196
 
194
197
  ```
195
198
  1. /docs-plan → Write VISION_CORE.md, LEAN_CANVAS.md, PRODUCT_SPECS.md
196
- 2. /docs-plan → Write SCREEN_FLOW.md, UI_DESIGN.md
197
- 3. UI-First Gate → Confirm screens, user paths, data flow, and UI states before coding
198
- 4. Pre-Code Technical Brief → Confirm data sources, API shape, state strategy, and acceptance criteria
199
- 5. /docs-dev Write DEVELOPMENT_PRINCIPLES.md, DB_SCHEMA.md, API_SPECS.md
200
- 6. /docs-dev → Write ROADMAP.md, BACKLOG.md with mandatory related document links
201
- 7. /rules-workflow Implement each backlog item only after reading linked docs and passing UI-First Gate
202
- 8. /verify-implementation Audit docs, UI, code, security, performance, DB, and skill package changes
199
+ 2. /docs-plan → Write SCREEN_FLOW.md, UI_DESIGN.md, and HTML UI previews
200
+ 3. HTML UI Preview Gate → Show browser-viewable HTML screens and capture user feedback
201
+ 4. UI-First Gate → Confirm screens, user paths, data flow, and UI states before coding
202
+ 5. Pre-Code Technical Brief Confirm data sources, API shape, state strategy, and acceptance criteria
203
+ 6. /docs-dev → Write DEVELOPMENT_PRINCIPLES.md, DB_SCHEMA.md, API_SPECS.md
204
+ 7. /docs-dev Write ROADMAP.md, BACKLOG.md with mandatory related document links
205
+ 8. /rules-workflow Implement each backlog item only after reading linked docs and passing UI-First Gate
206
+ 9. /verify-implementation → Audit docs, UI, code, security, performance, DB, and skill package changes
203
207
  ```
204
208
 
205
209
  Backlog items are intentionally document-linked. Each task in `docs/04_Logic_Progress/00_BACKLOG.md` must include related Concept, UI, Technical Spec, and QA documents, plus implementation preconditions, acceptance criteria, and a document sync check. If a related document does not exist, the item must say `N/A - 사유`; implementation should pause when the missing document is required for a safe decision.
@@ -210,12 +214,30 @@ Backlog Context Lock makes `docs/04_Logic_Progress/00_BACKLOG.md` act as a bridg
210
214
 
211
215
  ### UI-First Gate
212
216
 
213
- UI-First Gate prevents implementation from starting before the team has reviewed the actual screens and the user's path through them. Before coding, confirm the core screen structure, user entry and exit paths, CTAs, screen-by-screen data flow, loading states, empty states, and error states. If these are missing, update `docs/02_UI_Screens/` or the backlog first.
217
+ UI-First Gate prevents implementation from starting before the team has reviewed the actual screens and the user's path through them. Before coding, confirm the core screen structure, user entry and exit paths, CTAs, screen-by-screen data flow, loading states, empty states, and error states. If these are missing, update `docs/02_UI_Screens/`, its HTML previews, or the backlog first.
218
+
219
+ ### HTML UI Preview Gate
220
+
221
+ UI planning documents are not complete with Markdown alone. For every major screen or user flow, create a browser-viewable HTML preview and store it under:
222
+
223
+ ```text
224
+ docs/02_UI_Screens/previews/
225
+ ```
226
+
227
+ Recommended naming:
228
+
229
+ ```text
230
+ docs/02_UI_Screens/previews/01_main_flow_preview.html
231
+ docs/02_UI_Screens/previews/02_dashboard_preview.html
232
+ ```
233
+
234
+ Each related UI document must link to the HTML file with a relative path. The preview must be shown to the user before implementation, and feedback must be captured in `XX_PROTOTYPE_REVIEW.md`, `00_SCREEN_FLOW.md`, `01_UI_DESIGN.md`, or the related backlog item.
214
235
 
215
236
  Required fields for every backlog item:
216
237
 
217
238
  - `Related Concept Docs`
218
239
  - `Related UI Docs`
240
+ - `Related HTML Preview`
219
241
  - `Related Technical Docs`
220
242
  - `Related QA Docs`
221
243
  - `Implementation Preconditions`
@@ -234,6 +256,8 @@ If a related document does not exist, write `N/A - 사유`. Do not leave the fie
234
256
  - [Product Specs](../01_Concept_Design/03_PRODUCT_SPECS.md) - feature purpose and user value
235
257
  - Related UI Docs:
236
258
  - [Screen Flow](../02_UI_Screens/00_SCREEN_FLOW.md) - target screen and interaction flow
259
+ - Related HTML Preview:
260
+ - [Main Flow Preview](../02_UI_Screens/previews/01_main_flow_preview.html) - browser-viewable UI for user review
237
261
  - Related Technical Docs:
238
262
  - [API Specs](../03_Technical_Specs/02_API_SPECS.md) - endpoint and data contract
239
263
  - Related QA Docs:
@@ -241,6 +265,7 @@ If a related document does not exist, write `N/A - 사유`. Do not leave the fie
241
265
  - Implementation Preconditions:
242
266
  - [ ] Read all related documents before coding
243
267
  - [ ] Confirm screen/UI before coding
268
+ - [ ] Show the HTML UI preview to the user and capture feedback
244
269
  - [ ] Confirm user path and screen-by-screen data flow
245
270
  - [ ] Confirm loading, empty, and error states
246
271
  - [ ] Confirm implementation scope does not conflict with documented intent
package/docs-dev/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: docs-dev
3
- description: Create and manage development documents for Layer 3 (Technical_Specs), Layer 4 (Logic_Progress), and Layer 5 (QA_Validation). Use when writing DB schema docs, API specs, development principles, roadmaps, backlogs, business logic designs, or test scenarios. Always read existing files before editing. Include Related Documents sections.
3
+ description: Create and manage development documents for Layer 3 (Technical_Specs), Layer 4 (Logic_Progress), and Layer 5 (QA_Validation). Use when writing DB schema docs, API specs, development principles, roadmaps, backlogs, business logic designs, or test scenarios. Enforces backlog links to Concept/UI/HTML Preview/Technical/QA docs before implementation. Always read existing files before editing.
4
4
  ---
5
5
 
6
6
  # Development Documentation Skill
@@ -60,19 +60,21 @@ This skill manages **Layer 3 (Technical_Specs)**, **Layer 4 (Logic_Progress)**,
60
60
 
61
61
  **Backlog 문서 참조 강제 규칙**: `00_BACKLOG.md`의 모든 작업 항목은 관련 문서를 읽은 뒤 작성해야 하며, 구현자는 코드 작성 전에 해당 문서를 다시 확인해야 한다. 백로그는 단순 ToDo 목록이 아니라 Concept, UI, Technical Spec, QA 기준을 구현으로 연결하는 실행 티켓이어야 한다.
62
62
 
63
- **UI-First Gate 강제 규칙**: 구현 코드는 화면 확인 이후에만 작성한다. 백로그 항목은 관련 UI 문서에서 화면 구조, 사용자 동선, 데이터 흐름, 로딩·빈 상태·오류 상태를 확인했음을 `Implementation Preconditions`에 포함해야 한다. 해당 정보가 없으면 `docs/02_UI_Screens/` 문서부터 보완한다.
63
+ **UI-First Gate 강제 규칙**: 구현 코드는 화면 확인 이후에만 작성한다. 백로그 항목은 관련 UI 문서와 HTML Preview에서 화면 구조, 사용자 동선, 데이터 흐름, 로딩·빈 상태·오류 상태를 확인했음을 `Implementation Preconditions`에 포함해야 한다. 해당 정보가 없으면 `docs/02_UI_Screens/` 문서와 `docs/02_UI_Screens/previews/` HTML 파일부터 보완한다.
64
64
 
65
65
  **Pre-Code Technical Brief 강제 규칙**: UI 확인 후에도 바로 구현하지 않는다. 데이터 소스, 최소 필드, mutation, 상태 관리 방식, acceptance criteria가 백로그나 기술 문서에 기록되어야 한다. 불명확하면 `docs/03_Technical_Specs/` 문서 또는 백로그 항목을 먼저 보완한다.
66
66
 
67
67
  Backlog 항목 작성 전 필수 확인 대상:
68
68
  - `docs/01_Concept_Design/`: 기능 목적, 사용자 가치, 제품 방향
69
69
  - `docs/02_UI_Screens/`: 화면 흐름, UI 상태, 인터랙션
70
+ - `docs/02_UI_Screens/previews/`: 사용자에게 보여줄 HTML UI Preview
70
71
  - `docs/03_Technical_Specs/`: API, DB, 데이터 구조, 기술 제약
71
72
  - `docs/05_QA_Validation/`: 테스트 기준, 수용 조건, 검증 시나리오
72
73
 
73
74
  각 Backlog 항목은 다음 필드를 반드시 포함한다:
74
75
  - `Related Concept Docs`: 관련 기획/디자인 문서
75
76
  - `Related UI Docs`: 관련 화면/플로우 문서
77
+ - `Related HTML Preview`: 관련 HTML 화면 프로토타입
76
78
  - `Related Technical Docs`: 관련 기술 명세 문서
77
79
  - `Related QA Docs`: 관련 검증 문서
78
80
  - `Implementation Preconditions`: 구현 전 반드시 확인할 조건
@@ -85,6 +87,7 @@ Backlog 항목 작성 전 필수 확인 대상:
85
87
  - 관련 문서를 실제로 읽었는가?
86
88
  - 문서의 요구사항이 Backlog 항목에 반영되어 있는가?
87
89
  - 화면 구조와 사용자 동선을 먼저 확인했는가?
90
+ - HTML UI Preview를 사용자에게 보여주고 피드백을 기록했는가?
88
91
  - 화면별 입력·출력 데이터와 상태 변화를 확인했는가?
89
92
  - 로딩·빈 상태·오류 상태가 UI 문서나 백로그에 반영되어 있는가?
90
93
  - 데이터 소스, 최소 필드, mutation, 상태 관리 방식이 정리되었는가?
@@ -188,6 +191,8 @@ Backlog 항목 작성 전 필수 확인 대상:
188
191
  - [문서명](../01_Concept_Design/XX_DOCUMENT.md) - 기능 목적/사용자 가치 근거
189
192
  - Related UI Docs:
190
193
  - [문서명](../02_UI_Screens/XX_DOCUMENT.md) - 화면 흐름/상태/인터랙션 근거
194
+ - Related HTML Preview:
195
+ - [HTML Preview](../02_UI_Screens/previews/XX_SCREEN_PREVIEW.html) - 사용자 확인용 브라우저 화면
191
196
  - Related Technical Docs:
192
197
  - [문서명](../03_Technical_Specs/XX_DOCUMENT.md) - API/DB/데이터 구조 근거
193
198
  - Related QA Docs:
@@ -195,6 +200,7 @@ Backlog 항목 작성 전 필수 확인 대상:
195
200
  - Implementation Preconditions:
196
201
  - [ ] 관련 문서 전체 확인 완료
197
202
  - [ ] 화면/UI 선확인 완료
203
+ - [ ] HTML UI Preview 사용자 확인 및 피드백 기록 완료
198
204
  - [ ] 사용자 진입·전환·이탈 동선 확인 완료
199
205
  - [ ] 화면별 입력·출력 데이터 및 상태 변화 확인 완료
200
206
  - [ ] 로딩·빈 상태·오류 상태 확인 완료
@@ -203,6 +209,7 @@ Backlog 항목 작성 전 필수 확인 대상:
203
209
  - [ ] 구현 범위와 문서 요구사항 충돌 없음
204
210
  - Acceptance Criteria:
205
211
  - [ ] 구현 결과가 확인된 화면 구조와 사용자 동선을 따른다
212
+ - [ ] 구현 결과가 HTML UI Preview와 의도 없이 불일치하지 않는다
206
213
  - [ ] 데이터 흐름과 상태 변화가 Pre-Code Technical Brief와 일치한다
207
214
  - [ ] QA 기준이 구현 완료 판단에 반영됨
208
215
  - [ ] 핵심 사용자 흐름이 검증됨
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Development Docs"
3
- short_description: "Write technical specs, backlogs, and QA docs"
4
- default_prompt: "Use $docs-dev to create technical specs, implementation plans, and QA validation docs."
3
+ short_description: "Write specs, backlogs, QA, and preview links"
4
+ default_prompt: "Use $docs-dev to create technical specs, implementation plans, preview-linked backlogs, and QA validation docs."
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: docs-plan
3
- description: Create and manage planning documents for Layer 1 (Concept_Design) and Layer 2 (UI_Screens). Use when documenting product vision, lean canvas, product specs, UI design systems, screen flows, or prototype reviews. Ask before writing. Always include Related Documents sections.
3
+ description: Create and manage planning documents for Layer 1 (Concept_Design) and Layer 2 (UI_Screens), including required HTML UI previews under docs/02_UI_Screens/previews/. Use when documenting product vision, lean canvas, product specs, UI design systems, screen flows, HTML prototypes, or prototype reviews. Ask before writing. Always include Related Documents sections.
4
4
  ---
5
5
 
6
6
  # Planning Documentation Skill
@@ -39,6 +39,7 @@ This skill manages **Layer 1 (Concept_Design)** and **Layer 2 (UI_Screens)** —
39
39
  **Layer 2 — UI_Screens**
40
40
  - `00_SCREEN_FLOW.md` — 전체 사용자 여정, 진입·전환·이탈 흐름, 화면별 데이터 입출력
41
41
  - `01_UI_DESIGN.md` — 디자인 시스템, 화면 구조, 상태별 UI, 핵심 CTA
42
+ - `previews/XX_SCREEN_PREVIEW.html` — 브라우저에서 열어볼 수 있는 화면/사용자 흐름 HTML Preview
42
43
  - `XX_PROTOTYPE_REVIEW.md` — 페이지별 화면 확인 결과와 구현 전 피드백
43
44
 
44
45
  ## 3. Interactive Process (Ask Before Write)
@@ -77,7 +78,9 @@ This skill manages **Layer 1 (Concept_Design)** and **Layer 2 (UI_Screens)** —
77
78
  18. **User Path**: 사용자는 어디서 진입하고, 어떤 CTA를 누르며, 어디로 이동하거나 이탈하는가?
78
79
  19. **Data Flow**: 각 화면에서 필요한 입력 데이터, 표시 데이터, 저장/전송 데이터는 무엇인가?
79
80
  20. **State Coverage**: 로딩, 빈 상태, 오류 상태, 권한 없음 상태는 화면에서 어떻게 보이는가?
80
- 21. **Prototype Review**: 사용자가 실제 화면, 스크린샷, 와이어프레임, 또는 프로토타입 리뷰를 먼저 확인했는가?
81
+ 21. **HTML UI Preview**: 주요 화면과 사용자 흐름을 `docs/02_UI_Screens/previews/`의 HTML 파일로 제작했는가?
82
+ 22. **Preview Links**: `00_SCREEN_FLOW.md`, `01_UI_DESIGN.md`, 관련 `XX_PROTOTYPE_REVIEW.md`에서 HTML Preview를 상대 경로로 링크했는가?
83
+ 23. **Prototype Review**: 사용자가 HTML Preview, 실제 화면, 스크린샷, 와이어프레임, 또는 프로토타입 리뷰를 먼저 확인했는가?
81
84
 
82
85
  ## 4. Templates
83
86
 
@@ -143,37 +146,44 @@ This skill manages **Layer 1 (Concept_Design)** and **Layer 2 (UI_Screens)** —
143
146
  > Created: YYYY-MM-DD HH:mm
144
147
  > Last Updated: YYYY-MM-DD HH:mm
145
148
 
146
- ## 1. Prototype Link/Screenshot
147
- (이미지 또는 작동 프로토타입 링크 첨부)
149
+ ## 1. HTML UI Preview
150
+ - Preview: [HTML Preview](./previews/XX_SCREEN_PREVIEW.html)
151
+ - 확인 방식: 브라우저에서 HTML 파일 열람 / 로컬 서버 / 배포 URL
152
+ - 확인 목적: 화면 구조, 사용자 동선, 상태별 UI 커뮤니케이션
148
153
 
149
- ## 2. Key User Flows
154
+ ## 2. Prototype Link/Screenshot
155
+ (스크린샷, 배포 URL, 또는 추가 작동 프로토타입 링크 첨부)
156
+
157
+ ## 3. Key User Flows
150
158
  (이 프로토타입에서 시연된 흐름 설명)
151
159
 
152
- ## 3. Screen States
160
+ ## 4. Screen States
153
161
  - Default:
154
162
  - Loading:
155
163
  - Empty:
156
164
  - Error:
157
165
  - Permission denied / unavailable:
158
166
 
159
- ## 4. Data Flow
167
+ ## 5. Data Flow
160
168
  - Inputs:
161
169
  - Displayed data:
162
170
  - Mutations / saved data:
163
171
  - External dependencies:
164
172
 
165
- ## 5. User Confirmation
173
+ ## 6. User Confirmation
166
174
  - 화면/UI 선확인 여부:
175
+ - HTML Preview 확인 여부:
167
176
  - 확인자:
168
177
  - 확인 일시:
169
178
  - 보완 필요 사항:
170
179
 
171
- ## 6. Feedback & Improvements
180
+ ## 7. Feedback & Improvements
172
181
  (구현 전 변경이 필요한 사항)
173
182
 
174
- ## 7. Related Documents
183
+ ## 8. Related Documents
175
184
  - **Concept_Design**: [Product Specs](../01_Concept_Design/03_PRODUCT_SPECS.md) - 사이트맵 및 사용자 플로우
176
185
  - **UI_Screens**: [UI Design](./01_UI_DESIGN.md) - 디자인 시스템 및 컴포넌트 가이드라인
186
+ - **UI_Screens**: [HTML Preview](./previews/XX_SCREEN_PREVIEW.html) - 브라우저 확인용 화면 프로토타입
177
187
  - **Technical_Specs**: [Related Spec](../03_Technical_Specs/XX_SPEC.md) - 구현 명세 요구사항
178
188
  ```
179
189
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Planning Docs"
3
- short_description: "Write product vision, concept, and UI docs"
4
- default_prompt: "Use $docs-plan to build the product vision, screen flow, and UI planning documents."
3
+ short_description: "Write product docs and HTML UI previews"
4
+ default_prompt: "Use $docs-plan to build product vision, screen flow, UI docs, and HTML UI previews."
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ secrets_file="${1:-$HOME/.config/k-skill/secrets.env}"
5
+
6
+ missing=0
7
+
8
+ if [[ ! -f "$secrets_file" ]]; then
9
+ echo "missing secrets file: $secrets_file"
10
+ missing=1
11
+ else
12
+ perms=$(stat -f '%Lp' "$secrets_file" 2>/dev/null || stat -c '%a' "$secrets_file" 2>/dev/null)
13
+ if [[ "$perms" != "600" ]]; then
14
+ echo "insecure permissions on $secrets_file: $perms (expected 600)"
15
+ missing=1
16
+ fi
17
+ fi
18
+
19
+ if [[ "$missing" -ne 0 ]]; then
20
+ cat <<EOF
21
+ next steps:
22
+ 1. create ~/.config/k-skill/secrets.env with your credentials
23
+ 2. chmod 0600 ~/.config/k-skill/secrets.env
24
+ 3. run this check again
25
+ EOF
26
+ exit 1
27
+ fi
28
+
29
+ echo "k-skill setup looks usable"
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ SECRETS_FILE="${KSKILL_SECRETS_FILE:-$HOME/.config/k-skill/secrets.env}"
6
+
7
+ if [[ -f "$SECRETS_FILE" ]]; then
8
+ set -a
9
+ # shellcheck disable=SC1090
10
+ source "$SECRETS_FILE"
11
+ set +a
12
+ fi
13
+
14
+ cd "$ROOT_DIR"
15
+ exec node packages/k-skill-proxy/src/server.js
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ status=0
6
+
7
+ while IFS= read -r -d '' skill_dir; do
8
+ skill_name="$(basename "$skill_dir")"
9
+ skill_file="$skill_dir/SKILL.md"
10
+
11
+ if [[ ! -f "$skill_file" ]]; then
12
+ echo "missing SKILL.md: $skill_name"
13
+ status=1
14
+ continue
15
+ fi
16
+
17
+ if ! head -n 1 "$skill_file" | grep -qx -- "---"; then
18
+ echo "missing frontmatter start: $skill_file"
19
+ status=1
20
+ fi
21
+
22
+ if ! grep -q '^name: ' "$skill_file"; then
23
+ echo "missing name field: $skill_file"
24
+ status=1
25
+ fi
26
+
27
+ if ! grep -q '^description: ' "$skill_file"; then
28
+ echo "missing description field: $skill_file"
29
+ status=1
30
+ fi
31
+
32
+ declared_name="$(sed -n 's/^name: //p' "$skill_file" | head -n 1 | tr -d '"')"
33
+ if [[ "$declared_name" != "$skill_name" ]]; then
34
+ echo "name mismatch: $skill_file declares '$declared_name' but directory is '$skill_name'"
35
+ status=1
36
+ fi
37
+ done < <(
38
+ find "$root" -mindepth 1 -maxdepth 1 -type d \
39
+ ! -name .git \
40
+ ! -name .github \
41
+ ! -name .omx \
42
+ ! -name .changeset \
43
+ ! -name docs \
44
+ ! -name node_modules \
45
+ ! -name packages \
46
+ ! -name python-packages \
47
+ ! -name scripts \
48
+ ! -name examples \
49
+ -print0
50
+ )
51
+
52
+ if [[ "$status" -ne 0 ]]; then
53
+ exit "$status"
54
+ fi
55
+
56
+ echo "skill layout looks valid"
@@ -0,0 +1,157 @@
1
+ #!/usr/bin/env bash
2
+ # solmate-skills: install.sh
3
+ # Purpose: Install Solmate hook scripts into the current project's .claude/ directory
4
+ # and merge hook configuration into .claude/settings.json.
5
+ # Usage: bash .agent/skills/hooks/install.sh
6
+ # (or run from any location: bash <path-to-hooks>/install.sh)
7
+
8
+ set -euo pipefail
9
+
10
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
+ PROJECT_ROOT="$(pwd)"
12
+ CLAUDE_DIR="$PROJECT_ROOT/.claude"
13
+ HOOKS_DIR="$CLAUDE_DIR/hooks"
14
+ SETTINGS_FILE="$CLAUDE_DIR/settings.json"
15
+
16
+ echo "Solmate Skills — Hook Installer"
17
+ echo "Project: $PROJECT_ROOT"
18
+ echo ""
19
+
20
+ # --- Step 1: Create .claude/hooks/ ---
21
+ mkdir -p "$HOOKS_DIR"
22
+ echo "[1/4] Created $HOOKS_DIR"
23
+
24
+ # --- Step 2: Copy hook scripts ---
25
+ cp "$SCRIPT_DIR/suggest-skills.sh" "$HOOKS_DIR/solmate-suggest.sh"
26
+ cp "$SCRIPT_DIR/watch-files.sh" "$HOOKS_DIR/solmate-watch.sh"
27
+ cp "$SCRIPT_DIR/verify-suggest.sh" "$HOOKS_DIR/solmate-verify-suggest.sh"
28
+ chmod +x "$HOOKS_DIR/solmate-suggest.sh"
29
+ chmod +x "$HOOKS_DIR/solmate-watch.sh"
30
+ chmod +x "$HOOKS_DIR/solmate-verify-suggest.sh"
31
+ echo "[2/4] Copied hook scripts:"
32
+ echo " .claude/hooks/solmate-suggest.sh (UserPromptSubmit)"
33
+ echo " .claude/hooks/solmate-watch.sh (PreToolUse)"
34
+ echo " .claude/hooks/solmate-verify-suggest.sh (Stop)"
35
+
36
+ # --- Step 3: Merge hook config into settings.json ---
37
+ echo "[3/4] Merging hook config into $SETTINGS_FILE"
38
+
39
+ python3 - "$SETTINGS_FILE" <<'PYEOF'
40
+ import sys, json, os
41
+
42
+ settings_path = sys.argv[1]
43
+
44
+ # Load existing settings or start fresh
45
+ if os.path.exists(settings_path):
46
+ with open(settings_path, 'r') as f:
47
+ try:
48
+ settings = json.load(f)
49
+ except json.JSONDecodeError:
50
+ print(f" WARNING: {settings_path} has invalid JSON. Backing up and starting fresh.")
51
+ os.rename(settings_path, settings_path + '.bak')
52
+ settings = {}
53
+ else:
54
+ settings = {}
55
+
56
+ hooks = settings.setdefault('hooks', {})
57
+
58
+ # --- UserPromptSubmit hook ---
59
+ suggest_cmd = "bash .claude/hooks/solmate-suggest.sh"
60
+ submit_hooks = hooks.setdefault('UserPromptSubmit', [])
61
+
62
+ # Check for duplicate
63
+ already_has_suggest = any(
64
+ h.get('command') == suggest_cmd
65
+ for entry in submit_hooks
66
+ for h in entry.get('hooks', [])
67
+ )
68
+ if not already_has_suggest:
69
+ submit_hooks.append({
70
+ "hooks": [{
71
+ "type": "command",
72
+ "command": suggest_cmd,
73
+ "timeout": 5
74
+ }]
75
+ })
76
+ print(" Added: UserPromptSubmit → solmate-suggest.sh")
77
+ else:
78
+ print(" Skipped (already exists): UserPromptSubmit → solmate-suggest.sh")
79
+
80
+ # --- PreToolUse hook ---
81
+ watch_cmd = "bash .claude/hooks/solmate-watch.sh"
82
+ pre_hooks = hooks.setdefault('PreToolUse', [])
83
+
84
+ already_has_watch = any(
85
+ h.get('command') == watch_cmd
86
+ for entry in pre_hooks
87
+ for h in entry.get('hooks', [])
88
+ )
89
+ if not already_has_watch:
90
+ pre_hooks.append({
91
+ "matcher": "Read|Write|Edit|Bash",
92
+ "hooks": [{
93
+ "type": "command",
94
+ "command": watch_cmd,
95
+ "timeout": 5
96
+ }]
97
+ })
98
+ print(" Added: PreToolUse (Read|Write|Edit|Bash) → solmate-watch.sh")
99
+ else:
100
+ print(" Skipped (already exists): PreToolUse → solmate-watch.sh")
101
+
102
+ # --- Stop hook ---
103
+ verify_cmd = "bash .claude/hooks/solmate-verify-suggest.sh"
104
+ stop_hooks = hooks.setdefault('Stop', [])
105
+
106
+ already_has_verify = any(
107
+ h.get('command') == verify_cmd
108
+ for entry in stop_hooks
109
+ for h in entry.get('hooks', [])
110
+ )
111
+ if not already_has_verify:
112
+ stop_hooks.append({
113
+ "hooks": [{
114
+ "type": "command",
115
+ "command": verify_cmd,
116
+ "timeout": 10,
117
+ "statusMessage": "변경 파일 분석 중..."
118
+ }]
119
+ })
120
+ print(" Added: Stop → solmate-verify-suggest.sh")
121
+ else:
122
+ print(" Skipped (already exists): Stop → solmate-verify-suggest.sh")
123
+
124
+ # Write back
125
+ os.makedirs(os.path.dirname(settings_path), exist_ok=True)
126
+ with open(settings_path, 'w') as f:
127
+ json.dump(settings, f, indent=2, ensure_ascii=False)
128
+ f.write('\n')
129
+
130
+ print(f" Saved: {settings_path}")
131
+ PYEOF
132
+
133
+ # --- Step 4: Add .claude/hooks/ to .gitignore if not already there ---
134
+ GITIGNORE="$PROJECT_ROOT/.gitignore"
135
+ if [ -f "$GITIGNORE" ]; then
136
+ if ! grep -q "\.claude/hooks/" "$GITIGNORE" 2>/dev/null; then
137
+ echo "" >> "$GITIGNORE"
138
+ echo "# Solmate hook scripts (project-local)" >> "$GITIGNORE"
139
+ echo ".claude/hooks/" >> "$GITIGNORE"
140
+ echo "[4/4] Added .claude/hooks/ to .gitignore"
141
+ else
142
+ echo "[4/4] .gitignore already excludes .claude/hooks/"
143
+ fi
144
+ else
145
+ echo "[4/4] No .gitignore found — skipping"
146
+ fi
147
+
148
+ echo ""
149
+ echo "Done. Hooks are active in this project."
150
+ echo ""
151
+ echo "What was installed:"
152
+ echo " UserPromptSubmit → 프롬프트 키워드 감지 → 관련 스킬 제안"
153
+ echo " PreToolUse → 편집 중인 파일 패턴 감지 → 관련 스킬 제안"
154
+ echo " Stop → 작업 완료 후 변경 파일 분석 → verify-* 스킬 실행 시점 알림"
155
+ echo ""
156
+ echo "To review or disable hooks, open /hooks in Claude Code."
157
+ echo "To uninstall, remove .claude/hooks/ and the 'hooks' section from .claude/settings.json."