@garethdaine/agentops 0.9.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 (148) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/LICENSE +21 -0
  3. package/README.md +410 -0
  4. package/agents/architecture-researcher.md +115 -0
  5. package/agents/code-critic.md +190 -0
  6. package/agents/delegation-router.md +40 -0
  7. package/agents/feature-researcher.md +117 -0
  8. package/agents/interrogator.md +11 -0
  9. package/agents/pitfalls-researcher.md +112 -0
  10. package/agents/plan-validator.md +173 -0
  11. package/agents/proposer.md +61 -0
  12. package/agents/security-reviewer.md +189 -0
  13. package/agents/skill-builder.md +43 -0
  14. package/agents/spec-compliance-reviewer.md +154 -0
  15. package/agents/stack-researcher.md +89 -0
  16. package/commands/build.md +766 -0
  17. package/commands/code-analysis.md +39 -0
  18. package/commands/code-field.md +22 -0
  19. package/commands/compliance-check.md +34 -0
  20. package/commands/configure.md +178 -0
  21. package/commands/cost-report.md +17 -0
  22. package/commands/enterprise/adr.md +78 -0
  23. package/commands/enterprise/brainstorm.md +461 -0
  24. package/commands/enterprise/design.md +203 -0
  25. package/commands/enterprise/dev-setup.md +136 -0
  26. package/commands/enterprise/docker-dev.md +229 -0
  27. package/commands/enterprise/e2e.md +233 -0
  28. package/commands/enterprise/feature.md +218 -0
  29. package/commands/enterprise/gap-analysis.md +204 -0
  30. package/commands/enterprise/handover.md +195 -0
  31. package/commands/enterprise/herd.md +152 -0
  32. package/commands/enterprise/knowledge.md +173 -0
  33. package/commands/enterprise/onboard.md +86 -0
  34. package/commands/enterprise/qa-check.md +80 -0
  35. package/commands/enterprise/reason.md +196 -0
  36. package/commands/enterprise/review.md +177 -0
  37. package/commands/enterprise/scaffold.md +153 -0
  38. package/commands/enterprise/status-report.md +101 -0
  39. package/commands/enterprise/tech-catalog.md +170 -0
  40. package/commands/enterprise/test-gen.md +138 -0
  41. package/commands/evolve.md +39 -0
  42. package/commands/flags.md +44 -0
  43. package/commands/interrogate.md +263 -0
  44. package/commands/lesson.md +15 -0
  45. package/commands/lessons.md +10 -0
  46. package/commands/plan.md +44 -0
  47. package/commands/prune.md +27 -0
  48. package/commands/star.md +17 -0
  49. package/commands/supply-chain-scan.md +44 -0
  50. package/commands/unicode-scan.md +63 -0
  51. package/commands/verify.md +41 -0
  52. package/commands/workflow.md +436 -0
  53. package/hooks/ai-guardrails.sh +114 -0
  54. package/hooks/audit-log.sh +26 -0
  55. package/hooks/auto-delegate.sh +45 -0
  56. package/hooks/auto-evolve.sh +22 -0
  57. package/hooks/auto-lesson.sh +26 -0
  58. package/hooks/auto-plan.sh +59 -0
  59. package/hooks/auto-test.sh +46 -0
  60. package/hooks/auto-verify.sh +30 -0
  61. package/hooks/budget-check.sh +24 -0
  62. package/hooks/code-field-preamble.sh +30 -0
  63. package/hooks/compliance-gate.sh +50 -0
  64. package/hooks/content-trust.sh +22 -0
  65. package/hooks/credential-redact.sh +23 -0
  66. package/hooks/delegation-trust.sh +15 -0
  67. package/hooks/detect-test-run.sh +19 -0
  68. package/hooks/enforcement-lib.sh +60 -0
  69. package/hooks/evolve-gate.sh +32 -0
  70. package/hooks/evolve-lib.sh +32 -0
  71. package/hooks/exfiltration-check.sh +67 -0
  72. package/hooks/failure-collector.sh +27 -0
  73. package/hooks/feature-flags.sh +67 -0
  74. package/hooks/file-provenance.sh +31 -0
  75. package/hooks/flag-utils.sh +36 -0
  76. package/hooks/hooks.json +145 -0
  77. package/hooks/injection-scan.sh +58 -0
  78. package/hooks/integrity-verify.sh +91 -0
  79. package/hooks/lessons-check.sh +17 -0
  80. package/hooks/lockfile-audit.sh +109 -0
  81. package/hooks/patterns-lib.sh +22 -0
  82. package/hooks/plan-gate.sh +18 -0
  83. package/hooks/redact-lib.sh +15 -0
  84. package/hooks/runtime-mode.sh +56 -0
  85. package/hooks/session-cleanup.sh +74 -0
  86. package/hooks/skill-validator.sh +28 -0
  87. package/hooks/standards-enforce.sh +106 -0
  88. package/hooks/star-gate.sh +93 -0
  89. package/hooks/star-preamble.sh +10 -0
  90. package/hooks/telemetry.sh +33 -0
  91. package/hooks/todo-prune.sh +84 -0
  92. package/hooks/unicode-firewall.sh +122 -0
  93. package/hooks/unicode-lib.sh +66 -0
  94. package/hooks/unicode-scan-session.sh +96 -0
  95. package/hooks/validate-command.sh +103 -0
  96. package/hooks/validate-env.sh +51 -0
  97. package/hooks/validate-path.sh +81 -0
  98. package/package.json +40 -0
  99. package/settings.json +6 -0
  100. package/templates/ai-config/tool-standards.md +56 -0
  101. package/templates/architecture/api-first.md +192 -0
  102. package/templates/architecture/auth-patterns.md +302 -0
  103. package/templates/architecture/caching-strategy.md +359 -0
  104. package/templates/architecture/database-patterns.md +347 -0
  105. package/templates/architecture/event-driven.md +252 -0
  106. package/templates/architecture/integration-patterns.md +185 -0
  107. package/templates/architecture/multi-tenancy.md +104 -0
  108. package/templates/architecture/service-boundaries.md +200 -0
  109. package/templates/build/brief-template.md +86 -0
  110. package/templates/build/summary-template.md +100 -0
  111. package/templates/build/task-plan-template.md +133 -0
  112. package/templates/communication/effort-estimate.md +54 -0
  113. package/templates/communication/incident-response.md +59 -0
  114. package/templates/communication/post-mortem.md +109 -0
  115. package/templates/communication/risk-register.md +43 -0
  116. package/templates/communication/sprint-demo-checklist.md +64 -0
  117. package/templates/communication/stakeholder-presentation-outline.md +84 -0
  118. package/templates/communication/technical-proposal.md +77 -0
  119. package/templates/delivery/deployment/deployment-checklist.md +49 -0
  120. package/templates/delivery/design/solution-design-checklist.md +37 -0
  121. package/templates/delivery/discovery/stakeholder-questions.md +33 -0
  122. package/templates/delivery/handover/knowledge-transfer-checklist.md +75 -0
  123. package/templates/delivery/handover/operational-runbook.md +117 -0
  124. package/templates/delivery/handover/support-escalation-matrix.md +56 -0
  125. package/templates/delivery/implementation/blocker-escalation-template.md +55 -0
  126. package/templates/delivery/implementation/sprint-planning-template.md +49 -0
  127. package/templates/delivery/implementation/task-decomposition-guide.md +59 -0
  128. package/templates/delivery/qa/test-plan-template.md +76 -0
  129. package/templates/delivery/qa/test-results-template.md +55 -0
  130. package/templates/delivery/qa/uat-signoff-template.md +44 -0
  131. package/templates/governance/codeowners.md +60 -0
  132. package/templates/integration/adapter-pattern.md +160 -0
  133. package/templates/scaffolds/env-validation.md +85 -0
  134. package/templates/scaffolds/error-handling.md +171 -0
  135. package/templates/scaffolds/graceful-shutdown.md +139 -0
  136. package/templates/scaffolds/health-check.md +109 -0
  137. package/templates/scaffolds/structured-logging.md +134 -0
  138. package/templates/standards/engineering-standards.md +413 -0
  139. package/templates/standards/standards-checklist.md +125 -0
  140. package/templates/tech-catalog.json +663 -0
  141. package/templates/utilities/project-detection.md +75 -0
  142. package/templates/utilities/requirements-collection.md +68 -0
  143. package/templates/utilities/template-rendering.md +81 -0
  144. package/templates/workflows/architecture-decision.md +90 -0
  145. package/templates/workflows/bug-investigation.md +83 -0
  146. package/templates/workflows/feature-implementation.md +80 -0
  147. package/templates/workflows/refactoring.md +83 -0
  148. package/templates/workflows/spike-exploration.md +82 -0
