CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

mailpit-integration

Test email sending locally using Mailpit with .NET Aspire. Captures all outgoing emails without sending them. View rendered HTML, inspect headers, and verify delivery in integration tests.

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/aspire-mailpit-integration/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly actionable, code-dense skill whose examples are nearly copy-paste ready and whose section flow reads as a logical setup-through-testing progression. Its weaknesses are a monolithic structure with no reference files despite substantial library and test-pattern content, and a few internal inconsistencies (undefined WaitForMessagesAsync, record syntax on a class) that break copy-paste executability.

Suggestions

Move the MailpitClient implementation, its response models, and the full test-pattern examples into references/ files (e.g. references/mailpit-client.md, references/test-patterns.md), keeping SKILL.md as a lean overview with clearly signaled links.

Define WaitForMessagesAsync(expectedCount, timeout) in MailpitClient (or change the bulk test to use the existing WaitForMessageAsync) so the examples compile as written.

Fix the 'Production vs Development' snippet: 'settings with { ... }' requires a record, so either declare SmtpSettings as a record or mutate/construct settings explicitly; also consider an explicit numbered setup sequence to guide first-time use.

DimensionReasoningScore

Conciseness

The body is dominated by lean, purposeful executable code, with only minor over-explanation that could be trimmed — the 'What is Mailpit?' bullet tour, the filler line 'Perfect for development and integration testing.', and the web-UI feature walkthrough. It is not 5 because these explanatory sections spend tokens on content Claude could infer or look up once it knows the tool.

4 / 5

Actionability

Nearly all guidance is complete, copy-paste-ready code (AppHost setup, SMTP settings, MailKit sender, Mailpit API client, fixtures, tests, troubleshooting commands). It is not 5 because the BulkOperation test calls 'WaitForMessagesAsync(expectedCount: 3, ...)' which is never defined in MailpitClient, and the 'Production vs Development' example uses record 'with' syntax on a SmtpSettings class, so those snippets would not compile as shown.

4 / 5

Workflow Clarity

The topical section order (AppHost config → SMTP config → sender implementation → viewing → integration testing → troubleshooting) forms a coherent setup-to-verification sequence, and the test patterns include assertions plus wait/retry loops as validation checkpoints. It is not 5 because there is no explicit numbered step sequence or setup checklist tying the sections together, and not 3 because verification and error-recovery (Troubleshooting) are present rather than absent.

4 / 5

Progressive Disclosure

Section headers are clear, but the entire skill is a single monolithic SKILL.md with no bundle files — roughly 180 lines of MailpitClient/API-model code and full test-pattern examples are inlined when they clearly belong in separate references/ files. This matches the 'structure present but content that should be separate is inline' anchor rather than 2, since the inlined material is well-organized and navigable.

3 / 5

Total

15

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong, specific description that clearly communicates what the skill does with concrete capability verbs and a distinctive tool niche. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which caps completeness and leaves the activation conditions implied rather than stated.

Suggestions

Add an explicit trigger clause, e.g. 'Use when testing email delivery locally, setting up Mailpit in .NET Aspire, or writing integration tests that verify sent emails.'

Include common synonyms and phrases users would naturally say, such as 'SMTP', 'email testing', 'fake mail server', or 'outbox', to broaden trigger coverage.

Mention the programmatic API access and attachment inspection capabilities if those are intended uses, to round out coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Test email sending locally', 'Captures all outgoing emails without sending them', 'View rendered HTML, inspect headers, and verify delivery in integration tests' — covering the tool's core capabilities comprehensively. It is not a 4 because the action list goes beyond 'several with minor gaps' to name the full capture-view-inspect-verify workflow.

5 / 5

Completeness

The 'what' is clearly stated, but there is no explicit 'Use when...' clause or equivalent trigger guidance; the 'when' is only weakly implied by 'Test email sending locally'. Per the judging guidelines, a missing explicit trigger clause caps completeness at 3 — not 4 because the 'when' is not stated at all, only inferable.

3 / 5

Trigger Term Quality

Good natural keyword coverage: 'test email', 'email sending', 'Mailpit', '.NET Aspire', 'integration tests', 'rendered HTML', 'headers'. A few natural terms users would say are missing, such as 'SMTP', 'email testing', or 'fake/local mail server', so it falls just short of the comprehensive synonym coverage anchor.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche — Mailpit-based email testing with .NET Aspire — with named tools and specific triggers (email capture, integration test verification) that are unlikely to fire for unrelated skills. Conflict risk with generic email or testing skills is minimal.

5 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

Aaronontheweb/dotnet-skills

Path

skills/aspire-mailpit-integration/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.