specweave 0.23.18 → 0.24.1

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.
Files changed (174) hide show
  1. package/.claude-plugin/marketplace.json +144 -45
  2. package/CLAUDE.md +137 -4
  3. package/dist/src/cli/helpers/ado-area-path-mapper.d.ts +89 -0
  4. package/dist/src/cli/helpers/ado-area-path-mapper.d.ts.map +1 -0
  5. package/dist/src/cli/helpers/ado-area-path-mapper.js +213 -0
  6. package/dist/src/cli/helpers/ado-area-path-mapper.js.map +1 -0
  7. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.d.ts +29 -0
  8. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.d.ts.map +1 -0
  9. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js +109 -0
  10. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js.map +1 -0
  11. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +1 -0
  12. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
  13. package/dist/src/cli/helpers/issue-tracker/ado.js +2 -0
  14. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  15. package/dist/src/cli/helpers/smart-filter.d.ts +83 -0
  16. package/dist/src/cli/helpers/smart-filter.d.ts.map +1 -0
  17. package/dist/src/cli/helpers/smart-filter.js +265 -0
  18. package/dist/src/cli/helpers/smart-filter.js.map +1 -0
  19. package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
  20. package/dist/src/core/qa/quality-gate-decider.js +2 -2
  21. package/dist/src/core/qa/quality-gate-decider.js.map +1 -1
  22. package/dist/src/core/qa/risk-calculator.d.ts +2 -2
  23. package/dist/src/core/qa/risk-calculator.js +2 -2
  24. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  25. package/dist/src/core/repo-structure/repo-structure-manager.js +76 -43
  26. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  27. package/dist/src/core/validators/ac-presence-validator.d.ts +56 -0
  28. package/dist/src/core/validators/ac-presence-validator.d.ts.map +1 -0
  29. package/dist/src/core/validators/ac-presence-validator.js +149 -0
  30. package/dist/src/core/validators/ac-presence-validator.js.map +1 -0
  31. package/dist/src/integrations/ado/area-path-mapper.d.ts +137 -0
  32. package/dist/src/integrations/ado/area-path-mapper.d.ts.map +1 -0
  33. package/dist/src/integrations/ado/area-path-mapper.js +267 -0
  34. package/dist/src/integrations/ado/area-path-mapper.js.map +1 -0
  35. package/dist/src/integrations/jira/filter-processor.d.ts +126 -0
  36. package/dist/src/integrations/jira/filter-processor.d.ts.map +1 -0
  37. package/dist/src/integrations/jira/filter-processor.js +207 -0
  38. package/dist/src/integrations/jira/filter-processor.js.map +1 -0
  39. package/dist/src/integrations/jira/jira-client.d.ts +13 -0
  40. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
  41. package/dist/src/integrations/jira/jira-client.js +33 -0
  42. package/dist/src/integrations/jira/jira-client.js.map +1 -1
  43. package/dist/src/utils/ac-embedder.d.ts +63 -0
  44. package/dist/src/utils/ac-embedder.d.ts.map +1 -0
  45. package/dist/src/utils/ac-embedder.js +217 -0
  46. package/dist/src/utils/ac-embedder.js.map +1 -0
  47. package/dist/src/utils/env-manager.d.ts +86 -0
  48. package/dist/src/utils/env-manager.d.ts.map +1 -0
  49. package/dist/src/utils/env-manager.js +188 -0
  50. package/dist/src/utils/env-manager.js.map +1 -0
  51. package/package.json +1 -1
  52. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  53. package/plugins/specweave/agents/AGENTS-INDEX.md +1 -1
  54. package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +9 -9
  55. package/plugins/specweave/commands/specweave-do.md +37 -0
  56. package/plugins/specweave/commands/specweave-done.md +159 -0
  57. package/plugins/specweave/commands/specweave-embed-acs.md +446 -0
  58. package/plugins/specweave/commands/specweave-next.md +148 -3
  59. package/plugins/specweave/commands/specweave-qa.md +2 -2
  60. package/plugins/specweave/hooks/pre-increment-start.sh +168 -0
  61. package/plugins/specweave/skills/SKILLS-INDEX.md +1 -1
  62. package/plugins/specweave-ado/.claude-plugin/plugin.json +1 -1
  63. package/plugins/specweave-ado/commands/specweave-ado-import-projects.md +331 -0
  64. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +10 -0
  65. package/plugins/specweave-alternatives/commands/alternatives-analyze.md +336 -0
  66. package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +651 -0
  67. package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +420 -0
  68. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +487 -0
  69. package/plugins/specweave-backend/commands/api-scaffold.md +80 -0
  70. package/plugins/specweave-backend/commands/crud-generate.md +109 -0
  71. package/plugins/specweave-backend/commands/migration-generate.md +139 -0
  72. package/plugins/specweave-confluent/commands/connector-deploy.md +154 -0
  73. package/plugins/specweave-confluent/commands/ksqldb-query.md +179 -0
  74. package/plugins/specweave-confluent/commands/schema-register.md +123 -0
  75. package/plugins/specweave-core/.claude-plugin/plugin.json +21 -0
  76. package/plugins/specweave-core/commands/architecture-review.md +288 -0
  77. package/plugins/specweave-core/commands/code-review.md +213 -0
  78. package/plugins/specweave-core/commands/refactor-plan.md +249 -0
  79. package/plugins/specweave-core/skills/code-quality/SKILL.md +157 -0
  80. package/plugins/specweave-core/skills/design-patterns/SKILL.md +244 -0
  81. package/plugins/specweave-core/skills/software-architecture/SKILL.md +83 -0
  82. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +22 -0
  83. package/plugins/specweave-cost-optimizer/commands/cost-analyze.md +360 -0
  84. package/plugins/specweave-cost-optimizer/commands/cost-optimize.md +480 -0
  85. package/plugins/specweave-cost-optimizer/skills/aws-cost-expert/SKILL.md +416 -0
  86. package/plugins/specweave-cost-optimizer/skills/cloud-pricing/SKILL.md +325 -0
  87. package/plugins/specweave-cost-optimizer/skills/cost-optimization/SKILL.md +337 -0
  88. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +1 -1
  89. package/plugins/specweave-diagrams/commands/diagrams-generate.md +168 -0
  90. package/plugins/specweave-docs/.claude-plugin/plugin.json +10 -0
  91. package/plugins/specweave-docs/commands/docs-generate.md +441 -0
  92. package/plugins/specweave-docs/commands/docs-init.md +334 -0
  93. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +581 -0
  94. package/plugins/specweave-docs/skills/spec-driven-brainstorming/SKILL.md +689 -0
  95. package/plugins/specweave-docs/skills/technical-writing/SKILL.md +1039 -0
  96. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +1 -1
  97. package/plugins/specweave-figma/.claude-plugin/plugin.json +23 -0
  98. package/plugins/specweave-figma/commands/figma-import.md +690 -0
  99. package/plugins/specweave-figma/commands/figma-to-react.md +834 -0
  100. package/plugins/specweave-figma/commands/figma-tokens.md +815 -0
  101. package/plugins/specweave-frontend/.claude-plugin/plugin.json +21 -0
  102. package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +408 -0
  103. package/plugins/specweave-frontend/agents/frontend-architect/README.md +385 -0
  104. package/plugins/specweave-frontend/agents/frontend-architect/examples.md +590 -0
  105. package/plugins/specweave-frontend/agents/frontend-architect/templates/component-template.tsx +152 -0
  106. package/plugins/specweave-frontend/agents/frontend-architect/templates/hook-template.ts +311 -0
  107. package/plugins/specweave-frontend/agents/frontend-architect/templates/page-template.tsx +228 -0
  108. package/plugins/specweave-frontend/commands/component-generate.md +510 -0
  109. package/plugins/specweave-frontend/commands/design-system-init.md +494 -0
  110. package/plugins/specweave-frontend/commands/frontend-scaffold.md +207 -0
  111. package/plugins/specweave-frontend/commands/nextjs-setup.md +396 -0
  112. package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +278 -0
  113. package/plugins/specweave-frontend/skills/frontend/SKILL.md +420 -0
  114. package/plugins/specweave-frontend/skills/nextjs/SKILL.md +546 -0
  115. package/plugins/specweave-github/.claude-plugin/plugin.json +1 -1
  116. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +212 -0
  117. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +1 -1
  118. package/plugins/specweave-jira/.claude-plugin/plugin.json +1 -1
  119. package/plugins/specweave-jira/commands/import-projects.js +183 -0
  120. package/plugins/specweave-jira/commands/import-projects.md +97 -0
  121. package/plugins/specweave-jira/commands/import-projects.ts +288 -0
  122. package/plugins/specweave-jira/commands/specweave-jira-import-projects.md +298 -0
  123. package/plugins/specweave-kafka/.claude-plugin/plugin.json +1 -1
  124. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +1 -1
  125. package/plugins/specweave-kubernetes/commands/cluster-setup.md +262 -0
  126. package/plugins/specweave-kubernetes/commands/deployment-generate.md +242 -0
  127. package/plugins/specweave-kubernetes/commands/helm-scaffold.md +333 -0
  128. package/plugins/specweave-ml/.claude-plugin/plugin.json +1 -1
  129. package/plugins/specweave-mobile/commands/app-scaffold.md +233 -0
  130. package/plugins/specweave-mobile/commands/build-config.md +256 -0
  131. package/plugins/specweave-mobile/commands/screen-generate.md +289 -0
  132. package/plugins/specweave-n8n/.claude-plugin/plugin.json +1 -1
  133. package/plugins/specweave-payments/commands/stripe-setup.md +931 -0
  134. package/plugins/specweave-payments/commands/subscription-flow.md +1193 -0
  135. package/plugins/specweave-payments/commands/subscription-manage.md +386 -0
  136. package/plugins/specweave-payments/commands/webhook-setup.md +295 -0
  137. package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +13 -12
  138. package/plugins/specweave-plugin-dev/commands/plugin-create.md +333 -0
  139. package/plugins/specweave-plugin-dev/commands/plugin-publish.md +339 -0
  140. package/plugins/specweave-plugin-dev/commands/plugin-test.md +293 -0
  141. package/plugins/specweave-plugin-dev/skills/claude-sdk/SKILL.md +162 -0
  142. package/plugins/specweave-plugin-dev/skills/marketplace-publishing/SKILL.md +263 -0
  143. package/plugins/specweave-plugin-dev/skills/plugin-development/SKILL.md +316 -0
  144. package/plugins/specweave-release/.claude-plugin/plugin.json +1 -1
  145. package/plugins/specweave-release/commands/specweave-release-npm.md +110 -0
  146. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +168 -0
  147. package/plugins/specweave-testing/.claude-plugin/plugin.json +21 -0
  148. package/plugins/specweave-testing/agents/qa-engineer/AGENT.md +818 -0
  149. package/plugins/specweave-testing/agents/qa-engineer/README.md +443 -0
  150. package/plugins/specweave-testing/agents/qa-engineer/templates/playwright-e2e-test.ts +470 -0
  151. package/plugins/specweave-testing/agents/qa-engineer/templates/test-data-factory.ts +507 -0
  152. package/plugins/specweave-testing/agents/qa-engineer/templates/vitest-unit-test.ts +400 -0
  153. package/plugins/specweave-testing/agents/qa-engineer/test-strategies.md +726 -0
  154. package/plugins/specweave-testing/commands/e2e-setup.md +1081 -0
  155. package/plugins/specweave-testing/commands/test-coverage.md +979 -0
  156. package/plugins/specweave-testing/commands/test-generate.md +1156 -0
  157. package/plugins/specweave-testing/commands/test-init.md +409 -0
  158. package/plugins/specweave-testing/skills/e2e-playwright/SKILL.md +769 -0
  159. package/plugins/specweave-testing/skills/tdd-expert/SKILL.md +934 -0
  160. package/plugins/specweave-testing/skills/unit-testing-expert/SKILL.md +1011 -0
  161. package/plugins/specweave-tooling/.claude-plugin/plugin.json +22 -0
  162. package/plugins/specweave-tooling/commands/specweave-tooling-skill-create.md +691 -0
  163. package/plugins/specweave-tooling/commands/specweave-tooling-skill-package.md +751 -0
  164. package/plugins/specweave-tooling/commands/specweave-tooling-skill-validate.md +858 -0
  165. package/plugins/specweave-ui/.claude-plugin/plugin.json +10 -0
  166. package/plugins/specweave-ui/commands/ui-automate.md +199 -0
  167. package/plugins/specweave-ui/commands/ui-inspect.md +70 -0
  168. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +314 -0
  169. package/plugins/specweave-ui/skills/ui-testing/SKILL.md +716 -0
  170. package/plugins/specweave-ui/skills/visual-regression/SKILL.md +728 -0
  171. package/plugins/specweave/commands/check-hooks.md +0 -257
  172. package/plugins/specweave/commands/specweave-archive-increments.md +0 -82
  173. package/plugins/specweave-plugin-dev/skills/plugin-expert/SKILL.md +0 -1231
  174. /package/plugins/specweave/{agents/code-reviewer.md → skills/code-reviewer/SKILL.md} +0 -0
