solmate-skills 2.0.1 → 2.0.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solmate-skills",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Curated skills for Solmate projects",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {
@@ -28,4 +28,4 @@
28
28
  "engines": {
29
29
  "node": ">=14.0.0"
30
30
  }
31
- }
31
+ }
@@ -66,6 +66,20 @@ description: Create and manage project documentation according to the 365 Princi
66
66
  - `00_ROADMAP.md`: 마일스톤 및 단계별 일정 (Phase별 큰 줄기와 세부 항목 분할)
67
67
  - `01_EXECUTION_PLAN.md`: 기술 실행 전략 및 타임라인 (구체적인 구현 스텝 및 체크박스 필수)
68
68
 
69
+ ### Backlog Context Lock (필수)
70
+
71
+ `docs/04_Logic_Progress/00_BACKLOG.md`의 모든 작업 항목은 다른 레이어의 관련 문서를 구현 입력값으로 연결해야 한다. 백로그는 단독 ToDo가 아니며, 다음 필드를 통해 문서 기반 구현을 강제한다.
72
+
73
+ - `Related Concept Docs`
74
+ - `Related UI Docs`
75
+ - `Related Technical Docs`
76
+ - `Related QA Docs`
77
+ - `Implementation Preconditions`
78
+ - `Acceptance Criteria`
79
+ - `Document Sync Check`
80
+
81
+ 각 Related 필드는 상대 경로 링크와 관계 설명을 포함해야 한다. 관련 문서가 없으면 빈칸으로 두지 않고 `N/A - 사유`를 명시한다. 단, 구현 판단에 필요한 Concept, UI, Technical Spec, QA 기준이 아직 문서화되지 않은 경우에는 백로그만으로 구현을 시작할 수 없으며, 먼저 문서 작성 또는 보완 여부를 사용자에게 확인한다.
82
+
69
83
  ### 메타데이터 (필수)
70
84
 
71
85
  모든 문서 최상단:
@@ -104,6 +118,8 @@ description: Create and manage project documentation according to the 365 Princi
104
118
 
105
119
  **Logic_Progress**: Concept_Design + UI_Screens + Technical_Specs (DB, API) + QA_Validation
106
120
 
121
+ **Backlog Items**: 각 항목 단위로 Concept_Design + UI_Screens + Technical_Specs + QA_Validation 링크를 포함한다. 구현자는 항목 착수 전 링크된 문서를 읽고 `Implementation Preconditions`를 확인해야 한다.
122
+
107
123
  **QA_Validation**: 모든 상위 레이어 참조
108
124
 
109
125
  ## 6. 스킬 위임 테이블
