@itz4blitz/agentful 0.1.11 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,130 +49,22 @@ When there's no code to analyze, use declarative approach:
49
49
  - "React frontend with Express backend..."
50
50
 
51
51
  3. **Ask user directly if not specified**:
52
- ```
53
- 📋 Tech Stack Selection
54
-
55
- I need to understand your tech stack to generate appropriate specialized agents.
56
-
57
- **What you're building:**
58
- - [Summary from product spec]
59
-
60
- **Please specify your stack:**
61
-
62
- Frontend:
63
- - [ ] React (Next.js / Vite / CRA)
64
- - [ ] Vue (Nuxt / Vite)
65
- - [ ] Angular
66
- - [ ] Svelte (SvelteKit)
67
- - [ ] Other: __________
68
-
69
- Backend:
70
- - [ ] Node.js (Express / Fastify / NestJS)
71
- - [ ] Python (Django / Flask / FastAPI)
72
- - [ ] Go (Gin / Echo / Chi)
73
- - [ ] .NET (ASP.NET Core)
74
- - [ ] Java (Spring Boot)
75
- - [ ] Ruby (Rails / Sinatra)
76
- - [ ] Other: __________
77
-
78
- Database:
79
- - [ ] PostgreSQL
80
- - [ ] MySQL
81
- - [ ] MongoDB
82
- - [ ] SQLite
83
- - [ ] Other: __________
84
-
85
- Additional tools:
86
- - ORM: __________
87
- - Testing: __________
88
- - Styling: __________
89
- ```
52
+ Prompt with checklist: Frontend (React/Next.js, Vue, Angular, etc.), Backend (Node.js, Python, Go, .NET, Java, etc.), Database (PostgreSQL, MySQL, MongoDB, etc.), plus ORM, Testing, Styling preferences.
90
53
 
91
54
  4. **Generate agents from declared stack**:
55
+ Use **framework best practices** since no code exists yet:
56
+ - Next.js → App Router, Server Components, Route Handlers
57
+ - Django → Class-based views, ORM, Django REST Framework
58
+ - Express → Middleware, async/await patterns
59
+ - Spring Boot → Annotations, DI, JPA
92
60
 
93
- Based on user's declared stack, create specialized agents using **best practices and common patterns** for that technology.
94
-
95
- **Key difference from existing projects:**
96
- - EXISTING: Sample real code → extract actual patterns
97
- - NEW: Use framework best practices → will be refined later
98
-
99
- **Agent Generation Guidelines:**
100
-
101
- a. **Use official framework patterns**:
102
- - Next.js → App Router, Server Components, Route Handlers
103
- - Django → Class-based views, ORM, Django REST Framework
104
- - Express → Middleware, async/await, error handling
105
- - Spring Boot → Annotations, Dependency Injection, JPA
106
-
107
- b. **Include canonical examples** (not placeholder code):
108
- ```markdown
109
- ## Example from Next.js documentation
110
-
111
- ```typescript
112
- // app/api/users/route.ts
113
- import { NextResponse } from 'next/server';
114
-
115
- export async function GET() {
116
- const users = await db.user.findMany();
117
- return NextResponse.json(users);
118
- }
119
- ```
120
-
121
- Use this pattern when creating API routes.
122
- ```
123
-
124
- c. **Reference official documentation**:
125
- - "See: https://nextjs.org/docs/app/building-your-application/routing/route-handlers"
126
- - "Pattern based on Django documentation best practices"
127
-
128
- d. **Mark as template-based**:
129
- ```markdown
130
- ---
131
- name: nextjs-specialist
132
- description: Handles Next.js implementation using best practices (will be updated with project patterns)
133
- template: true
134
- confidence: 0.4
135
- ---
136
-
137
- # Next.js Specialist (Template)
138
-
139
- ⚠️ **This agent was generated from framework best practices.**
140
- It will be updated with YOUR project's specific patterns after the first feature is implemented.
141
-
142
- ## Best Practice Patterns
143
-
144
- Based on Next.js 14 documentation and common conventions:
145
- ...
146
- ```
61
+ **Mark agents as template-based** with `template: true` and `confidence: 0.4`. Include canonical examples from official docs, not placeholders. Common combinations: Next.js+Prisma, Django+PostgreSQL, Express+MongoDB, Spring+MySQL.
147
62
 
