autoworkflow 3.1.5 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.claude/commands/analyze.md +19 -0
  2. package/.claude/commands/audit.md +26 -0
  3. package/.claude/commands/build.md +39 -0
  4. package/.claude/commands/commit.md +25 -0
  5. package/.claude/commands/fix.md +23 -0
  6. package/.claude/commands/plan.md +18 -0
  7. package/.claude/commands/suggest.md +23 -0
  8. package/.claude/commands/verify.md +18 -0
  9. package/.claude/hooks/post-bash-router.sh +20 -0
  10. package/.claude/hooks/post-commit.sh +140 -0
  11. package/.claude/hooks/pre-edit.sh +129 -0
  12. package/.claude/hooks/session-check.sh +79 -0
  13. package/.claude/settings.json +40 -6
  14. package/.claude/settings.local.json +3 -1
  15. package/.claude/skills/actix.md +337 -0
  16. package/.claude/skills/alembic.md +504 -0
  17. package/.claude/skills/angular.md +237 -0
  18. package/.claude/skills/api-design.md +187 -0
  19. package/.claude/skills/aspnet-core.md +377 -0
  20. package/.claude/skills/astro.md +245 -0
  21. package/.claude/skills/auth-clerk.md +327 -0
  22. package/.claude/skills/auth-firebase.md +367 -0
  23. package/.claude/skills/auth-nextauth.md +359 -0
  24. package/.claude/skills/auth-supabase.md +368 -0
  25. package/.claude/skills/axum.md +386 -0
  26. package/.claude/skills/blazor.md +456 -0
  27. package/.claude/skills/chi.md +348 -0
  28. package/.claude/skills/code-review.md +133 -0
  29. package/.claude/skills/csharp.md +296 -0
  30. package/.claude/skills/css-modules.md +325 -0
  31. package/.claude/skills/cypress.md +343 -0
  32. package/.claude/skills/debugging.md +133 -0
  33. package/.claude/skills/diesel.md +392 -0
  34. package/.claude/skills/django.md +301 -0
  35. package/.claude/skills/docker.md +319 -0
  36. package/.claude/skills/doctrine.md +473 -0
  37. package/.claude/skills/documentation.md +182 -0
  38. package/.claude/skills/dotnet.md +409 -0
  39. package/.claude/skills/drizzle.md +293 -0
  40. package/.claude/skills/echo.md +321 -0
  41. package/.claude/skills/eloquent.md +256 -0
  42. package/.claude/skills/emotion.md +426 -0
  43. package/.claude/skills/entity-framework.md +370 -0
  44. package/.claude/skills/express.md +316 -0
  45. package/.claude/skills/fastapi.md +329 -0
  46. package/.claude/skills/fastify.md +299 -0
  47. package/.claude/skills/fiber.md +315 -0
  48. package/.claude/skills/flask.md +322 -0
  49. package/.claude/skills/gin.md +342 -0
  50. package/.claude/skills/git.md +116 -0
  51. package/.claude/skills/github-actions.md +353 -0
  52. package/.claude/skills/go.md +377 -0
  53. package/.claude/skills/gorm.md +409 -0
  54. package/.claude/skills/graphql.md +478 -0
  55. package/.claude/skills/hibernate.md +379 -0
  56. package/.claude/skills/hono.md +306 -0
  57. package/.claude/skills/java.md +400 -0
  58. package/.claude/skills/jest.md +313 -0
  59. package/.claude/skills/jpa.md +282 -0
  60. package/.claude/skills/kotlin.md +347 -0
  61. package/.claude/skills/kubernetes.md +363 -0
  62. package/.claude/skills/laravel.md +414 -0
  63. package/.claude/skills/mcp-browser.md +320 -0
  64. package/.claude/skills/mcp-database.md +219 -0
  65. package/.claude/skills/mcp-fetch.md +241 -0
  66. package/.claude/skills/mcp-filesystem.md +204 -0
  67. package/.claude/skills/mcp-github.md +217 -0
  68. package/.claude/skills/mcp-memory.md +240 -0
  69. package/.claude/skills/mcp-search.md +218 -0
  70. package/.claude/skills/mcp-slack.md +262 -0
  71. package/.claude/skills/micronaut.md +388 -0
  72. package/.claude/skills/mongodb.md +319 -0
  73. package/.claude/skills/mongoose.md +355 -0
  74. package/.claude/skills/mysql.md +281 -0
  75. package/.claude/skills/nestjs.md +335 -0
  76. package/.claude/skills/nextjs-app-router.md +260 -0
  77. package/.claude/skills/nextjs-pages.md +172 -0
  78. package/.claude/skills/nuxt.md +202 -0
  79. package/.claude/skills/openapi.md +489 -0
  80. package/.claude/skills/performance.md +199 -0
  81. package/.claude/skills/php.md +398 -0
  82. package/.claude/skills/playwright.md +371 -0
  83. package/.claude/skills/postgresql.md +257 -0
  84. package/.claude/skills/prisma.md +293 -0
  85. package/.claude/skills/pydantic.md +304 -0
  86. package/.claude/skills/pytest.md +313 -0
  87. package/.claude/skills/python.md +272 -0
  88. package/.claude/skills/quarkus.md +377 -0
  89. package/.claude/skills/react.md +230 -0
  90. package/.claude/skills/redis.md +391 -0
  91. package/.claude/skills/refactoring.md +143 -0
  92. package/.claude/skills/remix.md +246 -0
  93. package/.claude/skills/rest-api.md +490 -0
  94. package/.claude/skills/rocket.md +366 -0
  95. package/.claude/skills/rust.md +341 -0
  96. package/.claude/skills/sass.md +380 -0
  97. package/.claude/skills/sea-orm.md +382 -0
  98. package/.claude/skills/security.md +167 -0
  99. package/.claude/skills/sequelize.md +395 -0
  100. package/.claude/skills/spring-boot.md +416 -0
  101. package/.claude/skills/sqlalchemy.md +269 -0
  102. package/.claude/skills/sqlx-rust.md +408 -0
  103. package/.claude/skills/state-jotai.md +346 -0
  104. package/.claude/skills/state-mobx.md +353 -0
  105. package/.claude/skills/state-pinia.md +431 -0
  106. package/.claude/skills/state-redux.md +337 -0
  107. package/.claude/skills/state-tanstack-query.md +434 -0
  108. package/.claude/skills/state-zustand.md +340 -0
  109. package/.claude/skills/styled-components.md +403 -0
  110. package/.claude/skills/svelte.md +238 -0
  111. package/.claude/skills/sveltekit.md +207 -0
  112. package/.claude/skills/symfony.md +437 -0
  113. package/.claude/skills/tailwind.md +279 -0
  114. package/.claude/skills/terraform.md +394 -0
  115. package/.claude/skills/testing-library.md +371 -0
  116. package/.claude/skills/trpc.md +426 -0
  117. package/.claude/skills/typeorm.md +368 -0
  118. package/.claude/skills/vitest.md +330 -0
  119. package/.claude/skills/vue.md +202 -0
  120. package/.claude/skills/warp.md +365 -0
  121. package/README.md +135 -52
  122. package/package.json +1 -1
  123. package/system/triggers.md +152 -11
