CtrlK
BlogDocsLog inGet started
Tessl Logo

add-integration-event

Publish a cross-module integration event via the Outbox and handle it idempotently in another module. Use when one module must react to something that happened in another. See .agents/rules/eventing.md.

69

Quality

87%

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

SKILL.md
Quality
Evals
Security

Quality

Content

82%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 tight, project-specific skill: lean token use, concrete templates with exact paths and APIs, a clear sequenced workflow with a checklist, and well-signaled pointer to the fuller rules doc. Main gaps are placeholder-riddled code samples and no explicit build/test verification commands or feedback loop.

Suggestions

Replace opaque placeholders like 'SomePayload: "…"' and 'TenantId: /* current tenant */' with a concrete one-line example (e.g., the actual call to get the current tenant) so the publish snippet is copy-paste ready.

Add an explicit validation step at the end — e.g., the exact build/test command to run and what to check when it fails — turning the 'Build + tests green' checklist item into a real feedback loop.

Consider moving the dense Gotchas items that restate the eventing model (tenant-context restoration, module load order) into the referenced .agents/rules/eventing.md so SKILL.md stays a pure overview.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: no generic explanations of eventing concepts, each section carries non-obvious project-specific knowledge ('the outbox stores its assembly-qualified name; a rename makes Type.GetType() return null', 'Inbox dedups by {eventId, handlerName}', module Order values). Every token earns its place, matching anchor 5.

5 / 5

Actionability

Gives exact file paths, type signatures, API calls ('await outbox.AddAsync(evt, cancellationToken)'), and the registration line 'builder.Services.AddIntegrationEventHandlers(typeof({Consumer}Module).Assembly)'. However, the code is templated with unresolved placeholders ('SomePayload: "…"', 'TenantId: /* current tenant */'), so it is shaped like executable code with minor gaps — anchor 4, not the fully copy-paste-ready anchor 5.

4 / 5

Workflow Clarity

A clear 3-step sequence (define → publish → handle/register) with a closing checklist containing a validation item ('Build + tests green') and a test-drain instruction ('integration tests drain with OutboxDrain.DrainAsync'). It lacks an explicit validate-and-fix feedback loop (no command for building/tests or error-recovery guidance), so anchor 4 rather than 5; the sequence is far too complete for anchor 3.

4 / 5

Progressive Disclosure

Well-organized sections with one clearly signaled one-level-deep reference ('Full model: .agents/rules/eventing.md'), and no bundle files exist to verify further. Not anchor 5: the skill exceeds 50 lines with the deep material (the 'full model') deferred to an external project path that cannot be verified within the skill bundle, and the dense Gotchas section could be part of that deferred detail — good structure with minor organization gaps, i.e. anchor 4.

4 / 5

Total

17

/

20

Passed

Description

87%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 description: concrete, third-person action statements plus an explicit 'Use when' clause with a natural trigger phrase, occupying a distinct niche. Keyword coverage is good but could add a few synonyms (e.g., 'event bus', 'message') to widen natural triggering.

DimensionReasoningScore

Specificity

Quotes two concrete actions — 'Publish a cross-module integration event via the Outbox' and 'handle it idempotently in another module' — each with precise qualifiers covering the publish→consume lifecycle. Not a clean anchor 5 ('multiple specific concrete actions') since registration and contract definition are unstated, and above anchor 3 because the two actions are highly specific rather than generic.

4 / 5

Completeness

Explicitly answers both: what ('Publish a cross-module integration event via the Outbox and handle it idempotently in another module') and when ('Use when one module must react to something that happened in another') with a concrete, natural trigger phrase. Matches the anchor 5 exemplar pattern exactly; anchor 4 would require the 'when' to be less explicit than it is.

5 / 5

Trigger Term Quality

Includes natural phrases a user would say: 'one module must react to something that happened in another', plus 'integration event', 'Outbox', 'cross-module'. Missing common variations such as 'event bus', 'publish a message', or 'notification', so it fits anchor 4 ('good keyword coverage; a few natural terms missing') rather than 5.

4 / 5

Distinctiveness Conflict Risk

Clear niche defined by distinct triggers — 'Outbox', 'integration event', cross-module reactivity — that are unlikely to fire for unrelated skills. Matches anchor 5 ('clear niche with distinct triggers; minimal conflict risk').

5 / 5

Total

18

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
fullstackhero/dotnet-starter-kit
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.