Implement LangChain RAG pipelines with document loaders, text splitters, embeddings, and vector stores (Chroma, Pinecone, FAISS). Trigger: "langchain RAG", "langchain documents", "langchain vector store", "langchain embeddings", "document loaders", "text splitters", "retrieval".
77
73%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/saas-packs/langchain-pack/skills/langchain-data-handling/SKILL.mdQuality
Discovery
82%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description with excellent specificity and distinctiveness, listing concrete components and named technologies. The trigger terms are well-chosen and cover natural user language. The main weakness is the lack of an explicit 'Use when...' clause that describes the situational context for skill selection, instead relying on a raw list of trigger keywords.
Suggestions
Replace the 'Trigger:' keyword list with a proper 'Use when...' clause, e.g., 'Use when the user asks about building retrieval-augmented generation pipelines with LangChain, setting up document loaders, configuring text splitters, or integrating vector stores like Chroma, Pinecone, or FAISS.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions and components: 'document loaders, text splitters, embeddings, and vector stores (Chroma, Pinecone, FAISS)' along with the overarching task of implementing RAG pipelines. | 3 / 3 |
Completeness | Clearly answers 'what does this do' (implement LangChain RAG pipelines with specific components) and lists trigger terms, but lacks an explicit 'Use when...' clause that describes the situations or user needs that should activate this skill. The trigger list is close but not a proper 'when' guidance. | 2 / 3 |
Trigger Term Quality | Provides good coverage of natural terms users would say including 'langchain RAG', 'langchain vector store', 'langchain embeddings', 'document loaders', 'text splitters', 'retrieval', and specific store names like Chroma, Pinecone, FAISS. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche: LangChain-specific RAG pipelines with named vector stores. The combination of 'LangChain' + 'RAG' + specific tools like Chroma/Pinecone/FAISS makes it very unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a solid, highly actionable skill with complete executable examples covering the full RAG pipeline. Its main weaknesses are verbosity (dual TypeScript/Python implementations inline, some unnecessary comments) and missing validation checkpoints between pipeline steps — particularly important given that embedding and vector store operations can silently fail or produce dimension mismatches. The sequential structure is clear but would benefit from explicit verification steps and better progressive disclosure by moving the Python equivalent and alternative vector store configs to separate files.
Suggestions
Add validation checkpoints between steps (e.g., verify document count after loading, check vector dimensions before storing, verify retrieval returns results before running RAG chain)
Move the Python RAG equivalent to a separate reference file (e.g., PYTHON_RAG.md) and link to it, keeping SKILL.md focused on one language
Consider moving the Pinecone-specific setup to a separate file since FAISS (local) is sufficient for the core workflow, reducing the main file length
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is mostly efficient with executable code examples, but includes both TypeScript and Python full implementations which is somewhat redundant. Some inline comments explain obvious things (e.g., 'max chars per chunk', 'overlap between chunks for context continuity') that Claude would already know. The Python section adds significant length for what could be a brief cross-reference. | 2 / 3 |
Actionability | Every step provides fully executable, copy-paste ready code with correct imports, concrete method calls, and real configuration values. The examples cover the complete pipeline from document loading through RAG chain invocation, with specific model names, pricing info, and practical patterns like directory loading with type routing. | 3 / 3 |
Workflow Clarity | The steps are clearly sequenced (load → split → embed → store → query → RAG chain) which is good. However, there are no validation checkpoints between steps — no verification that documents loaded correctly, no check that embeddings have expected dimensions before storing, and no error recovery feedback loops for batch operations like embedding large document sets. | 2 / 3 |
Progressive Disclosure | The content is structured with clear sections and includes external resource links, but the full Python equivalent and the detailed Pinecone example could be split into separate reference files. The error handling table is well-placed inline, but the overall document is quite long (~150 lines of code) for a SKILL.md overview. | 2 / 3 |
Total | 9 / 12 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 — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
allowed_tools_field | 'allowed-tools' contains unusual tool name(s) | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
70e9fa4
Table of Contents
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.