148
- e. **Common stack combinations**:
149
-
150
- **Next.js + Prisma:**
151
- - `nextjs-specialist.md` - App Router, Server Components, API routes
152
- - `prisma-specialist.md` - Schema design, migrations, queries
153
-
154
- **Django + PostgreSQL:**
155
- - `django-specialist.md` - Views, models, URL routing
156
- - `postgres-specialist.md` - Schema design, indexing, queries
157
-
158
- **Express + MongoDB:**
159
- - `express-specialist.md` - Routes, middleware, async patterns
160
- - `mongodb-specialist.md` - Collections, queries, aggregations
161
-
162
- **Spring Boot + MySQL:**
163
- - `spring-specialist.md` - Controllers, services, repositories
164
- - `jpa-specialist.md` - Entities, relationships, JPQL
165
-
166
- f. **Always generate these core agents** (framework-agnostic):
167
- - Use existing `backend.md` and `frontend.md` as fallbacks
168
- - Don't duplicate - only create specialized agents when needed
169
-
170
- 5. **Mark for re-analysis**:
171
- Set flag in architecture.json:
63
+ 5. **Mark for re-analysis** in architecture.json:
172
64
  ```json
173
65
  {
174
66
  "project_type": "new",
175
- "declared_stack": { /* user's choices */ },
67
+ "declared_stack": { /* user choices */ },
176
68
  "needs_reanalysis_after_first_code": true,
177
69
  "confidence": 0.4
178
70
  }
@@ -217,293 +109,9 @@ When there's no code to analyze, use declarative approach:
217
109
 
218
110
  For each MAJOR technology/pattern found, create an agent that matches THIS project's conventions.
219
111
 
220
- **Examples across different stacks:**
221
-
222
- #### Python/Django Project
223
- ```markdown
224
- ---
225
- name: django-specialist
226
- description: Handles Django-specific implementation following THIS PROJECT'S conventions
227
- model: sonnet
228
- tools: Read, Write, Edit, Glob, Grep, Bash
229
- ---
230
-
231
- # Django Specialist
232
-
233
- ## Project-Specific Patterns
234
-
235
- From analyzing this project:
236
-
237
- **File Structure:**
238
- ```
239
- myapp/
240
- ├── models/ # Models in models.py
241
- ├── views/ # Views organized by feature
242
- ├── serializers/ # DRF serializers
243
- └── urls/ # URL configuration
244
- ```
245
-
246
- **View Pattern:**
247
- - Use class-based views (not function views)
248
- - Always use QuerySet.filter() not raw SQL
249
- - Decorate with @login_required for protected views
250
-
251
- **Model Pattern:**
252
- - Use Django ORM, not raw queries
253
- - All models inherit from models.Model
254
- - Use __str__ method for display
255
-
256
- ## Real Examples from This Project
257
-
258
- ```python
259
- # Actual pattern found in src/users/views.py
260
- class UserDetailView(LoginRequiredMixin, DetailView):
261
- model = User
262
- template_name = 'users/detail.html'
263
- context_object_name = 'user'
264
- slug_field = 'username'
265
- slug_url_kwarg = 'username'
266
-
267
- def get_queryset(self):
268
- return User.objects.filter(
269
- is_active=True,
270
- profile__is_private=False
271
- ).select_related('profile')
272
-
273
- def get_context_data(self, **kwargs):
274
- context = super().get_context_data(**kwargs)
275
- context['posts'] = self.object.posts.filter(
276
- published=True
277
- ).prefetch_related('tags')[:10]
278
- return context
279
- ```
280
-
281
- ```python
282
- # Actual pattern found in src/users/models.py
283
- class User(models.Model):
284
- email = models.EmailField(unique=True)
285
- username = models.CharField(max_length=30, unique=True)
286
- created_at = models.DateTimeField(auto_now_add=True)
287
-
288
- class Meta:
289
- indexes = [
290
- models.Index(fields=['email']),
291
- models.Index(fields=['username']),
292
- ]
293
-
294
- def __str__(self):
295
- return self.username
296
- ```
297
- ```
298
-
299
- #### C#/.NET Project
300
- ```markdown
301
- ---
302
- name: dotnet-specialist
303
- description: Handles .NET/C# implementation following THIS PROJECT'S conventions
304
- model: sonnet
305
- tools: Read, Write, Edit, Glob, Grep, Bash
306
- ---
307
-
308
- # .NET Specialist
309
-
310
- ## Project-Specific Patterns
311
-
312
- From analyzing this project:
313
-
314
- **Architecture:**
315
- - Controllers in Controllers/ folder
316
- - Services in Services/ folder
317
- - Repositories in Data/Repositories
318
- - ViewModels for DTOs
319
-
320
- **Patterns:**
321
- - Async/Await for all I/O
322
- - Dependency injection via constructor
323
- - LINQ for queries, not raw SQL
324
-
325
- ## Real Examples from This Project
326
-
327
- ```csharp
328
- // Actual pattern found in Controllers/UsersController.cs
329
- [ApiController]
330
- [Route("api/[controller]")]
331
- public class UsersController : ControllerBase
332
- {
333
- private readonly IUserService _userService;
334
- private readonly ILogger<UsersController> _logger;
335
-
336
- public UsersController(IUserService userService, ILogger<UsersController> logger)
337
- {
338
- _userService = userService;
339
- _logger = logger;
340
- }
341
-
342
- [HttpGet("{id}")]
343
- [ProducesResponseType(typeof(UserViewModel), StatusCodes.Status200OK)]
344
- [ProducesResponseType(StatusCodes.Status404NotFound)]
345
- public async Task<ActionResult<UserViewModel>> GetUser(Guid id)
346
- {
347
- try
348
- {
349
- var user = await _userService.GetUserByIdAsync(id);
350
- if (user == null)
351
- {
352
- return NotFound();
353
- }
354
- return Ok(user);
355
- }
356
- catch (Exception ex)
357
- {
358
- _logger.LogError(ex, "Error getting user {UserId}", id);
359
- return StatusCode(500, new { error = "Internal server error" });
360
- }
361
- }
362
- }
363
- ```
364
-
365
- ```csharp
366
- // Actual pattern found in Data/Repositories/UserRepository.cs
367
- public class UserRepository : IUserRepository
368
- {
369
- private readonly AppDbContext _context;
112
+ **Example Agent (TypeScript/Next.js):**
370
113
 
371
- public UserRepository(AppDbContext context)
372
- {
373
- _context = context;
374
- }
375
-
376
- public async Task<User?> GetByIdAsync(Guid id, CancellationToken ct = default)
377
- {
378
- return await _context.Users
379
- .AsNoTracking()
380
- .Include(u => u.Profile)
381
- .FirstOrDefaultAsync(u => u.Id == id, ct);
382
- }
383
-
384
- public async Task<IEnumerable<User>> GetActiveUsersAsync(CancellationToken ct = default)
385
- {
386
- return await _context.Users
387
- .AsNoTracking()
388
- .Where(u => u.IsActive && u.EmailConfirmed)
389
- .OrderBy(u => u.CreatedAt)
390
- .ToListAsync(ct);
391
- }
392
- }
393
- ```
394
- ```
395
-
396
- #### Go Project
397
- ```markdown
398
- ---
399
- name: go-specialist
400
- description: Handles Go implementation following THIS PROJECT'S conventions
401
- model: sonnet
402
- tools: Read, Write, Edit, Glob, Grep, Bash
403
- ---
404
-
405
- # Go Specialist
406
-
407
- ## Project-Specific Patterns
408
-
409
- From analyzing this project:
410
-
411
- **Project Structure:**
412
- ```
413
- cmd/
414
- ├── api/ # Main application
415
- ├── worker/ # Background jobs
416
- internal/
417
- ├── handlers/ # HTTP handlers
418
- ├── models/ # Data structures
419
- ├── services/ # Business logic
420
- pkg/ # Public packages
421
- ```
422
-
423
- **Patterns:**
424
- - Use context.Context for all operations
425
- - Error handling: always return errors, never panic
426
- - Use interfaces for dependency injection
427
- - Named returns for clarity
428
-
429
- ## Real Examples from This Project
430
-
431
- ```go
432
- // Actual pattern found in internal/handlers/user.go
433
- package handlers
434
-
435
- import (
436
- "context"
437
- "net/http"
438
- "github.com/gin-gonic/gin"
439
- )
440
-
441
- type UserHandler struct {
442
- userService UserService
443
- logger *zap.Logger
444
- }
445
-
446
- func NewUserHandler(us UserService, l *zap.Logger) *UserHandler {
447
- return &UserHandler{
448
- userService: us,
449
- logger: l,
450
- }
451
- }
452
-
453
- func (h *UserHandler) GetUser(c *gin.Context) {
454
- ctx := c.Request.Context()
455
- id := c.Param("id")
456
-
457
- user, err := h.userService.GetUserByID(ctx, id)
458
- if err != nil {
459
- if errors.Is(err, ErrUserNotFound) {
460
- c.JSON(http.StatusNotFound, gin.H{"error": "user not found"})
461
- return
462
- }
463
- h.logger.Error("failed to get user", zap.Error(err))
464
- c.JSON(http.StatusInternalServerError, gin.H{"error": "internal error"})
465
- return
466
- }
467
-
468
- c.JSON(http.StatusOK, user)
469
- }
470
- ```
471
-
472
- ```go
473
- // Actual pattern found in internal/services/user.go
474
- type UserService struct {
475
- repo UserRepository
476
- cache CacheService
477
- logger *zap.Logger
478
- }
479
-
480
- func (s *UserService) GetUserByID(ctx context.Context, id string) (*User, error) {
481
- // Try cache first
482
- if user, err := s.cache.Get(ctx, "user:"+id); err == nil {
483
- return user, nil
484
- }
485
-
486
- // Fall back to database
487
- user, err := s.repo.FindByID(ctx, id)
488
- if err != nil {
489
- if errors.Is(err, sql.ErrNoRows) {
490
- return nil, ErrUserNotFound
491
- }
492
- return nil, fmt.Errorf("failed to find user: %w", err)
493
- }
494
-
495
- // Populate cache
496
- if err := s.cache.Set(ctx, "user:"+id, user, 5*time.Minute); err != nil {
497
- s.logger.Warn("failed to cache user", zap.Error(err))
498
- }
499
-
500
- return user, nil
501
- }
502
- ```
503
- ```
504
-
505
- #### Node.js/Express Project
506
- Create `.claude/agents/auto-generated/express-specialist.md`:
114
+ For other stacks (Python/Django, Go/Gin, C#/.NET, etc.), follow the same pattern but adapt to the framework's conventions. See generated agents in `.claude/agents/auto-generated/` for examples.
507
115
 
508
116
  ```markdown