@@ -0,0 +1,231 @@
1
+ {
2
+ "name": "stitch-to-react-pro",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "stitch-to-react-pro",
9
+ "version": "1.0.0",
10
+ "dependencies": {
11
+ "@swc/core": "^1.3.100"
12
+ },
13
+ "engines": {
14
+ "node": ">=18.0.0"
15
+ }
16
+ },
17
+ "node_modules/@swc/core": {
18
+ "version": "1.15.8",
19
+ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.8.tgz",
20
+ "integrity": "sha512-T8keoJjXaSUoVBCIjgL6wAnhADIb09GOELzKg10CjNg+vLX48P93SME6jTfte9MZIm5m+Il57H3rTSk/0kzDUw==",
21
+ "hasInstallScript": true,
22
+ "license": "Apache-2.0",
23
+ "dependencies": {
24
+ "@swc/counter": "^0.1.3",
25
+ "@swc/types": "^0.1.25"
26
+ },
27
+ "engines": {
28
+ "node": ">=10"
29
+ },
30
+ "funding": {
31
+ "type": "opencollective",
32
+ "url": "https://opencollective.com/swc"
33
+ },
34
+ "optionalDependencies": {
35
+ "@swc/core-darwin-arm64": "1.15.8",
36
+ "@swc/core-darwin-x64": "1.15.8",
37
+ "@swc/core-linux-arm-gnueabihf": "1.15.8",
38
+ "@swc/core-linux-arm64-gnu": "1.15.8",
39
+ "@swc/core-linux-arm64-musl": "1.15.8",
40
+ "@swc/core-linux-x64-gnu": "1.15.8",
41
+ "@swc/core-linux-x64-musl": "1.15.8",
42
+ "@swc/core-win32-arm64-msvc": "1.15.8",
43
+ "@swc/core-win32-ia32-msvc": "1.15.8",
44
+ "@swc/core-win32-x64-msvc": "1.15.8"
45
+ },
46
+ "peerDependencies": {
47
+ "@swc/helpers": ">=0.5.17"
48
+ },
49
+ "peerDependenciesMeta": {
50
+ "@swc/helpers": {
51
+ "optional": true
52
+ }
53
+ }
54
+ },
55
+ "node_modules/@swc/core-darwin-arm64": {
56
+ "version": "1.15.8",
57
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.8.tgz",
58
+ "integrity": "sha512-M9cK5GwyWWRkRGwwCbREuj6r8jKdES/haCZ3Xckgkl8MUQJZA3XB7IXXK1IXRNeLjg6m7cnoMICpXv1v1hlJOg==",
59
+ "cpu": [
60
+ "arm64"
61
+ ],
62
+ "license": "Apache-2.0 AND MIT",
63
+ "optional": true,
64
+ "os": [
65
+ "darwin"
66
+ ],
67
+ "engines": {
68
+ "node": ">=10"
69
+ }
70
+ },
71
+ "node_modules/@swc/core-darwin-x64": {
72
+ "version": "1.15.8",
73
+ "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.8.tgz",
74
+ "integrity": "sha512-j47DasuOvXl80sKJHSi2X25l44CMc3VDhlJwA7oewC1nV1VsSzwX+KOwE5tLnfORvVJJyeiXgJORNYg4jeIjYQ==",
75
+ "cpu": [
76
+ "x64"
77
+ ],
78
+ "license": "Apache-2.0 AND MIT",
79
+ "optional": true,
80
+ "os": [
81
+ "darwin"
82
+ ],
83
+ "engines": {
84
+ "node": ">=10"
85
+ }
86
+ },
87
+ "node_modules/@swc/core-linux-arm-gnueabihf": {
88
+ "version": "1.15.8",
89
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.8.tgz",
90
+ "integrity": "sha512-siAzDENu2rUbwr9+fayWa26r5A9fol1iORG53HWxQL1J8ym4k7xt9eME0dMPXlYZDytK5r9sW8zEA10F2U3Xwg==",
91
+ "cpu": [
92
+ "arm"
93
+ ],
94
+ "license": "Apache-2.0",
95
+ "optional": true,
96
+ "os": [
97
+ "linux"
98
+ ],
99
+ "engines": {
100
+ "node": ">=10"
101
+ }
102
+ },
103
+ "node_modules/@swc/core-linux-arm64-gnu": {
104
+ "version": "1.15.8",
105
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.8.tgz",
106
+ "integrity": "sha512-o+1y5u6k2FfPYbTRUPvurwzNt5qd0NTumCTFscCNuBksycloXY16J8L+SMW5QRX59n4Hp9EmFa3vpvNHRVv1+Q==",
107
+ "cpu": [
108
+ "arm64"
109
+ ],
110
+ "license": "Apache-2.0 AND MIT",
111
+ "optional": true,
112
+ "os": [
113
+ "linux"
114
+ ],
115
+ "engines": {
116
+ "node": ">=10"
117
+ }
118
+ },
119
+ "node_modules/@swc/core-linux-arm64-musl": {
120
+ "version": "1.15.8",
121
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.8.tgz",
122
+ "integrity": "sha512-koiCqL09EwOP1S2RShCI7NbsQuG6r2brTqUYE7pV7kZm9O17wZ0LSz22m6gVibpwEnw8jI3IE1yYsQTVpluALw==",
123
+ "cpu": [
124
+ "arm64"
125
+ ],
126
+ "license": "Apache-2.0 AND MIT",
127
+ "optional": true,
128
+ "os": [
129
+ "linux"
130
+ ],
131
+ "engines": {
132
+ "node": ">=10"
133
+ }
134
+ },
135
+ "node_modules/@swc/core-linux-x64-gnu": {
136
+ "version": "1.15.8",
137
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.8.tgz",
138
+ "integrity": "sha512-4p6lOMU3bC+Vd5ARtKJ/FxpIC5G8v3XLoPEZ5s7mLR8h7411HWC/LmTXDHcrSXRC55zvAVia1eldy6zDLz8iFQ==",
139
+ "cpu": [
140
+ "x64"
141
+ ],
142
+ "license": "Apache-2.0 AND MIT",
143
+ "optional": true,
144
+ "os": [
145
+ "linux"
146
+ ],
147
+ "engines": {
148
+ "node": ">=10"
149
+ }
150
+ },
151
+ "node_modules/@swc/core-linux-x64-musl": {
152
+ "version": "1.15.8",
153
+ "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.8.tgz",
154
+ "integrity": "sha512-z3XBnbrZAL+6xDGAhJoN4lOueIxC/8rGrJ9tg+fEaeqLEuAtHSW2QHDHxDwkxZMjuF/pZ6MUTjHjbp8wLbuRLA==",
155
+ "cpu": [
156
+ "x64"
157
+ ],
158
+ "license": "Apache-2.0 AND MIT",
159
+ "optional": true,
160
+ "os": [
161
+ "linux"
162
+ ],
163
+ "engines": {
164
+ "node": ">=10"
165
+ }
166
+ },
167
+ "node_modules/@swc/core-win32-arm64-msvc": {
168
+ "version": "1.15.8",
169
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.8.tgz",
170
+ "integrity": "sha512-djQPJ9Rh9vP8GTS/Df3hcc6XP6xnG5c8qsngWId/BLA9oX6C7UzCPAn74BG/wGb9a6j4w3RINuoaieJB3t+7iQ==",
171
+ "cpu": [
172
+ "arm64"
173
+ ],
174
+ "license": "Apache-2.0 AND MIT",
175
+ "optional": true,
176
+ "os": [
177
+ "win32"
178
+ ],
179
+ "engines": {
180
+ "node": ">=10"
181
+ }
182
+ },
183
+ "node_modules/@swc/core-win32-ia32-msvc": {
184
+ "version": "1.15.8",
185
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.8.tgz",
186
+ "integrity": "sha512-/wfAgxORg2VBaUoFdytcVBVCgf1isWZIEXB9MZEUty4wwK93M/PxAkjifOho9RN3WrM3inPLabICRCEgdHpKKQ==",
187
+ "cpu": [
188
+ "ia32"
189
+ ],
190
+ "license": "Apache-2.0 AND MIT",
191
+ "optional": true,
192
+ "os": [
193
+ "win32"
194
+ ],
195
+ "engines": {
196
+ "node": ">=10"
197
+ }
198
+ },
199
+ "node_modules/@swc/core-win32-x64-msvc": {
200
+ "version": "1.15.8",
201
+ "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.8.tgz",
202
+ "integrity": "sha512-GpMePrh9Sl4d61o4KAHOOv5is5+zt6BEXCOCgs/H0FLGeii7j9bWDE8ExvKFy2GRRZVNR1ugsnzaGWHKM6kuzA==",
203
+ "cpu": [
204
+ "x64"
205
+ ],
206
+ "license": "Apache-2.0 AND MIT",
207
+ "optional": true,
208
+ "os": [
209
+ "win32"
210
+ ],
211
+ "engines": {
212
+ "node": ">=10"
213
+ }
214
+ },
215
+ "node_modules/@swc/counter": {
216
+ "version": "0.1.3",
217
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
218
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
219
+ "license": "Apache-2.0"
220
+ },
221
+ "node_modules/@swc/types": {
222
+ "version": "0.1.25",
223
+ "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz",
224
+ "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==",
225
+ "license": "Apache-2.0",
226
+ "dependencies": {
227
+ "@swc/counter": "^0.1.3"
228
+ }
229
+ }
230
+ }
231
+ }
@@ -13,8 +13,9 @@ Follow this workflow for feature implementation and significant code changes. Co
13
13
 
