CtrlK
BlogDocsLog inGet started
Tessl Logo

opik-backend

Java backend patterns for Opik. Use when working in apps/opik-backend, designing APIs, database operations, or services.

60

Quality

76%

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 ./.agents/skills/opik-backend/SKILL.md
SKILL.md
Quality
Evals
Security

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 an exceptionally actionable and token-efficient conventions guide with tight GOOD/BAD code examples throughout. Its one serious defect is that all five referenced companion files are missing from the bundle, making the otherwise well-structured progressive-disclosure layer unusable.

Suggestions

Ship the five referenced files (clickhouse.md, mysql.md, testing.md, migrations.md, permissions.md) in a references/ directory, or remove the "Reference Files" section if they cannot be bundled.

Consider moving the extended SQL-construction walkthrough (the multi-example tokenUsageNames case) into a reference file once the bundle exists, keeping only the rule table and one example inline.

Add a short "when in doubt" checklist or validation step (e.g. grep for `new ST(` or string-concatenated SQL before finishing a change) to give the gotchas section a verification checkpoint.

DimensionReasoningScore

Conciseness

The body is a dense rule-plus-snippet reference with essentially no explanation of concepts Claude already knows; every section is a terse convention followed by GOOD/BAD examples. It misses anchor 5 only because a few rationale sentences (logging greppability, SQL interpolation "Why:") could be trimmed slightly.

4 / 5

Actionability

Every convention ships copy-paste-ready Java with exact annotations (`@Builder(toBuilder = true)`, `@RequiredArgsConstructor(onConstructor_ = @Inject)`) and explicit GOOD/BAD contrasts, including StringTemplate `<if(...)>` syntax and named builder classes. This matches anchor 5: executable, specific examples covering the common cases.

5 / 5

Workflow Clarity

This is a declarative conventions reference rather than a multi-step process skill, and its sections (Architecture, Naming, Lombok, Gotchas, API, Errors, Logging) are clearly organized and unambiguous. It does not reach anchor 5 because no checklists or validation checkpoints exist, and no multi-step workflow with feedback loops is articulated.

4 / 5

Progressive Disclosure

The "Reference Files" section clearly signals five one-level-deep links (clickhouse.md, mysql.md, testing.md, migrations.md, permissions.md), but none of these files exist in the bundle — no references/, scripts/, or assets/ directories are present at all. Navigation to every advanced topic is broken, matching anchor 2; the inlined content itself is appropriately core.

2 / 5

Total

15

/

20

Passed

Description

68%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 has an explicit and reasonably specific "Use when..." trigger clause and excellent distinctiveness, anchored to a concrete project path. Its main weakness is the vague "what" — "patterns" conveys no concrete capabilities, which drags specificity down.

Suggestions

Replace the generic phrase "Java backend patterns for Opik" with concrete capabilities, e.g. "Apply Opik's Java backend conventions: naming, Lombok, DI, SQL construction, logging, and error handling".

Add natural trigger keywords users would actually say, such as "endpoints", "DAOs", "queries", "migrations", or "writing tests".

DimensionReasoningScore

Specificity

"Java backend patterns for Opik" names the domain but offers only the generic action label "patterns" — no concrete capabilities like "write DAOs" or "build endpoints" are listed. It matches anchor 2 ("Names the domain but actions are minimal or generic"), not 3, because even 1-2 concrete actions are absent.

2 / 5

Completeness

Both what ("Java backend patterns for Opik") and when ("Use when working in apps/opik-backend, designing APIs, database operations, or services") are present and explicit. It is not a 5 because the "what" is a domain label rather than the concrete action list anchor 5 requires.

4 / 5

Trigger Term Quality

"designing APIs, database operations, or services" plus the concrete path "apps/opik-backend" provides good natural trigger coverage. It falls short of anchor 5 because common variations users would say — endpoints, queries, migrations, tests — are missing.

4 / 5

Distinctiveness Conflict Risk

"Opik", "apps/opik-backend", and "Java backend" pin a clear niche tied to one specific project, so the risk of triggering for the wrong skill is minimal. This cleanly matches anchor 5.

5 / 5

Total

15

/

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

relative_links

Relative link issues: 5 missing

Warning

Total

15

/

16

Passed

Repository
comet-ml/opik
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.