openlabel-skills. Its skills give Claude a procedure for common medical affairs work, and they ground every answer in the label through the openlabel command.
openlabel, so link it first (npm link -w openlabel from the repo).
Each skill lives in
plugin/skills/<name>/SKILL.md. Ask Claude Code naturally, such as “is this email on-label?” or “draft a reply to this question about pregnancy”, and it picks the matching skill.
Evals
Every skill ships its eval suite inplugin/skills/<name>/evals.yaml. A case is a request and a list of checks on the reply:
Use
judge only for what text cannot decide, such as whether a letter is neutral.
Run the suites with openlabel skills eval. The runner gives Claude the skill and the openlabel commands as tools, runs each case against real labels, and grades the reply. A case that crashes counts as a failure, so a broken harness can’t raise a score.