14
14
  ### Step 1. 계획 수립
15
15
  - 요구사항·목적을 문서 또는 이슈 기준으로 정리한다.
16
+ - 백로그 항목이 있으면 `Related Concept Docs`, `Related UI Docs`, `Related Technical Docs`, `Related QA Docs`를 먼저 읽고 구현 입력값으로 요약한다.
16
17
  - 변경할 파일·추가할 컴포넌트·API·DB 영향 범위를 나열한다.
17
- - 체크: [ ] 목적이 명확한가? [ ] 영향 범위가 정리되었는가?
18
+ - 체크: [ ] 목적이 명확한가? [ ] 관련 문서를 읽었는가? [ ] 영향 범위가 정리되었는가?
18
19
 
19
20
  ### Step 2. 계획 검토
20
21
  - 계획이 요구사항과 일치하는지, 누락된 시나리오는 없는지 검토한다.
@@ -34,7 +35,8 @@ Follow this workflow for feature implementation and significant code changes. Co
34
35
 
35
36
  ### Step 5. 구현
36
37
  - 승인된 계획대로 구현한다. AGENTS.md·프로젝트 컨벤션(커밋, Zod, Luxon 등)을 따른다.
37
- - 체크: [ ] 계획 대비 변경 사항이 일치하는가?
38
+ - 코드 작성 백로그 항목의 `Implementation Preconditions`와 `Acceptance Criteria`를 확인한다. 관련 문서 링크가 비어 있거나 `N/A - 사유`가 부실하면 구현을 보류하고 문서 보완 필요 여부를 사용자에게 확인한다.
39
+ - 체크: [ ] 계획 대비 변경 사항이 일치하는가? [ ] 백로그의 관련 문서 기준을 반영했는가?
38
40
 
