new-event-listener

Creates listeners for events and wires them into forge applications.

Updated Apr 14, 2026
One-click install
npx skills add https://github.com/weiloon1234/Forge-Starter --skill new-event-listener
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: new-event-listener
Source: https://github.com/weiloon1234/Forge-Starter/tree/main/.claude/skills/new-event-listener
Command: npx skills add https://github.com/weiloon1234/Forge-Starter --skill new-event-listener

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This capability enables developers to attach cross-cutting reactions to domain events or Forge model lifecycle events (ModelCreated/Updated/Deleted) without embedding logic into individual models.

Core Features & Use Cases

  • Create a domain or model event and implement an EventListener that handles it to trigger side effects (jobs, emails, audits).
  • Support single-event, multi-event, or container-resolving listeners and register them via a service provider.
  • Reuse generic Forge events (ModelCreatedEvent/ModelUpdatedEvent/ModelDeletedEvent) or define domain-specific events like UserRegistered.

Quick Start

Define your event type, implement an EventListener, and register it in the EventServiceProvider to start reacting to events.

Frequently Asked Questions about new-event-listener

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I hook into Forge model lifecycle events to trigger side effects?

To hook into Forge model lifecycle events, you implement an EventListener with a handle method and register it in a service provider. This automates cross-cutting reactions to generic ModelCreatedEvent, ModelUpdatedEvent, and ModelDeletedEvent without embedding logic in models.

What is the best way to listen to multiple domain events in a service provider?

The best way to listen to multiple domain events is using a multi-event listener. You register it via registrar.listen_event in your service provider, allowing a single listener to handle several target events and trigger corresponding side effects.

Can I trigger custom side effects when a specific domain event is emitted?

Yes, you can trigger custom side effects by defining a custom domain event type, implementing an EventListener to handle it, and wiring the listener in the EventServiceProvider. This decouples reactions like jobs or audits from core model logic.

Do I need a container-resolving listener to access services when handling events?

You need a container-resolving listener when your event handler requires dependency injection. Registering this listener type via the service provider allows the event bus to resolve necessary services from the container automatically during event handling.

How do event listeners keep cross-cutting actions separate from model logic?

Event listeners keep cross-cutting actions separate by reacting to emitted domain events externally. Instead of placing audit or email logic inside models, you register listeners in a service provider to handle events like UserRegistered independently.