identify-entry-points
Entry Points Identifier
Overview
Identifies all entry points into the application — HTTP routes, CLI commands, event handlers, message consumers, and scheduled tasks. Maps each entry point to its handler and the business operation it triggers.
Detection Patterns
HTTP Entry Points
Controllers / Actions
# Symfony controllers
Grep: "#\\[Route\\(" --glob "**/*.php"
Grep: "@Route\\(" --glob "**/*.php"
Grep: "extends.*AbstractController" --glob "**/*.php"
# Laravel controllers
Grep: "extends Controller" --glob "**/Controller/**/*.php"
Grep: "Route::(get|post|put|patch|delete)" --glob "**/routes/*.php"
# ADR Actions
Grep: "__invoke.*Request" --glob "**/Action/**/*.php"
Grep: "class.*Action" --glob "**/*.php"
# Slim/custom route handlers
Grep: "->(?:get|post|put|delete|patch)\(" --glob "**/routes*.php"
Route Definitions
# Symfony YAML routes
Grep: "path:|prefix:" --glob "config/routes*.yaml"
# Symfony attribute routes (extract path and methods)
Grep: "#\\[Route\\('[^']+'" --glob "**/*.php"
# Laravel routes
Grep: "Route::" --glob "routes/*.php"
# API resource routes
Grep: "apiResource|Route::resource" --glob "routes/*.php"
Middleware
# Symfony event subscribers acting as middleware
Grep: "implements EventSubscriberInterface" --glob "**/*.php"
Grep: "kernel.request|kernel.response|kernel.exception" --glob "**/*.php"
# Laravel middleware
Grep: "class.*Middleware|implements Middleware" --glob "**/*.php"
Grep: "'middleware'" --glob "routes/*.php"
# PSR-15 middleware
Grep: "implements MiddlewareInterface" --glob "**/*.php"
CLI Entry Points
# Symfony console commands
Grep: "extends Command" --glob "**/*.php"
Grep: "#\\[AsCommand\\(" --glob "**/*.php"
Grep: "protected.*\\$defaultName" --glob "**/*.php"
# Laravel artisan commands
Grep: "extends Command" --glob "**/Console/**/*.php"
Grep: "protected.*\\$signature" --glob "**/*.php"
# Custom CLI scripts
Glob: "bin/*"
Glob: "scripts/*.php"
Event/Message Entry Points
# Symfony messenger handlers
Grep: "#\\[AsMessageHandler\\]" --glob "**/*.php"
Grep: "implements MessageHandlerInterface" --glob "**/*.php"
Grep: "__invoke.*Message|__invoke.*Command|__invoke.*Event" --glob "**/*.php"
# Symfony event listeners
Grep: "#\\[AsEventListener\\(" --glob "**/*.php"
Grep: "implements EventSubscriberInterface" --glob "**/*.php"
# Laravel event listeners
Grep: "class.*Listener" --glob "**/Listeners/**/*.php"
Grep: "implements ShouldQueue" --glob "**/*.php"
# Custom event handlers
Grep: "implements.*Handler|implements.*Listener|implements.*Subscriber" --glob "**/*.php"
# RabbitMQ consumers
Grep: "ConsumerInterface|implements.*Consumer" --glob "**/*.php"
Scheduled Tasks
# Symfony scheduler
Grep: "#\\[AsSchedule\\]|#\\[AsCronTask\\]" --glob "**/*.php"
Grep: "RecurringMessage::every|RecurringMessage::cron" --glob "**/*.php"
# Laravel scheduler
Grep: "->command\\(|->call\\(|->job\\(" --glob "**/Kernel.php"
Grep: "->cron\\(|->daily\\(|->hourly\\(" --glob "**/*.php"
# Cron definitions
Glob: "crontab*"
Glob: "config/scheduler*.{php,yaml}"
Analysis Process
- Scan — Find all entry points using detection patterns above
- Classify — Group by type (HTTP, CLI, Event, Scheduled)
- Map — Trace each entry point to its handler/use case
- Document — Build entry point catalog
Handler Mapping
For each entry point, trace the chain:
Entry Point → Middleware/Guard → Handler → UseCase/Service → Domain
# Find what the handler calls
# Read the handler method body
Read: handler file
# Look for service/use case invocations
Grep: "\$this->[a-z]+(Handler|Service|UseCase|Bus)" in handler file
# Trace command/query dispatch
Grep: "->dispatch\(|->handle\(|->execute\(" in handler file
Output Format
## Entry Points Map
### HTTP Endpoints
| Method | Route | Handler | Operation | Auth |
|--------|-------|---------|-----------|------|
| GET | /api/orders | OrderController::list | List orders | JWT |
| POST | /api/orders | CreateOrderAction::__invoke | Create order | JWT |
| GET | /api/orders/{id} | OrderController::show | Get order | JWT |
| PUT | /api/orders/{id}/status | UpdateOrderStatusAction | Change status | JWT + Role |
### CLI Commands
| Command | Handler | Purpose | Schedule |
|---------|---------|---------|----------|
| app:import-orders | ImportOrdersCommand | Import from CSV | Daily 02:00 |
| app:cleanup-expired | CleanupCommand | Remove expired | Hourly |
### Event Handlers
| Event/Message | Handler | Trigger | Async |
|---------------|---------|---------|-------|
| OrderCreated | SendConfirmationEmail | After order create | Yes (queue) |
| PaymentReceived | UpdateOrderStatus | After payment | Yes (queue) |
| UserRegistered | SendWelcomeEmail | After registration | Yes (queue) |
### Message Consumers
| Queue | Consumer | Message Type | Processing |
|-------|----------|-------------|-----------|
| orders | OrderConsumer | OrderCommand | Sequential |
| notifications | NotificationConsumer | NotificationMessage | Parallel |
### Scheduled Tasks
| Schedule | Task | Description |
|----------|------|-------------|
| 0 2 * * * | ImportOrdersCommand | Daily order import |
| */5 * * * * | HealthCheckCommand | Health monitoring |
### Entry Point Flow
HTTP Request → Middleware Stack → Controller/Action → UseCase → Domain → Response CLI Command → Input Parsing → Handler → Service → Domain → Output Event → Listener/Handler → UseCase → Domain → Side Effects Queue Message → Consumer → Handler → UseCase → Domain → Ack
Entry Point Quality Indicators
| Indicator | Good | Warning |
|---|---|---|
| Handler responsibility | Delegates to UseCase | Contains business logic |
| Input validation | Uses typed Request/DTO | Raw array access |
| Auth check | Attribute/middleware | Inline if-checks |
| Error handling | Exception handler | Try-catch in handler |
| Response format | Typed Response/DTO | Array/string |
Integration
This skill is used by:
codebase-navigator— builds complete entry point catalogtrace-request-lifecycle— starts from identified entry pointsexplain-business-process— maps entry points to business operations
More from dykyi-roman/awesome-claude-code
psr-overview-knowledge
PHP Standards Recommendations (PSR) overview knowledge base. Provides comprehensive reference for all accepted PSRs including PSR-1,3,4,6,7,11,12,13,14,15,16,17,18,20. Use for PSR selection decisions and compliance audits.
22detect-code-smells
Detects code smells in PHP codebases. Identifies God Class, Feature Envy, Data Clumps, Long Parameter List, Long Method, Primitive Obsession, Message Chains, Inappropriate Intimacy. Generates actionable reports with refactoring recommendations.
15clean-arch-knowledge
Clean Architecture knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for Clean Architecture and Hexagonal Architecture audits.
15ddd-knowledge
DDD architecture knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for Domain-Driven Design audits.
14testing-knowledge
Testing knowledge base for PHP 8.4 projects. Provides testing pyramid, AAA pattern, naming conventions, isolation principles, DDD testing guidelines, and PHPUnit patterns.
12bug-root-cause-finder
Root cause analysis methods for PHP bugs. Provides 5 Whys technique, fault tree analysis, git bisect guidance, and stack trace parsing.
12