39
41
  ---
40
42
 
@@ -90,7 +92,8 @@ Follow this workflow for feature implementation and significant code changes. Co
90
92
 
91
93
  ### Step 16. 관련 부분 반복 검토
92
94
  - 검토 중 발견된 이슈와 연관된 코드·설정·문서를 다시 점검한다. 관련된 부분을 놓치지 않도록 추가로 확인한다.
93
- - 체크: [ ] 발견 이슈의 연쇄 영향 [ ] 관련 모듈·설정까지 검토
95
+ - 백로그 항목의 `Document Sync Check`를 기준으로 구현 결과와 관련 문서의 불일치 여부를 확인한다.
96
+ - 체크: [ ] 발견 이슈의 연쇄 영향 [ ] 관련 모듈·설정까지 검토 [ ] 문서-구현 불일치 없음
94
97
 
95
98
  ### Step 17. 배포 가능 퀄리티 최종 검토
96
99
  - "이대로 배포해도 될 수준인가?"를 한 번 더 검토한다. 1–16단계에서 누락된 항목이 없는지 확인한다.
@@ -11,8 +11,9 @@ description: 프로젝트 문서가 5단계 구조(01~05)와 메타데이터 표
11
11
  1. 5-Layer 폴더 구조 및 파일 네이밍
12
12
  2. 메타데이터 표준 (Created / Last Updated)
13
13
  3. Related Documents 섹션
14
- 4. Rubric-First Writing
15
- 5. rules-product Gate Out 조건
14
+ 4. Backlog Context Lock
15
+ 5. Rubric-First Writing
16
+ 6. rules-product Gate Out 조건
16
17
 
17
18
  ## 실행 시점
18
19
 
@@ -53,17 +54,35 @@ AGENTS.md 또는 `docs/01_Concept_Design/00_COLLABORATION_GUIDE.md`를 읽어
53
54
  - [ ] 각 링크에 관계 설명이 포함되어 있는가?
54
55
  - [ ] 상위 또는 하위 레이어 문서가 최소 1개 이상 연결되어 있는가?
55
56
 
