CtrlK
BlogDocsLog inGet started
Tessl Logo

chroma

Embedding database for RAG and semantic search.

45

Quality

49%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

Fix and improve this skill with Tessl

tessl review fix ./optional-skills/mlops/chroma/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

50%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, executable API reference with copy-paste code for every core operation, but it is padded with marketing metrics, version numbers, and framework-integration content that belongs in the existing (unlinked) reference file. It also lacks validation steps around its destructive delete operations.

Suggestions

Replace the inlined LangChain/LlamaIndex sections with a pointer to references/integration.md, removing the duplication.

Cut the metrics block (stars/forks) and the alternatives comparison, and move the pinned version number (1.3.3) out of the main body.

Add a verification step around destructive operations, e.g. list matching documents with collection.get(where=...) and confirm before calling collection.delete().

DimensionReasoningScore

Conciseness

The body contains several padded sections Claude does not need: a metrics block ("24,300+ GitHub stars", "1,900+ forks"), an alternatives comparison of Pinecone/FAISS/Weaviate/Qdrant, and full LangChain/LlamaIndex sections that duplicate references/integration.md. It also embeds time-sensitive version numbers ("v1.3.3") outside any deprecated/old-patterns section, which the guidelines penalize.

2 / 5

Actionability

Most guidance is copy-paste executable (installation, create/add/query/get/update/delete, persistent client, server mode, metadata filters). Minor gaps keep it below 5: the custom embedding function returns an undefined `embeddings` variable, and the LangChain example calls `split_documents(documents)` on an undefined variable.

4 / 5

Workflow Clarity

Core operations are sequenced (create collection, add, query, get, update, delete), but destructive operations (`collection.delete(ids=...)`, `client.delete_collection(...)`)) and batch adds have no validation or verification steps, capping workflow clarity at 3 per the guideline on destructive/batch operations.

3 / 5

Progressive Disclosure

Sections are well organized, but ~400 lines of API detail are inlined and the provided references/integration.md is never linked from the body — its LangChain/LlamaIndex content is instead duplicated inline. This matches the anchor for structure present but content that should be separate is inline and references not clearly signaled.

3 / 5

Total

12

/

20

Passed

Description

48%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 concise and names a specific domain, but it functions as a category label rather than a capability statement: it lists no concrete actions and omits any "use when" trigger guidance. Adding one sentence of triggers with common synonyms (vector database, embeddings, similarity search) would substantially improve it.

Suggestions

Add an explicit trigger clause, e.g. "Use when the user mentions vector databases, embeddings, similarity search, or building RAG pipelines with Chroma."

Name 1-2 concrete capabilities (e.g. "stores embeddings with metadata, runs filtered similarity queries") instead of only naming the domain.

Include "Chroma" and "vector database" as trigger terms to distinguish it from other vector-store skills.

DimensionReasoningScore

Specificity

The description names the domain ("Embedding database for RAG and semantic search") but lists no concrete actions such as creating collections, adding documents, or querying by similarity. It fits the anchor 'Names the domain but actions are minimal or generic' rather than score 3, which requires 1-2 explicit actions.

2 / 5

Completeness

The "what" is clear ("Embedding database for RAG and semantic search") but there is no "Use when..." clause or equivalent trigger guidance anywhere in the description, capping completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

"RAG" and "semantic search" are natural phrases users would say, but common variations like "vector database", "embeddings", "similarity search", and "Chroma" are absent. This matches the anchor for some relevant keywords missing common synonyms.

3 / 5

Distinctiveness Conflict Risk

"Embedding database for RAG" carves out a fairly distinct niche that is unlikely to trigger generic document or data skills, but the description never names Chroma and could overlap with other vector-store skills (FAISS, Pinecone, Qdrant), so it falls just short of the clear-niche anchor.

4 / 5

Total

12

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

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

Warning

Total

13

/

16

Passed

Repository
NousResearch/hermes-agent
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.