DenserAI Logo

How We Built the Denser Retriever Claude Code Skill Using Skill Creator

milo
M. Soro
9 min read

We had a full REST API for semantic search and document retrieval. We wanted developers to use it without reading docs, writing code, or memorizing endpoints. So we turned the entire API into a Claude skill — an agent skill that lets Claude Code handle everything through natural conversation. The tool that made it possible was skill-creator.

This post walks through how we built our Claude Code skill, what the Denser Retriever skill enables, and why skill-creator is one of the most powerful meta-tools for creating Claude AI skills.

The Problem#

The Denser Retriever API has 13 endpoints covering knowledge base management, multi-step file uploads, semantic search, and account operations. A typical "upload a file" workflow requires three sequential API calls: get a presigned URL, PUT the file to S3, then trigger import processing. After that, you poll for status until the document is indexed.

That's a lot of steps for someone who just wants to search their PDFs.

We had TypeScript and Python SDKs, but developers still needed to write code, handle async polling, and manage API keys. We wanted something simpler: tell Claude what you want, and it happens.

Enter Skill Creator#

Skill Creator is a meta-skill — a skill that builds other skills. It guides you through the entire process of turning domain knowledge into a reusable Claude Code capability:

  1. Interview — Understands what you want the skill to do and when it should trigger
  2. Research — Examines your existing code, docs, and API surface
  3. Draft — Writes the SKILL.md with frontmatter, instructions, and reference files
  4. Test — Creates eval prompts and runs them against the skill
  5. Iterate — Grades results, compares versions, and suggests improvements
  6. Package — Produces a ready-to-publish skill

The key insight is that skill-creator doesn't just write a prompt — it runs a structured evaluation loop with executor, grader, and comparator agents to objectively measure whether the skill works.

Our Process#

Step 1: Describe the Intent#

We started a Claude Code session with skill-creator and described what we wanted:

You: I want to create a skill that wraps the Denser Retriever REST API.
     It should let users create knowledge bases, upload documents,
     search with semantic queries, and manage their account — all
     through natural conversation. The API uses curl with an API key.

Skill-creator asked follow-up questions: What file types are supported? What does the upload flow look like? What errors should be handled? It interviewed us one question at a time, building a clear picture of the domain.

Step 2: Feed It the API Reference#

We pointed skill-creator at our OpenAPI spec and API documentation. It extracted all 13 endpoints, their request/response schemas, and the multi-step workflows (like the presign → upload → import flow for files).

This became the references/api_reference.md file — a comprehensive API reference that Claude loads on demand when it needs the exact request format for an endpoint.

Step 3: Draft and Test#

Skill-creator produced a first draft of SKILL.md with:

  • Frontmatter with trigger keywords (knowledge base, semantic search, RAG, document search, PDF search, etc.)
  • Setup instructions for the API key
  • Quick reference table of all endpoints
  • Common workflows with exact curl commands
  • Automation patterns for batch uploads and status polling

Then it generated test prompts like "Create a knowledge base and upload a PDF" and ran them to verify the skill worked end-to-end.

Step 4: Iterate Based on Results#

The first version worked but had rough edges. Skill-creator's evaluation loop caught issues:

  • The presigned upload flow needed clearer step-by-step sequencing
  • Error codes like STORAGE_LIMIT_EXCEEDED needed to be surfaced to the user
  • Batch upload patterns needed a loop example

Each iteration produced a new version, graded against expectations, and compared blind against the previous best. After a few rounds, the skill reliably handled all 13 endpoints and the multi-step workflows.

The Result#

The finished skill lives at github.com/denser-org/claude-skills and installs with one command:

npx skills add denser-org/claude-skills@denser-retriever -g -y

The skill structure is minimal:

denser-retriever/
├── SKILL.md              # 187 lines of instructions + workflows
└── references/
    └── api_reference.md  # Full endpoint schemas loaded on demand

No code. No SDK wrapper. No build step. Just structured instructions that teach Claude how to use our API — a true Claude skill that any developer can install and use immediately.