56
- ### Step 4: Rubric-First Writing 검사
57
+ ### Step 4: Backlog Context Lock 검사
58
+
59
+ `docs/04_Logic_Progress/00_BACKLOG.md`가 있으면 각 작업 항목을 확인한다.
60
+
61
+ 체크 항목:
62
+ - [ ] 모든 Backlog 작업 항목이 체크박스`[ ]` 또는 `[x]`로 시작하는가?
63
+ - [ ] 각 작업 항목에 `Related Concept Docs`가 있는가?
64
+ - [ ] 각 작업 항목에 `Related UI Docs`가 있는가?
65
+ - [ ] 각 작업 항목에 `Related Technical Docs`가 있는가?
66
+ - [ ] 각 작업 항목에 `Related QA Docs`가 있는가?
67
+ - [ ] 각 작업 항목에 `Implementation Preconditions`가 있는가?
68
+ - [ ] 각 작업 항목에 `Acceptance Criteria`가 있는가?
69
+ - [ ] 각 작업 항목에 `Document Sync Check`가 있는가?
70
+ - [ ] Related 필드의 링크가 상대 경로이거나 `N/A - 사유` 형식인가?
71
+ - [ ] `N/A`만 있고 사유가 없는 항목은 없는가?
72
+
73
+ 위 항목 중 하나라도 누락되면 Backlog Context Lock은 Fail로 처리한다.
74
+
75
+ ### Step 5: Rubric-First Writing 검사
57
76
 
58
77
  | 레이어 | 기준 |
59
78
  |:---|:---|
60
79
  | QA_Validation (Layer 5) | 6개 루브릭 전체 테이블 포함 (필수) |
61
- | Logic_Progress (Layer 4) | 실무 문서(BACKLOG, ROADMAP, EXECUTION_PLAN) 내 체크박스`[ ]` 활용 및 원자적 단위 분할 (필수) |
80
+ | Logic_Progress (Layer 4) | 실무 문서(BACKLOG, ROADMAP, EXECUTION_PLAN) 내 체크박스`[ ]` 활용 및 원자적 단위 분할, Backlog Context Lock 준수 (필수) |
62
81
  | Concept_Design (Layer 1) | Novelty, Business Plan, Potential Impact 언급 (권장) |
63
82
  | Technical_Specs (Layer 3) | Functionality, UX (latency), Open-source 언급 (권장) |
64
83
  | Logic_Progress (Layer 4) | Functionality, UX 언급 (권장) |
65
84
 
66
- ### Step 5: Gate Out 조건 검사
85
+ ### Step 6: Gate Out 조건 검사
67
86
 
68
87
  rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한다.
69
88
 
@@ -81,7 +100,7 @@ rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한
81
100
  - [ ] `docs/04_Logic_Progress/00_ROADMAP.md`
82
101
  - [ ] `docs/05_QA_Validation/02_QA_CHECKLIST.md`
83
102
 
84
- ### Step 6: 검증 보고서 출력
103
+ ### Step 7: 검증 보고서 출력
85
104
 
86
105
  검사 완료 후 아래 형식으로 결과를 출력한다:
87
106
 
@@ -94,6 +113,7 @@ rules-product 기준으로 각 Phase의 필수 문서 존재 여부를 확인한
94
113
  | 파일 네이밍 | Pass / Fail | 위반 파일 목록 |
95
114
  | 메타데이터 | Pass / Fail | 누락 파일 목록 |
96
115
  | Related Documents | Pass / Fail | 미연결 파일 목록 |
116
+ | Backlog Context Lock | Pass / Fail | 필수 필드 누락 작업 목록 |
97
117
  | Rubric-First | Pass / Fail | |
98
118
  | Gate Out 조건 | Pass / Fail | 미충족 파일 목록 |
99
119
 