509
117
  ---
@@ -864,130 +472,25 @@ Task("tailwind-specialist", "Style the form following project conventions")
864
472
 
865
473
  ## Language Detection Guide
866
474
 
867
- Look for these indicators:
868
-
869
- ### Web & Frontend
870
- - **JavaScript/TypeScript**: `package.json`, `.ts`/`.js`/`.tsx`/`.jsx` files, import/export
871
- - **React**: `react`, `react-dom` in dependencies, `.jsx`/`.tsx`, JSX syntax
872
- - **Vue**: `vue`, `@vue/*` in dependencies, `.vue` files
873
- - **Angular**: `@angular/*` in dependencies, `.component.ts`
874
- - **Svelte**: `svelte` in dependencies, `.svelte` files
875
- - **Next.js**: `next` in dependencies, `next.config.js`
876
- - **Nuxt**: `nuxt` in dependencies, `nuxt.config.js`
877
- - **Remix**: `@remix-run/*` in dependencies
878
-
879
- ### Backend & API
880
- - **Python**: `requirements.txt`, `pyproject.toml`, `setup.py`, `.py` files
881
- - **Django**: `django` in dependencies, `settings.py`, `urls.py`, `models.py`
882
- - **Flask**: `flask` in dependencies, `@app.route` decorators
883
- - **FastAPI**: `fastapi` in dependencies, `@app.get`/`@app.post` decorators
884
- - **Tornado**: `tornado` in dependencies
885
- - **Falcon**: `falcon` in dependencies
886
- - **C#/.NET**: `.csproj`, `.vbproj`, `.sln`, `.cs`/`.vb` files, `using` statements
887
- - **ASP.NET Core**: `Microsoft.AspNetCore.*`, `Program.cs` with `WebApplication.CreateBuilder()`
888
- - **Entity Framework**: `Microsoft.EntityFrameworkCore.*`
889
- - **Nancy**: `Nancy` in dependencies
890
- - **Go**: `go.mod`, `go.sum`, `.go` files, `package` declarations, `func main()`
891
- - **Gin**: `gin-gonic/gin` in dependencies, `router := gin.Default()`
892
- - **Echo**: `labstack/echo` in dependencies, `e := echo.New()`
893
- - **Fiber**: `gofiber/fiber` in dependencies
894
- - **net/http**: Standard library only
895
- - **Java**: `pom.xml`, `build.gradle`, `gradle.properties`, `.java` files, `public class`
896
- - **Spring Boot**: `spring-boot-starter-*` in dependencies, `@SpringBootApplication`
897
- - **Micronaut**: `io.micronaut.*` in dependencies
898
- - **Quarkus**: `io.quarkus:*` in dependencies
899
- - **Jakarta EE**: `jakarta.*` imports
900
- - **Vert.x**: `io.vertx:*` in dependencies
901
- - **Ruby**: `Gemfile`, `*.gemspec`, `.rb` files, `require`, `class`
902
- - **Rails**: `rails` in Gemfile, `app/controllers/`, `app/models/`
903
- - **Sinatra**: `sinatra` in Gemfile
904
- - **Grape**: `grape` in Gemfile
905
- - **PHP**: `composer.json`, `.php` files, `use` statements, `namespace`
906
- - **Laravel**: `laravel/framework` in composer.json, `routes/`, `app/Http/Controllers/`
907
- - **Symfony**: `symfony/*` in composer.json
908
- - **Slim**: `slim/slim` in composer.json
909
- - **Node.js**: `package.json`, `.js`/`.ts` files
910
- - **Express**: `express` in dependencies, `app = express()`
911
- - **Koa**: `koa` in dependencies
912
- - **NestJS**: `@nestjs/*` in dependencies, `@Controller()` decorators
913
- - **Hapi**: `@hapi/hapi` in dependencies
914
- - **Fastify**: `fastify` in dependencies
915
-
916
- ### Systems & Compiled Languages
917
- - **Rust**: `Cargo.toml`, `Cargo.lock`, `.rs` files, `fn main()`, `use` statements
918
- - **Actix Web**: `actix-web` in dependencies
919
- - **Rocket**: `rocket` in dependencies, `#[get("/")]`
920
- - **Warp**: `warp` in dependencies
921
- - **C/C++**: `Makefile`, `CMakeLists.txt`, `.c`/`.cpp`/`.h`/`.hpp` files
922
- - **libcurl**: HTTP client
923
- - **libmicrohttpd**: Embedded HTTP server
924
- - **Pistache**: C++ REST framework
925
- - **Elixir/Erlang**: `mix.exs`, `.ex`/`.exs` files
926
- - **Phoenix**: `phoenix` in mix.exs, `lib/*_web/`, `endpoint.ex`
927
- - **Plug**: `plug` in dependencies
928
- - **Sugar**: `sugar` in dependencies
929
- - **Dart/Flutter**: `pubspec.yaml`, `.dart` files
930
- - **Flutter**: `flutter` in dependencies, `lib/main.dart`
931
- - **Angel**: `angel` in dependencies
932
- - **Shelf**: `shelf` in dependencies
933
- - **Scala**: `build.sbt`, `pom.xml`, `.scala` files
934
- - **Play Framework**: `com.typesafe.play` in dependencies
935
- - **http4s**: `org.http4s` in dependencies
936
- - **Akka HTTP**: `com.typesafe.akka` in dependencies
937
- - **Clojure**: `project.clj`, `build.boot`, `deps.edn`, `.clj`/`.cljs` files
938
- - **Ring**: `ring` in dependencies
939
- - **Reitit**: `reitit` in dependencies
940
- - **Pedestal**: `io.pedestal` in dependencies
941
-
942
- ### Mobile & Cross-Platform
943
- - **Swift (iOS)**: `Package.swift`, `.swift` files, `import UIKit`
944
- - **Vapor**: `vapor` in Package.swift
945
- - **Kotlin (Android)**: `build.gradle.kts`, `.kt` files
946
- - **Ktor**: `io.ktor:*` in dependencies
947
- - **Spring Boot**: Also used on Android
948
- - **Flutter (iOS/Android)**: `pubspec.yaml`, `lib/main.dart`
949
- - **React Native**: `package.json`, `react-native` in dependencies
950
- - **Ionic**: `package.json`, `@ionic/*` in dependencies
951
- - **Xamarin**: `.csproj`, `Xamarin.*` in dependencies
952
-
953
- ### Database & Data
954
- - **SQL**: Direct database queries
955
- - **PostgreSQL**: `postgresql`, `pg` in dependencies
956
- - **MySQL**: `mysql`, `mysql2` in dependencies
957
- - **SQLite**: `sqlite3`, `better-sqlite3` in dependencies
958
- - **MSSQL**: `mssql`, `tedious` in dependencies
959
- - **ORM/Query Builders**:
960
- - **Prisma**: `@prisma/client`, `schema.prisma`
961
- - **TypeORM**: `typeorm` in dependencies
962
- - **Sequelize**: `sequelize` in dependencies
963
- - **SQLAlchemy**: `sqlalchemy` in Python requirements
964
- - **Hibernate**: `hibernate-*` in Java dependencies
965
- - **Entity Framework**: `Microsoft.EntityFrameworkCore` in .NET
966
- - **Ecto**: `ecto` in Elixir mix.exs
967
- - **Diesel**: `diesel` in Rust Cargo.toml
968
-
969
- ### Testing & Quality
970
- - **JavaScript/TypeScript**: `jest.config.js`, `vitest.config.js`, `karma.conf.js`, `.spec.ts`
971
- - **Python**: `pytest.ini`, `unittest`, `test_*.py`
972
- - **Java**: JUnit (`@Test`), TestNG, Mockito
973
- - **.NET**: xUnit, NUnit, MSTest
974
- - **Go**: `_test.go` files, `testing` package
975
- - **Ruby**: `spec/`, `test/`, RSpec, Minitest
976
- - **PHP**: PHPUnit, `phpunit.xml`
977
-
978
- ### DevOps & Infrastructure
979
- - **Docker**: `Dockerfile`, `docker-compose.yml`, `.dockerignore`
980
- - **Kubernetes**: `deployment.yaml`, `service.yaml`, `k8s/`
981
- - **Terraform**: `*.tf` files, `main.tf`
982
- - **Ansible**: `playbook.yml`, `ansible.cfg`
983
- - **CI/CD**:
984
- - GitHub Actions: `.github/workflows/*.yml`
985
- - GitLab CI: `.gitlab-ci.yml`
986
- - Travis CI: `.travis.yml`
987
- - CircleCI: `.circleci/config.yml`
988
- - Jenkins: `Jenkinsfile`
989
-
990
- ### And ANY other language or framework - Claude understands them all!
475
+ Detect tech stack by looking for these key indicators:
476
+
477
+ | Language/Stack | Key Files | Framework Indicators |
478
+ |---------------|-----------|---------------------|
479
+ | **TypeScript/JS** | `package.json`, `.ts`/`.tsx`/`.js`/`.jsx` | React (`react`), Next.js (`next`), Vue (`vue`), Angular (`@angular/*`), Express (`express`), NestJS (`@nestjs/*`) |
480
+ | **Python** | `requirements.txt`, `pyproject.toml`, `.py` | Django (`django`, `settings.py`), Flask (`flask`, `@app.route`), FastAPI (`fastapi`) |
481
+ | **Go** | `go.mod`, `go.sum`, `.go` | Gin (`gin-gonic/gin`), Echo (`labstack/echo`), Fiber (`gofiber/fiber`) |
482
+ | **C#/.NET** | `.csproj`, `.sln`, `.cs` | ASP.NET Core (`Microsoft.AspNetCore.*`), Entity Framework (`Microsoft.EntityFrameworkCore.*`) |
483
+ | **Java** | `pom.xml`, `build.gradle`, `.java` | Spring Boot (`spring-boot-starter-*`, `@SpringBootApplication`), Micronaut, Quarkus |
484
+ | **Ruby** | `Gemfile`, `.rb` | Rails (`rails`, `app/controllers/`), Sinatra (`sinatra`) |
485
+ | **PHP** | `composer.json`, `.php` | Laravel (`laravel/framework`, `routes/`), Symfony (`symfony/*`) |
486
+ | **Rust** | `Cargo.toml`, `.rs` | Actix Web (`actix-web`), Rocket (`rocket`) |
487
+ | **Elixir** | `mix.exs`, `.ex` | Phoenix (`phoenix`, `lib/*_web/`) |
488
+
489
+ **Database/ORM**: Check dependencies for Prisma (`@prisma/client`), TypeORM, Sequelize, SQLAlchemy, Hibernate, Entity Framework, Ecto, Diesel.
490
+
491
+ **Testing**: Look for Jest, Vitest, Pytest, JUnit, xUnit, RSpec in configs and dependencies.
492
+
493
+ Claude understands all major languages and frameworks - adapt to whatever the project uses!
991
494
 
992
495
  ## Example Flow
993
496