Use Case Examples#

Here's what developers are doing with the skill in practice.

A machine learning researcher uploads a directory of papers and searches across them:

You: Create a knowledge base called "ML Papers 2025" and upload
     all PDFs from ~/papers/attention/

Claude: Created KB "ML Papers 2025" (id: kb-a1b2c3)
        Uploading 12 files...
        All documents processed and ready.

You: Which papers discuss sparse attention mechanisms?

Claude: Found 4 relevant passages:
        [Score: 4.1] "We propose a sparse attention pattern that
        reduces complexity from O(n²) to O(n√n)..." - efficient-attention.pdf
        ...

HR Policy Assistant#

An HR team indexes their employee handbook and compliance documents:

You: Upload the employee handbook and PTO policy to my "HR Docs" knowledge base

You: How many vacation days does a first-year employee get?

Claude: Found relevant passage (score: 3.73) from SampleEmployeeHandbook.pdf:
        "During the remaining nine months of first year employment,
        a full-time employee will earn two weeks (10 days) of paid Vacation."

A developer indexes their project's documentation for instant Q&A:

You: Import all the markdown files from our docs/ folder into
     a "Project Docs" knowledge base

You: How do I configure authentication in our API?

Claude: Found 3 relevant passages across your documentation...

AI Memory and Personal Assistant#

Store conversation summaries and retrieve them semantically — giving an AI assistant persistent memory across sessions:

You: Import this text to my "Memory" knowledge base:
     "2026-02-20: User prefers TypeScript over Python for backend work.
      Decided to use Drizzle ORM instead of Prisma for the new project."

You: What ORM did we decide to use for the new project?

Claude: Found relevant memory (score: 3.9):
        "Decided to use Drizzle ORM instead of Prisma for the new project."

Competitive Intelligence#

A product team monitors competitor documentation and feature pages:

You: Search across all my knowledge bases for "vector database pricing"

Claude: Found results across 3 knowledge bases:
        [Competitor Docs] "Starting at $0.08 per GB/month..."
        [Industry Reports] "Vector DB market growing 40% YoY..."
        [Internal Notes] "Our pricing is competitive below 10GB..."

Why Skill Creator Is Powerful#

After going through this process, here's what stood out about skill-creator as a tool:

It thinks in evaluations, not just prompts. Most people write a prompt and eyeball whether it works. Skill-creator runs structured evals with grading criteria, blind A/B comparisons, and post-hoc analysis. It doesn't just ask "does this work?" — it measures how well it works and why.

It handles progressive disclosure automatically. Our skill has a 187-line SKILL.md for common workflows, plus a detailed API reference that Claude reads only when needed. Skill-creator understood that everything shouldn't be in the main prompt — just enough to handle 80% of use cases, with pointers to deeper reference material.

It generalizes from specific feedback. When we said "the upload flow is confusing," skill-creator didn't just fix that one example. It restructured how all multi-step workflows were presented, improving batch uploads and status polling at the same time.

It produces a publishable artifact. The output isn't a rough draft you need to polish — it's a structured skill with frontmatter, trigger keywords, reference files, and automation patterns. We pushed it to GitHub and it was ready for npx skills add.

Build Your Own Claude Code Skill#

If you have an API, a CLI tool, or any domain workflow you want to turn into a Claude AI skill, skill-creator can handle it:

npx skills add anthropics/skills@skill-creator -g -y

Then start a Claude Code session and say what you want to build. Skill-creator handles the rest — interviewing you, drafting the skill, testing it, and iterating until it works.

The Denser Retriever skill source is open source if you want to see what a finished skill looks like.

Want to try the Denser Retriever skill yourself? Install it with npx skills add denser-org/claude-skills@denser-retriever -g -y and create a free account at retriever.denser.ai to get your API key.

Share this article

Get Started with Denser AI

Deploy AI chatbots on your website or integrate semantic search into your applications — all powered by Denser.