Claude-code-plugins-plus-skills openevidence-local-dev-loop
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/openevidence-pack/skills/openevidence-local-dev-loop" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-openevidence-local-dev-loop && rm -rf "$T"
manifest:
plugins/saas-packs/openevidence-pack/skills/openevidence-local-dev-loop/SKILL.mdsource content
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
ranges from 0 to 1 — display as percentage in UIconfidenceScore- 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
endpoint to validate query categorization before submitting full queriestopics
Error Handling
| Issue | Cause | Fix |
|---|---|---|
| Invalid API key | Regenerate at OpenEvidence developer portal |
| Empty or malformed query | Validate question field is non-empty string |
| Query outside supported medical domains | Check supported topics first |
| Too many queries per minute | Add backoff, switch to mock mode |
| Dev server not running | Run first |
Resources
Next Steps
See
openevidence-debug-bundle.