@@ -0,0 +1,333 @@
1
+ # Helm Chart Scaffolding
2
+
3
+ Generate production-ready Helm charts with best practices.
4
+
5
+ ## Task
6
+
7
+ You are a Helm expert. Generate complete Helm chart structure for applications.
8
+
9
+ ### Steps:
10
+
11
+ 1. **Ask for Information**:
12
+ - Chart name
13
+ - Application type (web app, API, worker, etc.)
14
+ - Dependencies (databases, caches, etc.)
15
+
16
+ 2. **Generate Chart Structure**:
17
+
18
+ ```
19
+ my-app/
20
+ ├── Chart.yaml
21
+ ├── values.yaml
22
+ ├── values-dev.yaml
23
+ ├── values-staging.yaml
24
+ ├── values-prod.yaml
25
+ ├── templates/
26
+ │ ├── NOTES.txt
27
+ │ ├── _helpers.tpl
28
+ │ ├── deployment.yaml
29
+ │ ├── service.yaml
30
+ │ ├── ingress.yaml
31
+ │ ├── configmap.yaml
32
+ │ ├── secret.yaml
33
+ │ ├── hpa.yaml
34
+ │ ├── serviceaccount.yaml
35
+ │ ├── networkpolicy.yaml
36
+ │ └── tests/
37
+ │ └── test-connection.yaml
38
+ ├── charts/ # Subcharts
39
+ └── .helmignore
40
+ ```
41
+
42
+ 3. **Generate Chart.yaml**:
43
+
44
+ ```yaml
45
+ apiVersion: v2
46
+ name: my-app
47
+ description: A Helm chart for my-app
48
+ type: application
49
+ version: 1.0.0 # Chart version
50
+ appVersion: "1.0.0" # Application version
51
+
52
+ keywords:
53
+ - application
54
+ - api
55
+
56
+ home: https://github.com/myorg/my-app
57
+ sources:
58
+ - https://github.com/myorg/my-app
59
+
60
+ maintainers:
61
+ - name: Your Name
62
+ email: you@example.com
63
+ url: https://example.com
64
+
65
+ dependencies:
66
+ - name: postgresql
67
+ version: "12.x.x"
68
+ repository: https://charts.bitnami.com/bitnami
69
+ condition: postgresql.enabled
70
+ - name: redis
71
+ version: "17.x.x"
72
+ repository: https://charts.bitnami.com/bitnami
73
+ condition: redis.enabled
74
+ ```
75
+
76
+ 4. **Generate values.yaml**:
77
+
78
+ ```yaml
79
+ # Default values for my-app
80
+ # This is a YAML-formatted file
81
+
82
+ replicaCount: 3
83
+
84
+ image:
85
+ repository: myapp
86
+ pullPolicy: IfNotPresent
87
+ tag: "" # Overrides appVersion
88
+
89
+ imagePullSecrets: []
90
+
91
+ nameOverride: ""
92
+ fullnameOverride: ""
93
+
94
+ serviceAccount:
95
+ create: true
96
+ annotations: {}
97
+ name: ""
98
+
99
+ podAnnotations:
100
+ prometheus.io/scrape: "true"
101
+ prometheus.io/port: "8080"
102
+
103
+ podSecurityContext:
104
+ runAsNonRoot: true
105
+ runAsUser: 1000
106
+ fsGroup: 2000
107
+
108
+ securityContext:
109
+ capabilities:
110
+ drop:
111
+ - ALL
112
+ readOnlyRootFilesystem: true
113
+ allowPrivilegeEscalation: false
114
+
115
+ service:
116
+ type: ClusterIP
117
+ port: 80
118
+ targetPort: 8080
119
+
120
+ ingress:
121
+ enabled: true
122
+ className: "nginx"
123
+ annotations:
124
+ cert-manager.io/cluster-issuer: "letsencrypt-prod"
125
+ hosts:
126
+ - host: myapp.example.com
127
+ paths:
128
+ - path: /
129
+ pathType: Prefix
130
+ tls:
131
+ - secretName: myapp-tls
132
+ hosts:
133
+ - myapp.example.com
134
+
135
+ resources:
136
+ limits:
137
+ cpu: 500m
138
+ memory: 512Mi
139
+ requests:
140
+ cpu: 250m
141
+ memory: 256Mi
142
+
143
+ autoscaling:
144
+ enabled: true
145
+ minReplicas: 3
146
+ maxReplicas: 10
147
+ targetCPUUtilizationPercentage: 70
148
+ targetMemoryUtilizationPercentage: 80
149
+
150
+ nodeSelector: {}
151
+
152
+ tolerations: []
153
+
154
+ affinity:
155
+ podAntiAffinity:
156
+ preferredDuringSchedulingIgnoredDuringExecution:
157
+ - weight: 100
158
+ podAffinityTerm:
159
+ labelSelector:
160
+ matchExpressions:
161
+ - key: app.kubernetes.io/name
162
+ operator: In
163
+ values:
164
+ - my-app
165
+ topologyKey: kubernetes.io/hostname
166
+
167
+ # Application-specific configs
168
+ config:
169
+ logLevel: info
170
+ nodeEnv: production
171
+
172
+ # Dependencies
173
+ postgresql:
174
+ enabled: true
175
+ auth:
176
+ database: myapp
177
+ username: myapp
178
+ primary:
179
+ persistence:
180
+ enabled: true
181
+ size: 10Gi
182
+
183
+ redis:
184
+ enabled: true
185
+ architecture: standalone
186
+ auth:
187
+ enabled: true
188
+ ```
189
+
190
+ 5. **Generate deployment.yaml (templated)**:
191
+
192
+ ```yaml
193
+ apiVersion: apps/v1
194
+ kind: Deployment
195
+ metadata:
196
+ name: {{ include "my-app.fullname" . }}
197
+ labels:
198
+ {{- include "my-app.labels" . | nindent 4 }}
199
+ spec:
200
+ {{- if not .Values.autoscaling.enabled }}
201
+ replicas: {{ .Values.replicaCount }}
202
+ {{- end }}
203
+ selector:
204
+ matchLabels:
205
+ {{- include "my-app.selectorLabels" . | nindent 6 }}
206
+ template:
207
+ metadata:
208
+ annotations:
209
+ checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
210
+ {{- with .Values.podAnnotations }}
211
+ {{- toYaml . | nindent 8 }}
212
+ {{- end }}
213
+ labels:
214
+ {{- include "my-app.selectorLabels" . | nindent 8 }}
215
+ spec:
216
+ {{- with .Values.imagePullSecrets }}
217
+ imagePullSecrets:
218
+ {{- toYaml . | nindent 8 }}
219
+ {{- end }}
220
+ serviceAccountName: {{ include "my-app.serviceAccountName" . }}
221
+ securityContext:
222
+ {{- toYaml .Values.podSecurityContext | nindent 8 }}
223
+ containers:
224
+ - name: {{ .Chart.Name }}
225
+ securityContext:
226
+ {{- toYaml .Values.securityContext | nindent 12 }}
227
+ image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
228
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
229
+ ports:
230
+ - name: http
231
+ containerPort: {{ .Values.service.targetPort }}
232
+ protocol: TCP
233
+ livenessProbe:
234
+ httpGet:
235
+ path: /health
236
+ port: http
237
+ readinessProbe:
238
+ httpGet:
239
+ path: /ready
240
+ port: http
241
+ resources:
242
+ {{- toYaml .Values.resources | nindent 12 }}
243
+ env:
244
+ - name: NODE_ENV
245
+ value: {{ .Values.config.nodeEnv }}
246
+ - name: LOG_LEVEL
247
+ value: {{ .Values.config.logLevel }}
248
+ {{- if .Values.postgresql.enabled }}
249
+ - name: DB_HOST
250
+ value: {{ include "my-app.fullname" . }}-postgresql
251
+ - name: DB_PASSWORD
252
+ valueFrom:
253
+ secretKeyRef:
254
+ name: {{ include "my-app.fullname" . }}-postgresql
255
+ key: password
256
+ {{- end }}
257
+ ```
258
+
259
+ 6. **Generate _helpers.tpl**:
260
+
261
+ ```yaml
262
+ {{/*
263
+ Expand the name of the chart.
264
+ */}}
265
+ {{- define "my-app.name" -}}
266
+ {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
267
+ {{- end }}
268
+
269
+ {{/*
270
+ Create a default fully qualified app name.
271
+ */}}
272
+ {{- define "my-app.fullname" -}}
273
+ {{- if .Values.fullnameOverride }}
274
+ {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
275
+ {{- else }}
276
+ {{- $name := default .Chart.Name .Values.nameOverride }}
277
+ {{- if contains $name .Release.Name }}
278
+ {{- .Release.Name | trunc 63 | trimSuffix "-" }}
279
+ {{- else }}
280
+ {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
281
+ {{- end }}
282
+ {{- end }}
283
+ {{- end }}
284
+
285
+ {{/*
286
+ Common labels
287
+ */}}
288
+ {{- define "my-app.labels" -}}
289
+ helm.sh/chart: {{ include "my-app.chart" . }}
290
+ {{ include "my-app.selectorLabels" . }}
291
+ {{- if .Chart.AppVersion }}
292
+ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
293
+ {{- end }}
294
+ app.kubernetes.io/managed-by: {{ .Release.Service }}
295
+ {{- end }}
296
+
297
+ {{/*
298
+ Selector labels
299
+ */}}
300
+ {{- define "my-app.selectorLabels" -}}
301
+ app.kubernetes.io/name: {{ include "my-app.name" . }}
302
+ app.kubernetes.io/instance: {{ .Release.Name }}
303
+ {{- end }}
304
+ ```
305
+
306
+ ### Deployment Commands:
307
+
308
+ ```bash
309
+ # Install chart
310
+ helm install my-app ./my-app -f values-dev.yaml
311
+
312
+ # Upgrade
313
+ helm upgrade my-app ./my-app -f values-prod.yaml
314
+
315
+ # Template (dry-run)
316
+ helm template my-app ./my-app -f values-prod.yaml
317
+
318
+ # Lint
319
+ helm lint ./my-app
320
+
321
+ # Package
322
+ helm package ./my-app
323
+
324
+ # Test
325
+ helm test my-app
326
+ ```
327
+
328
+ ### Example Usage:
329
+
330
+ ```
331
+ User: "Create Helm chart for Node.js API with PostgreSQL"
332
+ Result: Complete Helm chart with all templates and values files
333
+ ```
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave-ml",
3
- "version": "0.22.14",
3
+ "version": "0.24.0",
4
4
  "description": "Complete ML/AI workflow integration for SpecWeave - from experiment tracking to production deployment. Includes 13 comprehensive skills covering the full ML lifecycle: pipeline orchestration, experiment tracking, model evaluation, explainability, deployment, feature engineering, AutoML, computer vision, NLP, time series forecasting, anomaly detection, data visualization, and model registry.",
