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,319 @@
1
+ # Docker Skill
2
+
3
+ ## Multi-Stage Dockerfile (Node.js)
4
+ \`\`\`dockerfile
5
+ # Stage 1: Dependencies
6
+ FROM node:20-alpine AS deps
7
+ WORKDIR /app
8
+ COPY package.json package-lock.json ./
9
+ RUN npm ci --only=production
10
+
11
+ # Stage 2: Build
12
+ FROM node:20-alpine AS builder
13
+ WORKDIR /app
14
+ COPY package.json package-lock.json ./
15
+ RUN npm ci
16
+ COPY . .
17
+ RUN npm run build
18
+
19
+ # Stage 3: Production
20
+ FROM node:20-alpine AS runner
21
+ WORKDIR /app
22
+
23
+ ENV NODE_ENV=production
24
+
25
+ # Create non-root user
26
+ RUN addgroup --system --gid 1001 nodejs && \\
27
+ adduser --system --uid 1001 appuser
28
+
29
+ # Copy only necessary files
30
+ COPY --from=deps /app/node_modules ./node_modules
31
+ COPY --from=builder /app/dist ./dist
32
+ COPY --from=builder /app/package.json ./
33
+
34
+ USER appuser
35
+
36
+ EXPOSE 3000
37
+
38
+ CMD ["node", "dist/index.js"]
39
+ \`\`\`
40
+
41
+ ## Multi-Stage Dockerfile (Next.js)
42
+ \`\`\`dockerfile
43
+ FROM node:20-alpine AS deps
44
+ WORKDIR /app
45
+ COPY package.json package-lock.json ./
46
+ RUN npm ci
47
+
48
+ FROM node:20-alpine AS builder
49
+ WORKDIR /app
50
+ COPY --from=deps /app/node_modules ./node_modules
51
+ COPY . .
52
+
53
+ ENV NEXT_TELEMETRY_DISABLED=1
54
+ RUN npm run build
55
+
56
+ FROM node:20-alpine AS runner
57
+ WORKDIR /app
58
+
59
+ ENV NODE_ENV=production
60
+ ENV NEXT_TELEMETRY_DISABLED=1
61
+
62
+ RUN addgroup --system --gid 1001 nodejs && \\
63
+ adduser --system --uid 1001 nextjs
64
+
65
+ COPY --from=builder /app/public ./public
66
+ COPY --from=builder /app/.next/standalone ./
67
+ COPY --from=builder /app/.next/static ./.next/static
68
+
69
+ USER nextjs
70
+
71
+ EXPOSE 3000
72
+ ENV PORT=3000
73
+ ENV HOSTNAME="0.0.0.0"
74
+
75
+ CMD ["node", "server.js"]
76
+ \`\`\`
77
+
78
+ ## Docker Compose (Full Stack)
79
+ \`\`\`yaml
80
+ # docker-compose.yml
81
+ version: '3.8'
82
+
83
+ services:
84
+ app:
85
+ build:
86
+ context: .
87
+ dockerfile: Dockerfile
88
+ target: runner
89
+ ports:
90
+ - "3000:3000"
91
+ environment:
92
+ - DATABASE_URL=postgresql://postgres:password@db:5432/myapp
93
+ - REDIS_URL=redis://redis:6379
94
+ depends_on:
95
+ db:
96
+ condition: service_healthy
97
+ redis:
98
+ condition: service_started
99
+ networks:
100
+ - app-network
101
+ restart: unless-stopped
102
+
103
+ db:
104
+ image: postgres:16-alpine
105
+ volumes:
106
+ - postgres_data:/var/lib/postgresql/data
107
+ - ./init.sql:/docker-entrypoint-initdb.d/init.sql
108
+ environment:
109
+ - POSTGRES_USER=postgres
110
+ - POSTGRES_PASSWORD=password
111
+ - POSTGRES_DB=myapp
112
+ ports:
113
+ - "5432:5432"
114
+ healthcheck:
115
+ test: ["CMD-SHELL", "pg_isready -U postgres"]
116
+ interval: 5s
117
+ timeout: 5s
118
+ retries: 5
119
+ networks:
120
+ - app-network
121
+
122
+ redis:
123
+ image: redis:7-alpine
124
+ volumes:
125
+ - redis_data:/data
126
+ ports:
127
+ - "6379:6379"
128
+ command: redis-server --appendonly yes
129
+ networks:
130
+ - app-network
131
+
132
+ volumes:
133
+ postgres_data:
134
+ redis_data:
135
+
136
+ networks:
137
+ app-network:
138
+ driver: bridge
139
+ \`\`\`
140
+
141
+ ## Docker Compose (Development)
142
+ \`\`\`yaml
143
+ # docker-compose.dev.yml
144
+ version: '3.8'
145
+
146
+ services:
147
+ app:
148
+ build:
149
+ context: .
150
+ dockerfile: Dockerfile.dev
151
+ ports:
152
+ - "3000:3000"
153
+ volumes:
154
+ - .:/app
155
+ - /app/node_modules
156
+ environment:
157
+ - NODE_ENV=development
158
+ command: npm run dev
159
+ \`\`\`
160
+
161
+ ## .dockerignore
162
+ \`\`\`
163
+ node_modules
164
+ npm-debug.log
165
+ .git
166
+ .gitignore
167
+ .env
168
+ .env.*
169
+ !.env.example
170
+ Dockerfile*
171
+ docker-compose*
172
+ .dockerignore
173
+ README.md
174
+ .next
175
+ dist
176
+ coverage
177
+ .nyc_output
178
+ *.log
179
+ \`\`\`
180
+
181
+ ## Common Commands
182
+ \`\`\`bash
183
+ # Build
184
+ docker build -t myapp .
185
+ docker build -t myapp:v1.0.0 --target runner .
186
+ docker build --no-cache -t myapp .
187
+
188
+ # Run
189
+ docker run -d -p 3000:3000 --name myapp myapp
190
+ docker run -d -p 3000:3000 -e NODE_ENV=production myapp
191
+ docker run -d -p 3000:3000 -v $(pwd)/data:/app/data myapp
192
+
193
+ # Compose
194
+ docker compose up -d
195
+ docker compose up -d --build
196
+ docker compose down
197
+ docker compose down -v # Remove volumes too
198
+ docker compose logs -f app
199
+ docker compose exec app sh
200
+
201
+ # Debug
202
+ docker ps
203
+ docker logs myapp
204
+ docker logs -f myapp # Follow
205
+ docker exec -it myapp sh
206
+ docker inspect myapp
207
+
208
+ # Cleanup
209
+ docker stop $(docker ps -q)
210
+ docker rm $(docker ps -aq)
211
+ docker rmi $(docker images -q)
212
+ docker system prune -a # Remove all unused
213
+ docker volume prune # Remove unused volumes
214
+ \`\`\`
215
+
216
+ ## Layer Optimization
217
+ \`\`\`dockerfile
218
+ # ❌ Bad - invalidates cache on any file change
219
+ COPY . .
220
+ RUN npm ci
221
+
222
+ # ✅ Good - dependencies cached separately
223
+ COPY package.json package-lock.json ./
224
+ RUN npm ci
225
+ COPY . .
226
+ \`\`\`
227
+
228
+ ## Health Checks
229
+ \`\`\`dockerfile
230
+ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \\
231
+ CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
232
+ \`\`\`
233
+
234
+ ## Environment Variables
235
+ \`\`\`dockerfile
236
+ # Build-time args
237
+ ARG NODE_VERSION=20
238
+ FROM node:\${NODE_VERSION}-alpine
239
+
240
+ # Runtime env
241
+ ENV NODE_ENV=production
242
+ ENV PORT=3000
243
+
244
+ # From .env file (compose)
245
+ env_file:
246
+ - .env
247
+ \`\`\`
248
+
249
+ ## Networking
250
+ \`\`\`yaml
251
+ # Internal service communication
252
+ DATABASE_URL=postgresql://postgres:password@db:5432/myapp
253
+ # ^^ service name
254
+
255
+ # Expose to host
256
+ ports:
257
+ - "5432:5432" # host:container
258
+
259
+ # Internal only (between containers)
260
+ expose:
261
+ - "5432"
262
+ \`\`\`
263
+
264
+ ## Volume Patterns
265
+ \`\`\`yaml
266
+ # Named volume (data persistence)
267
+ volumes:
268
+ postgres_data:
269
+ driver: local
270
+
271
+ # Bind mount (development)
272
+ volumes:
273
+ - ./src:/app/src
274
+ - /app/node_modules # Exclude node_modules
275
+
276
+ # Read-only
277
+ volumes:
278
+ - ./config:/app/config:ro
279
+ \`\`\`
280
+
281
+ ## Security Best Practices
282
+ \`\`\`dockerfile
283
+ # Use specific versions
284
+ FROM node:20.10.0-alpine3.19
285
+
286
+ # Non-root user
287
+ RUN addgroup -g 1001 appgroup && \\
288
+ adduser -u 1001 -G appgroup -s /bin/sh -D appuser
289
+ USER appuser
290
+
291
+ # Read-only filesystem
292
+ docker run --read-only myapp
293
+
294
+ # Drop capabilities
295
+ docker run --cap-drop ALL myapp
296
+
297
+ # No new privileges
298
+ docker run --security-opt no-new-privileges myapp
299
+ \`\`\`
300
+
301
+ ## ❌ DON'T
302
+ - Run containers as root
303
+ - Use \`latest\` tag in production
304
+ - Store secrets in Dockerfile
305
+ - Copy unnecessary files (use .dockerignore)
306
+ - Use single-stage builds for production
307
+ - Ignore layer caching order
308
+ - Run multiple processes per container
309
+
310
+ ## ✅ DO
311
+ - Use multi-stage builds
312
+ - Pin specific base image versions
313
+ - Create non-root users
314
+ - Use .dockerignore
315
+ - Order Dockerfile by change frequency
316
+ - Use health checks
317
+ - Set resource limits
318
+ - Use named volumes for data
319
+ - Scan images for vulnerabilities