@@ -1,4 +0,0 @@
1
- # These are supported funding model platforms
2
-
3
- github: voltagent
4
-
@@ -1,46 +0,0 @@
1
- name: Design MD Request
2
- description: Request a DESIGN.md generated from a website
3
- title: "DESIGN.md for <your website>"
4
- labels: ["design-md"]
5
-
6
- body:
7
- - type: markdown
8
- attributes:
9
- value: |
10
- Fill out the form below to request a DESIGN.md generation for your website.
11
- - type: input
12
- id: website
13
- attributes:
14
- label: Website URL
15
- description: The website you want us to generate DESIGN.md for
16
- placeholder: https://example.com
17
- validations:
18
- required: true
19
-
20
- - type: input
21
- id: email
22
- attributes:
23
- label: Delivery Email
24
- description: Email address where we should send the generated DESIGN.md
25
- placeholder: you@example.com
26
- validations:
27
- required: true
28
-
29
- - type: dropdown
30
- id: sponsor
31
- attributes:
32
- label: Do you want to prioritize your DESIGN.md generation request?
33
- description: We receive many requests to generate DESIGN.md. As we maintain multiple open-source projects with limited bandwidth, sponsor-backed requests are prioritized. Select the "Priority DESIGN.md generation (awesome-design-md)" tier on [GitHub Sponsors](https://github.com/sponsors/VoltAgent).
34
- options:
35
- - "Yes, I am a GitHub Sponsor"
36
- - "No, I am not a sponsor"
37
- validations:
38
- required: true
39
-
40
- - type: textarea
41
- id: details
42
- attributes:
43
- label: Additional Details (optional)
44
- description: Anything else you'd like us to know about this request
45
- validations:
46
- required: false
@@ -1,3 +0,0 @@
1
- {
2
- "packages": {}
3
- }
@@ -1,21 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- pull_request:
5
- push:
6
- branches:
7
- - main
8
-
9
- jobs:
10
- validate:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - uses: actions/setup-node@v4
16
- with:
17
- node-version: 20
18
- cache: npm
19
-
20
- - run: npm ci
21
- - run: npm run ci
@@ -1,51 +0,0 @@
1
- name: Release npm packages
2
-
3
- on:
4
- workflow_dispatch:
5
- push:
6
- branches:
7
- - main
8
- paths:
9
- - ".changeset/**"
10
- - ".github/workflows/release-npm.yml"
11
- - "package-lock.json"
12
- - "package.json"
13
- - "packages/**"
14
-
15
- permissions:
16
- contents: write
17
- pull-requests: write
18
- id-token: write
19
-
20
- # npm publishes authenticate with the repository-level NPM_TOKEN secret.
21
- # id-token stays enabled so npm can still attach provenance when supported.
22
-
23
- jobs:
24
- release:
25
- runs-on: ubuntu-latest
26
- steps:
27
- - uses: actions/checkout@v4
28
- with:
29
- fetch-depth: 0
30
-
31
- - uses: actions/setup-node@v4
32
- with:
33
- node-version: 24
34
- cache: npm
35
- registry-url: https://registry.npmjs.org
36
-
37
- - run: npm ci
38
- - run: npm run ci
39
-
40
- - name: Create npm release PR or publish changed packages
41
- uses: changesets/action@v1
42
- with:
43
- version: npm run version-packages
44
- publish: npm run release:npm
45
- commit: "chore: version packages"
46
- title: "chore: version packages"
47
- createGithubReleases: false
48
- env:
49
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
51
- NPM_CONFIG_PROVENANCE: "true"
@@ -1,41 +0,0 @@
1
- name: Release Python packages
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- paths:
8
- - ".github/release-please/**"
9
- - ".github/workflows/release-python.yml"
10
- - "python-packages/**"
11
- workflow_dispatch:
12
-
13
- permissions:
14
- contents: write
15
- pull-requests: write
16
- id-token: write
17
-
18
- jobs:
19
- scaffold-only:
20
- if: ${{ hashFiles('python-packages/**/pyproject.toml') == '' }}
21
- runs-on: ubuntu-latest
22
- steps:
23
- - run: echo "No Python package exists yet. release-please remains scaffold-only."
24
-
25
- release:
26
- if: ${{ hashFiles('python-packages/**/pyproject.toml') != '' }}
27
- runs-on: ubuntu-latest
28
- steps:
29
- - uses: actions/checkout@v4
30
-
31
- - id: release
32
- uses: googleapis/release-please-action@v4
33
- with:
34
- config-file: .github/release-please/python-config.json
35
- manifest-file: .github/release-please/python-manifest.json
36
-
37
- - name: Reminder
38
- if: ${{ steps.release.outputs.releases_created == 'true' }}
39
- run: |
40
- echo "Python package release metadata was created."
41
- echo "Wire package-specific build/publish steps here when the first python package is added."
@@ -1,29 +0,0 @@
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"
@@ -1,15 +0,0 @@
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
@@ -1,56 +0,0 @@
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"