@@ -0,0 +1,663 @@
1
+ {
2
+ "_meta": {
3
+ "version": "1.5.0",
4
+ "lastUpdated": "2026-03-19",
5
+ "description": "Technology catalog for project scaffolding. Update via /agentops:tech-catalog. Categories are extensible — add new ones as needed."
6
+ },
7
+ "categories": {
8
+ "language": {
9
+ "label": "Programming Language",
10
+ "question": "Which programming language?",
11
+ "allowMultiple": false,
12
+ "options": [
13
+ { "name": "TypeScript", "description": "Typed JavaScript, dominant for web", "docs": "https://www.typescriptlang.org/docs/" },
14
+ { "name": "JavaScript", "description": "Dynamic, universal web language", "docs": "https://developer.mozilla.org/en-US/docs/Web/JavaScript" },
15
+ { "name": "Python", "description": "Data science, ML, scripting, web", "docs": "https://docs.python.org/3/" },
16
+ { "name": "Go", "description": "Systems, microservices, CLIs", "docs": "https://go.dev/doc/" },
17
+ { "name": "Rust", "description": "Systems, performance-critical, WASM", "docs": "https://doc.rust-lang.org/book/" },
18
+ { "name": "Java", "description": "Enterprise, Android, Spring ecosystem", "docs": "https://docs.oracle.com/en/java/" },
19
+ { "name": "Kotlin", "description": "Modern JVM, Android, Spring", "docs": "https://kotlinlang.org/docs/home.html" },
20
+ { "name": "C#", "description": ".NET ecosystem, enterprise, Unity", "docs": "https://learn.microsoft.com/en-us/dotnet/csharp/" },
21
+ { "name": "Swift", "description": "Apple platforms, server-side Swift", "docs": "https://www.swift.org/documentation/" },
22
+ { "name": "PHP", "description": "Web, Laravel/Symfony ecosystem", "docs": "https://www.php.net/docs.php" },
23
+ { "name": "Ruby", "description": "Web, Rails ecosystem, scripting", "docs": "https://ruby-doc.org/" },
24
+ { "name": "Elixir", "description": "Functional, real-time, fault-tolerant", "docs": "https://elixir-lang.org/docs.html" }
25
+ ]
26
+ },
27
+ "frontend": {
28
+ "label": "Frontend Framework",
29
+ "question": "Which frontend framework or approach?",
30
+ "allowMultiple": false,
31
+ "appliesWhen": "project requires a user interface",
32
+ "options": [
33
+ { "name": "Next.js", "description": "React, SSR/SSG, App Router, full-stack", "docs": "https://nextjs.org/docs" },
34
+ { "name": "Remix", "description": "React, nested routing, progressive enhancement", "docs": "https://remix.run/docs" },
35
+ { "name": "Nuxt", "description": "Vue.js, SSR/SSG, full-stack", "docs": "https://nuxt.com/docs" },
36
+ { "name": "SvelteKit", "description": "Svelte, SSR/SSG, file-based routing", "docs": "https://kit.svelte.dev/docs" },
37
+ { "name": "Astro", "description": "Content-heavy, island architecture, multi-framework", "docs": "https://docs.astro.build" },
38
+ { "name": "Vite + React", "description": "SPA, fast builds, maximum flexibility", "docs": "https://vite.dev/guide/" },
39
+ { "name": "Vite + Vue", "description": "SPA, Vue 3 Composition API", "docs": "https://vuejs.org/guide/introduction" },
40
+ { "name": "Vite + Svelte", "description": "SPA, compiled, minimal runtime", "docs": "https://svelte.dev/docs" },
41
+ { "name": "Angular", "description": "Enterprise SPA, signals-first, zoneless (v21+)", "docs": "https://angular.dev/overview" },
42
+ { "name": "SolidStart", "description": "SolidJS meta-framework, fine-grained reactivity, ~40% faster than React", "docs": "https://start.solidjs.com/" },
43
+ { "name": "TanStack Start", "description": "Full-stack React, SSR, streaming, server functions, type-safe", "docs": "https://tanstack.com/start/latest" },
44
+ { "name": "htmx", "description": "Hypermedia-driven, no JS build step, server-rendered, growing fast", "docs": "https://htmx.org/docs/" },
45
+ { "name": "Livewire", "description": "Laravel, reactive UI without JS, server-driven", "docs": "https://livewire.laravel.com/docs" },
46
+ { "name": "Inertia.js", "description": "SPA experience with server-side routing, Laravel/Rails", "docs": "https://inertiajs.com/" },
47
+ { "name": "Expo (React Native)", "description": "Cross-platform mobile, managed workflow", "docs": "https://docs.expo.dev/" },
48
+ { "name": "Flutter", "description": "Cross-platform mobile/web/desktop, Dart", "docs": "https://docs.flutter.dev/" },
49
+ { "name": "None", "description": "No frontend — API/CLI/library only", "docs": null }
50
+ ]
51
+ },
52
+ "backend": {
53
+ "label": "Backend Framework",
54
+ "question": "Which backend framework or runtime?",
55
+ "allowMultiple": false,
56
+ "appliesWhen": "project requires server-side logic",
57
+ "options": [
58
+ { "name": "Express", "description": "Node.js, minimal, huge ecosystem", "docs": "https://expressjs.com/" },
59
+ { "name": "Fastify", "description": "Node.js, performance-focused, schema validation", "docs": "https://fastify.dev/docs/latest/" },
60
+ { "name": "Hono", "description": "Edge-first, ultra-fast, multi-runtime", "docs": "https://hono.dev/docs/" },
61
+ { "name": "NestJS", "description": "Node.js, enterprise patterns, DI, decorators", "docs": "https://docs.nestjs.com/" },
62
+ { "name": "Elysia", "description": "Bun-native, end-to-end type safety", "docs": "https://elysiajs.com/introduction" },
63
+ { "name": "Django", "description": "Python, batteries-included, ORM, admin", "docs": "https://docs.djangoproject.com/" },
64
+ { "name": "FastAPI", "description": "Python, async, auto OpenAPI docs", "docs": "https://fastapi.tiangolo.com/" },
65
+ { "name": "Flask", "description": "Python, minimal, flexible", "docs": "https://flask.palletsprojects.com/" },
66
+ { "name": "Litestar", "description": "Python, 2x faster than FastAPI, batteries-included, msgspec", "docs": "https://docs.litestar.dev/" },
67
+ { "name": "Spring Boot", "description": "Java/Kotlin, enterprise, microservices", "docs": "https://spring.io/projects/spring-boot" },
68
+ { "name": "ASP.NET Core", "description": "C#, high-performance, enterprise", "docs": "https://learn.microsoft.com/en-us/aspnet/core/" },
69
+ { "name": "Rails", "description": "Ruby, convention over configuration", "docs": "https://guides.rubyonrails.org/" },
70
+ { "name": "Laravel", "description": "PHP, elegant, full-featured", "docs": "https://laravel.com/docs" },
71
+ { "name": "Phoenix", "description": "Elixir, real-time, LiveView", "docs": "https://hexdocs.pm/phoenix/" },
72
+ { "name": "Gin", "description": "Go, fast HTTP router", "docs": "https://gin-gonic.com/docs/" },
73
+ { "name": "Fiber", "description": "Go, Express-inspired, fast", "docs": "https://docs.gofiber.io/" },
74
+ { "name": "Actix Web", "description": "Rust, high-performance, actor model", "docs": "https://actix.rs/docs/" },
75
+ { "name": "Effect", "description": "TypeScript, functional effect system, concurrency, error handling", "docs": "https://effect.website/docs/getting-started/introduction" },
76
+ { "name": "Next.js API Routes", "description": "Full-stack in one framework", "docs": "https://nextjs.org/docs/app/building-your-application/routing/route-handlers" },
77
+ { "name": "None", "description": "No backend — frontend/library only", "docs": null }
78
+ ]
79
+ },
80
+ "database": {
81
+ "label": "Database",
82
+ "question": "Which database?",
83
+ "allowMultiple": true,
84
+ "appliesWhen": "project requires data persistence",
85
+ "options": [
86
+ { "name": "PostgreSQL", "description": "Relational, feature-rich, enterprise standard", "docs": "https://www.postgresql.org/docs/" },
87
+ { "name": "MySQL", "description": "Relational, widely adopted, managed options", "docs": "https://dev.mysql.com/doc/" },
88
+ { "name": "SQLite", "description": "Embedded, zero-config, file-based", "docs": "https://www.sqlite.org/docs.html" },
89
+ { "name": "MongoDB", "description": "Document store, flexible schema, Atlas", "docs": "https://www.mongodb.com/docs/" },
90
+ { "name": "Redis", "description": "In-memory, cache, pub/sub, streams", "docs": "https://redis.io/docs/" },
91
+ { "name": "DynamoDB", "description": "AWS managed, key-value/document, serverless", "docs": "https://docs.aws.amazon.com/dynamodb/" },
92
+ { "name": "Supabase", "description": "Managed Postgres, auth, realtime, storage", "docs": "https://supabase.com/docs" },
93
+ { "name": "Neon", "description": "Serverless Postgres, scale-to-zero, branching, acquired by Databricks", "docs": "https://neon.tech/docs" },
94
+ { "name": "Valkey", "description": "Open-source Redis fork (Linux Foundation), AWS/Google-backed, Valkey 8.1 GA", "docs": "https://valkey.io/docs/" },
95
+ { "name": "PlanetScale", "description": "Managed MySQL, branching — free tier removed Apr 2024, min $40/mo", "docs": "https://planetscale.com/docs" },
96
+ { "name": "Turso", "description": "Edge SQLite, libSQL, distributed", "docs": "https://docs.turso.tech/" },
97
+ { "name": "Neo4j", "description": "Graph database, relationship queries", "docs": "https://neo4j.com/docs/" },
98
+ { "name": "Elasticsearch", "description": "Search engine, full-text, analytics", "docs": "https://www.elastic.co/guide/en/elasticsearch/reference/current/" },
99
+ { "name": "None", "description": "No database needed", "docs": null }
100
+ ]
101
+ },
102
+ "orm": {
103
+ "label": "ORM / Data Access",
104
+ "question": "Which ORM or data access layer?",
105
+ "allowMultiple": false,
106
+ "appliesWhen": "project uses a database",
107
+ "options": [
108
+ { "name": "Prisma", "description": "Type-safe, schema-first, pure TS client (v7), migrations, JS/TS", "docs": "https://www.prisma.io/docs" },
109
+ { "name": "Drizzle", "description": "Lightweight, SQL-like, fast, TS-first", "docs": "https://orm.drizzle.team/docs/overview" },
110
+ { "name": "TypeORM", "description": "Decorator-based, Active Record/Data Mapper, TS", "docs": "https://typeorm.io/" },
111
+ { "name": "Kysely", "description": "Type-safe SQL query builder, no codegen", "docs": "https://kysely.dev/docs/intro" },
112
+ { "name": "Sequelize", "description": "Promise-based, mature, JS/TS", "docs": "https://sequelize.org/docs/v6/" },
113
+ { "name": "Eloquent", "description": "Laravel's Active Record ORM, expressive, relationships", "docs": "https://laravel.com/docs/eloquent" },
114
+ { "name": "SQLAlchemy", "description": "Python, mature, flexible, async support", "docs": "https://docs.sqlalchemy.org/" },
115
+ { "name": "Django ORM", "description": "Python, integrated with Django", "docs": "https://docs.djangoproject.com/en/stable/topics/db/" },
116
+ { "name": "Active Record", "description": "Ruby/Rails, convention-based, migrations", "docs": "https://guides.rubyonrails.org/active_record_basics.html" },
117
+ { "name": "Mongoose", "description": "MongoDB ODM, schema validation, JS/TS", "docs": "https://mongoosejs.com/docs/" },
118
+ { "name": "MikroORM", "description": "TypeScript, Unit of Work, identity map, complex domain modelling", "docs": "https://mikro-orm.io/docs" },
119
+ { "name": "GORM", "description": "Go ORM, associations, migrations", "docs": "https://gorm.io/docs/" },
120
+ { "name": "Raw SQL", "description": "Direct queries, maximum control", "docs": null },
121
+ { "name": "None", "description": "Not applicable", "docs": null }
122
+ ]
123
+ },
124
+ "auth": {
125
+ "label": "Authentication",
126
+ "question": "Which authentication approach?",
127
+ "allowMultiple": false,
128
+ "options": [
129
+ { "name": "NextAuth.js / Auth.js", "description": "OAuth providers, managed sessions, Next.js", "docs": "https://authjs.dev/getting-started" },
130
+ { "name": "Clerk", "description": "Managed auth, drop-in UI, user management", "docs": "https://clerk.com/docs" },
131
+ { "name": "Laravel Breeze", "description": "Laravel starter kit, simple auth scaffolding", "docs": "https://laravel.com/docs/starter-kits#laravel-breeze" },
132
+ { "name": "Laravel Jetstream", "description": "Laravel, teams, 2FA, API tokens, Livewire/Inertia", "docs": "https://jetstream.laravel.com/" },
133
+ { "name": "Laravel Sanctum", "description": "Laravel API token auth, SPA cookie auth", "docs": "https://laravel.com/docs/sanctum" },
134
+ { "name": "Laravel Passport", "description": "Laravel, full OAuth2 server implementation", "docs": "https://laravel.com/docs/passport" },
135
+ { "name": "Laravel Fortify", "description": "Laravel, headless auth backend, 2FA", "docs": "https://laravel.com/docs/fortify" },
136
+ { "name": "Supabase Auth", "description": "Managed, integrates with Supabase DB", "docs": "https://supabase.com/docs/guides/auth" },
137
+ { "name": "Firebase Auth", "description": "Google managed, social providers, phone", "docs": "https://firebase.google.com/docs/auth" },
138
+ { "name": "Auth0 / Okta", "description": "Enterprise SSO, SAML, OIDC", "docs": "https://auth0.com/docs" },
139
+ { "name": "Keycloak", "description": "Self-hosted, enterprise IAM, OIDC/SAML", "docs": "https://www.keycloak.org/documentation" },
140
+ { "name": "Passport.js", "description": "Node.js middleware, strategy-based", "docs": "https://www.passportjs.org/docs/" },
141
+ { "name": "Custom JWT", "description": "Self-managed tokens, full control", "docs": "https://jwt.io/introduction" },
142
+ { "name": "Session-based", "description": "Server-side sessions, cookies", "docs": null },
143
+ { "name": "None", "description": "No authentication needed", "docs": null }
144
+ ]
145
+ },
146
+ "cloud": {
147
+ "label": "Cloud / Hosting",
148
+ "question": "Where will this be deployed?",
149
+ "allowMultiple": false,
150
+ "options": [
151
+ { "name": "AWS", "description": "Full cloud — ECS, Lambda, RDS, S3", "docs": "https://docs.aws.amazon.com/" },
152
+ { "name": "GCP", "description": "Google Cloud — Cloud Run, GKE, Cloud SQL", "docs": "https://cloud.google.com/docs" },
153
+ { "name": "Azure", "description": "Microsoft — App Service, AKS, SQL Database", "docs": "https://learn.microsoft.com/en-us/azure/" },
154
+ { "name": "Laravel Forge", "description": "Server provisioning and deployment for PHP/Laravel", "docs": "https://forge.laravel.com/docs" },
155
+ { "name": "Laravel Vapor", "description": "Serverless Laravel on AWS Lambda, auto-scaling", "docs": "https://docs.vapor.build/" },
156
+ { "name": "Laravel Cloud", "description": "Laravel's managed deployment platform", "docs": "https://cloud.laravel.com/docs" },
157
+ { "name": "Vercel", "description": "Frontend/full-stack, edge functions, Next.js optimised", "docs": "https://vercel.com/docs" },
158
+ { "name": "Netlify", "description": "Frontend/Jamstack, serverless functions", "docs": "https://docs.netlify.com/" },
159
+ { "name": "Cloudflare", "description": "Edge, Workers, D1, R2, Pages", "docs": "https://developers.cloudflare.com/" },
160
+ { "name": "Railway", "description": "Simple deployment, managed infra, Postgres", "docs": "https://docs.railway.com/" },
161
+ { "name": "Fly.io", "description": "Edge VMs, global deployment, Postgres", "docs": "https://fly.io/docs/" },
162
+ { "name": "DigitalOcean", "description": "Simple cloud, App Platform, managed DB", "docs": "https://docs.digitalocean.com/" },
163
+ { "name": "Kubernetes (self-managed)", "description": "Container orchestration, any cloud", "docs": "https://kubernetes.io/docs/" },
164
+ { "name": "Docker-only (cloud-agnostic)", "description": "Containerised, deploy anywhere", "docs": "https://docs.docker.com/" },
165
+ { "name": "Coolify", "description": "Open-source self-hosted PaaS, Vercel/Heroku alternative, free", "docs": "https://coolify.io/docs" },
166
+ { "name": "Deno Deploy", "description": "Edge hosting, GA 2026, auto CI/CD, built-in DB, framework auto-detect", "docs": "https://docs.deno.com/deploy/manual/" },
167
+ { "name": "Render", "description": "Git-driven deploys, long-running services, workers, managed DB", "docs": "https://docs.render.com/" },
168
+ { "name": "On-premise", "description": "Self-hosted, bare metal or VMs", "docs": null }
169
+ ]
170
+ },
171
+ "ci_cd": {
172
+ "label": "CI/CD",
173
+ "question": "Which CI/CD pipeline?",
174
+ "allowMultiple": false,
175
+ "options": [
176
+ { "name": "GitHub Actions", "description": "GitHub-native, YAML workflows, marketplace", "docs": "https://docs.github.com/en/actions" },
177
+ { "name": "GitLab CI", "description": "GitLab-native, .gitlab-ci.yml", "docs": "https://docs.gitlab.com/ee/ci/" },
178
+ { "name": "CircleCI", "description": "Cloud CI, Docker-first, orbs", "docs": "https://circleci.com/docs/" },
179
+ { "name": "Jenkins", "description": "Self-hosted, extensible, Jenkinsfile", "docs": "https://www.jenkins.io/doc/" },
180
+ { "name": "AWS CodePipeline", "description": "AWS-native, CodeBuild, CodeDeploy", "docs": "https://docs.aws.amazon.com/codepipeline/" },
181
+ { "name": "Azure DevOps", "description": "Microsoft, YAML pipelines, boards", "docs": "https://learn.microsoft.com/en-us/azure/devops/" },
182
+ { "name": "Bitbucket Pipelines", "description": "Atlassian, integrated with Jira", "docs": "https://support.atlassian.com/bitbucket-cloud/docs/get-started-with-bitbucket-pipelines/" },
183
+ { "name": "Dagger", "description": "Containerised CI pipelines, run locally or in any CI, programmable", "docs": "https://docs.dagger.io/" },
184
+ { "name": "Laravel Envoyer", "description": "Zero-downtime PHP/Laravel deployments", "docs": "https://envoyer.io/docs" },
185
+ { "name": "None", "description": "No CI/CD yet", "docs": null }
186
+ ]
187
+ },
188
+ "testing": {
189
+ "label": "Testing Framework",
190
+ "question": "Which testing framework?",
191
+ "allowMultiple": true,
192
+ "options": [
193
+ { "name": "Vitest", "description": "Vite-native, fast, Jest-compatible API", "docs": "https://vitest.dev/guide/" },
194
+ { "name": "Jest", "description": "Meta, widely adopted, snapshot testing", "docs": "https://jestjs.io/docs/getting-started" },
195
+ { "name": "Playwright", "description": "E2E, cross-browser, auto-waiting", "docs": "https://playwright.dev/docs/intro" },
196
+ { "name": "Cypress", "description": "E2E, component testing, time-travel", "docs": "https://docs.cypress.io/" },
197
+ { "name": "Testing Library", "description": "DOM testing, user-centric queries", "docs": "https://testing-library.com/docs/" },
198
+ { "name": "Pest", "description": "PHP, elegant syntax, built on PHPUnit, Laravel-first", "docs": "https://pestphp.com/docs" },
199
+ { "name": "PHPUnit", "description": "PHP, xUnit architecture", "docs": "https://docs.phpunit.de/" },
200
+ { "name": "Laravel Dusk", "description": "Laravel browser testing, ChromeDriver", "docs": "https://laravel.com/docs/dusk" },
201
+ { "name": "pytest", "description": "Python, fixtures, parametrize, plugins", "docs": "https://docs.pytest.org/" },
202
+ { "name": "Go test", "description": "Go standard library testing", "docs": "https://pkg.go.dev/testing" },
203
+ { "name": "JUnit", "description": "Java/Kotlin, enterprise standard", "docs": "https://junit.org/junit5/docs/current/user-guide/" },
204
+ { "name": "RSpec", "description": "Ruby, BDD-style, expressive", "docs": "https://rspec.info/documentation/" }
205
+ ]
206
+ },
207
+ "package_manager": {
208
+ "label": "Package Manager",
209
+ "question": "Which package manager?",
210
+ "allowMultiple": false,
211
+ "options": [
212
+ { "name": "pnpm", "description": "Fast, disk-efficient, strict", "docs": "https://pnpm.io/motivation" },
213
+ { "name": "npm", "description": "Node default, universal", "docs": "https://docs.npmjs.com/" },
214
+ { "name": "yarn", "description": "Workspaces, plug'n'play, Berry", "docs": "https://yarnpkg.com/getting-started" },
215
+ { "name": "bun", "description": "Fast runtime + bundler + package manager", "docs": "https://bun.sh/docs" },
216
+ { "name": "pip / uv", "description": "Python package management", "docs": "https://docs.astral.sh/uv/" },
217
+ { "name": "cargo", "description": "Rust package manager", "docs": "https://doc.rust-lang.org/cargo/" },
218
+ { "name": "go modules", "description": "Go dependency management", "docs": "https://go.dev/ref/mod" },
219
+ { "name": "Maven", "description": "Java/Kotlin build + dependency management", "docs": "https://maven.apache.org/guides/" },
220
+ { "name": "Gradle", "description": "Java/Kotlin, flexible, Groovy/Kotlin DSL", "docs": "https://docs.gradle.org/" },
221
+ { "name": "Composer", "description": "PHP dependency management", "docs": "https://getcomposer.org/doc/" }
222
+ ]
223
+ },
224
+ "monorepo": {
225
+ "label": "Monorepo Tool",
226
+ "question": "Monorepo structure?",
227
+ "allowMultiple": false,
228
+ "options": [
229
+ { "name": "No monorepo", "description": "Single package, simpler setup", "docs": null },
230
+ { "name": "Turborepo", "description": "Incremental builds, caching, task pipelines", "docs": "https://turbo.build/repo/docs" },
231
+ { "name": "Nx", "description": "Smart rebuilds, generators, plugins", "docs": "https://nx.dev/getting-started/intro" },
232
+ { "name": "pnpm workspaces", "description": "Native workspace support, no extra tool", "docs": "https://pnpm.io/workspaces" },
233
+ { "name": "Lerna", "description": "Multi-package publishing, versioning", "docs": "https://lerna.js.org/docs/introduction" }
234
+ ]
235
+ },
236
+ "packages_laravel": {
237
+ "label": "Laravel Packages",
238
+ "question": "Which Laravel packages?",
239
+ "allowMultiple": true,
240
+ "appliesWhen": "backend is Laravel",
241
+ "options": [
242
+ { "name": "Spatie Laravel Permission", "description": "Roles and permissions, ACL", "docs": "https://spatie.be/docs/laravel-permission" },
243
+ { "name": "Spatie Laravel Media Library", "description": "File uploads, conversions, collections", "docs": "https://spatie.be/docs/laravel-medialibrary" },
244
+ { "name": "Spatie Laravel Backup", "description": "Database and file backups", "docs": "https://spatie.be/docs/laravel-backup" },
245
+ { "name": "Spatie Laravel Activity Log", "description": "Log model changes, audit trail", "docs": "https://spatie.be/docs/laravel-activitylog" },
246
+ { "name": "Spatie Laravel Data", "description": "Typed data objects, validation, transformation", "docs": "https://spatie.be/docs/laravel-data" },
247
+ { "name": "Spatie Laravel Query Builder", "description": "Filter, sort, include via query string", "docs": "https://spatie.be/docs/laravel-query-builder" },
248
+ { "name": "Laravel Horizon", "description": "Redis queue dashboard, monitoring, metrics", "docs": "https://laravel.com/docs/horizon" },
249
+ { "name": "Laravel Telescope", "description": "Debug assistant, request/query/job inspection", "docs": "https://laravel.com/docs/telescope" },
250
+ { "name": "Laravel Pulse", "description": "Real-time application performance monitoring", "docs": "https://laravel.com/docs/pulse" },
251
+ { "name": "Laravel Pennant", "description": "Feature flags, A/B testing, gradual rollouts", "docs": "https://laravel.com/docs/pennant" },
252
+ { "name": "Laravel Scout", "description": "Full-text search, Algolia/Meilisearch/Typesense drivers", "docs": "https://laravel.com/docs/scout" },
253
+ { "name": "Laravel Cashier", "description": "Stripe/Paddle subscription billing", "docs": "https://laravel.com/docs/billing" },
254
+ { "name": "Laravel Socialite", "description": "OAuth social authentication", "docs": "https://laravel.com/docs/socialite" },
255
+ { "name": "Laravel Nova", "description": "Admin panel, resource management, dashboards", "docs": "https://nova.laravel.com/docs" },
256
+ { "name": "Filament", "description": "Admin panel, form builder, table builder, TALL stack", "docs": "https://filamentphp.com/docs" },
257
+ { "name": "Laravel Reverb", "description": "WebSocket server, real-time broadcasting", "docs": "https://laravel.com/docs/reverb" },
258
+ { "name": "Laravel Pint", "description": "Code style fixer, PHP-CS-Fixer wrapper", "docs": "https://laravel.com/docs/pint" },
259
+ { "name": "Larastan / PHPStan", "description": "Static analysis, type checking for Laravel", "docs": "https://github.com/larastan/larastan" },
260
+ { "name": "Laravel Prompts", "description": "Beautiful CLI prompts, forms, spinners, built into Artisan", "docs": "https://laravel.com/docs/prompts" }
261
+ ]
262
+ },
263
+ "packages_nextjs": {
264
+ "label": "Next.js / React Packages",
265
+ "question": "Which React/Next.js packages?",
266
+ "allowMultiple": true,
267
+ "appliesWhen": "frontend is Next.js or Vite + React",
268
+ "options": [
269
+ { "name": "Tailwind CSS", "description": "Utility-first CSS framework", "docs": "https://tailwindcss.com/docs" },
270
+ { "name": "shadcn/ui", "description": "Composable Radix-based UI components, copy-paste", "docs": "https://ui.shadcn.com/docs" },
271
+ { "name": "React Hook Form", "description": "Performant forms, validation, minimal re-renders", "docs": "https://react-hook-form.com/get-started" },
272
+ { "name": "Zod", "description": "TypeScript-first schema validation", "docs": "https://zod.dev/" },
273
+ { "name": "TanStack Query", "description": "Server state, caching, mutations, async data", "docs": "https://tanstack.com/query/latest/docs" },
274
+ { "name": "TanStack Table", "description": "Headless table/datagrid, sorting, filtering", "docs": "https://tanstack.com/table/latest/docs" },
275
+ { "name": "Zustand", "description": "Lightweight state management, minimal boilerplate", "docs": "https://zustand-demo.pmnd.rs/" },
276
+ { "name": "Jotai", "description": "Atomic state management, bottom-up approach", "docs": "https://jotai.org/docs/introduction" },
277
+ { "name": "Framer Motion", "description": "Animation library, layout animations, gestures", "docs": "https://www.framer.com/motion/" },
278
+ { "name": "next-intl", "description": "Next.js internationalisation, App Router support", "docs": "https://next-intl-docs.vercel.app/" },
279
+ { "name": "Uploadthing", "description": "File uploads for Next.js, type-safe", "docs": "https://docs.uploadthing.com/" },
280
+ { "name": "Lucide Icons", "description": "Icon library, tree-shakeable, consistent design", "docs": "https://lucide.dev/guide/" }
281
+ ]
282
+ },
283
+ "packages_python": {
284
+ "label": "Python Packages",
285
+ "question": "Which Python packages?",
286
+ "allowMultiple": true,
287
+ "appliesWhen": "language is Python",
288
+ "options": [
289
+ { "name": "Pydantic", "description": "Data validation, settings management, type hints", "docs": "https://docs.pydantic.dev/" },
290
+ { "name": "Celery", "description": "Distributed task queue, async workers", "docs": "https://docs.celeryq.dev/" },
291
+ { "name": "httpx", "description": "Async HTTP client, requests-compatible", "docs": "https://www.python-httpx.org/" },
292
+ { "name": "Alembic", "description": "Database migrations for SQLAlchemy", "docs": "https://alembic.sqlalchemy.org/" },
293
+ { "name": "Ruff", "description": "Fast Python linter and formatter, Rust-based", "docs": "https://docs.astral.sh/ruff/" },
294
+ { "name": "Typer", "description": "CLI builder, type hints, auto help/completion", "docs": "https://typer.tiangolo.com/" },
295
+ { "name": "Polars", "description": "Fast DataFrame library, Rust-based, Arrow", "docs": "https://docs.pola.rs/" },
296
+ { "name": "Pandas", "description": "Data manipulation, analysis, DataFrames", "docs": "https://pandas.pydata.org/docs/" }
297
+ ]
298
+ },
299
+ "packages_rails": {
300
+ "label": "Rails Packages (Gems)",
301
+ "question": "Which Rails gems?",
302
+ "allowMultiple": true,
303
+ "appliesWhen": "backend is Rails",
304
+ "options": [
305
+ { "name": "Devise", "description": "Authentication, registration, password recovery", "docs": "https://github.com/heartcombo/devise" },
306
+ { "name": "Pundit", "description": "Authorisation, policy objects", "docs": "https://github.com/varvet/pundit" },
307
+ { "name": "Sidekiq", "description": "Background jobs, Redis-backed, dashboard", "docs": "https://github.com/sidekiq/sidekiq/wiki" },
308
+ { "name": "Stimulus", "description": "Modest JS framework, HTML-driven, Hotwire", "docs": "https://stimulus.hotwired.dev/" },
309
+ { "name": "Turbo", "description": "SPA-like navigation without JS, Hotwire", "docs": "https://turbo.hotwired.dev/" },
310
+ { "name": "RuboCop", "description": "Ruby linter, formatter, style enforcement", "docs": "https://docs.rubocop.org/" },
311
+ { "name": "Pagy", "description": "Fast pagination, lightweight", "docs": "https://ddnexus.github.io/pagy/" },
312
+ { "name": "Ransack", "description": "Search and filtering, query builder", "docs": "https://activerecord-hackery.github.io/ransack/" }
313
+ ]
314
+ },
315
+ "ai": {
316
+ "label": "AI / LLM",
317
+ "question": "Which AI tools, SDKs, or services?",
318
+ "allowMultiple": true,
319
+ "appliesWhen": "project uses AI or LLM capabilities",
320
+ "options": [
321
+ { "name": "Anthropic Claude API", "description": "Claude models, tool use, vision, long context", "docs": "https://docs.anthropic.com/" },
322
+ { "name": "OpenAI API", "description": "GPT models, Responses API, embeddings, DALL-E", "docs": "https://platform.openai.com/docs" },
323
+ { "name": "OpenAI Agents SDK", "description": "Multi-agent orchestration, handoffs, guardrails, tracing, AgentKit", "docs": "https://openai.github.io/openai-agents-python/" },
324
+ { "name": "Mistral API", "description": "Mistral Small 4, Large 3, Magistral reasoning, multimodal", "docs": "https://docs.mistral.ai/" },
325
+ { "name": "Groq", "description": "Ultra-fast LLM inference, multi-model hosting, speed-optimised", "docs": "https://console.groq.com/docs/" },
326
+ { "name": "Cohere", "description": "Enterprise AI, Command A (2-GPU), North agent platform, on-prem", "docs": "https://docs.cohere.com/" },
327
+ { "name": "Vercel AI SDK", "description": "Streaming UI, multi-provider, React/Next.js hooks", "docs": "https://sdk.vercel.ai/docs" },
328
+ { "name": "LangChain", "description": "LLM orchestration, chains, agents, retrieval", "docs": "https://python.langchain.com/docs/" },
329
+ { "name": "LangGraph", "description": "Stateful multi-agent workflows, graph-based", "docs": "https://langchain-ai.github.io/langgraph/" },
330
+ { "name": "LlamaIndex", "description": "Data ingestion, indexing, RAG pipelines", "docs": "https://docs.llamaindex.ai/" },
331
+ { "name": "Ollama", "description": "Local LLM runner, model management, API", "docs": "https://ollama.com/" },
332
+ { "name": "Hugging Face Transformers", "description": "Model hub, inference, fine-tuning, pipelines", "docs": "https://huggingface.co/docs/transformers" },
333
+ { "name": "Google Gemini API", "description": "Gemini models, multimodal, long context", "docs": "https://ai.google.dev/docs" },
334
+ { "name": "AWS Bedrock", "description": "Managed LLM access, Claude/Llama/Titan", "docs": "https://docs.aws.amazon.com/bedrock/" },
335
+ { "name": "Pinecone", "description": "Vector database, similarity search, managed", "docs": "https://docs.pinecone.io/" },
336
+ { "name": "Chroma", "description": "Open-source vector database, embeddings", "docs": "https://docs.trychroma.com/" },
337
+ { "name": "Weaviate", "description": "Vector database, hybrid search, modules", "docs": "https://weaviate.io/developers/weaviate" },
338
+ { "name": "Qdrant", "description": "High-performance vector DB, best-in-class filtering, growing fast", "docs": "https://qdrant.tech/documentation/" },
339
+ { "name": "Milvus", "description": "Most popular open-source vector DB, 35K+ stars, 10K+ enterprise teams", "docs": "https://milvus.io/docs" },
340
+ { "name": "pgvector", "description": "Vector search in existing Postgres, SQL-native, fastest to production", "docs": "https://github.com/pgvector/pgvector" },
341
+ { "name": "Portkey", "description": "AI Gateway, observability, guardrails, 100+ provider routing", "docs": "https://portkey.ai/docs" },
342
+ { "name": "LiteLLM", "description": "Open-source AI gateway, OpenAI-compatible, 100+ providers, self-hosted", "docs": "https://docs.litellm.ai/" },
343
+ { "name": "Replicate", "description": "Run ML models via API, serverless GPU", "docs": "https://replicate.com/docs" },
344
+ { "name": "Instructor", "description": "Structured LLM output, Pydantic extraction", "docs": "https://python.useinstructor.com/" },
345
+ { "name": "None", "description": "No AI/LLM integration", "docs": null }
346
+ ]
347
+ },
348
+ "apis": {
349
+ "label": "APIs & Services",
350
+ "question": "Which external APIs or services?",
351
+ "allowMultiple": true,
352
+ "appliesWhen": "project integrates with external services",
353
+ "options": [
354
+ { "name": "Stripe", "description": "Payments, subscriptions, invoicing, Connect", "docs": "https://docs.stripe.com/" },
355
+ { "name": "Paddle", "description": "Payments, tax handling, merchant of record", "docs": "https://developer.paddle.com/api-reference/overview" },
356
+ { "name": "Twilio", "description": "SMS, voice, WhatsApp, video, verify", "docs": "https://www.twilio.com/docs" },
357
+ { "name": "SendGrid", "description": "Transactional email, templates, analytics", "docs": "https://docs.sendgrid.com/" },
358
+ { "name": "Postmark", "description": "Transactional email, deliverability-focused", "docs": "https://postmarkapp.com/developer" },
359
+ { "name": "Resend", "description": "Developer-first email API, React templates", "docs": "https://resend.com/docs" },
360
+ { "name": "Mailgun", "description": "Email API, validation, routing", "docs": "https://documentation.mailgun.com/" },
361
+ { "name": "Algolia", "description": "Search-as-a-service, instant results, AI search", "docs": "https://www.algolia.com/doc/" },
362
+ { "name": "Meilisearch", "description": "Open-source search, typo-tolerant, fast", "docs": "https://www.meilisearch.com/docs" },
363
+ { "name": "Typesense", "description": "Open-source search, typo-tolerant, faceting", "docs": "https://typesense.org/docs/" },
364
+ { "name": "Cloudinary", "description": "Image/video CDN, transformations, optimisation", "docs": "https://cloudinary.com/documentation" },
365
+ { "name": "Sentry", "description": "Error tracking, performance monitoring, tracing", "docs": "https://docs.sentry.io/" },
366
+ { "name": "LaunchDarkly", "description": "Feature flags, experimentation, progressive delivery", "docs": "https://docs.launchdarkly.com/" },
367
+ { "name": "Pusher", "description": "Real-time WebSockets, channels, presence", "docs": "https://pusher.com/docs/" },
368
+ { "name": "Mapbox", "description": "Maps, geocoding, navigation, spatial data", "docs": "https://docs.mapbox.com/" },
369
+ { "name": "GitHub API", "description": "Repos, issues, PRs, actions, webhooks", "docs": "https://docs.github.com/en/rest" },
370
+ { "name": "Slack API", "description": "Messaging, bots, workflows, webhooks", "docs": "https://api.slack.com/docs" },
371
+ { "name": "Trigger.dev", "description": "Durable execution, v3 GA, long-running compute, checkpointing", "docs": "https://trigger.dev/docs" },
372
+ { "name": "Inngest", "description": "Event-driven durable execution, step functions, sleep/fan-out/debounce", "docs": "https://www.inngest.com/docs" },
373
+ { "name": "Upstash", "description": "Serverless Redis, Vector DB, QStash task queue, edge-native", "docs": "https://upstash.com/docs" },
374
+ { "name": "Neon API", "description": "Serverless Postgres API, branching, scale-to-zero, Databricks-backed", "docs": "https://api-docs.neon.tech/reference/getting-started-with-neon-api" },
375
+ { "name": "None", "description": "No external API integrations", "docs": null }
376
+ ]
377
+ },
378
+ "mcp_servers": {
379
+ "label": "MCP Servers",
380
+ "question": "Which MCP (Model Context Protocol) servers?",
381
+ "allowMultiple": true,
382
+ "appliesWhen": "project uses AI agents or Claude Code",
383
+ "options": [
384
+ { "name": "Firecrawl", "description": "Web scraping, crawling, search, content extraction, structured data", "docs": "https://docs.firecrawl.dev/mcp" },
385
+ { "name": "Playwright", "description": "Browser automation, E2E testing, screenshots, codegen sessions", "docs": "https://github.com/executeautomation/mcp-playwright" },
386
+ { "name": "Chrome DevTools", "description": "Browser automation via CDP, Lighthouse audits, performance tracing, network inspection", "docs": "https://github.com/nichochar/chrome-devtools-mcp" },
387
+ { "name": "Context7", "description": "Library documentation lookup, up-to-date API reference for any package", "docs": "https://context7.com/" },
388
+ { "name": "Filesystem", "description": "Read/write local files, directory tree, search, move", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem" },
389
+ { "name": "Git", "description": "Git operations — status, diff, commit, log, branch, checkout", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/git" },
390
+ { "name": "GitHub", "description": "Repos, issues, PRs, search, code search, reviews, file contents", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/github" },
391
+ { "name": "GitLab", "description": "Projects, merge requests, pipelines, issues", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab" },
392
+ { "name": "Linear", "description": "Issues, projects, cycles, documents, milestones, teams", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/linear" },
393
+ { "name": "Memory", "description": "Persistent knowledge graph, entities, relations, observations", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/memory" },
394
+ { "name": "Sequential Thinking", "description": "Structured reasoning, step-by-step problem solving, hypothesis revision", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking" },
395
+ { "name": "Fetch", "description": "HTTP requests, web page content extraction, markdown conversion", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch" },
396
+ { "name": "shadcn/ui", "description": "Component library lookup, examples, installation instructions", "docs": "https://github.com/nichochar/shadcn-ui-mcp" },
397
+ { "name": "Tailwind CSS", "description": "Utility lookup, colour palettes, config guides, CSS-to-Tailwind conversion", "docs": "https://github.com/nichochar/tailwind-mcp" },
398
+ { "name": "Nuxt UI", "description": "Nuxt UI component metadata, documentation, examples, migration guides", "docs": "https://ui.nuxt.com/" },
399
+ { "name": "Laravel Herd", "description": "PHP versions, sites, services, Xdebug, secure/isolate sites", "docs": "https://herd.laravel.com/docs" },
400
+ { "name": "Slack", "description": "Channels, messages, users, search, bot interactions", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/slack" },
401
+ { "name": "Postgres", "description": "Query PostgreSQL databases, schema inspection", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/postgres" },
402
+ { "name": "MySQL", "description": "Query MySQL databases, schema inspection", "docs": "https://github.com/benborla/mcp-server-mysql" },
403
+ { "name": "Brave Search", "description": "Web search via Brave Search API", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search" },
404
+ { "name": "Sentry", "description": "Error tracking, issue lookup, event data", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/sentry" },
405
+ { "name": "Figma", "description": "Design file access, components, styles, layout inspection", "docs": "https://github.com/nichochar/figma-mcp" },
406
+ { "name": "Notion", "description": "Pages, databases, blocks, search, content management", "docs": "https://github.com/modelcontextprotocol/servers/tree/main/src/notion" },
407
+ { "name": "MCP Gateway", "description": "Aggregate multiple MCP servers behind one endpoint, tool routing, dashboard", "docs": "https://github.com/nichochar/mcp-gateway" },
408
+ { "name": "Custom MCP Server", "description": "Build your own MCP server for domain-specific tools", "docs": "https://modelcontextprotocol.io/docs/concepts/servers" },
409
+ { "name": "None", "description": "No MCP servers", "docs": null }
410
+ ]
411
+ },
412
+ "ai_agent_frameworks": {
413
+ "label": "AI Agent Frameworks & Skills",
414
+ "question": "Which AI agent frameworks or skill systems?",
415
+ "allowMultiple": true,
416
+ "appliesWhen": "project builds or uses AI agents",
417
+ "options": [
418
+ { "name": "Claude Code + Hooks", "description": "Claude CLI with custom hooks, skills, and MCP integration", "docs": "https://docs.anthropic.com/en/docs/claude-code" },
419
+ { "name": "Claude Agent SDK", "description": "Anthropic SDK for building custom Claude agents", "docs": "https://docs.anthropic.com/en/docs/agents" },
420
+ { "name": "OpenAI Agents SDK", "description": "Multi-agent, handoffs, guardrails, tracing, visual Agent Builder", "docs": "https://openai.github.io/openai-agents-python/" },
421
+ { "name": "OpenAI Assistants", "description": "Stateful assistants, tool use — deprecation planned mid-2026", "docs": "https://platform.openai.com/docs/assistants/overview" },
422
+ { "name": "CrewAI", "description": "Multi-agent orchestration, role-based, task delegation", "docs": "https://docs.crewai.com/" },
423
+ { "name": "AutoGen", "description": "Microsoft, multi-agent conversation, code execution", "docs": "https://microsoft.github.io/autogen/" },
424
+ { "name": "Semantic Kernel", "description": "Microsoft, AI orchestration, plugins, .NET/Python/Java", "docs": "https://learn.microsoft.com/en-us/semantic-kernel/" },
425
+ { "name": "Haystack", "description": "LLM pipelines, RAG, document processing", "docs": "https://docs.haystack.deepset.ai/" },
426
+ { "name": "Mastra", "description": "TypeScript AI agent framework, workflows, tools", "docs": "https://mastra.ai/docs" },
427
+ { "name": "Smolagents", "description": "Hugging Face, lightweight agent framework, code agents", "docs": "https://huggingface.co/docs/smolagents" },
428
+ { "name": "Pydantic AI", "description": "Type-safe AI agents, structured output, Python", "docs": "https://ai.pydantic.dev/" },
429
+ { "name": "DSPy", "description": "Programming with foundation models, optimisers, signatures", "docs": "https://dspy-docs.vercel.app/" },
430
+ { "name": "None", "description": "No agent framework", "docs": null }
431
+ ]
432
+ },
433
+ "design_patterns": {
434
+ "label": "Design Patterns & Architecture",
435
+ "question": "Which design patterns and architectural approaches apply?",
436
+ "allowMultiple": true,
437
+ "options": [
438
+ { "name": "Action-Based Architecture", "description": "One class per action, single __invoke method, replaces bloated controllers/services", "docs": "https://laravel.com/docs/13.x/controllers#single-action-controllers" },
439
+ { "name": "Single Action Controllers", "description": "One route per controller class, __invoke(), focused responsibility", "docs": "https://laravel.com/docs/13.x/controllers#single-action-controllers" },
440
+ { "name": "Domain-Driven Design (DDD)", "description": "Bounded contexts, aggregates, value objects, ubiquitous language, domain events", "docs": "https://martinfowler.com/bliki/DomainDrivenDesign.html" },
441
+ { "name": "CQRS", "description": "Separate read/write models, dedicated query and command handlers", "docs": "https://martinfowler.com/bliki/CQRS.html" },
442
+ { "name": "Event Sourcing", "description": "Persist state as immutable event stream, rebuild state by replay, full audit trail", "docs": "https://martinfowler.com/eaaDev/EventSourcing.html" },
443
+ { "name": "CQRS + Event Sourcing", "description": "Combined pattern — commands produce events, projections build read models", "docs": "https://www.eventstore.com/cqrs-pattern" },
444
+ { "name": "Clean Architecture", "description": "Concentric layers, dependency rule inward, use cases, entities, interface adapters", "docs": "https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html" },
445
+ { "name": "Clean Code Principles", "description": "Meaningful names, small functions, no side effects, single level of abstraction", "docs": "https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29" },
446
+ { "name": "Hexagonal / Ports & Adapters", "description": "Core domain isolation, ports define contracts, adapters plug in infrastructure", "docs": "https://alistair.cockburn.us/hexagonal-architecture/" },
447
+ { "name": "Vertical Slice Architecture", "description": "Organise by feature not layer, each slice owns its full stack", "docs": "https://www.jimmybogard.com/vertical-slice-architecture/" },
448
+ { "name": "Repository Pattern", "description": "Abstract data access behind interfaces, swap implementations", "docs": "https://martinfowler.com/eaaCatalog/repository.html" },
449
+ { "name": "Service Layer", "description": "Business logic in dedicated service classes, thin controllers", "docs": "https://martinfowler.com/eaaCatalog/serviceLayer.html" },
450
+ { "name": "Strategy Pattern", "description": "Interchangeable algorithms, runtime selection via interface", "docs": null },
451
+ { "name": "Observer / Event-Driven", "description": "Publish/subscribe, decoupled event handlers, Laravel events/listeners", "docs": null },
452
+ { "name": "Decorator Pattern", "description": "Wrap behaviour around existing objects, middleware chains", "docs": null },
453
+ { "name": "Factory Pattern", "description": "Object creation abstraction, complex instantiation", "docs": null },
454
+ { "name": "Builder Pattern", "description": "Step-by-step object construction, fluent interfaces", "docs": null },
455
+ { "name": "Pipeline / Chain of Responsibility", "description": "Sequential processing stages, middleware, Laravel Pipeline class", "docs": null },
456
+ { "name": "Saga Pattern", "description": "Distributed transactions, compensating actions, long-running processes", "docs": "https://microservices.io/patterns/data/saga.html" },
457
+ { "name": "Circuit Breaker", "description": "Fault tolerance, graceful degradation, retry limits", "docs": "https://martinfowler.com/bliki/CircuitBreaker.html" },
458
+ { "name": "MVC", "description": "Model-View-Controller, separation of concerns", "docs": null },
459
+ { "name": "ADR (Action-Domain-Responder)", "description": "Web-specific MVC refinement — action receives, domain processes, responder renders", "docs": "https://pmjones.io/adr/" },
460
+ { "name": "Modular Monolith", "description": "Monolith with strict module boundaries, prepare for future extraction", "docs": null },
461
+ { "name": "Microservices", "description": "Independent deployable services, API boundaries, eventual consistency", "docs": "https://microservices.io/patterns/index.html" },
462
+ { "name": "Strangler Fig", "description": "Incremental migration, wrap legacy system, replace piece by piece", "docs": "https://martinfowler.com/bliki/StranglerFigApplication.html" }
463
+ ]
464
+ },
465
+ "coding_standards": {
466
+ "label": "Coding Standards & Style",
467
+ "question": "Which coding standards and style guides?",
468
+ "allowMultiple": true,
469
+ "options": [
470
+ { "name": "PSR-12", "description": "PHP extended coding style guide", "docs": "https://www.php-fig.org/psr/psr-12/" },
471
+ { "name": "PSR-4", "description": "PHP autoloading standard, namespace-to-directory mapping", "docs": "https://www.php-fig.org/psr/psr-4/" },
472
+ { "name": "Laravel Pint (Laravel Style)", "description": "Laravel's opinionated PHP code style", "docs": "https://laravel.com/docs/pint" },
473
+ { "name": "Airbnb JavaScript Style Guide", "description": "Comprehensive JS/React conventions", "docs": "https://github.com/airbnb/javascript" },
474
+ { "name": "StandardJS", "description": "Zero-config JavaScript style, no semicolons", "docs": "https://standardjs.com/" },
475
+ { "name": "Google TypeScript Style Guide", "description": "Google's TS conventions, gts tooling", "docs": "https://google.github.io/styleguide/tsguide.html" },
476
+ { "name": "PEP 8", "description": "Python style guide, indentation, naming, imports", "docs": "https://peps.python.org/pep-0008/" },
477
+ { "name": "Black (Python)", "description": "Uncompromising Python formatter, zero config", "docs": "https://black.readthedocs.io/" },
478
+ { "name": "Ruff (Python)", "description": "Fast linter + formatter, replaces flake8/isort/black", "docs": "https://docs.astral.sh/ruff/" },
479
+ { "name": "ESLint Flat Config", "description": "Modern ESLint config, composable rules", "docs": "https://eslint.org/docs/latest/use/configure/configuration-files" },
480
+ { "name": "Prettier", "description": "Opinionated code formatter, multi-language", "docs": "https://prettier.io/docs/en/" },
481
+ { "name": "Biome", "description": "Fast formatter + linter, Prettier/ESLint replacement", "docs": "https://biomejs.dev/guides/getting-started/" },
482
+ { "name": "Go fmt / gofumpt", "description": "Go standard formatting, stricter variant", "docs": "https://pkg.go.dev/cmd/gofmt" },
483
+ { "name": "Rustfmt + Clippy", "description": "Rust formatter and lint tool", "docs": "https://doc.rust-lang.org/clippy/" },
484
+ { "name": "EditorConfig", "description": "Cross-editor settings, indent style/size, charset", "docs": "https://editorconfig.org/" },
485
+ { "name": "Conventional Commits", "description": "Structured commit messages, changelog automation", "docs": "https://www.conventionalcommits.org/" },
486
+ { "name": "Semantic Versioning", "description": "Major.minor.patch version numbering", "docs": "https://semver.org/" }
487
+ ]
488
+ },
489
+ "engineering_principles": {
490
+ "label": "Engineering Principles",
491
+ "question": "Which engineering principles guide this project?",
492
+ "allowMultiple": true,
493
+ "options": [
494
+ { "name": "SOLID", "description": "Single responsibility, open/closed, Liskov, interface segregation, dependency inversion", "docs": null },
495
+ { "name": "DRY", "description": "Don't Repeat Yourself — single source of truth for knowledge", "docs": null },
496
+ { "name": "KISS", "description": "Keep It Simple — simplest solution that works", "docs": null },
497
+ { "name": "YAGNI", "description": "You Aren't Gonna Need It — don't build for hypothetical futures", "docs": null },
498
+ { "name": "Composition over Inheritance", "description": "Favour object composition, traits, mixins over class hierarchies", "docs": null },
499
+ { "name": "Fail Fast", "description": "Detect and surface errors immediately, don't mask failures", "docs": null },
500
+ { "name": "Convention over Configuration", "description": "Sensible defaults, reduce boilerplate, Rails/Laravel philosophy", "docs": null },
501
+ { "name": "Defensive Programming", "description": "Validate inputs, handle edge cases, assert invariants", "docs": null },
502
+ { "name": "Immutability by Default", "description": "Prefer immutable data, explicit mutation points", "docs": null },
503
+ { "name": "Trunk-Based Development", "description": "Short-lived branches, frequent integration, feature flags", "docs": "https://trunkbaseddevelopment.com/" },
504
+ { "name": "GitFlow", "description": "Feature/release/hotfix branches, structured workflow", "docs": "https://nvie.com/posts/a-successful-git-branching-model/" },
505
+ { "name": "Test-Driven Development", "description": "Write tests first, red-green-refactor cycle", "docs": null },
506
+ { "name": "Behaviour-Driven Development", "description": "Specs in natural language, Given/When/Then", "docs": "https://cucumber.io/docs/bdd/" },
507
+ { "name": "Continuous Integration", "description": "Automated build/test on every push, fast feedback", "docs": null },
508
+ { "name": "Continuous Deployment", "description": "Automated production releases, feature flags for safety", "docs": null },
509
+ { "name": "Infrastructure as Code", "description": "Declarative infra, version-controlled, reproducible", "docs": null },
510
+ { "name": "Twelve-Factor App", "description": "Config in env, stateless processes, disposability, logs as streams", "docs": "https://12factor.net/" },
511
+ { "name": "Zero Trust", "description": "Never trust, always verify, least privilege, micro-segmentation", "docs": null },
512
+ { "name": "Shift Left Security", "description": "Security in dev, not just ops — SAST, DAST, dependency scanning early", "docs": null },
513
+ { "name": "Observability-First", "description": "Structured logging, distributed tracing, metrics from day one", "docs": null }
514
+ ]
515
+ },
516
+ "observability": {
517
+ "label": "Observability & Monitoring",
518
+ "question": "Which observability tools and services?",
519
+ "allowMultiple": true,
520
+ "appliesWhen": "project needs monitoring, logging, tracing, or error tracking",
521
+ "options": [
522
+ { "name": "OpenTelemetry", "description": "Vendor-neutral standard for metrics, traces, logs, profiles — 79% adoption", "docs": "https://opentelemetry.io/docs/" },
523
+ { "name": "Sentry", "description": "Error tracking, performance monitoring, distributed tracing, session replay", "docs": "https://docs.sentry.io/" },
524
+ { "name": "Axiom", "description": "Machine data platform, OTel metrics at petabyte scale, AI observability SDK", "docs": "https://axiom.co/docs" },
525
+ { "name": "Grafana + Loki + Tempo", "description": "Open-source dashboards, log aggregation, distributed tracing", "docs": "https://grafana.com/docs/" },
526
+ { "name": "Datadog", "description": "Full-stack observability, APM, logs, infrastructure, RUM", "docs": "https://docs.datadoghq.com/" },
527
+ { "name": "New Relic", "description": "Full-stack APM, logs, infrastructure, browser monitoring", "docs": "https://docs.newrelic.com/" },
528
+ { "name": "Baselime (Cloudflare)", "description": "Serverless observability, acquired by Cloudflare, free, OTel-native", "docs": "https://baselime.io/docs/" },
529
+ { "name": "Highlight.io", "description": "Full-stack monitoring, frontend + backend pairing, session replay", "docs": "https://www.highlight.io/docs" },
530
+ { "name": "Laravel Telescope", "description": "Laravel debug assistant, request/query/job/event inspection", "docs": "https://laravel.com/docs/telescope" },
531
+ { "name": "Laravel Pulse", "description": "Laravel real-time application performance monitoring dashboard", "docs": "https://laravel.com/docs/pulse" },
532
+ { "name": "None", "description": "No observability tooling", "docs": null }
533
+ ]
534
+ },
535
+ "cli_php": {
536
+ "label": "PHP / Laravel CLI Tools",
537
+ "question": "Which PHP CLI tools?",
538
+ "allowMultiple": true,
539
+ "appliesWhen": "language is PHP or backend is Laravel",
540
+ "options": [
541
+ { "name": "Artisan", "description": "Laravel CLI — migrations, generators, tinker, queue, schedule", "docs": "https://laravel.com/docs/artisan" },
542
+ { "name": "Composer", "description": "Dependency management, autoloading, scripts", "docs": "https://getcomposer.org/doc/" },
543
+ { "name": "Laravel Installer", "description": "Create new Laravel projects via CLI", "docs": "https://laravel.com/docs/installation#creating-a-laravel-project" },
544
+ { "name": "Pest", "description": "Testing CLI, parallel, coverage, type coverage", "docs": "https://pestphp.com/docs" },
545
+ { "name": "PHPUnit", "description": "Test runner, assertions, data providers", "docs": "https://docs.phpunit.de/" },
546
+ { "name": "Laravel Pint", "description": "Code style fixer, PHP-CS-Fixer wrapper", "docs": "https://laravel.com/docs/pint" },
547
+ { "name": "PHPStan / Larastan", "description": "Static analysis, type checking, level 0-9", "docs": "https://phpstan.org/user-guide/getting-started" },
548
+ { "name": "Laravel Sail", "description": "Docker dev environment CLI for Laravel", "docs": "https://laravel.com/docs/sail" },
549
+ { "name": "PHP CS Fixer", "description": "Code style fixer, PSR-12, custom rules", "docs": "https://cs.symfony.com/" },
550
+ { "name": "Rector", "description": "Automated PHP refactoring, upgrades, code quality", "docs": "https://getrector.com/documentation" },
551
+ { "name": "Laravel Herd", "description": "Native macOS/Windows PHP dev environment, zero config", "docs": "https://herd.laravel.com/docs" }
552
+ ]
553
+ },
554
+ "cli_node": {
555
+ "label": "Node.js / JavaScript CLI Tools",
556
+ "question": "Which Node.js CLI tools?",
557
+ "allowMultiple": true,
558
+ "appliesWhen": "language is TypeScript or JavaScript",
559
+ "options": [
560
+ { "name": "npx", "description": "Execute npm packages without installing", "docs": "https://docs.npmjs.com/cli/commands/npx" },
561
+ { "name": "tsx", "description": "Run TypeScript directly, fast, esbuild-based", "docs": "https://tsx.is/" },
562
+ { "name": "tsc", "description": "TypeScript compiler, type checking, declaration emit", "docs": "https://www.typescriptlang.org/docs/handbook/compiler-options.html" },
563
+ { "name": "eslint", "description": "Linter CLI, fix, cache, flat config", "docs": "https://eslint.org/docs/latest/use/command-line-interface" },
564
+ { "name": "prettier", "description": "Code formatter CLI, check, write", "docs": "https://prettier.io/docs/en/cli" },
565
+ { "name": "biome", "description": "Fast linter + formatter, check, format, lint", "docs": "https://biomejs.dev/reference/cli/" },
566
+ { "name": "vite", "description": "Dev server, build, preview, HMR", "docs": "https://vite.dev/guide/cli" },
567
+ { "name": "next", "description": "Next.js CLI — dev, build, start, lint", "docs": "https://nextjs.org/docs/app/api-reference/cli/next" },
568
+ { "name": "create-next-app", "description": "Scaffold new Next.js projects", "docs": "https://nextjs.org/docs/app/api-reference/cli/create-next-app" },
569
+ { "name": "wrangler", "description": "Cloudflare Workers CLI, dev, deploy, D1, R2", "docs": "https://developers.cloudflare.com/workers/wrangler/" },
570
+ { "name": "vercel", "description": "Vercel CLI — deploy, env, dev, link", "docs": "https://vercel.com/docs/cli" },
571
+ { "name": "prisma", "description": "Schema push, migrate, generate, studio, seed", "docs": "https://www.prisma.io/docs/orm/reference/prisma-cli-reference" },
572
+ { "name": "drizzle-kit", "description": "Schema push, generate migrations, studio", "docs": "https://orm.drizzle.team/docs/kit-overview" },
573
+ { "name": "playwright", "description": "Test runner, codegen, trace viewer, show-report", "docs": "https://playwright.dev/docs/test-cli" },
574
+ { "name": "changeset", "description": "Version management, changelogs, monorepo publishing", "docs": "https://github.com/changesets/changesets/blob/main/docs/command-line-options.md" }
575
+ ]
576
+ },
577
+ "cli_python": {
578
+ "label": "Python CLI Tools",
579
+ "question": "Which Python CLI tools?",
580
+ "allowMultiple": true,
581
+ "appliesWhen": "language is Python",
582
+ "options": [
583
+ { "name": "uv", "description": "Fast package manager, venv, pip replacement, Rust-based", "docs": "https://docs.astral.sh/uv/reference/cli/" },
584
+ { "name": "ruff", "description": "Fast linter + formatter, replaces flake8/isort/black", "docs": "https://docs.astral.sh/ruff/configuration/" },
585
+ { "name": "mypy", "description": "Static type checker for Python", "docs": "https://mypy.readthedocs.io/en/stable/command_line.html" },
586
+ { "name": "pyright", "description": "Fast type checker, VS Code integration, Microsoft", "docs": "https://microsoft.github.io/pyright/" },
587
+ { "name": "pytest", "description": "Test runner, fixtures, plugins, coverage", "docs": "https://docs.pytest.org/en/stable/reference/reference.html" },
588
+ { "name": "alembic", "description": "Database migrations for SQLAlchemy", "docs": "https://alembic.sqlalchemy.org/en/latest/tutorial.html" },
589
+ { "name": "django-admin / manage.py", "description": "Django management commands, migrations, shell", "docs": "https://docs.djangoproject.com/en/stable/ref/django-admin/" },
590
+ { "name": "uvicorn", "description": "ASGI server, FastAPI/Starlette, hot reload", "docs": "https://www.uvicorn.org/" },
591
+ { "name": "poetry", "description": "Dependency management, lock files, publishing", "docs": "https://python-poetry.org/docs/cli/" },
592
+ { "name": "pre-commit", "description": "Git hook framework, multi-language, auto-fix", "docs": "https://pre-commit.com/" }
593
+ ]
594
+ },
595
+ "cli_go": {
596
+ "label": "Go CLI Tools",
597
+ "question": "Which Go CLI tools?",
598
+ "allowMultiple": true,
599
+ "appliesWhen": "language is Go",
600
+ "options": [
601
+ { "name": "go build / run / test", "description": "Go toolchain — compile, execute, test", "docs": "https://pkg.go.dev/cmd/go" },
602
+ { "name": "go mod", "description": "Module management, tidy, vendor, graph", "docs": "https://go.dev/ref/mod" },
603
+ { "name": "golangci-lint", "description": "Meta-linter, 100+ linters, fast, configurable", "docs": "https://golangci-lint.run/" },
604
+ { "name": "gofumpt", "description": "Stricter gofmt, opinionated formatting", "docs": "https://github.com/mvdan/gofumpt" },
605
+ { "name": "air", "description": "Live reload for Go apps, file watching", "docs": "https://github.com/air-verse/air" },
606
+ { "name": "migrate", "description": "Database migrations CLI, multi-driver", "docs": "https://github.com/golang-migrate/migrate" },
607
+ { "name": "wire", "description": "Compile-time dependency injection, code generation", "docs": "https://github.com/google/wire" },
608
+ { "name": "goreleaser", "description": "Release automation, cross-compile, changelogs", "docs": "https://goreleaser.com/intro/" }
609
+ ]
610
+ },
611
+ "cli_rust": {
612
+ "label": "Rust CLI Tools",
613
+ "question": "Which Rust CLI tools?",
614
+ "allowMultiple": true,
615
+ "appliesWhen": "language is Rust",
616
+ "options": [
617
+ { "name": "cargo", "description": "Build, test, run, publish, dependency management", "docs": "https://doc.rust-lang.org/cargo/" },
618
+ { "name": "rustfmt", "description": "Code formatter, configurable style", "docs": "https://github.com/rust-lang/rustfmt" },
619
+ { "name": "clippy", "description": "Linter, 700+ lints, idiomatic Rust", "docs": "https://doc.rust-lang.org/clippy/" },
620
+ { "name": "cargo-watch", "description": "File watcher, auto-rebuild on changes", "docs": "https://github.com/watchexec/cargo-watch" },
621
+ { "name": "cargo-nextest", "description": "Fast test runner, parallel execution, retries", "docs": "https://nexte.st/" },
622
+ { "name": "cargo-deny", "description": "License checking, advisory audit, dependency bans", "docs": "https://embarkstudios.github.io/cargo-deny/" },
623
+ { "name": "miri", "description": "Undefined behaviour detector, memory safety checker", "docs": "https://github.com/rust-lang/miri" }
624
+ ]
625
+ },
626
+ "cli_ruby": {
627
+ "label": "Ruby / Rails CLI Tools",
628
+ "question": "Which Ruby CLI tools?",
629
+ "allowMultiple": true,
630
+ "appliesWhen": "language is Ruby or backend is Rails",
631
+ "options": [
632
+ { "name": "rails", "description": "Rails CLI — generate, migrate, console, server, routes", "docs": "https://guides.rubyonrails.org/command_line.html" },
633
+ { "name": "bundle", "description": "Bundler — dependency management, Gemfile, lock", "docs": "https://bundler.io/docs.html" },
634
+ { "name": "rubocop", "description": "Linter + formatter, auto-correct, configurable cops", "docs": "https://docs.rubocop.org/rubocop/usage/basic_usage.html" },
635
+ { "name": "rspec", "description": "BDD test runner, matchers, mocks, shared examples", "docs": "https://rspec.info/documentation/" },
636
+ { "name": "rake", "description": "Task runner, database tasks, custom tasks", "docs": "https://ruby.github.io/rake/" },
637
+ { "name": "solargraph", "description": "Ruby language server, intellisense, documentation", "docs": "https://solargraph.org/guides" },
638
+ { "name": "kamal", "description": "Deploy web apps anywhere via Docker, zero-downtime", "docs": "https://kamal-deploy.org/docs/installation" }
639
+ ]
640
+ },
641
+ "cli_infra": {
642
+ "label": "Infrastructure & DevOps CLI Tools",
643
+ "question": "Which infrastructure CLI tools?",
644
+ "allowMultiple": true,
645
+ "appliesWhen": "project has infrastructure or deployment needs",
646
+ "options": [
647
+ { "name": "docker / docker compose", "description": "Container build, run, compose up/down", "docs": "https://docs.docker.com/reference/cli/docker/" },
648
+ { "name": "terraform", "description": "Infrastructure as Code, plan, apply, state", "docs": "https://developer.hashicorp.com/terraform/cli" },
649
+ { "name": "pulumi", "description": "IaC in real programming languages, preview, up", "docs": "https://www.pulumi.com/docs/cli/" },
650
+ { "name": "kubectl", "description": "Kubernetes CLI, deploy, scale, logs, exec", "docs": "https://kubernetes.io/docs/reference/kubectl/" },
651
+ { "name": "helm", "description": "Kubernetes package manager, charts, releases", "docs": "https://helm.sh/docs/" },
652
+ { "name": "aws cli", "description": "AWS services CLI, s3, ec2, lambda, iam", "docs": "https://docs.aws.amazon.com/cli/" },
653
+ { "name": "gcloud", "description": "Google Cloud CLI, compute, run, sql, iam", "docs": "https://cloud.google.com/sdk/gcloud" },
654
+ { "name": "az", "description": "Azure CLI, webapp, aks, sql, storage", "docs": "https://learn.microsoft.com/en-us/cli/azure/" },
655
+ { "name": "gh", "description": "GitHub CLI — PRs, issues, actions, repos, gists", "docs": "https://cli.github.com/manual/" },
656
+ { "name": "flyctl", "description": "Fly.io CLI — deploy, scale, secrets, logs", "docs": "https://fly.io/docs/flyctl/" },
657
+ { "name": "railway", "description": "Railway CLI — deploy, logs, env, services", "docs": "https://docs.railway.com/reference/cli-api" },
658
+ { "name": "ngrok", "description": "Tunnel local services to public URLs, inspect traffic", "docs": "https://ngrok.com/docs/agent/cli/" },
659
+ { "name": "act", "description": "Run GitHub Actions locally, test workflows", "docs": "https://nektosact.com/" }
660
+ ]
661
+ }
662
+ }
663
+ }