Testing Spring application events (ApplicationEvent) with @EventListener and ApplicationEventPublisher. Test event publishing, listening, and async event handling in Spring Boot applications. Use when validating event-driven workflows in your Spring Boot services.
Install with Tessl CLI
npx tessl i github:giuseppe-trisciuoglio/developer-kit --skill unit-test-application-events80
Quality
82%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a well-crafted skill description that excels across all dimensions. It provides specific technical actions, includes natural trigger terms that Spring developers would use, explicitly states both what the skill does and when to use it, and carves out a distinct niche in Spring event testing that won't conflict with broader Spring or testing skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'Testing Spring application events', 'Test event publishing, listening, and async event handling'. Also mentions specific Spring components like @EventListener and ApplicationEventPublisher. | 3 / 3 |
Completeness | Clearly answers both what ('Testing Spring application events with @EventListener and ApplicationEventPublisher, test event publishing, listening, and async event handling') AND when ('Use when validating event-driven workflows in your Spring Boot services'). | 3 / 3 |
Trigger Term Quality | Good coverage of natural terms users would say: 'ApplicationEvent', '@EventListener', 'ApplicationEventPublisher', 'event publishing', 'async event handling', 'Spring Boot', 'event-driven workflows'. These are terms developers would naturally use when seeking help with Spring events. | 3 / 3 |
Distinctiveness Conflict Risk | Clear niche focused specifically on Spring application events testing. The specific mentions of ApplicationEvent, @EventListener, and ApplicationEventPublisher create distinct triggers unlikely to conflict with general Spring testing or other event systems. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides solid, actionable code examples for testing Spring application events with good coverage of common patterns. However, it suffers from some verbosity in setup sections, incomplete test stubs in conditional listeners, and could benefit from better organization through progressive disclosure. The async testing guidance using Thread.sleep() is a known anti-pattern that should recommend Awaitility instead.
Suggestions
Remove or significantly condense the 'When to Use This Skill' section - Claude can infer appropriate usage from the content itself
Complete the conditional listener test stubs with actual executable test code instead of placeholder comments
Replace Thread.sleep() in async tests with Awaitility example: `await().atMost(1, SECONDS).untilAsserted(() -> verify(slowService).processUser(user))`
Consider moving Maven/Gradle setup to a separate SETUP.md file and reference it, keeping SKILL.md focused on testing patterns
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill includes some unnecessary sections like 'When to Use This Skill' that Claude can infer, and the Maven/Gradle setup is verbose for a skill focused on testing patterns. However, the code examples themselves are reasonably efficient. | 2 / 3 |
Actionability | Provides fully executable, copy-paste ready code examples with complete imports, annotations, and test methods. The patterns are concrete and immediately usable. | 3 / 3 |
Workflow Clarity | The skill presents testing patterns clearly but lacks explicit validation checkpoints. The async testing section uses Thread.sleep() without mentioning Awaitility as a better alternative in the code itself, and conditional listener tests are incomplete stubs. | 2 / 3 |
Progressive Disclosure | Content is reasonably structured with clear sections, but the document is monolithic with no references to external files. The References section links to external docs but internal organization could benefit from splitting advanced patterns into separate files. | 2 / 3 |
Total | 9 / 12 Passed |
Validation
68%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 16 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
description_voice | 'description' should use third person voice; found second person: 'your ' | Warning |
metadata_version | 'metadata' field is not a dictionary | Warning |
license_field | 'license' field is missing | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
body_steps | No step-by-step structure detected (no ordered list); consider adding a simple workflow | Warning |
Total | 11 / 16 Passed | |
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.