CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

testland/kafka-consumer-tests

Use whenever Kafka producers or consumers need tests, in KafkaJS, kafka-go or Spring Kafka: a real broker via Testcontainers, offset commits, consumer-group rebalances, at-least-once vs exactly-once transactions, idempotent producers and dead-letter topics.

Quality

90%

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

Overview
Quality
Evals
Security
Files

Quality

Content

75%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.

The body is a strong, dense, example-driven skill: a coherent nine-step workflow with executable multi-language code, an anti-patterns table, and a well-signaled one-level-deep reference file for the non-KafkaJS recipes. The main weaknesses are minor: a few literal placeholders and undeclared variables in code snippets, implicit sleep-based validation instead of polling loops, and a small amount of duplicated or off-scope content.

Suggestions

Replace the 'topics: [...]' placeholder in tx.sendOffsets() (Step 5) with a real topic-partition offset argument (e.g. { topics: [{ topic: 'input', partitions: [{ partition: 0, offset: '1' }] }] }) so the transactional snippet is fully copy-paste ready, and declare the 'producer' used in the Step 7 DLT test.

Replace fixed 'await new Promise(r => setTimeout(r, N))' waits with a poll-until-assertion helper bounded by a timeout, turning implicit sleeps into explicit validation checkpoints and removing the environment-dependent flakiness the Limitations section flags.

Trim the Step 1 Python snippet (off-scope for the stated KafkaJS/kafka-go/Spring Kafka coverage) and the verbatim documentation quotes to reduce token overhead, leaving the doc URLs as citations.

DimensionReasoningScore

Conciseness

The body is code-first and assumes Kafka competence (the Overview's offset-model framing is skill-specific and earns its place), but there are minor instances that could be trimmed: verbatim doc quotes ('starts from earliest [offset] when no committed offset exists'), an off-scope Python Testcontainers snippet in Step 1, and the kafka-go ReadMessage warning repeated in both the anti-patterns table and the reference file. This fits anchor 4 ('efficient; minor instances of over-explanation') rather than anchor 5, where every token would earn its place.

4 / 5

Actionability

Nearly all guidance is copy-paste ready with real package coordinates, image tags, and embedded assertions (e.g. 'expect(result[0].errorCode).toBe(0)', the GitHub Actions yaml, the DLT round-trip test). It falls short of anchor 5 due to literal placeholders: 'tx.sendOffsets({ consumerGroupId: 'test-group', topics: [...] })' is pseudocode, and the DLT test references a 'producer' that is never declared in that snippet.

4 / 5

Workflow Clarity

Steps 1-9 form a clear, logically sequenced progression (broker -> producer -> offsets -> rebalance -> EOS -> idempotency -> DLT -> other languages -> CI) with assertions acting as checkpoints and an anti-patterns table for error avoidance. It does not reach anchor 5 because validation is implicit - fixed 'setTimeout' waits instead of explicit poll-and-retry feedback loops, a weakness the Limitations section itself acknowledges - so 'minor validation gaps' (anchor 4) is the best fit.

4 / 5

Progressive Disclosure

Step 8 cleanly offloads the Java and Go recipes to a clearly signaled, one-level-deep reference ([references/other-language-recipes.md](references/other-language-recipes.md)) that exists and delivers exactly what is promised, and a References section lists all sources. It sits at anchor 4 rather than 5 because of minor organization gaps: the ~440-line main file inlines an off-scope Python setup snippet and duplicates Go setup between Step 1 and the reference file, so the split is good but not fully clean.

4 / 5

Total

16

/

20

Passed

Description

100%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.

The description is exemplary: a single sentence that states an explicit trigger condition ('Use whenever Kafka producers or consumers need tests'), scopes the supported libraries, and enumerates six concrete capability areas. Trigger-term coverage is comprehensive and the skill is clearly distinguishable from sibling broker-testing skills.

DimensionReasoningScore

Specificity

The description lists six concrete capability areas - 'a real broker via Testcontainers, offset commits, consumer-group rebalances, at-least-once vs exactly-once transactions, idempotent producers and dead-letter topics' - which is comprehensive concrete coverage of the Kafka-testing domain. It exceeds anchor 4 because there are no notable coverage gaps: setup, delivery semantics, and failure routing are all named.

5 / 5

Completeness

'Use whenever Kafka producers or consumers need tests' is an explicit, specific when-clause, and the what follows concretely in the colon-separated capability list. It matches anchor 5 (both what and when explicitly answered with concrete trigger phrases) rather than anchor 4, where the when-clause would be less specific.

5 / 5

Trigger Term Quality

Natural keywords users would say ('Kafka', 'producers', 'consumers', 'tests', 'exactly-once', 'dead-letter', 'Testcontainers') plus library-name variants 'KafkaJS, kafka-go or Spring Kafka' give comprehensive coverage. It fits anchor 5 rather than 4 because the three library names act as the synonym/extension-level variants a user would naturally name.

5 / 5

Distinctiveness Conflict Risk

The description carves out a clear niche - testing Kafka producers/consumers with named client libraries - so it is unlikely to trigger for the wrong skill (sibling broker skills like SQS/RabbitMQ involve different trigger terms). It matches anchor 5's 'clear niche with distinct triggers; minimal conflict risk'.

5 / 5

Total

20

/

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.

Reviewed

On this page