Loading...
Loading...
Detects framework-specific anti-patterns, convention violations, and idiom misuse across PHP/Laravel, React/Next.js, and Python/Django/FastAPI codebases. Loads framework-specific reference guides and checks against framework conventions. Generates severity-scored findings with copy-pasteable fix prompts. Trigger phrases: "framework review", "framework check", "laravel best practices", "react best practices", "framework audit", "framework-specific review".
npx skill4agent add nishilbhave/codeprobe-claude codeprobe-framework../codeprobe/shared-preamble.md../codeprobe/references/fullcomposer.jsonlaravel/frameworkgetXAttribute()next.config.*package.jsonapp/requirements.txtsetup.pycodeprobe-securitycodeprobe-solidcodeprobe-performancecodeprobe-error-handling| ID Prefix | Area | What to Detect | How to Detect | Severity |
|---|---|---|---|---|
| Eloquent | Raw queries where Eloquent query builder works | Search for | Minor |
| Eloquent | Missing | Model attributes that should be cast (dates, booleans, arrays, JSON) accessed without | Minor |
| Eloquent | Repeated WHERE conditions without scopes | Same | Minor |
| Routing | Logic in route closures instead of controllers | Route definitions in | Minor |
| Routing | Missing route model binding | Routes that accept an ID parameter and manually call | Minor |
| Validation | Validation in controller instead of Form Request | Controller methods with inline validation rules ( | Minor |
| Queues | Long-running tasks in request cycle | Operations likely to take > 5 seconds (sending emails, generating PDFs, calling external APIs, processing uploads) executed synchronously in a controller/request handler. Should be dispatched to a queue. | Major |
| Queues | Queue jobs without retry configuration | Job classes missing | Minor |
| Events | Tight coupling where events would decouple | After a state change (create, update, delete), a method directly calls 3+ other services. Should dispatch an event and let listeners handle side effects. | Minor |
| Config | | Using | Major |
| ID Prefix | Area | What to Detect | How to Detect | Severity |
|---|---|---|---|---|
| Components | Components exceeding 200 LOC | Single component files with more than 200 lines of code. Should be decomposed into smaller, focused components. | Minor |
| Components | Prop drilling more than 3 levels deep | Props passed through 3+ intermediate components that don't use them. Should use Context, state management, or composition. Trace prop names through component hierarchy. | Minor |
| Hooks | | | Major |
| Hooks | State updates inside render | Calling | Major |
| Hooks | Custom hooks exceeding 50 LOC | Custom hooks that do too much. Should be composed from smaller hooks. | Minor |
| Data Fetching | Client-side fetch where SSR/SSG is appropriate | | Minor |
| Data Fetching | Missing error and loading states | Data fetching without corresponding loading indicator and error handling in the UI. | Minor |
| Type Safety | | Explicit | Minor |
| Type Safety | Missing return types on exported functions | Exported functions without explicit return type annotations. Rely on inference for internal, but exported API surfaces should be explicitly typed. | Minor |
| ID Prefix | Area | What to Detect | How to Detect | Severity |
|---|---|---|---|---|
| Django | | Single view module with too many views. Should be split into separate view modules or use ViewSets. | Minor |
| Django | Missing model | Django models without | Minor |
| Django | N+1 in templates | Template tags accessing related objects without | Major |
| FastAPI | Sync database calls in async views | Using synchronous ORM calls (Django ORM, SQLAlchemy sync) inside | Major |
| Python | Non-PEP 8 naming | | Minor |
FWK-FWK-001FWK-002OrderController@storeStoreOrderRequestphp artisan make:request StoreOrderRequestStoreOrderRequestenv('MAIL_HOST')app/Services/MailService.phpconfig('mail.mailers.smtp.host')env()nullconfig/mail.phpProductListsrc/components/ProductList.tsxProductCardProductFiltersProductPaginationuserIduseEffectsrc/hooks/useProfile.ts:15[]userId