OP

openevidence-local-dev-loop

Provides a local development workflow using mock servers to iterate on OpenEvidence integrations without API quotas.

Install

mkdir -p .claude/skills/openevidence-local-dev-loop && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6320" && unzip -o skill.zip -d .claude/skills/openevidence-local-dev-loop && rm skill.zip

Installs to .claude/skills/openevidence-local-dev-loop

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Local Dev Loop for OpenEvidence.
32 charsno explicit “when” trigger
Beginner

Key capabilities

  • Simulate clinical evidence queries with mock data
  • Toggle between mock and live API modes
  • Validate query categorization using topics endpoint
  • Run integration tests against real API endpoints

How it works

The development server uses a proxy middleware to route requests to the live API or a mock handler based on the MOCK_MODE environment variable.

Inputs & outputs

You give it
Clinical question string
You get back
Mock evidence response with citations

When to use openevidence-local-dev-loop

  • Configuring development workflows
  • Setting up testing environments
  • Creating rapid iteration loops
  • Simulating API responses

About this skill

OpenEvidence Local Dev Loop

Overview

Local development workflow for OpenEvidence clinical decision support API integration. Provides a fast feedback loop with mock evidence queries, citation responses, and clinical summary data so you can build health-tech tools without consuming live API quota. Toggle between mock mode for rapid iteration and sandbox mode for validating against the real OpenEvidence platform. Always use de-identified data in development.

Environment Setup

cp .env.example .env
# Set your credentials:
# OPENEVIDENCE_API_KEY=oe_xxxxxxxxxxxx
# OPENEVIDENCE_BASE_URL=https://api.openevidence.com/v1
# MOCK_MODE=true
npm install express axios dotenv tsx typescript @types/node
npm install -D vitest supertest @types/express

Dev Server

// src/dev/server.ts
import express from "express";
import { createProxyMiddleware } from "http-proxy-middleware";
const app = express();
app.use(express.json());
const MOCK = process.env.MOCK_MODE === "true";
if (!MOCK) {
  app.use("/v1", createProxyMiddleware({
    target: process.env.OPENEVIDENCE_BASE_URL,
    changeOrigin: true,
    headers: { Authorization: `Bearer ${process.env.OPENEVIDENCE_API_KEY}` },
  }));
} else {
  const { mountMockRoutes } = require("./mocks");
  mountMockRoutes(app);
}
app.listen(3008, () => console.log(`OpenEvidence dev server on :3008 [mock=${MOCK}]`));

Mock Mode

// src/dev/mocks.ts — realistic clinical decision support responses (de-identified)
export function mountMockRoutes(app: any) {
  app.post("/v1/query", (req: any, res: any) => res.json({
    query: req.body.question,
    answer: "Based on current evidence, first-line treatment for type 2 diabetes includes metformin combined with lifestyle modifications. HbA1c targets should be individualized.",
    citations: [
      { title: "ADA Standards of Care 2025", source: "Diabetes Care", doi: "10.2337/dc25-S009", year: 2025 },
      { title: "Metformin Meta-Analysis", source: "NEJM", doi: "10.1056/NEJMoa2412345", year: 2024 },
    ],
    confidenceScore: 0.92,
  }));
  app.get("/v1/topics", (_req: any, res: any) => res.json([
    { id: "top_1", name: "Diabetes Management", questionCount: 245 },
    { id: "top_2", name: "Hypertension", questionCount: 189 },
    { id: "top_3", name: "Oncology Screening", questionCount: 134 },
  ]));
  app.get("/v1/citations/:doi", (req: any, res: any) => res.json({
    doi: req.params.doi, title: "ADA Standards of Care 2025", abstract: "Annual update to diabetes management guidelines...",
    journal: "Diabetes Care", year: 2025, evidenceLevel: "Level I",
  }));
}

Testing Workflow

npm run dev:mock &                    # Start mock server in background
npm run test                          # Unit tests with vitest
npm run test -- --watch               # Watch mode for rapid iteration
MOCK_MODE=false npm run test:integration  # Integration test against real API

Debug Tips

  • Never use real patient data in development — all mock data must be de-identified
  • confidenceScore ranges from 0 to 1 — display as percentage in UI
  • Citation DOIs may be null for preprints or conference abstracts
  • Query responses can be slow (2-5s) on the live API — set appropriate timeouts
  • Use topics endpoint to validate query categorization before submitting full queries

Error Handling

IssueCauseFix
401 UnauthorizedInvalid API keyRegenerate at OpenEvidence developer portal
400 Bad RequestEmpty or malformed queryValidate question field is non-empty string
422 UnprocessableQuery outside supported medical domainsCheck supported topics first
429 Rate LimitedToo many queries per minuteAdd backoff, switch to mock mode
ECONNREFUSED :3008Dev server not runningRun npm run dev:mock first

Resources

Next Steps

See openevidence-debug-bundle.

When not to use it

  • Using real patient data in development environments
  • Relying on mock data for production validation

Prerequisites

Node.jsOpenEvidence API key

Limitations

  • Mock data must be de-identified
  • Live API queries may have 2-5s latency

How it compares

This approach allows for rapid iteration without consuming live API quotas by providing realistic, de-identified clinical responses.

Compared to similar skills

openevidence-local-dev-loop side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
openevidence-local-dev-loop (this skill)125dCautionBeginner
nestjs-expert376moReviewAdvanced
test-nodebridge-handler16moReviewIntermediate
ideogram-local-dev-loop025dReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

You might also like

nestjs-expert

davila7

Nest.js framework expert specializing in module architecture, dependency injection, middleware, guards, interceptors, testing with Jest/Supertest, TypeORM/Mongoose integration, and Passport.js authentication. Use PROACTIVELY for any Nest.js application issues including architecture decisions, testing strategies, performance optimization, or debugging complex dependency injection problems. If a specialized expert is a better fit, I will recommend switching and stop.

3758

test-nodebridge-handler

neovateai

Use this skill when testing NodeBridge handlers using `bun scripts/test-nodebridge.ts`, including listing available handlers and passing parameters

10

ideogram-local-dev-loop

jeremylongshore

Configure Ideogram local development with hot reload and testing. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with Ideogram. Trigger with phrases like "ideogram dev setup", "ideogram local development", "ideogram dev environment", "develop with ideogram".

00

node

dannybrown37

Invoke when the user is writing or debugging TypeScript or JavaScript code, working with Node.js tooling, or asking about ESLint/Prettier configuration.

00

supabase-developer

daffy0208

Build full-stack applications with Supabase (PostgreSQL, Auth, Storage, Real-time, Edge Functions). Use when implementing authentication, database design with RLS, file storage, real-time features, or serverless functions.

95185

dependency-upgrade

wshobson

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

26240

Search skills

Search the agent skills registry