@@ -0,0 +1,380 @@
1
+ # Sass Skill
2
+
3
+ ## Variables
4
+ \`\`\`scss
5
+ // Basic variables
6
+ $primary: #3b82f6;
7
+ $secondary: #6b7280;
8
+ $danger: #ef4444;
9
+ $success: #10b981;
10
+
11
+ $font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
12
+ $font-size-base: 1rem;
13
+ $line-height: 1.5;
14
+
15
+ $spacing-sm: 0.5rem;
16
+ $spacing-md: 1rem;
17
+ $spacing-lg: 1.5rem;
18
+
19
+ $border-radius: 0.375rem;
20
+ $shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
21
+
22
+ // Maps
23
+ $colors: (
24
+ 'primary': #3b82f6,
25
+ 'secondary': #6b7280,
26
+ 'danger': #ef4444,
27
+ 'success': #10b981,
28
+ );
29
+
30
+ $breakpoints: (
31
+ 'sm': 640px,
32
+ 'md': 768px,
33
+ 'lg': 1024px,
34
+ 'xl': 1280px,
35
+ );
36
+
37
+ // Accessing map values
38
+ .button {
39
+ background: map-get($colors, 'primary');
40
+ }
41
+ \`\`\`
42
+
43
+ ## Nesting & Parent Selector
44
+ \`\`\`scss
45
+ // BEM-style nesting
46
+ .card {
47
+ padding: 1.5rem;
48
+ border-radius: $border-radius;
49
+ box-shadow: $shadow;
50
+
51
+ // & = parent selector (.card__header)
52
+ &__header {
53
+ margin-bottom: 1rem;
54
+ border-bottom: 1px solid #e5e7eb;
55
+ }
56
+
57
+ &__title {
58
+ font-size: 1.25rem;
59
+ font-weight: 600;
60
+ }
61
+
62
+ &__content {
63
+ color: #6b7280;
64
+ }
65
+
66
+ // Pseudo-classes
67
+ &:hover {
68
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
69
+ }
70
+
71
+ &:focus-within {
72
+ outline: 2px solid $primary;
73
+ }
74
+
75
+ // Modifier classes
76
+ &--featured {
77
+ border: 2px solid $primary;
78
+ }
79
+
80
+ &--compact {
81
+ padding: 0.75rem;
82
+ }
83
+ }
84
+
85
+ // Results in:
86
+ // .card { ... }
87
+ // .card__header { ... }
88
+ // .card__title { ... }
89
+ // .card:hover { ... }
90
+ // .card--featured { ... }
91
+
92
+ // Parent selector at end (modifier)
93
+ .button {
94
+ background: $primary;
95
+
96
+ .dark-theme & {
97
+ background: lighten($primary, 10%);
98
+ }
99
+ }
100
+ // Results in: .dark-theme .button { ... }
101
+ \`\`\`
102
+
103
+ ## Mixins
104
+ \`\`\`scss
105
+ // Basic mixin
106
+ @mixin flex-center {
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ }
111
+
112
+ // Mixin with parameters
113
+ @mixin button($bg-color, $text-color: white) {
114
+ padding: $spacing-sm $spacing-md;
115
+ background: $bg-color;
116
+ color: $text-color;
117
+ border: none;
118
+ border-radius: $border-radius;
119
+ cursor: pointer;
120
+ transition: background 0.2s;
121
+
122
+ &:hover {
123
+ background: darken($bg-color, 10%);
124
+ }
125
+
126
+ &:disabled {
127
+ opacity: 0.5;
128
+ cursor: not-allowed;
129
+ }
130
+ }
131
+
132
+ // Mixin with default map parameter
133
+ @mixin button-variant($variant: 'primary') {
134
+ background: map-get($colors, $variant);
135
+ }
136
+
137
+ // Using mixins
138
+ .container {
139
+ @include flex-center;
140
+ }
141
+
142
+ .btn-primary {
143
+ @include button($primary);
144
+ }
145
+
146
+ .btn-secondary {
147
+ @include button($secondary, #1f2937);
148
+ }
149
+
150
+ // Mixin with content block
151
+ @mixin media($breakpoint) {
152
+ @media (min-width: map-get($breakpoints, $breakpoint)) {
153
+ @content;
154
+ }
155
+ }
156
+
157
+ .container {
158
+ padding: 1rem;
159
+
160
+ @include media('md') {
161
+ padding: 2rem;
162
+ }
163
+
164
+ @include media('lg') {
165
+ padding: 3rem;
166
+ }
167
+ }
168
+ \`\`\`
169
+
170
+ ## Functions
171
+ \`\`\`scss
172
+ // Built-in color functions
173
+ $color: #3b82f6;
174
+
175
+ lighten($color, 10%) // Lighter
176
+ darken($color, 10%) // Darker
177
+ saturate($color, 20%) // More saturated
178
+ desaturate($color, 20%) // Less saturated
179
+ adjust-hue($color, 45) // Shift hue
180
+ rgba($color, 0.5) // Add transparency
181
+ mix($color1, $color2, 50%) // Mix colors
182
+
183
+ // Custom functions
184
+ @function rem($pixels) {
185
+ @return calc($pixels / 16) * 1rem;
186
+ }
187
+
188
+ @function spacing($multiplier) {
189
+ @return $spacing-md * $multiplier;
190
+ }
191
+
192
+ @function color($name) {
193
+ @return map-get($colors, $name);
194
+ }
195
+
196
+ // Usage
197
+ .title {
198
+ font-size: rem(24); // 1.5rem
199
+ margin-bottom: spacing(2); // 2rem
200
+ color: color('primary');
201
+ }
202
+ \`\`\`
203
+
204
+ ## Control Directives
205
+ \`\`\`scss
206
+ // @if / @else
207
+ @mixin theme($mode) {
208
+ @if $mode == 'dark' {
209
+ background: #1a1a1a;
210
+ color: white;
211
+ } @else if $mode == 'light' {
212
+ background: white;
213
+ color: #1a1a1a;
214
+ } @else {
215
+ background: inherit;
216
+ }
217
+ }
218
+
219
+ // @each - loop through list or map
220
+ $sizes: sm, md, lg;
221
+
222
+ @each $size in $sizes {
223
+ .margin-#{$size} {
224
+ margin: map-get((sm: 0.5rem, md: 1rem, lg: 1.5rem), $size);
225
+ }
226
+ }
227
+
228
+ // @each with maps
229
+ @each $name, $color in $colors {
230
+ .bg-#{$name} {
231
+ background: $color;
232
+ }
233
+ .text-#{$name} {
234
+ color: $color;
235
+ }
236
+ }
237
+
238
+ // @for loop
239
+ @for $i from 1 through 12 {
240
+ .col-#{$i} {
241
+ width: percentage(calc($i / 12));
242
+ }
243
+ }
244
+
245
+ // @while (rarely needed)
246
+ $i: 1;
247
+ @while $i <= 5 {
248
+ .level-#{$i} {
249
+ z-index: $i * 100;
250
+ }
251
+ $i: $i + 1;
252
+ }
253
+ \`\`\`
254
+
255
+ ## Modules (@use and @forward)
256
+ \`\`\`scss
257
+ // _variables.scss
258
+ $primary: #3b82f6;
259
+ $secondary: #6b7280;
260
+
261
+ // _mixins.scss
262
+ @use 'variables' as vars;
263
+
264
+ @mixin button {
265
+ background: vars.$primary;
266
+ }
267
+
268
+ // _index.scss (forwarding)
269
+ @forward 'variables';
270
+ @forward 'mixins';
271
+
272
+ // main.scss
273
+ @use 'index' as *; // Import everything
274
+ // Or: @use 'index' as utils;
275
+
276
+ .button {
277
+ background: $primary; // From forwarded variables
278
+ @include button;
279
+ }
280
+
281
+ // With configuration
282
+ @use 'variables' with (
283
+ $primary: #ff0000
284
+ );
285
+ \`\`\`
286
+
287
+ ## Extend / Placeholder Selectors
288
+ \`\`\`scss
289
+ // Placeholder selector (won't be output)
290
+ %button-base {
291
+ padding: 0.5rem 1rem;
292
+ border: none;
293
+ border-radius: 0.375rem;
294
+ cursor: pointer;
295
+ }
296
+
297
+ %visually-hidden {
298
+ position: absolute;
299
+ width: 1px;
300
+ height: 1px;
301
+ padding: 0;
302
+ margin: -1px;
303
+ overflow: hidden;
304
+ clip: rect(0, 0, 0, 0);
305
+ border: 0;
306
+ }
307
+
308
+ // Extend placeholder
309
+ .button {
310
+ @extend %button-base;
311
+ background: $primary;
312
+ color: white;
313
+ }
314
+
315
+ .button-secondary {
316
+ @extend %button-base;
317
+ background: $secondary;
318
+ }
319
+
320
+ .sr-only {
321
+ @extend %visually-hidden;
322
+ }
323
+ \`\`\`
324
+
325
+ ## Project Structure (7-1 Pattern)
326
+ \`\`\`
327
+ scss/
328
+ ├── abstracts/
329
+ │ ├── _variables.scss # Variables
330
+ │ ├── _functions.scss # Functions
331
+ │ ├── _mixins.scss # Mixins
332
+ │ └── _index.scss # Forward all
333
+ ├── base/
334
+ │ ├── _reset.scss # Reset/normalize
335
+ │ ├── _typography.scss # Typography rules
336
+ │ └── _index.scss
337
+ ├── components/
338
+ │ ├── _button.scss
339
+ │ ├── _card.scss
340
+ │ ├── _form.scss
341
+ │ └── _index.scss
342
+ ├── layout/
343
+ │ ├── _header.scss
344
+ │ ├── _footer.scss
345
+ │ ├── _grid.scss
346
+ │ └── _index.scss
347
+ ├── pages/
348
+ │ ├── _home.scss
349
+ │ └── _index.scss
350
+ ├── themes/
351
+ │ ├── _dark.scss
352
+ │ └── _index.scss
353
+ ├── vendors/
354
+ │ └── _index.scss # Third-party
355
+ └── main.scss # Main entry point
356
+
357
+ // main.scss
358
+ @use 'abstracts';
359
+ @use 'base';
360
+ @use 'layout';
361
+ @use 'components';
362
+ @use 'pages';
363
+ @use 'themes';
364
+ \`\`\`
365
+
366
+ ## ❌ DON'T
367
+ - Nest more than 3 levels deep
368
+ - Use @import (deprecated, use @use)
369
+ - Create overly complex mixins
370
+ - Use extend with regular selectors (use %)
371
+ - Put variables in global scope
372
+
373
+ ## ✅ DO
374
+ - Use @use and @forward for modules
375
+ - Use BEM naming convention
376
+ - Create reusable mixins and functions
377
+ - Use maps for related values
378
+ - Keep nesting shallow (max 3 levels)
379
+ - Use placeholder selectors (%) with @extend
380
+ - Organize files using 7-1 or similar pattern