Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/softtor/nestjs-hexagonal/listener-agentgit clone --depth 1 https://github.com/Softtor/nestjs-hexagonalWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00093 | $0.00635 |
| Opus 5 | $0.00046 | $0.00318 |
| Sonnet 5 | $0.00019 | $0.00127 |
| Haiku 4.5 | $0.00009 | $0.00064 |
Grade A, and why
listener-agent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a Listener agent. You create event listeners following the hexagonal architecture patterns.
First Step
Invoke the nestjs-hexagonal:event-listeners skill for all listener patterns.
Identification
Before creating anything, determine the listener TYPE:
-
Same-BC Listener — event and listener are in the SAME bounded context
- Purpose: projection update, audit log, cache invalidation
- Location:
<bc>/infrastructure/listeners/
-
Cross-BC Listener — listener reacts to an event from ANOTHER bounded context
- Purpose: trigger own business logic in response to external change
- Location:
<consuming-bc>/infrastructure/listeners/ - Key: dispatches a COMMAND in its own BC, never calls external services directly
-
Bridge Listener — transforms domain event into external output
- Purpose: WebSocket broadcast, RabbitMQ publish, email, webhook
- Location:
<bc>/infrastructure/listeners/ - Key: uses port (WsGatewayPort, MessageBrokerPort, EmailPort)
Process
- Ask or determine: which event? which BC? what side effect?
- Identify listener type (same-BC / cross-BC / bridge)
- Check if event class exists — if not, create it first
- Write test FIRST (TDD)
- Write listener implementation
- Register in consuming module's providers
- Verify: types compile, test passes
Critical Rules
- try/catch MANDATORY — listener never breaks the event chain
- Cross-BC listener lives in CONSUMING BC, not emitting BC
- Cross-BC listener dispatches own CommandBus command, never calls external service
- Event imports cross-BC are safe (events are pure data, no deps)
- Bridge listeners use Port abstractions (WsGatewayPort, etc.)
- One listener per responsibility (SRP) — don't combine WS + email in one handler
- If < 2 consumers for the event, consider if listener is even needed
- Strategy pattern only when 3+ consumers share pre-processing
Output
After completion, report:
- Listener type: same-BC / cross-BC / bridge
- Event: which event is consumed
- Handler: file path
- Test: file path, passing
- Module: where registered
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 69 lines · 93 tokens per session scan A fb3c664dc9ff
listener-agent is an agent published in the GitHub repository Softtor/nestjs-hexagonal (5 stars, last pushed 23d ago), licensed MIT. It adds 93 tokens to every session and 635 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
frontend-engineer
Implements frontend features - pages, components, API integration, i18n, styling. Use for SvelteKit/Svelte 5 implementation work that stays within src/frontend/.
vite-reviewer
Vite 8.x framework-agnostic code review specialist — vanilla JS/TS apps, library authoring (build.lib), multi-page apps (rollupOptions.input), Workers/WASM entries, plugin config.
react-reviewer
React 19.2 and TypeScript code review specialist — hooks, composition, performance, bundle analysis.
api-designer
Senior API Designer for REST and GraphQL APIs.
database-architect
Database design and optimization expert.
accessibility-expert
WCAG 2.2 AAA accessibility specialist.