5
5
  "author": {
6
6
  "name": "Anton Abyzov",
@@ -0,0 +1,233 @@
1
+ # React Native App Scaffolding
2
+
3
+ Generate production-ready React Native application structure.
4
+
5
+ ## Task
6
+
7
+ You are a React Native expert. Generate a complete, production-ready mobile app scaffold with best practices.
8
+
9
+ ### Steps:
10
+
11
+ 1. **Ask for Requirements**:
12
+ - App name
13
+ - Platform: Expo or bare React Native
14
+ - Navigation library: React Navigation or Expo Router
15
+ - State management: Redux, Zustand, or Context API
16
+ - UI library: React Native Paper, NativeBase, or custom
17
+
18
+ 2. **Generate Project Structure**:
19
+
20
+ ```
21
+ my-app/
22
+ ├── app.json / package.json
23
+ ├── babel.config.js
24
+ ├── tsconfig.json
25
+ ├── App.tsx
26
+ ├── src/
27
+ │ ├── screens/
28
+ │ │ ├── HomeScreen.tsx
29
+ │ │ ├── ProfileScreen.tsx
30
+ │ │ └── SettingsScreen.tsx
31
+ │ ├── components/
32
+ │ │ ├── common/
33
+ │ │ │ ├── Button.tsx
34
+ │ │ │ ├── Input.tsx
35
+ │ │ │ └── Card.tsx
36
+ │ │ └── specific/
37
+ │ ├── navigation/
38
+ │ │ ├── AppNavigator.tsx
39
+ │ │ ├── AuthNavigator.tsx
40
+ │ │ └── types.ts
41
+ │ ├── store/ # Redux/Zustand
42
+ │ │ ├── slices/
43
+ │ │ ├── hooks.ts
44
+ │ │ └── index.ts
45
+ │ ├── services/
46
+ │ │ ├── api/
47
+ │ │ │ ├── client.ts
48
+ │ │ │ └── endpoints/
49
+ │ │ └── storage/
50
+ │ ├── hooks/
51
+ │ │ ├── useAuth.ts
52
+ │ │ ├── useAsync.ts
53
+ │ │ └── useDebounce.ts
54
+ │ ├── utils/
55
+ │ │ ├── validation.ts
56
+ │ │ └── formatting.ts
57
+ │ ├── constants/
58
+ │ │ ├── colors.ts
59
+ │ │ ├── sizes.ts
60
+ │ │ └── api.ts
61
+ │ ├── types/
62
+ │ │ └── index.ts
63
+ │ └── assets/
64
+ │ ├── images/
65
+ │ └── fonts/
66
+ ├── __tests__/
67
+ └── .env.example
68
+ ```
69
+
70
+ 3. **Generate App Entry Point** (Expo):
71
+
72
+ ```typescript
73
+ import 'react-native-gesture-handler';
74
+ import { StatusBar } from 'expo-status-bar';
75
+ import { Provider } from 'react-redux';
76
+ import { SafeAreaProvider } from 'react-native-safe-area-context';
77
+ import { NavigationContainer } from '@react-navigation/native';
78
+ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
79
+
80
+ import { store } from './src/store';
81
+ import AppNavigator from './src/navigation/AppNavigator';
82
+ import { ErrorBoundary } from './src/components/ErrorBoundary';
83
+
84
+ const queryClient = new QueryClient();
85
+
86
+ export default function App() {
87
+ return (
88
+ <ErrorBoundary>
89
+ <Provider store={store}>
90
+ <QueryClientProvider client={queryClient}>
91
+ <SafeAreaProvider>
92
+ <NavigationContainer>
93
+ <AppNavigator />
94
+ <StatusBar style="auto" />
95
+ </NavigationContainer>
96
+ </SafeAreaProvider>
97
+ </QueryClientProvider>
98
+ </Provider>
99
+ </ErrorBoundary>
100
+ );
101
+ }
102
+ ```
103
+
104
+ 4. **Generate Navigation**:
105
+
106
+ ```typescript
107
+ import { createNativeStackNavigator } from '@react-navigation/native-stack';
108
+ import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
109
+ import { HomeScreen, ProfileScreen, SettingsScreen } from '../screens';
110
+
111
+ const Stack = createNativeStackNavigator();
112
+ const Tab = createBottomTabNavigator();
113
+
114
+ function TabNavigator() {
115
+ return (
116
+ <Tab.Navigator screenOptions={{ headerShown: false }}>
117
+ <Tab.Screen name="Home" component={HomeScreen} />
118
+ <Tab.Screen name="Profile" component={ProfileScreen} />
119
+ <Tab.Screen name="Settings" component={SettingsScreen} />
120
+ </Tab.Navigator>
121
+ );
122
+ }
123
+
124
+ export default function AppNavigator() {
125
+ const isAuthenticated = useSelector(state => state.auth.isAuthenticated);
126
+
127
+ return (
128
+ <Stack.Navigator>
129
+ {isAuthenticated ? (
130
+ <Stack.Screen name="Main" component={TabNavigator} />
131
+ ) : (
132
+ <Stack.Screen name="Auth" component={AuthScreen} />
133
+ )}
134
+ </Stack.Navigator>
135
+ );
136
+ }
137
+ ```
138
+
139
+ 5. **Generate API Client**:
140
+
141
+ ```typescript
142
+ import axios from 'axios';
143
+ import AsyncStorage from '@react-native-async-storage/async-storage';
144
+ import { API_BASE_URL } from '../constants/api';
145
+
146
+ const api = axios.create({
147
+ baseURL: API_BASE_URL,
148
+ timeout: 10000,
149
+ });
150
+
151
+ // Request interceptor
152
+ api.interceptors.request.use(async (config) => {
153
+ const token = await AsyncStorage.getItem('auth_token');
154
+ if (token) {
155
+ config.headers.Authorization = `Bearer ${token}`;
156
+ }
157
+ return config;
158
+ });
159
+
160
+ // Response interceptor
161
+ api.interceptors.response.use(
162
+ (response) => response,
163
+ async (error) => {
164
+ if (error.response?.status === 401) {
165
+ await AsyncStorage.removeItem('auth_token');
166
+ // Navigate to login
167
+ }
168
+ return Promise.reject(error);
169
+ }
170
+ );
171
+
172
+ export default api;
173
+ ```
174
+
175
+ 6. **Generate package.json**:
176
+
177
+ ```json
178
+ {
179
+ "name": "my-app",
180
+ "version": "1.0.0",
181
+ "main": "node_modules/expo/AppEntry.js",
182
+ "scripts": {
183
+ "start": "expo start",
184
+ "android": "expo run:android",
185
+ "ios": "expo run:ios",
186
+ "web": "expo start --web",
187
+ "test": "jest",
188
+ "lint": "eslint .",
189
+ "type-check": "tsc --noEmit"
190
+ },
191
+ "dependencies": {
192
+ "expo": "~49.0.0",
193
+ "react": "18.2.0",
194
+ "react-native": "0.72.0",
195
+ "@react-navigation/native": "^6.1.0",
196
+ "@react-navigation/native-stack": "^6.9.0",
197
+ "@react-navigation/bottom-tabs": "^6.5.0",
198
+ "react-native-safe-area-context": "4.6.3",
199
+ "react-native-screens": "~3.22.0",
200
+ "@reduxjs/toolkit": "^1.9.0",
201
+ "react-redux": "^8.1.0",
202
+ "@tanstack/react-query": "^4.35.0",
203
+ "axios": "^1.5.0",
204
+ "@react-native-async-storage/async-storage": "1.18.2",
205
+ "react-native-gesture-handler": "~2.12.0"
206
+ },
207
+ "devDependencies": {
208
+ "@types/react": "~18.2.14",
209
+ "typescript": "^5.1.3",
210
+ "@testing-library/react-native": "^12.3.0",
211
+ "jest": "^29.2.1"
212
+ }
213
+ }
214
+ ```
215
+
216
+ ### Best Practices Included:
217
+
218
+ - TypeScript configuration
219
+ - Navigation setup
220
+ - State management
221
+ - API client with interceptors
222
+ - Error boundaries
223
+ - Proper folder structure
224
+ - AsyncStorage for persistence
225
+ - Testing setup
226
+ - ESLint and TypeScript
227
+
228
+ ### Example Usage:
229
+
230
+ ```
231
+ User: "Scaffold Expo app with Redux and React Navigation"
232
+ Result: Complete Expo project with all configurations
233
+ ```